diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh index fbb116ab42ad..aa614aec1283 100755 --- a/pkgs/os-specific/linux/nvidia-x11/builder.sh +++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh @@ -14,6 +14,8 @@ unpackFile() { buildPhase() { + runHook preBuild + if [ -n "$bin" ]; then # Create the module. echo "Building linux driver against kernel: $kernel"; @@ -23,10 +25,14 @@ buildPhase() { cd .. fi + + runHook postBuild } installPhase() { + runHook preInstall + # Install libGL and friends. # since version 391, 32bit libraries are bundled in the 32/ sub-directory @@ -214,6 +220,8 @@ installPhase() { # FIXME: needs PATH and other fixes # install -Dm755 nvidia-bug-report.sh $bin/bin/nvidia-bug-report.sh fi + + runHook postInstall } genericBuild diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index dcfca7f99d26..3eab03b91769 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -117,6 +117,14 @@ rec { persistencedSha256 = "sha256-NuqUQbVt80gYTXgIcu0crAORfsj9BCRooyH3Gp1y1ns="; broken = kernel.kernelAtLeast "6.2"; + + # fixes the bug described in https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439 + # see https://bbs.archlinux.org/viewtopic.php?pid=2083651#p2083651 + # and https://bbs.archlinux.org/viewtopic.php?pid=2083699#p2083699 + postInstall = '' + mv $out/lib/tls/* $out/lib + rmdir $out/lib/tls + ''; }; legacy_340 = let @@ -154,5 +162,13 @@ rec { broken = kernel.kernelAtLeast "6.7"; patches = map (patch: "${aurPatches}/${patch}") patchset; + + # fixes the bug described in https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439 + # see https://bbs.archlinux.org/viewtopic.php?pid=2083651#p2083651 + # and https://bbs.archlinux.org/viewtopic.php?pid=2083699#p2083699 + postInstall = '' + mv $out/lib/tls/* $out/lib + rmdir $out/lib/tls + ''; }; } diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix index c60098ab899d..44ed90a3bb21 100644 --- a/pkgs/os-specific/linux/nvidia-x11/generic.nix +++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix @@ -19,10 +19,12 @@ , useFabricmanager ? false , ibtSupport ? false -, prePatch ? "" +, prePatch ? null , postPatch ? null , patchFlags ? null , patches ? [ ] +, preInstall ? null +, postInstall ? null , broken ? false , brokenOpen ? broken }@args: @@ -145,6 +147,7 @@ let patches = if libsOnly then null else patches; inherit prePatch postPatch patchFlags; + inherit preInstall postInstall; inherit version useGLVND useProfiles; inherit (stdenv.hostPlatform) system; inherit i686bundled;