nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 99 lines 2.8 kB view raw
1{ 2 lib, 3 glibc, 4 fetchFromGitHub, 5 makeWrapper, 6 buildGoModule, 7 autoAddDriverRunpath, 8}: 9 10let 11 # From https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/blob/03cbf9c6cd26c75afef8a2dd68e0306aace80401/Makefile#L54 12 cliVersionPackage = "github.com/NVIDIA/nvidia-container-toolkit/internal/info"; 13in 14buildGoModule (finalAttrs: { 15 pname = "nvidia-container-toolkit"; 16 version = "1.18.2"; 17 18 src = fetchFromGitHub { 19 owner = "NVIDIA"; 20 repo = "nvidia-container-toolkit"; 21 tag = "v${finalAttrs.version}"; 22 hash = "sha256-OMM7IQ65jPr9I5YUwVR3SXbuARnLjS2GSVq2j4J8uFY="; 23 24 }; 25 26 outputs = [ 27 "out" 28 "tools" 29 ]; 30 31 vendorHash = null; 32 33 patches = [ 34 # This patch causes library lookups to first attempt loading via dlopen 35 # before falling back to the regular symlink location and ldcache location. 36 ./0001-Add-dlopen-discoverer.patch 37 ]; 38 39 postPatch = '' 40 substituteInPlace internal/config/config.go \ 41 --replace-fail '/usr/bin/nvidia-container-runtime-hook' "$tools/bin/nvidia-container-runtime-hook" \ 42 --replace-fail '/sbin/ldconfig' '${lib.getBin glibc}/sbin/ldconfig' 43 44 substituteInPlace cmd/nvidia-cdi-hook/update-ldcache/update-ldcache.go \ 45 --replace-fail '/sbin/ldconfig' '${lib.getBin glibc}/sbin/ldconfig' 46 ''; 47 48 subPackages = [ 49 "cmd/nvidia-cdi-hook" 50 "cmd/nvidia-container-runtime" 51 "cmd/nvidia-container-runtime.cdi" 52 "cmd/nvidia-container-runtime-hook" 53 "cmd/nvidia-container-runtime.legacy" 54 "cmd/nvidia-ctk" 55 ]; 56 57 # Based on upstream's Makefile: 58 # https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/blob/03cbf9c6cd26c75afef8a2dd68e0306aace80401/Makefile#L64 59 ldflags = [ 60 "-extldflags=-Wl,-z,lazy" # May be redunandant, cf. `man ld`: "Lazy binding is the default". 61 "-s" # "disable symbol table" 62 63 # "-X name=value" 64 "-X ${cliVersionPackage}.version=${finalAttrs.version}" 65 "-X ${cliVersionPackage}.gitCommit=${finalAttrs.src.rev}" 66 ]; 67 68 nativeBuildInputs = [ 69 autoAddDriverRunpath 70 makeWrapper 71 ]; 72 73 checkFlags = 74 let 75 skippedTests = [ 76 # Disable tests executing nvidia-container-runtime command. 77 "TestGoodInput" 78 "TestDuplicateHook" 79 ]; 80 in 81 [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; 82 83 postInstall = '' 84 mkdir -p $tools/bin 85 mv $out/bin/{nvidia-cdi-hook,nvidia-container-runtime,nvidia-container-runtime.cdi,nvidia-container-runtime-hook,nvidia-container-runtime.legacy} $tools/bin 86 ''; 87 88 meta = { 89 homepage = "https://gitlab.com/nvidia/container-toolkit/container-toolkit"; 90 description = "NVIDIA Container Toolkit"; 91 mainProgram = "nvidia-ctk"; 92 license = lib.licenses.asl20; 93 platforms = lib.platforms.linux; 94 maintainers = with lib.maintainers; [ 95 cpcloud 96 christoph-heiss 97 ]; 98 }; 99})