Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pkgs/development/compilers/openjdk/12.nix
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ let
# 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
if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
EOF
'';

Expand Down
155 changes: 155 additions & 0 deletions pkgs/development/compilers/openjdk/13.nix
Original file line number Diff line number Diff line change
@@ -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, openjdk13-bootstrap
, setJavaClassPath
, headless ? false
, enableJavaFX ? openjfx.meta.available, openjfx
, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
}:

let
major = "13";
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 = "1871ziss7ny19rw8f7bay5vznmhpqbfi4ihn3yygs06wyxhm0zmv";
};

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 openjdk13-bootstrap
] ++ 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-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
# 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-jdk13.patch
];

prePatch = ''
chmod +x configure
patchShebangs --build configure
'';

configureFlags = [
"--with-boot-jdk=${openjdk13-bootstrap.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 = toString (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 = [ openjdk13-bootstrap ];

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
4 changes: 2 additions & 2 deletions pkgs/development/compilers/openjdk/darwin/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ let
};

jdk = stdenv.mkDerivation rec {
name = "zulu13.29.9-ca-jdk13.0.2";
name = "zulu14.28.21-ca-jdk14.0.1";

src = fetchurl {
url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
sha256 = "1x8ja3x880a1izrwi7bdrwz1ljdvracjx627slzjd2xk8c4211pf";
sha256 = "1pc0y3fxhlf42a51qbdha1fabci61yzq70kk5c1rzk0ai78d92q8";
curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
};

Expand Down
14 changes: 7 additions & 7 deletions pkgs/development/compilers/openjdk/default.nix
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{ 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, openjdk13-bootstrap
, libXcursor, libXrandr, fontconfig, openjdk14-bootstrap
, setJavaClassPath
, headless ? false
, enableJavaFX ? openjfx.meta.available, openjfx
, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
}:

let
major = "13";
update = ".0.2";
major = "14";
update = ".0.1";
build = "-ga";

openjdk = stdenv.mkDerivation rec {
Expand All @@ -19,14 +19,14 @@ let

src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
sha256 = "1871ziss7ny19rw8f7bay5vznmhpqbfi4ihn3yygs06wyxhm0zmv";
sha256 = "0ic7dcrzk62jc65yrshs6xlclmsha7z52bia5s2bkllw1zpmdmip";
};

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 openjdk13-bootstrap
libXi libXinerama libXcursor libXrandr fontconfig openjdk14-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib
];
Expand Down Expand Up @@ -54,7 +54,7 @@ let
'';

configureFlags = [
"--with-boot-jdk=${openjdk13-bootstrap.home}"
"--with-boot-jdk=${openjdk14-bootstrap.home}"
"--enable-unlimited-crypto"
"--with-native-debug-symbols=internal"
"--with-libjpeg=system"
Expand Down Expand Up @@ -137,7 +137,7 @@ let
done
'';

disallowedReferences = [ openjdk13-bootstrap ];
disallowedReferences = [ openjdk14-bootstrap ];

meta = with stdenv.lib; {
homepage = "http://openjdk.java.net/";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
{ stdenv, lib, fetchurl, writeText, openjdk11_headless, gradleGen
{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradleGen
, pkgconfig, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib
, ffmpeg, python, ruby }:

let
major = "13";
update = ".0.2";
build = "1";
repover = "${major}${update}+${build}";
major = "14";
update = "";
build = "-ga";
repover = "${major}${update}${build}";
gradle_ = (gradleGen.override {
java = openjdk11_headless;
}).gradle_4_10;
}).gradle_5_6;

makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}-${build}";
version = "${major}${update}${build}";

src = fetchurl {
url = "https://hg.openjdk.java.net/openjfx/${major}-dev/rt/archive/${repover}.tar.gz";
sha256 = "1si9wpb9malnf8zzz57l6b80088z2370zfxp1b0kk6rs0cnvpr74";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx";
rev = repover;
sha256 = "16aj15xksc266gv3y42m0g277pfvp71901lrngndcnpr7i2zshnr";
};

buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg ];
Expand Down Expand Up @@ -75,9 +77,6 @@ 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 \
Expand Down

This file was deleted.

28 changes: 17 additions & 11 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8626,7 +8626,7 @@ in

openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };

openjfx13 = callPackage ../development/compilers/openjdk/openjfx/13.nix { };
openjfx14 = callPackage ../development/compilers/openjdk/openjfx/14.nix { };

openjdk8-bootstrap =
if adoptopenjdk-hotspot-bin-8.meta.available then
Expand Down Expand Up @@ -8671,33 +8671,39 @@ in
else
openjdk11.override { headless = true; };

openjdk13-bootstrap =
openjdk14-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 {
/* adoptopenjdk not available for i686, so fall back to our old builds of 12 & 13 for bootstrapping */
callPackage ../development/compilers/openjdk/13.nix {
openjfx = openjfx11; /* need this despite next line :-( */
enableJavaFX = false;
headless = true;
inherit (gnome2) GConf gnome_vfs;
openjdk13-bootstrap = callPackage ../development/compilers/openjdk/12.nix {
openjfx = openjfx11; /* need this despite next line :-( */
enableJavaFX = false;
headless = true;
inherit (gnome2) GConf gnome_vfs;
};
};

/* current JDK */
openjdk13 =
openjdk14 =
if stdenv.isDarwin then
callPackage ../development/compilers/openjdk/darwin { }
else
callPackage ../development/compilers/openjdk {
openjfx = openjfx13;
openjfx = openjfx14;
inherit (gnome2) GConf gnome_vfs;
};

openjdk13_headless =
openjdk14_headless =
if stdenv.isDarwin then
openjdk13
openjdk14
else
openjdk13.override { headless = true; };
openjdk14.override { headless = true; };

openjdk = openjdk8;
openjdk_headless = openjdk8_headless;
Expand All @@ -8709,8 +8715,8 @@ in
jdk11 = openjdk11;
jdk11_headless = openjdk11_headless;

jdk13 = openjdk13;
jdk13_headless = openjdk13_headless;
jdk14 = openjdk14;
jdk14_headless = openjdk14_headless;

jdk = jdk8;
jre = jre8;
Expand Down