diff --git a/pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix b/pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix new file mode 100644 index 000000000000..ac7da5bd33ea --- /dev/null +++ b/pkgs/applications/virtualization/nvidia-container-toolkit/packages.nix @@ -0,0 +1,40 @@ +{ + lib, + newScope, + docker, + libnvidia-container, + runc, + symlinkJoin, +}: + +lib.makeScope newScope ( + self: { + + nvidia-container-toolkit-docker = self.callPackage ./. { + containerRuntimePath = "${docker}/libexec/docker/docker"; + configTemplate = ../nvidia-docker/config.toml; + }; + nvidia-container-toolkit-podman = self.nvidia-container-toolkit-docker.override { + containerRuntimePath = lib.getExe runc; + configTemplate = ../nvidia-podman/config.toml; + }; + + nvidia-docker = symlinkJoin { + name = "nvidia-docker"; + paths = [ + libnvidia-container + self.nvidia-docker-unwrapped + self.nvidia-container-toolkit-docker + ]; + }; + nvidia-docker-unwrapped = self.callPackage ../nvidia-docker { }; + + nvidia-podman = symlinkJoin { + name = "nvidia-podman"; + paths = [ + libnvidia-container + self.nvidia-container-toolkit-podman + ]; + }; + } +) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c3cd76e3afd9..db8eac8a101c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24182,31 +24182,13 @@ with pkgs; nv-codec-headers-11 = callPackage ../development/libraries/nv-codec-headers/11_x.nix { }; nv-codec-headers-12 = callPackage ../development/libraries/nv-codec-headers/12_x.nix { }; - mkNvidiaContainerPkg = { name, containerRuntimePath, configTemplate, additionalPaths ? [] }: - let - nvidia-container-toolkit = callPackage ../applications/virtualization/nvidia-container-toolkit { - inherit containerRuntimePath configTemplate; - }; - in symlinkJoin { - inherit name; - paths = [ - libnvidia-container - nvidia-container-toolkit - ] ++ additionalPaths; - }; - - nvidia-docker = mkNvidiaContainerPkg { - name = "nvidia-docker"; - containerRuntimePath = "${docker}/libexec/docker/docker"; - configTemplate = ../applications/virtualization/nvidia-docker/config.toml; - additionalPaths = [ (callPackage ../applications/virtualization/nvidia-docker { }) ]; - }; - - nvidia-podman = mkNvidiaContainerPkg { - name = "nvidia-podman"; - containerRuntimePath = "${runc}/bin/runc"; - configTemplate = ../applications/virtualization/nvidia-podman/config.toml; - }; + nvidiaCtkPackages = + callPackage ../applications/virtualization/nvidia-container-toolkit/packages.nix + { }; + inherit (nvidiaCtkPackages) + nvidia-docker + nvidia-podman + ; nvidia-vaapi-driver = lib.hiPrio (callPackage ../development/libraries/nvidia-vaapi-driver { });