Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 69 lines 1.7 kB view raw
1nvidia_x11: sha256: 2 3{ 4 stdenv, 5 lib, 6 fetchurl, 7 patchelf, 8 zlib, 9 glibc, 10}: 11 12let 13 sys = lib.concatStringsSep "-" (lib.reverseList (lib.splitString "-" stdenv.system)); 14 bsys = builtins.replaceStrings [ "_" ] [ "-" ] sys; 15 fmver = nvidia_x11.fabricmanagerVersion; 16 ldd = (lib.getBin glibc) + "/bin/ldd"; 17in 18 19stdenv.mkDerivation rec { 20 pname = "fabricmanager"; 21 version = fmver; 22 src = fetchurl { 23 url = 24 "https://developer.download.nvidia.com/compute/nvidia-driver/redist/fabricmanager/" 25 + "${sys}/${pname}-${sys}-${fmver}-archive.tar.xz"; 26 inherit sha256; 27 }; 28 29 phases = [ 30 "unpackPhase" 31 "installPhase" 32 ]; 33 34 installPhase = '' 35 mkdir -p $out/{bin,share/nvidia-fabricmanager} 36 for bin in nv{-fabricmanager,switch-audit};do 37 ${patchelf}/bin/patchelf \ 38 --set-interpreter ${stdenv.cc.libc}/lib/ld-${bsys}.so.2 \ 39 --set-rpath ${ 40 lib.makeLibraryPath [ 41 stdenv.cc.libc 42 zlib 43 ] 44 } \ 45 bin/$bin 46 done 47 mv bin/nv{-fabricmanager,switch-audit} $out/bin/. 48 for d in etc systemd share/nvidia;do 49 mv $d $out/share/nvidia-fabricmanager/. 50 done 51 for d in include lib;do 52 mv $d $out/. 53 done 54 patchShebangs $out/bin 55 56 for b in $out/bin/*;do 57 ${ldd} $b | grep -vqz "not found" 58 done 59 ''; 60 61 meta = { 62 homepage = "https://www.nvidia.com/object/unix.html"; 63 description = "Fabricmanager daemon for NVLink intialization and control"; 64 license = lib.licenses.unfreeRedistributable; 65 platforms = nvidia_x11.meta.platforms; 66 mainProgram = "nv-fabricmanager"; 67 maintainers = with lib.maintainers; [ edwtjo ]; 68 }; 69}