diff options
Diffstat (limited to 'pkgs/os-specific/linux/nvidia-x11')
-rwxr-xr-x | pkgs/os-specific/linux/nvidia-x11/builder.sh | 8 | ||||
-rw-r--r-- | pkgs/os-specific/linux/nvidia-x11/default.nix | 18 | ||||
-rw-r--r-- | pkgs/os-specific/linux/nvidia-x11/generic.nix | 5 |
3 files changed, 29 insertions, 2 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh index fbb116ab42adc..aa614aec12839 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 bd57c19db335e..3eab03b91769b 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -117,10 +117,18 @@ 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 - # Source cooresponding to https://aur.archlinux.org/packages/nvidia-340xx-dkms + # Source corresponding to https://aur.archlinux.org/packages/nvidia-340xx-dkms aurPatches = fetchFromGitHub { owner = "archlinux-jerry"; repo = "nvidia-340xx"; @@ -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 c60098ab899d5..44ed90a3bb212 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; |