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}