nvidia-docker: split out libnvidia-container into separate drv

This commit is contained in:
Phillip Cloud 2021-01-09 09:34:24 -05:00
parent f3c1e795bb
commit b578c28217
5 changed files with 10 additions and 7 deletions

View File

@ -7,6 +7,8 @@
, libseccomp , libseccomp
, rpcsvc-proto , rpcsvc-proto
, libtirpc , libtirpc
, makeWrapper
}: }:
let let
modp-ver = "450.57"; modp-ver = "450.57";
@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NVIDIA"; owner = "NVIDIA";
repo = "libnvidia-container"; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0j6b8z9x9hrrs4xp11zyjjd7kyl7fzcicpiis8k1qb1q2afnqsrq"; sha256 = "0j6b8z9x9hrrs4xp11zyjjd7kyl7fzcicpiis8k1qb1q2afnqsrq";
}; };
@ -64,10 +66,15 @@ stdenv.mkDerivation rec {
popd 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_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
NIX_LDFLAGS = [ "-L${libtirpc.dev}/lib" "-ltirpc" ]; NIX_LDFLAGS = [ "-L${libtirpc.dev}/lib" "-ltirpc" ];
nativeBuildInputs = [ pkgconfig rpcsvc-proto ]; nativeBuildInputs = [ pkgconfig rpcsvc-proto makeWrapper ];
buildInputs = [ libelf libcap libseccomp libtirpc ]; buildInputs = [ libelf libcap libseccomp libtirpc ];
@ -76,5 +83,6 @@ stdenv.mkDerivation rec {
description = "NVIDIA container runtime library"; description = "NVIDIA container runtime library";
license = licenses.bsd3; license = licenses.bsd3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ cpcloud ];
}; };
} }

View File

@ -13,7 +13,6 @@
}: }:
with lib; let with lib; let
libnvidia-container = callPackage ./libnvc.nix { };
isolatedContainerRuntimePath = linkFarm "isolated_container_runtime_path" [ isolatedContainerRuntimePath = linkFarm "isolated_container_runtime_path" [
{ {
name = "runc"; name = "runc";
@ -74,7 +73,6 @@ stdenv.mkDerivation rec {
cp nvidia-docker bin cp nvidia-docker bin
substituteInPlace bin/nvidia-docker --subst-var-by VERSION ${version} 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-toolkit}/bin/nvidia-container-{toolkit,runtime-hook} bin
cp ${nvidia-container-runtime}/bin/nvidia-container-runtime bin cp ${nvidia-container-runtime}/bin/nvidia-container-runtime bin
''; '';
@ -83,9 +81,6 @@ stdenv.mkDerivation rec {
mkdir -p $out/{bin,etc} mkdir -p $out/{bin,etc}
cp -r bin $out 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 # nvidia-container-runtime invokes docker-runc or runc if that isn't available on PATH
wrapProgram $out/bin/nvidia-container-runtime --prefix PATH : ${isolatedContainerRuntimePath} wrapProgram $out/bin/nvidia-container-runtime --prefix PATH : ${isolatedContainerRuntimePath}