diff options
Diffstat (limited to 'pkgs/applications/virtualization/nvidia-container-toolkit')
-rw-r--r-- | pkgs/applications/virtualization/nvidia-container-toolkit/default.nix | 111 | ||||
-rw-r--r-- | pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix | 79 |
2 files changed, 0 insertions, 190 deletions
diff --git a/pkgs/applications/virtualization/nvidia-container-toolkit/default.nix b/pkgs/applications/virtualization/nvidia-container-toolkit/default.nix deleted file mode 100644 index 7d0ecfab53e7..000000000000 --- a/pkgs/applications/virtualization/nvidia-container-toolkit/default.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ lib -, glibc -, fetchFromGitLab -, makeWrapper -, buildGoModule -, linkFarm -, writeShellScript -, formats -, containerRuntimePath -, configTemplate -, configTemplatePath ? null -, libnvidia-container -}: - -assert configTemplate != null -> (lib.isAttrs configTemplate && configTemplatePath == null); -assert configTemplatePath != null -> (lib.isStringLike configTemplatePath && configTemplate == null); - -let - isolatedContainerRuntimePath = linkFarm "isolated_container_runtime_path" [ - { - name = "runc"; - path = containerRuntimePath; - } - ]; - warnIfXdgConfigHomeIsSet = writeShellScript "warn_if_xdg_config_home_is_set" '' - set -eo pipefail - - if [ -n "$XDG_CONFIG_HOME" ]; then - echo >&2 "$(tput setaf 3)warning: \$XDG_CONFIG_HOME=$XDG_CONFIG_HOME$(tput sgr 0)" - fi - ''; - - configToml = if configTemplatePath != null then configTemplatePath else (formats.toml { }).generate "config.toml" configTemplate; -in -buildGoModule rec { - pname = "container-toolkit/container-toolkit"; - version = "1.9.0"; - - src = fetchFromGitLab { - owner = "nvidia"; - repo = pname; - rev = "v${version}"; - hash = "sha256-b4mybNB5FqizFTraByHk5SCsNO66JaISj18nLgLN7IA="; - }; - - vendorHash = null; - - postPatch = '' - # replace the default hookDefaultFilePath to the $out path - substituteInPlace cmd/nvidia-container-runtime/main.go \ - --replace '/usr/bin/nvidia-container-runtime-hook' '${placeholder "out"}/bin/nvidia-container-runtime-hook' - ''; - - ldflags = [ "-s" "-w" ]; - - nativeBuildInputs = [ makeWrapper ]; - - preConfigure = '' - # Ensure the runc symlink isn't broken: - if ! readlink --quiet --canonicalize-existing "${isolatedContainerRuntimePath}/runc" ; then - echo "${isolatedContainerRuntimePath}/runc: broken symlink" >&2 - exit 1 - fi - ''; - - checkFlags = - let - skippedTests = [ - # Disable tests executing nvidia-container-runtime command. - "TestGoodInput" - "TestDuplicateHook" - ]; - in - [ "-skip" "${builtins.concatStringsSep "|" skippedTests}" ]; - - postInstall = '' - mkdir -p $out/etc/nvidia-container-runtime - - # nvidia-container-runtime invokes docker-runc or runc if that isn't - # available on PATH. - # - # Also set XDG_CONFIG_HOME if it isn't already to allow overriding - # configuration. This in turn allows users to have the nvidia container - # runtime enabled for any number of higher level runtimes like docker and - # podman, i.e., there's no need to have mutually exclusivity on what high - # level runtime can enable the nvidia runtime because each high level - # runtime has its own config.toml file. - wrapProgram $out/bin/nvidia-container-runtime \ - --run "${warnIfXdgConfigHomeIsSet}" \ - --prefix PATH : ${isolatedContainerRuntimePath}:${libnvidia-container}/bin \ - --set-default XDG_CONFIG_HOME $out/etc - - cp ${configToml} $out/etc/nvidia-container-runtime/config.toml - - substituteInPlace $out/etc/nvidia-container-runtime/config.toml \ - --subst-var-by glibcbin ${lib.getBin glibc} - - ln -s $out/bin/nvidia-container-{toolkit,runtime-hook} - - wrapProgram $out/bin/nvidia-container-toolkit \ - --add-flags "-config ${placeholder "out"}/etc/nvidia-container-runtime/config.toml" - ''; - - meta = with lib; { - homepage = "https://gitlab.com/nvidia/container-toolkit/container-toolkit"; - description = "NVIDIA Container Toolkit"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ cpcloud ]; - }; -} diff --git a/pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix b/pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix deleted file mode 100644 index 0ce76d5aed31..000000000000 --- a/pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ - lib, - newScope, - docker, - libnvidia-container, - runc, - symlinkJoin, -}: - -# Note this scope isn't recursed into, at the time of writing. -lib.makeScope newScope ( - self: { - - # The config is only exposed as an attrset so that the user may reach the - # deafult values, for inspectability purposes. - dockerConfig = { - disable-require = false; - #swarm-resource = "DOCKER_RESOURCE_GPU" - - nvidia-container-cli = { - #root = "/run/nvidia/driver"; - #path = "/usr/bin/nvidia-container-cli"; - environment = [ ]; - #debug = "/var/log/nvidia-container-runtime-hook.log"; - ldcache = "/tmp/ld.so.cache"; - load-kmods = true; - #no-cgroups = false; - #user = "root:video"; - ldconfig = "@@glibcbin@/bin/ldconfig"; - }; - }; - nvidia-container-toolkit-docker = self.callPackage ./. { - containerRuntimePath = "${docker}/libexec/docker/docker"; - configTemplate = self.dockerConfig; - }; - - podmanConfig = { - disable-require = true; - #swarm-resource = "DOCKER_RESOURCE_GPU"; - - nvidia-container-cli = { - #root = "/run/nvidia/driver"; - #path = "/usr/bin/nvidia-container-cli"; - environment = [ ]; - #debug = "/var/log/nvidia-container-runtime-hook.log"; - ldcache = "/tmp/ld.so.cache"; - load-kmods = true; - no-cgroups = true; - #user = "root:video"; - ldconfig = "@@glibcbin@/bin/ldconfig"; - }; - }; - nvidia-container-toolkit-podman = self.nvidia-container-toolkit-docker.override { - containerRuntimePath = lib.getExe runc; - - configTemplate = self.podmanConfig; - }; - - nvidia-docker = symlinkJoin { - name = "nvidia-docker"; - paths = [ - libnvidia-container - self.nvidia-docker-unwrapped - self.nvidia-container-toolkit-docker - ]; - inherit (self.nvidia-docker-unwrapped) meta; - }; - nvidia-docker-unwrapped = self.callPackage ../nvidia-docker { }; - - nvidia-podman = symlinkJoin { - name = "nvidia-podman"; - paths = [ - libnvidia-container - self.nvidia-container-toolkit-podman - ]; - inherit (self.nvidia-container-toolkit-podman) meta; - }; - } -) |