openjdk: 10.0.2 -> 11.0.1

* the jre is no longer an official part of the jdk (jmod is
  recommended as a replacement when needing to create smaller runtime
  images)

* darwin continues to use zulu from azul

* apps that used 10 now use 11 (eclipse, bazel, josm)
This commit is contained in:
Matt McHenry 2018-10-10 12:54:53 -04:00
parent 8b5a759759
commit 1bd7b98c79
4 changed files with 42 additions and 76 deletions

View File

@ -1,4 +1,4 @@
{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jre10 }: { fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk11 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "josm-${version}"; name = "josm-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "102dph3479qskzf72cpb9139pq9ifka6pzna1c6s5rs2il6mfvsb"; sha256 = "102dph3479qskzf72cpb9139pq9ifka6pzna1c6s5rs2il6mfvsb";
}; };
buildInputs = [ jre10 makeWrapper ]; buildInputs = [ jdk11 makeWrapper ];
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "josm"; name = "josm";
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin $out/share/java mkdir -p $out/bin $out/share/java
cp -v $src $out/share/java/josm.jar cp -v $src $out/share/java/josm.jar
makeWrapper ${jre10}/bin/java $out/bin/josm \ makeWrapper ${jdk11}/bin/java $out/bin/josm \
--add-flags "-jar $out/share/java/josm.jar" --add-flags "-jar $out/share/java/josm.jar"
mkdir -p $out/share/applications mkdir -p $out/share/applications

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, bash, cpio, pkgconfig, file, which, unzip, zip, cups, freetype { stdenv, lib, fetchurl, bash, cpio, autoconf, pkgconfig, file, which, unzip, zip, cups, freetype
, alsaLib, bootjdk, perl, liberation_ttf, fontconfig, zlib, lndir , alsaLib, bootjdk, perl, liberation_ttf, fontconfig, zlib, lndir
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr
, libjpeg, giflib , libjpeg, giflib
@ -10,31 +10,30 @@
let let
/** /**
* The JRE libraries are in directories that depend on the CPU. * The JDK libraries are in directories that depend on the CPU.
*/ */
architecture = architecture =
if stdenv.hostPlatform.system == "i686-linux" then if stdenv.hostPlatform.system == "i686-linux" then
"i386" "i386"
else "amd64"; else "amd64";
update = "10.0.2"; major = "11";
update = ".0.1";
build = "13"; build = "13";
repover = "jdk-${update}+${build}"; repover = "jdk-${major}${update}+${build}";
paxflags = if stdenv.isi686 then "msp" else "m"; paxflags = if stdenv.isi686 then "msp" else "m";
openjdk10 = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
name = "openjdk-${update}-b${build}"; name = "openjdk-${major}${update}-b${build}";
src = fetchurl { src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk10u/archive/${repover}.tar.gz"; url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/${repover}.tar.gz";
sha256 = "0y7hyzgvn6z8gyp3h9xvxwj6zda899y6i629jn6yxqzj96q56jpk"; sha256 = "1ri3fv67rvs9xxhc3ynklbprhxbdsgpwafbw6wqj950xy5crgysm";
}; };
outputs = [ "out" "jre" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ buildInputs = [
cpio file which unzip zip perl bootjdk zlib cups freetype alsaLib autoconf cpio file which unzip zip perl bootjdk zlib cups freetype alsaLib
libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr lndir fontconfig libXi libXinerama libXcursor libXrandr lndir fontconfig
] ++ lib.optionals (!minimal && enableGnome2) [ ] ++ lib.optionals (!minimal && enableGnome2) [
@ -55,12 +54,11 @@ let
configureFlagsArray=( configureFlagsArray=(
"--with-boot-jdk=${bootjdk.home}" "--with-boot-jdk=${bootjdk.home}"
"--with-update-version=${update}" "--with-update-version=${major}${update}"
"--with-build-number=${build}" "--with-build-number=${build}"
"--with-milestone=fcs" "--with-milestone=fcs"
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--disable-debug-symbols" "--disable-debug-symbols"
"--disable-freetype-bundling"
"--with-zlib=system" "--with-zlib=system"
"--with-giflib=system" "--with-giflib=system"
"--with-stdc++lib=dynamic" "--with-stdc++lib=dynamic"
@ -86,7 +84,7 @@ let
buildFlags = [ "all" ]; buildFlags = [ "all" ];
installPhase = '' installPhase = ''
mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk mkdir -p $out/lib/openjdk $out/share
cp -av build/*/images/jdk/* $out/lib/openjdk cp -av build/*/images/jdk/* $out/lib/openjdk
@ -101,57 +99,29 @@ let
# 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/
# Copy the JRE to a separate output and setup fallback fonts
cp -av build/*/images/jre $jre/lib/openjdk/
mkdir $out/lib/openjdk/jre
${lib.optionalString (!minimal) ''
mkdir -p $jre/lib/openjdk/jre/lib/fonts/fallback
lndir ${liberation_ttf}/share/fonts/truetype $jre/lib/openjdk/jre/lib/fonts/fallback
''}
# Remove crap from the installation. # Remove crap from the installation.
rm -rf $out/lib/openjdk/demo rm -rf $out/lib/openjdk/demo
${lib.optionalString minimal '' ${lib.optionalString minimal ''
for d in $out/lib/openjdk/lib $jre/lib/openjdk/jre/lib; do rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
rm ''${d}/{libjsound,libjsoundalsa,libfontmanager}.so
done
''} ''}
lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre
# 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/* 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*"
paxmark ${paxflags} "$file" paxmark ${paxflags} "$file"
done done
# Remove duplicate binaries.
for i in $(cd $out/lib/openjdk/bin && echo *); do
if [ "$i" = java ]; then continue; fi
if cmp -s $out/lib/openjdk/bin/$i $jre/lib/openjdk/jre/bin/$i; then
ln -sfn $jre/lib/openjdk/jre/bin/$i $out/lib/openjdk/bin/$i
fi
done
ln -s $out/lib/openjdk/bin $out/bin ln -s $out/lib/openjdk/bin $out/bin
ln -s $jre/lib/openjdk/jre/bin $jre/bin
ln -s $jre/lib/openjdk/jre $out/jre
''; '';
# FIXME: this is unnecessary once the multiple-outputs branch is merged.
preFixup = '' preFixup = ''
prefix=$jre stripDirs "$STRIP" "$stripDebugList" "''${stripDebugFlags:--S}" # Propagate the setJavaClassPath setup hook so that any package
patchELF $jre # that depends on the JDK has $CLASSPATH set up properly.
propagatedBuildInputs+=" $jre" mkdir -p $out/nix-support
# 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
#TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-build-inputs echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
@ -196,7 +166,7 @@ let
passthru = { passthru = {
inherit architecture; inherit architecture;
home = "${openjdk10}/lib/openjdk"; home = "${openjdk}/lib/openjdk";
}; };
}; };
in openjdk10 in openjdk

View File

@ -6,13 +6,13 @@ let
sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0"; sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
}; };
jdk = stdenv.mkDerivation { jdk = stdenv.mkDerivation rec {
name = "zulu10.3+5-jdk10"; name = "zulu11.2.3-jdk11.0.1";
src = fetchurl { src = fetchurl {
url = https://cdn.azul.com/zulu/bin/zulu10.3+5-jdk10.0.2-macosx_x64.zip; url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
sha256 = "05pxfjn8fqw6ddr8m5hzyphwzqgrq8w6b4h3lwc1s7ymh05xmspz"; sha256 = "1jxnxmy79inwf3146ygry1mzv3dj6yrzqll16j7dpr91x1p3dpqy";
curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-linux/"; curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
}; };
buildInputs = [ unzip freetype ]; buildInputs = [ unzip freetype ];
@ -34,8 +34,8 @@ let
''; '';
preFixup = '' preFixup = ''
# Propagate the setJavaClassPath setup hook from the JRE so that # Propagate the setJavaClassPath setup hook from the JDK so that
# any package that depends on the JRE has $CLASSPATH set up # any package that depends on the JDK has $CLASSPATH set up
# properly. # properly.
mkdir -p $out/nix-support mkdir -p $out/nix-support
printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
@ -49,7 +49,6 @@ let
''; '';
passthru = { passthru = {
jre = jdk;
home = jdk; home = jdk;
}; };

View File

@ -6940,11 +6940,11 @@ with pkgs;
inherit (gnome2) GConf gnome_vfs; inherit (gnome2) GConf gnome_vfs;
}; };
openjdk10 = openjdk11 =
if stdenv.isDarwin then if stdenv.isDarwin then
callPackage ../development/compilers/openjdk/darwin/10.nix { } callPackage ../development/compilers/openjdk/darwin/11.nix { }
else else
callPackage ../development/compilers/openjdk/10.nix { callPackage ../development/compilers/openjdk/11.nix {
inherit (gnome2) GConf gnome_vfs; inherit (gnome2) GConf gnome_vfs;
}; };
@ -6964,17 +6964,14 @@ with pkgs;
(lib.addMetaAttrs { outputsToInstall = [ "jre" ]; } (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
((openjdk8.override { minimal = true; }).jre // { outputs = [ "jre" ]; })); ((openjdk8.override { minimal = true; }).jre // { outputs = [ "jre" ]; }));
jdk10 = openjdk10 // { outputs = [ "out" ]; }; jdk11 = openjdk11 // { outputs = [ "out" ]; };
jre10 = lib.setName "openjre-${lib.getVersion pkgs.openjdk10.jre}" jdk11_headless =
(lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
(openjdk10.jre // { outputs = [ "jre" ]; }));
jre10_headless =
if stdenv.isDarwin then if stdenv.isDarwin then
jre10 jdk11
else else
lib.setName "openjre-${lib.getVersion pkgs.openjdk10.jre}-headless" lib.setName "openjdk-${lib.getVersion pkgs.openjdk11}-headless"
(lib.addMetaAttrs { outputsToInstall = [ "jre" ]; } (lib.addMetaAttrs {}
((openjdk10.override { minimal = true; }).jre // { outputs = [ "jre" ]; })); ((openjdk11.override { minimal = true; }) // {}));
jdk = jdk8; jdk = jdk8;
jre = jre8; jre = jre8;
@ -8098,10 +8095,10 @@ with pkgs;
inherit (darwin) cctools; inherit (darwin) cctools;
inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation; inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
}; };
bazel_jdk10 = callPackage ../development/tools/build-managers/bazel { bazel_jdk11 = callPackage ../development/tools/build-managers/bazel {
inherit (darwin) cctools; inherit (darwin) cctools;
inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation; inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
runJdk = jdk10; runJdk = jdk11;
}; };
bazel-buildtools = callPackage ../development/tools/build-managers/bazel/buildtools { }; bazel-buildtools = callPackage ../development/tools/build-managers/bazel/buildtools { };
@ -16172,7 +16169,7 @@ with pkgs;
eaglemode = callPackage ../applications/misc/eaglemode { }; eaglemode = callPackage ../applications/misc/eaglemode { };
eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse { eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse {
jdk = jdk10; jdk = jdk11;
}); });
ecs-agent = callPackage ../applications/virtualization/ecs-agent { }; ecs-agent = callPackage ../applications/virtualization/ecs-agent { };