From 8204a95ef21d4509af5d30cf0ac48a05cee208f9 Mon Sep 17 00:00:00 2001 From: Sandro Jäckel Date: Tue, 31 Jan 2023 17:55:22 +0100 Subject: openjdk: bootstrap headless variant with headless openjdk This makes bootstrapping work when environment.noXlibs is set to true --- pkgs/development/compilers/openjdk/11.nix | 9 ++++++--- pkgs/development/compilers/openjdk/12.nix | 11 +++++++---- pkgs/development/compilers/openjdk/13.nix | 9 ++++++--- pkgs/development/compilers/openjdk/14.nix | 9 ++++++--- pkgs/development/compilers/openjdk/15.nix | 9 ++++++--- pkgs/development/compilers/openjdk/16.nix | 9 ++++++--- pkgs/development/compilers/openjdk/17.nix | 9 ++++++--- pkgs/development/compilers/openjdk/18.nix | 9 ++++++--- pkgs/development/compilers/openjdk/19.nix | 9 ++++++--- pkgs/development/compilers/openjdk/8.nix | 9 ++++++--- pkgs/top-level/java-packages.nix | 1 + 11 files changed, 62 insertions(+), 31 deletions(-) diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix index 808b0ef2e12..af7bfead398 100644 --- a/pkgs/development/compilers/openjdk/11.nix +++ b/pkgs/development/compilers/openjdk/11.nix @@ -14,6 +14,9 @@ let update = "18"; 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 { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${major}.${minor}.${update}+${build}"; @@ -29,7 +32,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -58,7 +61,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk11-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-pre=" "--enable-unlimited-crypto" "--with-native-debug-symbols=internal" @@ -155,7 +158,7 @@ let done ''; - disallowedReferences = [ openjdk11-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; meta = import ./meta.nix lib version; diff --git a/pkgs/development/compilers/openjdk/12.nix b/pkgs/development/compilers/openjdk/12.nix index 7f8ea2330b2..e717a910f70 100644 --- a/pkgs/development/compilers/openjdk/12.nix +++ b/pkgs/development/compilers/openjdk/12.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip , zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama -, libXcursor, libXrandr, fontconfig, openjdk11, fetchpatch +, libXcursor, libXrandr, fontconfig, openjdk11-bootstrap, fetchpatch , setJavaClassPath , headless ? false , enableJavaFX ? false, openjfx @@ -13,6 +13,9 @@ let update = ".0.2"; 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 { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${major}${update}-${build}"; @@ -26,7 +29,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -59,7 +62,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk11.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-pre=" "--enable-unlimited-crypto" "--with-native-debug-symbols=internal" @@ -151,7 +154,7 @@ let done ''; - disallowedReferences = [ openjdk11 ]; + disallowedReferences = [ openjdk-bootstrap ]; meta = import ./meta.nix lib version; diff --git a/pkgs/development/compilers/openjdk/13.nix b/pkgs/development/compilers/openjdk/13.nix index a6c65ce710f..d25d9cf9085 100644 --- a/pkgs/development/compilers/openjdk/13.nix +++ b/pkgs/development/compilers/openjdk/13.nix @@ -13,6 +13,9 @@ let update = ".0.2"; 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 { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${major}${update}${build}"; @@ -26,7 +29,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -59,7 +62,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk13-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-pre=" "--enable-unlimited-crypto" "--with-native-debug-symbols=internal" @@ -151,7 +154,7 @@ let done ''; - disallowedReferences = [ openjdk13-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; meta = import ./meta.nix lib version; diff --git a/pkgs/development/compilers/openjdk/14.nix b/pkgs/development/compilers/openjdk/14.nix index 07bded3676a..fb6c742fa5a 100644 --- a/pkgs/development/compilers/openjdk/14.nix +++ b/pkgs/development/compilers/openjdk/14.nix @@ -13,6 +13,9 @@ let update = ".0.2"; 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 { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${major}${update}${build}"; @@ -26,7 +29,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -54,7 +57,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk14-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-pre=" "--enable-unlimited-crypto" "--with-native-debug-symbols=internal" @@ -147,7 +150,7 @@ let done ''; - disallowedReferences = [ openjdk14-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; meta = import ./meta.nix lib version; diff --git a/pkgs/development/compilers/openjdk/15.nix b/pkgs/development/compilers/openjdk/15.nix index 73d022c9fd9..35297c902b4 100644 --- a/pkgs/development/compilers/openjdk/15.nix +++ b/pkgs/development/compilers/openjdk/15.nix @@ -16,6 +16,9 @@ let __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 { pname = "openjdk" + lib.optionalString headless "-headless"; inherit version; @@ -29,7 +32,7 @@ let buildInputs = [ cpio perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -57,7 +60,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk15-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-pre=" "--enable-unlimited-crypto" "--with-native-debug-symbols=internal" @@ -150,7 +153,7 @@ let done ''; - disallowedReferences = [ openjdk15-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; pos = builtins.unsafeGetAttrPos "major" version; meta = import ./meta.nix lib version.major; diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix index d0007937622..ae0cb17dc4b 100644 --- a/pkgs/development/compilers/openjdk/16.nix +++ b/pkgs/development/compilers/openjdk/16.nix @@ -15,6 +15,9 @@ let build = "36"; }; + # when building a headless jdk, also bootstrap it with a headless jdk + openjdk-bootstrap = openjdk16-bootstrap.override { gtkSupport = !headless; }; + openjdk = stdenv.mkDerivation { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${version.feature}+${version.build}"; @@ -30,7 +33,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -59,7 +62,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk16-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-build=${version.build}" "--with-version-opt=nixos" "--with-version-pre=" @@ -154,7 +157,7 @@ let done ''; - disallowedReferences = [ openjdk16-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; diff --git a/pkgs/development/compilers/openjdk/17.nix b/pkgs/development/compilers/openjdk/17.nix index b13dacc2558..e7d5807b508 100644 --- a/pkgs/development/compilers/openjdk/17.nix +++ b/pkgs/development/compilers/openjdk/17.nix @@ -15,6 +15,9 @@ let build = "10"; }; + # when building a headless jdk, also bootstrap it with a headless jdk + openjdk-bootstrap = openjdk17-bootstrap.override { gtkSupport = !headless; }; + openjdk = stdenv.mkDerivation { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${version.feature}${version.interim}+${version.build}"; @@ -30,7 +33,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -76,7 +79,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk17-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-build=${version.build}" "--with-version-opt=nixos" "--with-version-pre=" @@ -173,7 +176,7 @@ let done ''; - disallowedReferences = [ openjdk17-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; diff --git a/pkgs/development/compilers/openjdk/18.nix b/pkgs/development/compilers/openjdk/18.nix index 0f15e4edede..148d2e74d6a 100644 --- a/pkgs/development/compilers/openjdk/18.nix +++ b/pkgs/development/compilers/openjdk/18.nix @@ -14,6 +14,9 @@ let build = "36"; }; + # when building a headless jdk, also bootstrap it with a headless jdk + openjdk-bootstrap = openjdk18-bootstrap.override { gtkSupport = !headless; }; + openjdk = stdenv.mkDerivation { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${version.feature}+${version.build}"; @@ -29,7 +32,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -66,7 +69,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk18-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-build=${version.build}" "--with-version-opt=nixos" "--with-version-pre=" @@ -163,7 +166,7 @@ let done ''; - disallowedReferences = [ openjdk18-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; diff --git a/pkgs/development/compilers/openjdk/19.nix b/pkgs/development/compilers/openjdk/19.nix index bdcdba83a1c..190818e1fec 100644 --- a/pkgs/development/compilers/openjdk/19.nix +++ b/pkgs/development/compilers/openjdk/19.nix @@ -18,6 +18,9 @@ let build = "7"; }; + # when building a headless jdk, also bootstrap it with a headless jdk + openjdk-bootstrap = openjdk19-bootstrap.override { gtkSupport = !headless; }; + openjdk = stdenv.mkDerivation { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${version.feature}${version.interim}+${version.build}"; @@ -33,7 +36,7 @@ let buildInputs = [ cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib 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) [ gtk3 gnome_vfs GConf glib ]; @@ -78,7 +81,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk19-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-build=${version.build}" "--with-version-opt=nixos" "--with-version-pre=" @@ -173,7 +176,7 @@ let done ''; - disallowedReferences = [ openjdk19-bootstrap ]; + disallowedReferences = [ openjdk-bootstrap ]; pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix index 4e1d1ba6635..aebfceeccb7 100644 --- a/pkgs/development/compilers/openjdk/8.nix +++ b/pkgs/development/compilers/openjdk/8.nix @@ -23,6 +23,9 @@ let update = "362"; 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 { pname = "openjdk" + lib.optionalString headless "-headless"; version = "8u${update}-${build}"; @@ -37,9 +40,9 @@ let nativeBuildInputs = [ pkg-config lndir unzip ]; 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 - libXi libXinerama libXcursor libXrandr fontconfig + libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap ] ++ lib.optionals (!headless && enableGnome2) [ gtk2 gnome_vfs GConf glib ]; @@ -64,7 +67,7 @@ let ''; configureFlags = [ - "--with-boot-jdk=${openjdk8-bootstrap.home}" + "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-update-version=${update}" "--with-build-number=${build}" "--with-milestone=fcs" diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix index 76954984730..f649717f184 100644 --- a/pkgs/top-level/java-packages.nix +++ b/pkgs/top-level/java-packages.nix @@ -110,6 +110,7 @@ in { openjdk13-bootstrap = mkBootstrap adoptopenjdk-13 ../development/compilers/openjdk/12.nix (bootstrapArgs // { + inherit openjdk11-bootstrap; /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */ stdenv = gcc8Stdenv; }); -- cgit 1.4.1