From 50bfc776d4e898528d46aa98ed29bb7e10fdc4bf Mon Sep 17 00:00:00 2001 From: esthromeris Date: Sat, 30 Dec 2023 08:30:03 +0100 Subject: [PATCH] nvidia-x11.legacy_390: fix bug Said bug is described at https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439 --- pkgs/os-specific/linux/nvidia-x11/builder.sh | 8 ++++++++ pkgs/os-specific/linux/nvidia-x11/default.nix | 16 ++++++++++++++++ pkgs/os-specific/linux/nvidia-x11/generic.nix | 5 ++++- 3 files changed, 28 insertions(+), 1 deletion(-) 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 1a776a036ed4..74ddd60fc854 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 @@ -153,5 +161,13 @@ rec { broken = kernel.kernelAtLeast "6.6"; 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 e05400aec276..2cbc1846362b 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: @@ -144,6 +146,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;