openjdk: bootstrap headless variant with headless openjdk

This makes bootstrapping work when environment.noXlibs is set to true
This commit is contained in:
Sandro Jäckel 2023-01-31 17:55:22 +01:00 committed by Anderson Torres
parent 579ac201c6
commit 8204a95ef2
11 changed files with 62 additions and 31 deletions

View file

@ -14,6 +14,9 @@ let
update = "18"; update = "18";
build = "10"; build = "10";
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk11-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation rec { openjdk = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${major}.${minor}.${update}+${build}"; version = "${major}.${minor}.${update}+${build}";
@ -29,7 +32,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk11-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -58,7 +61,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk11-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-pre=" "--with-version-pre="
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--with-native-debug-symbols=internal" "--with-native-debug-symbols=internal"
@ -155,7 +158,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk11-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
meta = import ./meta.nix lib version; meta = import ./meta.nix lib version;

View file

@ -1,7 +1,7 @@
{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip { stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
, zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 , zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
, libXcursor, libXrandr, fontconfig, openjdk11, fetchpatch , libXcursor, libXrandr, fontconfig, openjdk11-bootstrap, fetchpatch
, setJavaClassPath , setJavaClassPath
, headless ? false , headless ? false
, enableJavaFX ? false, openjfx , enableJavaFX ? false, openjfx
@ -13,6 +13,9 @@ let
update = ".0.2"; update = ".0.2";
build = "ga"; build = "ga";
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk11-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation rec { openjdk = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${major}${update}-${build}"; version = "${major}${update}-${build}";
@ -26,7 +29,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk11 libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -59,7 +62,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk11.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-pre=" "--with-version-pre="
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--with-native-debug-symbols=internal" "--with-native-debug-symbols=internal"
@ -151,7 +154,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk11 ]; disallowedReferences = [ openjdk-bootstrap ];
meta = import ./meta.nix lib version; meta = import ./meta.nix lib version;

View file

@ -13,6 +13,9 @@ let
update = ".0.2"; update = ".0.2";
build = "-ga"; build = "-ga";
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk13-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation rec { openjdk = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${major}${update}${build}"; version = "${major}${update}${build}";
@ -26,7 +29,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk13-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -59,7 +62,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk13-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-pre=" "--with-version-pre="
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--with-native-debug-symbols=internal" "--with-native-debug-symbols=internal"
@ -151,7 +154,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk13-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
meta = import ./meta.nix lib version; meta = import ./meta.nix lib version;

View file

@ -13,6 +13,9 @@ let
update = ".0.2"; update = ".0.2";
build = "-ga"; build = "-ga";
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk14-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation rec { openjdk = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${major}${update}${build}"; version = "${major}${update}${build}";
@ -26,7 +29,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk14-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -54,7 +57,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk14-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-pre=" "--with-version-pre="
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--with-native-debug-symbols=internal" "--with-native-debug-symbols=internal"
@ -147,7 +150,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk14-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
meta = import ./meta.nix lib version; meta = import ./meta.nix lib version;

View file

@ -16,6 +16,9 @@ let
__toString = self: "${self.major}${self.update}${self.build}"; __toString = self: "${self.major}${self.update}${self.build}";
}; };
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk15-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
inherit version; inherit version;
@ -29,7 +32,7 @@ let
buildInputs = [ buildInputs = [
cpio perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk15-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -57,7 +60,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk15-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-pre=" "--with-version-pre="
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--with-native-debug-symbols=internal" "--with-native-debug-symbols=internal"
@ -150,7 +153,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk15-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
pos = builtins.unsafeGetAttrPos "major" version; pos = builtins.unsafeGetAttrPos "major" version;
meta = import ./meta.nix lib version.major; meta = import ./meta.nix lib version.major;

View file

@ -15,6 +15,9 @@ let
build = "36"; build = "36";
}; };
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk16-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${version.feature}+${version.build}"; version = "${version.feature}+${version.build}";
@ -30,7 +33,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk16-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -59,7 +62,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk16-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-build=${version.build}" "--with-version-build=${version.build}"
"--with-version-opt=nixos" "--with-version-opt=nixos"
"--with-version-pre=" "--with-version-pre="
@ -154,7 +157,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk16-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
pos = builtins.unsafeGetAttrPos "feature" version; pos = builtins.unsafeGetAttrPos "feature" version;
meta = import ./meta.nix lib version.feature; meta = import ./meta.nix lib version.feature;

View file

@ -15,6 +15,9 @@ let
build = "10"; build = "10";
}; };
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk17-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${version.feature}${version.interim}+${version.build}"; version = "${version.feature}${version.interim}+${version.build}";
@ -30,7 +33,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk17-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -76,7 +79,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk17-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-build=${version.build}" "--with-version-build=${version.build}"
"--with-version-opt=nixos" "--with-version-opt=nixos"
"--with-version-pre=" "--with-version-pre="
@ -173,7 +176,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk17-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
pos = builtins.unsafeGetAttrPos "feature" version; pos = builtins.unsafeGetAttrPos "feature" version;
meta = import ./meta.nix lib version.feature; meta = import ./meta.nix lib version.feature;

View file

@ -14,6 +14,9 @@ let
build = "36"; build = "36";
}; };
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk18-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${version.feature}+${version.build}"; version = "${version.feature}+${version.build}";
@ -29,7 +32,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk18-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -66,7 +69,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk18-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-build=${version.build}" "--with-version-build=${version.build}"
"--with-version-opt=nixos" "--with-version-opt=nixos"
"--with-version-pre=" "--with-version-pre="
@ -163,7 +166,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk18-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
pos = builtins.unsafeGetAttrPos "feature" version; pos = builtins.unsafeGetAttrPos "feature" version;
meta = import ./meta.nix lib version.feature; meta = import ./meta.nix lib version.feature;

