From b578c282172626ffc848d12622cdc81ab5aaa89e Mon Sep 17 00:00:00 2001 From: Phillip Cloud Date: Sat, 9 Jan 2021 09:34:24 -0500 Subject: [PATCH] nvidia-docker: split out libnvidia-container into separate drv --- .../avoid-static-libtirpc-build.patch | 0 .../libnvc.nix => libnvidia-container/default.nix} | 12 ++++++++++-- .../libnvc-ldconfig-and-path-fixes.patch | 0 .../modprobe.patch | 0 .../virtualization/nvidia-docker/default.nix | 5 ----- 5 files changed, 10 insertions(+), 7 deletions(-) rename pkgs/applications/virtualization/{nvidia-docker => libnvidia-container}/avoid-static-libtirpc-build.patch (100%) rename pkgs/applications/virtualization/{nvidia-docker/libnvc.nix => libnvidia-container/default.nix} (87%) rename pkgs/applications/virtualization/{nvidia-docker => libnvidia-container}/libnvc-ldconfig-and-path-fixes.patch (100%) rename pkgs/applications/virtualization/{nvidia-docker => libnvidia-container}/modprobe.patch (100%) diff --git a/pkgs/applications/virtualization/nvidia-docker/avoid-static-libtirpc-build.patch b/pkgs/applications/virtualization/libnvidia-container/avoid-static-libtirpc-build.patch similarity index 100% rename from pkgs/applications/virtualization/nvidia-docker/avoid-static-libtirpc-build.patch rename to pkgs/applications/virtualization/libnvidia-container/avoid-static-libtirpc-build.patch diff --git a/pkgs/applications/virtualization/nvidia-docker/libnvc.nix b/pkgs/applications/virtualization/libnvidia-container/default.nix similarity index 87% rename from pkgs/applications/virtualization/nvidia-docker/libnvc.nix rename to pkgs/applications/virtualization/libnvidia-container/default.nix index 95d66582618..f57863cba11 100644 --- a/pkgs/applications/virtualization/nvidia-docker/libnvc.nix +++ b/pkgs/applications/virtualization/libnvidia-container/default.nix @@ -7,6 +7,8 @@ , libseccomp , rpcsvc-proto , libtirpc +, makeWrapper + }: let modp-ver = "450.57"; @@ -23,7 +25,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "NVIDIA"; - repo = "libnvidia-container"; + repo = pname; rev = "v${version}"; sha256 = "0j6b8z9x9hrrs4xp11zyjjd7kyl7fzcicpiis8k1qb1q2afnqsrq"; }; @@ -64,10 +66,15 @@ stdenv.mkDerivation rec { popd ''; + postInstall = '' + wrapProgram $out/bin/nvidia-container-cli \ + --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:/run/opengl-driver-32/lib + ''; + NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ]; NIX_LDFLAGS = [ "-L${libtirpc.dev}/lib" "-ltirpc" ]; - nativeBuildInputs = [ pkgconfig rpcsvc-proto ]; + nativeBuildInputs = [ pkgconfig rpcsvc-proto makeWrapper ]; buildInputs = [ libelf libcap libseccomp libtirpc ]; @@ -76,5 +83,6 @@ stdenv.mkDerivation rec { description = "NVIDIA container runtime library"; license = licenses.bsd3; platforms = platforms.linux; + maintainers = with maintainers; [ cpcloud ]; }; } diff --git a/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch b/pkgs/applications/virtualization/libnvidia-container/libnvc-ldconfig-and-path-fixes.patch similarity index 100% rename from pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch rename to pkgs/applications/virtualization/libnvidia-container/libnvc-ldconfig-and-path-fixes.patch diff --git a/pkgs/applications/virtualization/nvidia-docker/modprobe.patch b/pkgs/applications/virtualization/libnvidia-container/modprobe.patch similarity index 100% rename from pkgs/applications/virtualization/nvidia-docker/modprobe.patch rename to pkgs/applications/virtualization/libnvidia-container/modprobe.patch diff --git a/pkgs/applications/virtualization/nvidia-docker/default.nix b/pkgs/applications/virtualization/nvidia-docker/default.nix index 0df2efebd82..ac2b9db0c5c 100644 --- a/pkgs/applications/virtualization/nvidia-docker/default.nix +++ b/pkgs/applications/virtualization/nvidia-docker/default.nix @@ -13,7 +13,6 @@ }: with lib; let - libnvidia-container = callPackage ./libnvc.nix { }; isolatedContainerRuntimePath = linkFarm "isolated_container_runtime_path" [ { name = "runc"; @@ -74,7 +73,6 @@ stdenv.mkDerivation rec { cp nvidia-docker bin substituteInPlace bin/nvidia-docker --subst-var-by VERSION ${version} - cp ${libnvidia-container}/bin/nvidia-container-cli bin cp ${nvidia-container-toolkit}/bin/nvidia-container-{toolkit,runtime-hook} bin cp ${nvidia-container-runtime}/bin/nvidia-container-runtime bin ''; @@ -83,9 +81,6 @@ stdenv.mkDerivation rec { mkdir -p $out/{bin,etc} cp -r bin $out - wrapProgram $out/bin/nvidia-container-cli \ - --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:/run/opengl-driver-32/lib - # nvidia-container-runtime invokes docker-runc or runc if that isn't available on PATH wrapProgram $out/bin/nvidia-container-runtime --prefix PATH : ${isolatedContainerRuntimePath}