about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRickard Nilsson <rickynils@gmail.com>2012-12-09 23:36:14 +0100
committerRickard Nilsson <rickynils@gmail.com>2012-12-11 11:33:40 +0100
commit6d8109555e7f8756f6107f3304a81debcb74cdd8 (patch)
treeb27822afc99ef89fe05a5d5ee1426ded26d20660
parenteee3a373cf1b364e293231c6672f1cc1b2b9d0d3 (diff)
Add legacy version 304.64 of the Nvidia driver
The current 310.x version of the Nivida driver has dropped support
for some cards (for example 6200LE).
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy304.nix51
-rw-r--r--pkgs/top-level/all-packages.nix1
2 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy304.nix b/pkgs/os-specific/linux/nvidia-x11/legacy304.nix
new file mode 100644
index 0000000000000..ad419610df7ed
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy304.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, kernel ? null, xlibs, zlib, perl
+, gtk, atk, pango, glib, gdk_pixbuf
+, # Whether to build the libraries only (i.e. not the kernel module or
+  # nvidia-settings).  Used to support 32-bit binaries on 64-bit
+  # Linux.
+  libsOnly ? false
+}:
+
+with stdenv.lib;
+
+let versionNumber = "304.64"; in
+
+stdenv.mkDerivation {
+  name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
+
+  builder = ./builder.sh;
+
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchurl {
+        url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
+        sha256 = "0li27nlhx9bbln9424xpxw46sarjdch2fxpn4kvh0npaywll2ii3";
+      }
+    else if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
+        sha256 = "1x33f6b9zcsnpjcxlv38l1w0blimsv1y3bbrrzg48wwwb5wvynxl";
+      }
+    else throw "nvidia-x11 does not support platform ${stdenv.system}";
+
+  inherit versionNumber libsOnly;
+
+  kernel = if libsOnly then null else kernel;
+
+  dontStrip = true;
+
+  glPath = stdenv.lib.makeLibraryPath [xlibs.libXext xlibs.libX11 xlibs.libXrandr];
+
+  cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.gcc.gcc];
+
+  programPath = optionalString (!libsOnly) (stdenv.lib.makeLibraryPath
+    [ gtk atk pango glib gdk_pixbuf xlibs.libXv ] );
+
+  buildInputs = [ perl ];
+
+  meta = {
+    homepage = http://www.nvidia.com/object/unix.html;
+    description = "X.org driver and kernel module for NVIDIA graphics cards";
+    license = "unfree";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d9bec14c5d9a1..25c7740ac022d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5960,6 +5960,7 @@ let
 
     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
+    nvidia_x11_legacy304 = callPackage ../os-specific/linux/nvidia-x11/legacy304.nix { };
 
     openafsClient = callPackage ../servers/openafs-client { };