summary refs log tree commit diff
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2017-05-31 16:31:51 +0300
committerGitHub <noreply@github.com>2017-05-31 16:31:51 +0300
commit3b4ef34fa0e8963db3df4ae58271d1298a5d87a9 (patch)
treea362907bccc42466debbdbe66e33db89e136e9fc
parentd09e3535f5263add321ef0607be8a75d76b2376c (diff)
parent0c4b91505ed6f5ec6475468cb07c3ef8018eed34 (diff)
downloadnixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.tar
nixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.tar.gz
nixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.tar.bz2
nixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.tar.lz
nixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.tar.xz
nixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.tar.zst
nixpkgs-3b4ef34fa0e8963db3df4ae58271d1298a5d87a9.zip
Merge pull request #26272 from vcunat/p/nvidia-304
nvidia 304 fixes
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix8
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix19
2 files changed, 23 insertions, 4 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index c117f8f29fa..3157273c5d3 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -31,10 +31,10 @@ in
   };
 
   legacy_304 = generic {
-    version = "304.134";
-    sha256_32bit = "178wx0a2pmdnaypa9pq6jh0ii0i8ykz1sh1liad9zfriy4d8kxw4";
-    sha256_64bit = "0pydw7nr4d2dply38kwvjbghsbilbp2q0mas4nfq5ad050d2c550";
-    settingsSha256 = "0q92xw4fr9p5nbhj1plynm50d32881861daxfwrisywszqijhmlf";
+    version = "304.135";
+    sha256_32bit = "14qdl39wird04sqba94dcb77i63igmxxav62ndr4qyyavn8s3c2w";
+    sha256_64bit = "125mianhvq591np7y5jjrv9vmpbvixnkicr49ni48mcr0yjnjqkh";
+    settingsSha256 = "1y7swikdngq4nlwzkrq20yfah9zr31n1a5i6nw37awnp8xjilhzm";
     persistencedSha256 = null;
     useGLVND = false;
     useProfiles = false;
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index a21e6ecfc31..4c983227d6a 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -42,6 +42,25 @@ let
         }
       else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
+    prePatch = let
+      debPatches = fetchurl {
+        url = "mirror://debian/pool/non-free/n/nvidia-graphics-drivers-legacy-304xx/"
+            + "nvidia-graphics-drivers-legacy-304xx_304.135-2.debian.tar.xz";
+        sha256 = "0mhji0ssn7075q5a650idigs48kzf11pzj2ca2n07rwxg3vj6pdr";
+      };
+      prefix = "debian/module/debian/patches";
+      applyPatches = pnames: if pnames == [] then null else
+        ''
+          tar xf '${debPatches}'
+          sed 's|^\([+-]\{3\} [ab]\)/|\1/kernel/|' -i ${prefix}/*.patch
+          patches="$patches ${concatMapStringsSep " " (pname: "${prefix}/${pname}.patch") pnames}"
+        '';
+    in
+      # TODO: perhaps other branches also need patching?
+      if (versionOlder version "340") then applyPatches
+        [ "fix-typos" "drm-driver-legacy" "deprecated-cpu-events" "disable-mtrr" ]
+      else null;
+
     # patch to get the nvidia and nvidiaBeta driver to compile on kernel 4.10
     patches = if libsOnly
               then null