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)
wip/yesman
Matt McHenry 6 years ago
parent 8b5a759759
commit 1bd7b98c79
  1. 6
      pkgs/applications/misc/josm/default.nix
  2. 70
      pkgs/development/compilers/openjdk/11.nix
  3. 15
      pkgs/development/compilers/openjdk/darwin/11.nix
  4. 27
      pkgs/top-level/all-packages.nix

@ -1,4 +1,4 @@
{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jre10 }:
{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk11 }:
stdenv.mkDerivation rec {
name = "josm-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "102dph3479qskzf72cpb9139pq9ifka6pzna1c6s5rs2il6mfvsb";
};
buildInputs = [ jre10 makeWrapper ];
buildInputs = [ jdk11 makeWrapper ];
desktopItem = makeDesktopItem {
name = "josm";
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin $out/share/java
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"
mkdir -p $out/share/applications

@ -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
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr
, libjpeg, giflib
@ -10,31 +10,30 @@
let
/**
* The JRE libraries are in directories that depend on the CPU.
* The JDK libraries are in directories that depend on the CPU.
*/
architecture =
if stdenv.hostPlatform.system == "i686-linux" then
"i386"
else "amd64";
update = "10.0.2";
major = "11";
update = ".0.1";
build = "13";
repover = "jdk-${update}+${build}";
repover = "jdk-${major}${update}+${build}";
paxflags = if stdenv.isi686 then "msp" else "m";
openjdk10 = stdenv.mkDerivation {
name = "openjdk-${update}-b${build}";
openjdk = stdenv.mkDerivation {
name = "openjdk-${major}${update}-b${build}";
src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk10u/archive/${repover}.tar.gz";
sha256 = "0y7hyzgvn6z8gyp3h9xvxwj6zda899y6i629jn6yxqzj96q56jpk";
url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/${repover}.tar.gz";
sha256 = "1ri3fv67rvs9xxhc3ynklbprhxbdsgpwafbw6wqj950xy5crgysm";
};
outputs = [ "out" "jre" ];
nativeBuildInputs = [ pkgconfig ];
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
libXi libXinerama libXcursor libXrandr lndir fontconfig
] ++ lib.optionals (!minimal && enableGnome2) [
@ -55,12 +54,11 @@ let
configureFlagsArray=(
"--with-boot-jdk=${bootjdk.home}"
"--with-update-version=${update}"
"--with-update-version=${major}${update}"
"--with-build-number=${build}"
"--with-milestone=fcs"
"--enable-unlimited-crypto"
"--disable-debug-symbols"
"--disable-freetype-bundling"
"--with-zlib=system"
"--with-giflib=system"
"--with-stdc++lib=dynamic"
@ -86,7 +84,7 @@ let
buildFlags = [ "all" ];
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
@ -101,57 +99,29 @@ let
# jni.h expects jni_md.h to be in the header search path.
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.
rm -rf $out/lib/openjdk/demo
${lib.optionalString minimal ''
for d in $out/lib/openjdk/lib $jre/lib/openjdk/jre/lib; do
rm ''${d}/{libjsound,libjsoundalsa,libfontmanager}.so
done
rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
''}
lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre
# 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*"
for file in $exes; do
echo "marking *$file*"
paxmark ${paxflags} "$file"
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 $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 = ''
prefix=$jre stripDirs "$STRIP" "$stripDebugList" "''${stripDebugFlags:--S}"
patchELF $jre
propagatedBuildInputs+=" $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
# Propagate the setJavaClassPath setup hook so that any package
# that depends on the JDK has $CLASSPATH set up properly.
mkdir -p $out/nix-support
#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.
mkdir -p $out/nix-support
@ -196,7 +166,7 @@ let
passthru = {
inherit architecture;
home = "${openjdk10}/lib/openjdk";
home = "${openjdk}/lib/openjdk";
};
};
in openjdk10
in openjdk

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

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

Loading…
Cancel
Save