openjdk8: Add missing setup hooks

This commit is contained in:
Eelco Dolstra 2015-09-14 18:27:20 +02:00
parent 7a1aa50908
commit b0fd35e174

View File

@ -1,7 +1,9 @@
{ stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype { stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype
, alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib , alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib
, setJavaClassPath
, minimal ? false
}:
, minimal ? false } :
let let
update = "60"; update = "60";
build = "24"; build = "24";
@ -98,14 +100,14 @@ let
installPhase = '' installPhase = ''
mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk 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. # Move some stuff to top-level.
mv $out/lib/openjdk/include $out/include mv $out/lib/openjdk/include $out/include
mv $out/lib/openjdk/man $out/share/man mv $out/lib/openjdk/man $out/share/man
# jni.h expects jni_md.h to be in the header search path. # 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. # Remove some broken manpages.
rm -rf $out/share/man/ja* rm -rf $out/share/man/ja*
@ -124,7 +126,7 @@ let
ln -s $out/lib/openjdk/bin $out/lib/openjdk/jre/bin ln -s $out/lib/openjdk/bin $out/lib/openjdk/jre/bin
# Set PaX markings # 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*" echo "to mark: *$exes*"
for file in $exes; do for file in $exes; do
echo "marking *$file*" echo "marking *$file*"
@ -149,6 +151,25 @@ let
ln -s $jre/lib/openjdk/jre/bin $jre/bin 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 = '' postFixup = ''
# Build the set of output library directories to rpath against # Build the set of output library directories to rpath against
LIBDIRS="" LIBDIRS=""