summary refs log tree commit diff
path: root/pkgs/development/compilers/openjdk-darwin/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/openjdk-darwin/default.nix')
-rw-r--r--pkgs/development/compilers/openjdk-darwin/default.nix45
1 files changed, 33 insertions, 12 deletions
diff --git a/pkgs/development/compilers/openjdk-darwin/default.nix b/pkgs/development/compilers/openjdk-darwin/default.nix
index 1e74acfae72..8d3cbef75d4 100644
--- a/pkgs/development/compilers/openjdk-darwin/default.nix
+++ b/pkgs/development/compilers/openjdk-darwin/default.nix
@@ -1,16 +1,37 @@
-{stdenv, fetchurl, ...}:
+{ stdenv, fetchurl, unzip, setJavaClassPath }:
+let
+  jdk = stdenv.mkDerivation {
+    name = "openjdk-7u60b30";
 
-stdenv.mkDerivation {
-  name = "openjdk6-b16-24_apr_2009-r1";
+    # From https://github.com/alexkasko/openjdk-unofficial-builds
+    src = fetchurl {
+      url = https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u60-unofficial-macosx-x86_64-bundle.zip;
+      sha256 = "af510a4d566712d82c17054bb39f91d98c69a85586e244c6123669a0bd4b7401";
+    };
 
-  src = fetchurl {
-    url = http://hg.bikemonkey.org/archive/openjdk6_darwin/openjdk6-b16-24_apr_2009-r1.tar.bz2;
-    sha256 = "14pbv6jjk95k7hbgiwyvjdjv8pccm7m8a130k0q7mjssf4qmpx1v";
-  };
+    buildInputs = [ unzip ];
+
+    installPhase = ''
+      mv */Contents/Home $out
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/darwin/*_md.h $out/include/
+    '';
 
-  installPhase = ''
-    mkdir -p $out
-    cp -vR * $out/
-  '';
+    preFixup = ''
+      # Propagate the setJavaClassPath setup hook from the JRE so that
+      # any package that depends on the JRE has $CLASSPATH set up
+      # properly.
+      mkdir -p $out/nix-support
+      echo -n "${setJavaClassPath}" > $out/nix-support/propagated-native-build-inputs
 
-}
+      # Set JAVA_HOME automatically.
+      cat <<EOF >> $out/nix-support/setup-hook
+      if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi
+      EOF
+    '';
+
+    passthru.jre = jdk;
+
+  };
+in jdk