about summary refs log tree commit diff
path: root/pkgs/development/compilers/cudatoolkit
diff options
context:
space:
mode:
authorWilliam Casarin <bill@casarin.me>2015-07-04 13:17:29 -0700
committerWilliam Casarin <bill@casarin.me>2015-07-04 17:05:50 -0700
commitd1590482cf3ec36636e26c12a100fcd36b48180f (patch)
tree3e517066ce03efa173c3e4464893d1146f0db5d2 /pkgs/development/compilers/cudatoolkit
parentd7869f46ca107535fd6c975b6a4c91537628bfbd (diff)
downloadnixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.tar
nixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.tar.gz
nixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.tar.bz2
nixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.tar.lz
nixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.tar.xz
nixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.tar.zst
nixlib-d1590482cf3ec36636e26c12a100fcd36b48180f.zip
cudatoolkit: generalize derivations, add cuda7
There is not much different between the cudatoolkit
expressions:

  pkgs/development/compilers/cudatoolkit/5.5.nix
  pkgs/development/compilers/cudatoolkit/6.0.nix
  pkgs/development/compilers/cudatoolkit/6.5.nix

This commit removes those and replaces them with

  pkgs/development/compilers/cudatoolkit/generic.nix

and adds cudatoolkit version 7
Diffstat (limited to 'pkgs/development/compilers/cudatoolkit')
-rw-r--r--pkgs/development/compilers/cudatoolkit/5.5.nix66
-rw-r--r--pkgs/development/compilers/cudatoolkit/6.0.nix67
-rw-r--r--pkgs/development/compilers/cudatoolkit/6.5.nix73
-rw-r--r--pkgs/development/compilers/cudatoolkit/7.0.nix7
-rw-r--r--pkgs/development/compilers/cudatoolkit/generic.nix73
5 files changed, 95 insertions, 191 deletions
diff --git a/pkgs/development/compilers/cudatoolkit/5.5.nix b/pkgs/development/compilers/cudatoolkit/5.5.nix
index b42261638650..c3eb1b6efcf6 100644
--- a/pkgs/development/compilers/cudatoolkit/5.5.nix
+++ b/pkgs/development/compilers/cudatoolkit/5.5.nix
@@ -1,62 +1,6 @@
-{ lib, stdenv, fetchurl, patchelf, perl, ncurses, expat, python, zlib
-, xlibs, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib
-} :
+{ callPackage, ... } @ args:
 