View file

@ -18,6 +18,9 @@ let
build = "7"; build = "7";
}; };
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk19-bootstrap.override { gtkSupport = !headless; };
openjdk = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "${version.feature}${version.interim}+${version.build}"; version = "${version.feature}${version.interim}+${version.build}";
@ -33,7 +36,7 @@ let
buildInputs = [ buildInputs = [
cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk19-bootstrap libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib gtk3 gnome_vfs GConf glib
]; ];
@ -78,7 +81,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk19-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-version-build=${version.build}" "--with-version-build=${version.build}"
"--with-version-opt=nixos" "--with-version-opt=nixos"
"--with-version-pre=" "--with-version-pre="
@ -173,7 +176,7 @@ let
done done
''; '';
disallowedReferences = [ openjdk19-bootstrap ]; disallowedReferences = [ openjdk-bootstrap ];
pos = builtins.unsafeGetAttrPos "feature" version; pos = builtins.unsafeGetAttrPos "feature" version;
meta = import ./meta.nix lib version.feature; meta = import ./meta.nix lib version.feature;

View file

@ -23,6 +23,9 @@ let
update = "362"; update = "362";
build = "ga"; build = "ga";
# when building a headless jdk, also bootstrap it with a headless jdk
openjdk-bootstrap = openjdk8-bootstrap.override { gtkSupport = !headless; };
openjdk8 = stdenv.mkDerivation rec { openjdk8 = stdenv.mkDerivation rec {
pname = "openjdk" + lib.optionalString headless "-headless"; pname = "openjdk" + lib.optionalString headless "-headless";
version = "8u${update}-${build}"; version = "8u${update}-${build}";
@ -37,9 +40,9 @@ let
nativeBuildInputs = [ pkg-config lndir unzip ]; nativeBuildInputs = [ pkg-config lndir unzip ];
buildInputs = [ buildInputs = [
cpio file which zip perl openjdk8-bootstrap zlib cups freetype alsa-lib cpio file which zip perl zlib cups freetype alsa-lib
libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [ ] ++ lib.optionals (!headless && enableGnome2) [
gtk2 gnome_vfs GConf glib gtk2 gnome_vfs GConf glib
]; ];
@ -64,7 +67,7 @@ let
''; '';
configureFlags = [ configureFlags = [
"--with-boot-jdk=${openjdk8-bootstrap.home}" "--with-boot-jdk=${openjdk-bootstrap.home}"
"--with-update-version=${update}" "--with-update-version=${update}"
"--with-build-number=${build}" "--with-build-number=${build}"
"--with-milestone=fcs" "--with-milestone=fcs"

View file

@ -110,6 +110,7 @@ in {
openjdk13-bootstrap = mkBootstrap adoptopenjdk-13 openjdk13-bootstrap = mkBootstrap adoptopenjdk-13
../development/compilers/openjdk/12.nix ../development/compilers/openjdk/12.nix
(bootstrapArgs // { (bootstrapArgs // {
inherit openjdk11-bootstrap;
/* build segfaults with gcc9 or newer, so use gcc8 like Debian does */ /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
stdenv = gcc8Stdenv; stdenv = gcc8Stdenv;
}); });