openjdk: 12.0.2 -> 13.0.1

This commit is contained in:
Matt McHenry 2019-10-09 08:02:18 -04:00
parent d9d5b737ee
commit d00559ebb8
9 changed files with 253 additions and 26 deletions

View File

@ -0,0 +1,155 @@
{ stdenv, lib, fetchurl, bash, pkgconfig, autoconf, cpio, file, which, unzip
, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
, libXcursor, libXrandr, fontconfig, openjdk11
, setJavaClassPath
, headless ? false
, enableJavaFX ? openjfx.meta.available, openjfx
, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
}:
let
major = "12";
update = ".0.2";
build = "ga";
openjdk = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless";
version = "${major}${update}-${build}";
src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
sha256 = "1ndlxmikyy298z7lqpr1bd0zxq7yx6xidj8y3c8mw9m9fy64h9c7";
};
nativeBuildInputs = [ pkgconfig autoconf ];
buildInputs = [
cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk11
] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib
];
patches = [
./fix-java-home-jdk10.patch
./read-truststore-from-env-jdk10.patch
./currency-date-range-jdk10.patch
./increase-javadoc-heap.patch
# -Wformat etc. are stricter in newer gccs, per
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
# so grab the work-around from
# https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
(fetchurl {
url = https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch;
sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
})
] ++ lib.optionals (!headless && enableGnome2) [
./swing-use-gtk-jdk10.patch
];
prePatch = ''
chmod +x configure
patchShebangs --build configure
'';
configureFlags = [
"--with-boot-jdk=${openjdk11.home}"
"--enable-unlimited-crypto"
"--with-native-debug-symbols=internal"
"--with-libjpeg=system"
"--with-giflib=system"
"--with-libpng=system"
"--with-zlib=system"
"--with-lcms=system"
"--with-stdc++lib=dynamic"
] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc"
++ lib.optional headless "--enable-headless-only"
++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
separateDebugInfo = true;
NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
NIX_LDFLAGS = lib.optionals (!headless) [
"-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
] ++ lib.optionals (!headless && enableGnome2) [
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
];
buildFlags = [ "all" ];
installPhase = ''
mkdir -p $out/lib
mv build/*/images/jdk $out/lib/openjdk
# Remove some broken manpages.
rm -rf $out/lib/openjdk/man/ja*
# Mirror some stuff in top-level.
mkdir -p $out/share
ln -s $out/lib/openjdk/include $out/include
ln -s $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/
# Remove crap from the installation.
rm -rf $out/lib/openjdk/demo
${lib.optionalString headless ''
rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
''}
ln -s $out/lib/openjdk/bin $out/bin
'';
preFixup = ''
# 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}" > $out/nix-support/propagated-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=""
for output in $outputs; do
if [ "$output" = debug ]; then continue; fi
LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
done
# Add the local library paths to remove dependencies on the bootstrap
for output in $outputs; do
if [ "$output" = debug ]; then continue; fi
OUTPUTDIR=$(eval echo \$$output)
BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
echo "$BINLIBS" | while read i; do
patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
patchelf --shrink-rpath "$i" || true
done
done
'';
disallowedReferences = [ openjdk11 ];
meta = with stdenv.lib; {
homepage = http://openjdk.java.net/;
license = licenses.gpl2;
description = "The open-source Java Development Kit";
maintainers = with maintainers; [ edwtjo ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
};
passthru = {
architecture = "";
home = "${openjdk}/lib/openjdk";
};
};
in openjdk

View File

@ -7,11 +7,11 @@ let
};
jdk = stdenv.mkDerivation rec {
name = "zulu12.1.3-ca-jdk12";
name = "zulu13.28.11-ca-jdk13.0.1";
src = fetchurl {
url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
sha256 = "05q3v4vwjd7xhqr21bzlip5x4xhq5rpdshfpb8i86n4zvn7l0mxy";
sha256 = "0j148gq7vwhda6y9sazy0qg6ka7milywrdhbvmd31a1xp303r37b";
curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
};

View File

@ -1,7 +1,7 @@
{ stdenv, lib, fetchurl, bash, pkgconfig, autoconf, cpio, file, which, unzip
, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
, libXcursor, libXrandr, fontconfig, openjdk11
, libXcursor, libXrandr, fontconfig, openjdk13-bootstrap
, setJavaClassPath
, headless ? false
, enableJavaFX ? openjfx.meta.available, openjfx
@ -9,24 +9,24 @@
}:
let
major = "12";
update = ".0.2";
build = "ga";
major = "13";
update = ".0.1";
build = "-ga";
openjdk = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless";
version = "${major}${update}-${build}";
version = "${major}${update}${build}";
src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
sha256 = "1ndlxmikyy298z7lqpr1bd0zxq7yx6xidj8y3c8mw9m9fy64h9c7";
sha256 = "1pmgbzlr97ns9fvi3a193miziv5v8fvk9jgymspllsvmb6x9lppk";
};
nativeBuildInputs = [ pkgconfig autoconf ];
buildInputs = [
cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk11
libXi libXinerama libXcursor libXrandr fontconfig openjdk13-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib
];
@ -35,7 +35,7 @@ let
./fix-java-home-jdk10.patch
./read-truststore-from-env-jdk10.patch
./currency-date-range-jdk10.patch
./increase-javadoc-heap.patch
./increase-javadoc-heap-jdk13.patch
# -Wformat etc. are stricter in newer gccs, per
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
# so grab the work-around from
@ -45,7 +45,7 @@ let
sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
})
] ++ lib.optionals (!headless && enableGnome2) [
./swing-use-gtk-jdk10.patch
./swing-use-gtk-jdk13.patch
];
prePatch = ''
@ -54,7 +54,7 @@ let
'';
configureFlags = [
"--with-boot-jdk=${openjdk11.home}"
"--with-boot-jdk=${openjdk13-bootstrap.home}"
"--enable-unlimited-crypto"
"--with-native-debug-symbols=internal"
"--with-libjpeg=system"
@ -137,7 +137,7 @@ let
done
'';
disallowedReferences = [ openjdk11 ];
disallowedReferences = [ openjdk13-bootstrap ];
meta = with stdenv.lib; {
homepage = http://openjdk.java.net/;

View File

@ -0,0 +1,12 @@
diff -uw -r a/make/Docs.gmk b/make/Docs.gmk
--- a/make/Docs.gmk 2019-10-09 08:05:43.107349180 -0400
+++ b/make/Docs.gmk 2019-10-09 08:09:29.330118790 -0400
@@ -277,7 +277,7 @@
$1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS))
$1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION) \
- -Djspec.version=$$(VERSION_SPECIFICATION)
+ -Djspec.version=$$(VERSION_SPECIFICATION) -Xmx1G
ifeq ($$(ENABLE_FULL_DOCS), true)
# Tell the ModuleGraph taglet to generate html links to soon-to-be-created

View File

@ -29,6 +29,9 @@ let
JDK_HOME = ${openjdk11-bootstrap.home}
'' + args.gradleProperties or "");
#avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc.
NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
buildPhase = ''
runHook preBuild

View File

@ -3,7 +3,7 @@
, ffmpeg, python, ruby }:
let
major = "12";
major = "13";
update = "";
build = "14";
repover = "${major}${update}+${build}";
@ -15,8 +15,8 @@ let
version = "${major}${update}-${build}";
src = fetchurl {
url = "https://hg.openjdk.java.net/openjfx/${major}/rt/archive/${repover}.tar.gz";
sha256 = "16jjfjkrg57wsj9mmm52i2kl3byz3ba1f9f8wwc8zwqm4cpjzliz";
url = "https://hg.openjdk.java.net/openjfx/${major}-dev/rt/archive/${repover}.tar.gz";
sha256 = "0nviv9fiwzp1z4gjbp8iz9mf601nadzcy0sx74f5y3v41a3l59qb";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg ];
@ -29,6 +29,9 @@ let
JDK_HOME = ${openjdk11_headless.home}
'' + args.gradleProperties or "");
#avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc.
NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
buildPhase = ''
runHook preBuild
@ -59,8 +62,8 @@ let
outputHashMode = "recursive";
# Downloaded AWT jars differ by platform.
outputHash = {
x86_64-linux = "1z5qar5l28ja4pkf5l5m48xbv3x1yrnilsv9lpf2j3vkdk9h1nci";
i686-linux = "0rbygvjc7w197fi5nxldqdrm6mpiyd3n45042g3gd4s5qk08spjd";
x86_64-linux = "077zss95iq6iskx7ghz1c57ymydpzj0wm7r1pkznw99l9xwvdmqi";
i686-linux = "03gglr2sh77cyg16qw9g45ji33dg7i93s5s30hz3mh420g112qa0";
}.${stdenv.system} or (throw "Unsupported platform");
};
@ -72,6 +75,9 @@ in makePackage {
COMPILE_WEBKIT = true
'';
#openjdk build fails if licenses are identical, so we must patch this trivial difference
patches = [ ./openjfx-mesa-license.patch ];
preBuild = ''
swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
substituteInPlace build.gradle \

View File

@ -0,0 +1,17 @@
--- a/modules/javafx.graphics/src/main/legal/mesa3d.md 1969-12-31 19:00:01.000000000 -0500
+++ b/modules/javafx.graphics/src/main/legal/mesa3d.md 2019-08-08 01:05:04.000000000 -0400
@@ -1,7 +1,7 @@
## Mesa 3-D Graphics Library v5.0
### Mesa License
-```
+<pre>
Mesa 3-D graphics library
Version: 5.0
@@ -25,4 +25,4 @@
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-```
+</pre>

View File

@ -0,0 +1,22 @@
--- a/src/java.desktop/share/classes/javax/swing/UIManager.java 2019-08-08 01:05:04.000000000 -0400
+++ b/src/java.desktop/share/classes/javax/swing/UIManager.java 2019-10-09 08:20:31.791606748 -0400
@@ -660,9 +660,8 @@
Toolkit toolkit = Toolkit.getDefaultToolkit();
if (toolkit instanceof SunToolkit) {
SunToolkit suntk = (SunToolkit)toolkit;
- String desktop = suntk.getDesktop();
boolean gtkAvailable = suntk.isNativeGTKAvailable();
- if ("gnome".equals(desktop) && gtkAvailable) {
+ if (gtkAvailable) {
return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
}
}
@@ -1397,7 +1396,7 @@
lafName = lafData.remove("defaultlaf");
}
if (lafName == null) {
- lafName = getCrossPlatformLookAndFeelClassName();
+ lafName = getSystemLookAndFeelClassName();
}
lafName = swingProps.getProperty(defaultLAFKey, lafName);

View File

@ -8039,7 +8039,7 @@ in
openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
openjfx12 = callPackage ../development/compilers/openjdk/openjfx/12.nix { };
openjfx13 = callPackage ../development/compilers/openjdk/openjfx/13.nix { };
openjdk8-bootstrap =
if adoptopenjdk-hotspot-bin-8.meta.available then
@ -8084,21 +8084,33 @@ in
else
openjdk11.override { headless = true; };
openjdk13-bootstrap =
if adoptopenjdk-hotspot-bin-13.meta.available then
adoptopenjdk-hotspot-bin-13
else
/* adoptopenjdk not available for i686, so fall back to our old build of 12 for bootstrapping */
callPackage ../development/compilers/openjdk/12.nix {
openjfx = openjfx11; /* need this despite next line :-( */
enableJavaFX = false;
headless = true;
inherit (gnome2) GConf gnome_vfs;
};
/* current JDK */
openjdk12 =
openjdk13 =
if stdenv.isDarwin then
callPackage ../development/compilers/openjdk/darwin { }
else
callPackage ../development/compilers/openjdk {
openjfx = openjfx12;
openjfx = openjfx13;
inherit (gnome2) GConf gnome_vfs;
};
openjdk12_headless =
openjdk13_headless =
if stdenv.isDarwin then
openjdk12
openjdk13
else
openjdk12.override { headless = true; };
openjdk13.override { headless = true; };
openjdk = openjdk8;
openjdk_headless = openjdk8_headless;
@ -8110,8 +8122,8 @@ in
jdk11 = openjdk11;
jdk11_headless = openjdk11_headless;
jdk12 = openjdk12;
jdk12_headless = openjdk12_headless;
jdk13 = openjdk13;
jdk13_headless = openjdk13_headless;
jdk = jdk8;
jre = jre8;