-stdenv.mkDerivation rec {
-  name = "cudatoolkit-5.5.22";
-
-  dontPatchELF = true;
-  dontStrip = true;
-
-  src =
-    if stdenv.system == "x86_64-linux" then
-      fetchurl {
-        url = http://developer.download.nvidia.com/compute/cuda/5_5/rel/installers/cuda_5.5.22_linux_64.run;
-        sha256 = "b997e1dbe95704e0e806e0cedc5fd370a385351fef565c7bae0917baf3a29aa4";
-      }
-    else throw "cudatoolkit does not support platform ${stdenv.system}";
-
-  outputs = [ "out" "sdk" ];
-
-  buildInputs = [ perl ];
-
-  runtimeDependencies = [
-    ncurses expat python zlib
-    xlibs.libX11 xlibs.libXext xlibs.libXrender xlibs.libXt xlibs.libXtst xlibs.libXi xlibs.libXext
-    gtk2 glib fontconfig freetype unixODBC alsaLib
-  ];
-
-  rpath = "${stdenv.lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc}/lib64";
-
-  unpackPhase = ''
-    sh $src --keep --noexec
-    cd pkg/run_files
-    sh cuda-linux64-rel-5.5.22-16488124.run --keep --noexec
-    sh cuda-samples-linux-5.5.22-16488124.run --keep --noexec
-    cd pkg
-  '';
-
-  buildPhase = ''
-    find . -type f -executable -exec patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      '{}' \; || true
-    find . -type f -exec patchelf \
-      --set-rpath $rpath:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64:$(cat $NIX_CC/nix-support/orig-cc)/lib \
-      --force-rpath \
-      '{}' \; || true
-  '';
-
-  installPhase = ''
-    mkdir $out $sdk
-    perl ./install-linux.pl --prefix="$out"
-    rm $out/tools/CUDA_Occupancy_Calculator.xls
-    perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
-    mv $out/include $out/usr_include
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    license = lib.licenses.unfree;
-  };
-}
+callPackage ./generic.nix (args // rec {
+  version = "5.5.22";
+  sha256 = "b997e1dbe95704e0e806e0cedc5fd370a385351fef565c7bae0917baf3a29aa4";
+})
diff --git a/pkgs/development/compilers/cudatoolkit/6.0.nix b/pkgs/development/compilers/cudatoolkit/6.0.nix
index 49a52fe5d32e..200311703a0a 100644
--- a/pkgs/development/compilers/cudatoolkit/6.0.nix
+++ b/pkgs/development/compilers/cudatoolkit/6.0.nix
@@ -1,63 +1,6 @@
-{ lib, stdenv, fetchurl, patchelf, perl, ncurses, expat, python, zlib
-, xlibs, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib
-} :
-
-stdenv.mkDerivation rec {
-  name = "cudatoolkit-6.0.37";
-
-  dontPatchELF = true;
-  dontStrip = true;
-
-  src =
-    if stdenv.system == "x86_64-linux" then
-      fetchurl {
-        url = http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run;
-        sha256 = "991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40";
-      }
-    else throw "cudatoolkit does not support platform ${stdenv.system}";
-
-  outputs = [ "out" "sdk" ];
-
-  buildInputs = [ perl ];
-
-  runtimeDependencies = [
-    ncurses expat python zlib
-    xlibs.libX11 xlibs.libXext xlibs.libXrender xlibs.libXt xlibs.libXtst xlibs.libXi xlibs.libXext
-    gtk2 glib fontconfig freetype unixODBC alsaLib
-  ];
-
-  rpath = "${stdenv.lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc}/lib64";
-
-  unpackPhase = ''
-    sh $src --keep --noexec
-    cd pkg/run_files
-    sh cuda-linux64-rel-6.0.37-18176142.run --keep --noexec
-    sh cuda-samples-linux-6.0.37-18176142.run --keep --noexec
-    cd pkg
-  '';
-
-  buildPhase = ''
-    find . -type f -executable -exec patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      '{}' \; || true
-    find . -type f -exec patchelf \
-      --set-rpath $rpath:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64:$(cat $NIX_CC/nix-support/orig-cc)/lib \
-      --force-rpath \
-      '{}' \; || true
-  '';
-
-  installPhase = ''
-    mkdir $out $sdk
-    perl ./install-linux.pl --prefix="$out"
-    rm $out/tools/CUDA_Occupancy_Calculator.xls
-    perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
-    mv $out/include $out/usr_include
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    license = lib.licenses.unfree;
-  };
-}
+{ callPackage, ... } @ args:
 
+callPackage ./generic.nix (args // rec {
+  version = "6.0.37";
+  sha256 = "991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40";
+})
diff --git a/pkgs/development/compilers/cudatoolkit/6.5.nix b/pkgs/development/compilers/cudatoolkit/6.5.nix
index 268e8e7aeaeb..3d9a3a503494 100644
--- a/pkgs/development/compilers/cudatoolkit/6.5.nix
+++ b/pkgs/development/compilers/cudatoolkit/6.5.nix
@@ -1,69 +1,6 @@
-{ lib, stdenv, fetchurl, patchelf, perl, ncurses, expat, python, zlib
-, xlibs, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib, glibc
-}:
-
-let version = "6.5.19"; in
-
-stdenv.mkDerivation rec {
-  name = "cudatoolkit-${version}";
-
-  dontPatchELF = true;
-  dontStrip = true;
-
-  src =
-    if stdenv.system == "x86_64-linux" then
-      fetchurl {
-        url = "http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_${version}_linux_64.run";
-        sha256 = "1x9zdmk8z784d3d35vr2ak1l4h5v4jfjhpxfi9fl9dvjkcavqyaj";
-      }
-    else throw "cudatoolkit does not support platform ${stdenv.system}";
-
-  outputs = [ "out" "sdk" ];
-
-  buildInputs = [ perl ];
-
-  runtimeDependencies = [
-    glibc
-    ncurses expat python zlib
-    xlibs.libX11 xlibs.libXext xlibs.libXrender xlibs.libXt xlibs.libXtst xlibs.libXi xlibs.libXext
-    gtk2 glib fontconfig freetype unixODBC alsaLib
-  ];
-
-  rpath = "${stdenv.lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc}/lib64";
-
-  unpackPhase = ''
-    sh $src --keep --noexec
-    cd pkg/run_files
-    sh cuda-linux64-rel-${version}-*.run --keep --noexec
-    sh cuda-samples-linux-${version}-*.run --keep --noexec
-    cd pkg
-  '';
-
-  buildPhase = ''
-    find . -type f -executable -exec patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      '{}' \; || true
-    find . -type f -exec patchelf \
-      --set-rpath $rpath:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64:$(cat $NIX_CC/nix-support/orig-cc)/lib \
-      --force-rpath \
-      '{}' \; || true
-  '';
-
-  installPhase = ''
-    mkdir $out $sdk
-    perl ./install-linux.pl --prefix="$out"
-    rm $out/tools/CUDA_Occupancy_Calculator.xls
-    perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
-    mv $out/include $out/usr_include
-
-    # let's remove the 32-bit libraries, they confuse the lib64->lib mover
-    rm -rf $out/lib
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    license = lib.licenses.unfree;
-  };
-}
+{ callPackage, ... } @ args:
 
