From c9c133ab1114182ce44340df5148430370fb65f2 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Sun, 5 Dec 2010 11:42:24 +0000 Subject: [PATCH] Use requireFile for the form-hidden download of JDK 5 (or 1.5, who cares) svn path=/nixpkgs/trunk/; revision=24972 --- pkgs/development/compilers/jdk/builder.sh | 20 +------------ pkgs/development/compilers/jdk/default-5.nix | 4 +-- .../compilers/jdk/jdk5-oracle-linux.nix | 28 +++++++++++++------ pkgs/top-level/all-packages.nix | 4 +-- 4 files changed, 23 insertions(+), 33 deletions(-) diff --git a/pkgs/development/compilers/jdk/builder.sh b/pkgs/development/compilers/jdk/builder.sh index e749fdba5ecd..7f402dab1588 100644 --- a/pkgs/development/compilers/jdk/builder.sh +++ b/pkgs/development/compilers/jdk/builder.sh @@ -1,25 +1,7 @@ buildInputs="$unzip" source $stdenv/setup -src=$filename.bin - -if ! test -e "$pathname"; then - echo "" - echo "SORRY!" - echo "You should download \`$(basename $pathname)' from Sun and place it in $(dirname $pathname)." - echo "Blame Sun, not us." - echo "If you are doing a chroot build - try a non-chroot build, because we need to access /tmp." - echo "" - exit 1 -fi - -actual=$(md5sum -b $pathname | cut -c1-32) -if test "$actual" != "$md5"; then - echo "hash is $actual, expected $md5" - exit 1 -fi - -unzip $pathname || true +unzip $src || true ensureDir $out mv $dirname/* $out/ diff --git a/pkgs/development/compilers/jdk/default-5.nix b/pkgs/development/compilers/jdk/default-5.nix index fb25cd704c44..dfd4e31f4b37 100644 --- a/pkgs/development/compilers/jdk/default-5.nix +++ b/pkgs/development/compilers/jdk/default-5.nix @@ -1,9 +1,9 @@ -{stdenv, fetchurl, unzip}: +{stdenv, fetchurl, unzip, requireFile}: if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then (import ./jdk5-oracle-linux.nix) { - inherit stdenv fetchurl unzip; + inherit stdenv fetchurl unzip requireFile; } else abort "the Java 5 SDK is not supported on this platform" diff --git a/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix b/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix index 06471c482a19..8884585d154d 100644 --- a/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix +++ b/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix @@ -8,19 +8,29 @@ * Note that this is not necessary if someone has already pushed a * binary. */ -{stdenv, fetchurl, unzip}: +{stdenv, fetchurl, unzip, requireFile}: assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; -let name = "jdk-1_5_0_22"; in -stdenv.mkDerivation { - inherit name; - filename = "jdk-1_5_0_22"; +stdenv.mkDerivation rec { + name = "jdk-1_5_0_22"; dirname = "jdk1.5.0_22"; builder = ./builder.sh; - pathname = if stdenv.system == "x86_64-linux" then "/tmp/${name}-linux-amd64.bin" else "/tmp/${name}-linux-i586.bin"; - md5 = if stdenv.system == "x86_64-linux" then "b62abcaf9ea8617c50fa213bbc88824a" else "df5dae6d50d2abeafb472dde6d9a17f3"; + src = requireFile { + message = '' + SORRY! + We may not download the needed binary distribution automatically. + You should download ${distfilename} from Sun and add it to store. + For example, "nix-prefetch-url file:///\$PWD/${distfilename}" in the + directory where you saved it is OK. + Blame Sun, not us. + ''; + name = distfilename; + sha256 = if stdenv.system == "x86_64-linux" then + "1h63gigvg8id95igcj8xw7qvxs4p2y9hvx4xbvkwg8bji3ifb0sk" + else "0655n2q1y023zzwbk6gs9vwsnb29jc0m3bg3x3xdw623qgb4k6px"; + }; + distfilename = if stdenv.system == "x86_64-linux" then "${name}-linux-amd64.bin" else "${name}-linux-i586.bin"; - stdenv = stdenv; - inherit unzip; + inherit unzip stdenv; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0659b1111020..7aec966045e8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1927,9 +1927,7 @@ let jdk5 = ( assert system == "i686-linux" || system == "x86_64-linux"; - import ../development/compilers/jdk/default-5.nix { - inherit fetchurl stdenv unzip; - }); + callPackage ../development/compilers/jdk/default-5.nix { }); jdk = if stdenv.isDarwin then openjdkDarwin else jdkdistro true false; jre = jdkdistro false false;