summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-09-14 18:27:20 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-09-14 18:28:52 +0200
commitb0fd35e17482d72772b245cb779bffcc198d2c4e (patch)
tree3e8e0f3bd48dce1996a1d3d72bca156121fef9dd /pkgs
parent7a1aa50908f8a509e9559142a55fe53ea74ddf6c (diff)
downloadnixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.tar
nixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.tar.gz
nixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.tar.bz2
nixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.tar.lz
nixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.tar.xz
nixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.tar.zst
nixlib-b0fd35e17482d72772b245cb779bffcc198d2c4e.zip
openjdk8: Add missing setup hooks
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/openjdk/8.nix29
1 files changed, 25 insertions, 4 deletions
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index 8afa770cdb27..bb1bba5d1c6f 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -1,7 +1,9 @@
 { stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype
 , alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib
+, setJavaClassPath
+, minimal ? false
+}:
 
-, minimal ? false } :
 let
   update = "60";
   build = "24";
@@ -98,14 +100,14 @@ let
     installPhase = ''
       mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk
 
-      cp -av build"/"*/images/j2sdk-image"/"* $out/lib/openjdk
+      cp -av build/*/images/j2sdk-image/* $out/lib/openjdk
 
       # Move some stuff to top-level.
       mv $out/lib/openjdk/include $out/include
       mv $out/lib/openjdk/man $out/share/man
 
       # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/linux"/"*_md.h $out/include/
+      ln -s $out/include/linux/*_md.h $out/include/
 
       # Remove some broken manpages.
       rm -rf $out/share/man/ja*
@@ -124,7 +126,7 @@ let
       ln -s $out/lib/openjdk/bin $out/lib/openjdk/jre/bin
 
       # Set PaX markings
-      exes=$(file $out/lib/openjdk/bin"/"* $jre/lib/openjdk/jre/bin"/"* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+      exes=$(file $out/lib/openjdk/bin/* $jre/lib/openjdk/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
       echo "to mark: *$exes*"
       for file in $exes; do
         echo "marking *$file*"
@@ -149,6 +151,25 @@ let
       ln -s $jre/lib/openjdk/jre/bin $jre/bin
     '';
 
+    # FIXME: this is unnecessary once the multiple-outputs branch is merged.
+    preFixup = ''
+      prefix=$jre stripDirs "$stripDebugList" "''${stripDebugFlags:--S}"
+      patchELF $jre
+      propagatedNativeBuildInputs+=" $jre"
+
+      # Propagate the setJavaClassPath setup hook from the JRE so that
+      # any package that depends on the JRE has $CLASSPATH set up
+      # properly.
+      mkdir -p $jre/nix-support
+      echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
+
+      # Set JAVA_HOME automatically.
+      mkdir -p $out/nix-support
+      cat <<EOF > $out/nix-support/setup-hook
+      if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+      EOF
+    '';
+
     postFixup = ''
       # Build the set of output library directories to rpath against
       LIBDIRS=""