+callPackage ./generic.nix (args // rec {
+  version = "6.5.19";
+  sha256 = "1x9zdmk8z784d3d35vr2ak1l4h5v4jfjhpxfi9fl9dvjkcavqyaj";
+})
diff --git a/pkgs/development/compilers/cudatoolkit/7.0.nix b/pkgs/development/compilers/cudatoolkit/7.0.nix
new file mode 100644
index 000000000000..152dd6e92743
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/7.0.nix
@@ -0,0 +1,7 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "7.0.28";
+  sha256 = "1km5hpiimx11jcazg0h3mjzk220klwahs2vfqhjavpds5ff2wafi";
+  url = "http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run";
+})
diff --git a/pkgs/development/compilers/cudatoolkit/generic.nix b/pkgs/development/compilers/cudatoolkit/generic.nix
new file mode 100644
index 000000000000..c42c80579870
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/generic.nix
@@ -0,0 +1,73 @@
+{ lib, stdenv, fetchurl, patchelf, perl, ncurses, expat, python, zlib
+, xlibs, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib, glibc
+# generic inputs
+, version, sha256, url ? null, ...
+} :
+
+let
+  # eg, 5.5.22 => 5_5
+  mkShort = let str  = stdenv.lib.strings;
+                take = stdenv.lib.lists.take;
+            in v: str.concatStringsSep "_" (take 2 (str.splitString "." v));
+  shortVer = mkShort version;
+in stdenv.mkDerivation rec {
+  name = "cudatoolkit-${version}";
+
+  dontPatchELF = true;
+  dontStrip = true;
+
+  src =
+    if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = if url != null then url else "http://developer.download.nvidia.com/compute/cuda/${shortVer}/rel/installers/cuda_${version}_linux_64.run";
+        sha256 = sha256;
+      }
+    else throw "cudatoolkit does not support platform ${stdenv.system}";
+
+  outputs = [ "out" "sdk" ];
+
+  buildInputs = [ perl ];
+
+  runtimeDependencies = [
+    ncurses expat python zlib glibc
+    xlibs.libX11 xlibs.libXext xlibs.libXrender xlibs.libXt xlibs.libXtst xlibs.libXi xlibs.libXext
+    gtk2 glib fontconfig freetype unixODBC alsaLib
+  ];
+
+  rpath = "${stdenv.lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc}/lib64";
+
+  unpackPhase = ''
+    sh $src --keep --noexec
+    cd pkg/run_files
+    sh cuda-linux64-rel-${version}-*.run --keep --noexec
+    sh cuda-samples-linux-${version}-*.run --keep --noexec
+    cd pkg
+  '';
+
+  buildPhase = ''
+    find . -type f -executable -exec patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      '{}' \; || true
+    find . -type f -exec patchelf \
+      --set-rpath $rpath:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64:$(cat $NIX_CC/nix-support/orig-cc)/lib \
+      --force-rpath \
+      '{}' \; || true
+  '';
+
+  installPhase = ''
+    mkdir $out $sdk
+    perl ./install-linux.pl --prefix="$out"
+    rm $out/tools/CUDA_Occupancy_Calculator.xls
+    perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
+    mv $out/include $out/usr_include
+
+    # let's remove the 32-bit libraries, they confuse the lib64->lib mover
+    rm -rf $out/lib
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    license = lib.licenses.unfree;
+  };
+}