From 33f0849565fc0945dff6c322a32707bacd2d46e8 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Wed, 8 Jun 2022 14:03:04 -0400 Subject: [PATCH 1/9] Add additional javadoc & javadoczip alternatives Create additional alternatives linked from the javadocdir, named: * java-%{origin} / java-%{origin}.zip * java-%{javaver} / java-%{javaver}.zip * java-%{javaver}-%{origin} / java-%{javaver}-%{origin}.zip --- java-latest-openjdk.spec | 49 ++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index 4fc69de..8e0bead 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -371,7 +371,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 1 +%global rpmrelease 2 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -760,10 +760,19 @@ PRIORITY=%{priority} if [ "%{?1}" == %{debug_suffix} ]; then let PRIORITY=PRIORITY-1 fi + for X in %{origin} %{javaver} ; do + key=javadocdir_"$X" + alternatives --install %{_javadocdir}/java-"$X" $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} + %{set_if_needed_alternatives $key %{family_noarch}} + done -key=javadocdir -alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} -%{set_if_needed_alternatives $key %{family_noarch}} + key=javadocdir_%{javaver}_%{origin} + alternatives --install %{_javadocdir}/java-%{javaver}-%{origin} $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} + %{set_if_needed_alternatives $key %{family_noarch}} + + key=javadocdir + alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} + %{set_if_needed_alternatives $key %{family_noarch}} exit 0 } @@ -773,6 +782,9 @@ if [ "x$debug" == "xtrue" ] ; then fi post_state=$1 # from postun, https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} + %{save_and_remove_alternatives javadocdir_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} + %{save_and_remove_alternatives javadocdir_%{javaver} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} + %{save_and_remove_alternatives javadocdir_%{javaver}_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} exit 0 } @@ -784,9 +796,20 @@ PRIORITY=%{priority} if [ "%{?1}" == %{debug_suffix} ]; then let PRIORITY=PRIORITY-1 fi -key=javadoczip -alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} -%{set_if_needed_alternatives $key %{family_noarch}} + for X in %{origin} %{javaver} ; do + key=javadoczip_"$X" + alternatives --install %{_javadocdir}/java-"$X".zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} + %{set_if_needed_alternatives $key %{family_noarch}} + done + + key=javadoczip_%{javaver}_%{origin} + alternatives --install %{_javadocdir}/java-%{javaver}-%{origin}.zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} + %{set_if_needed_alternatives $key %{family_noarch}} + + # Weird legacy filename for backwards-compatibility + key=javadoczip + alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} + %{set_if_needed_alternatives $key %{family_noarch}} exit 0 } @@ -796,6 +819,9 @@ exit 0 fi post_state=$1 # from postun, https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} + %{save_and_remove_alternatives javadoczip_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} + %{save_and_remove_alternatives javadoczip_%{javaver} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} + %{save_and_remove_alternatives javadoczip_%{javaver}_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} exit 0 } @@ -1075,6 +1101,9 @@ exit 0 %if %is_system_jdk %if %{is_release_build -- %{?1}} %ghost %{_javadocdir}/java +%ghost %{_javadocdir}/java-%{origin} +%ghost %{_javadocdir}/java-%{javaver} +%ghost %{_javadocdir}/java-%{javaver}-%{origin} %endif %endif } @@ -1085,6 +1114,9 @@ exit 0 %if %is_system_jdk %if %{is_release_build -- %{?1}} %ghost %{_javadocdir}/java-zip +%ghost %{_javadocdir}/java-%{origin}.zip +%ghost %{_javadocdir}/java-%{javaver}.zip +%ghost %{_javadocdir}/java-%{javaver}-%{origin}.zip %endif %endif } @@ -2587,6 +2619,9 @@ cjc.mainProgram(args) %endif %changelog +* Tue Jul 12 2022 FeRD (Frank Dana) - 1:18.0.1.1.2-2.rolling +- Add javaver- and origin-specific javadoc and javadoczip alternatives. + * Mon Jul 11 2022 Andrew Hughes - 1:18.0.1.1.2-1.rolling - Update to jdk-18.0.1.1 interim release - Update release notes to actually reflect OpenJDK 18 and subsequent releases 18.0.1 & 18.0.1.1 From 79f3eb8ebc0fe1bf777586a621c84f1227a234e1 Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Sun, 10 Jul 2022 17:12:42 +0100 Subject: [PATCH 2/9] Make use of the vendor version string to store our version & release rather than an upstream release date --- CheckVendor.java | 18 +++++++++++++----- java-latest-openjdk.spec | 16 +++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/CheckVendor.java b/CheckVendor.java index e2101cf..29b296b 100644 --- a/CheckVendor.java +++ b/CheckVendor.java @@ -21,8 +21,8 @@ along with this program. If not, see . public class CheckVendor { public static void main(String[] args) { - if (args.length < 3) { - System.err.println("CheckVendor "); + if (args.length < 4) { + System.err.println("CheckVendor "); System.exit(1); } @@ -32,6 +32,8 @@ public class CheckVendor { String expectedVendorURL = args[1]; String vendorBugURL = System.getProperty("java.vendor.url.bug"); String expectedVendorBugURL = args[2]; + String vendorVersionString = System.getProperty("java.vendor.version"); + String expectedVendorVersionString = args[3]; if (!expectedVendor.equals(vendor)) { System.err.printf("Invalid vendor %s, expected %s\n", @@ -46,12 +48,18 @@ public class CheckVendor { } if (!expectedVendorBugURL.equals(vendorBugURL)) { - System.err.printf("Invalid vendor bug URL%s, expected %s\n", + System.err.printf("Invalid vendor bug URL %s, expected %s\n", vendorBugURL, expectedVendorBugURL); System.exit(4); } - System.err.printf("Vendor information verified as %s, %s, %s\n", - vendor, vendorURL, vendorBugURL); + if (!expectedVendorVersionString.equals(vendorVersionString)) { + System.err.printf("Invalid vendor version string %s, expected %s\n", + vendorVersionString, expectedVendorVersionString); + System.exit(5); + } + + System.err.printf("Vendor information verified as %s, %s, %s, %s\n", + vendor, vendorURL, vendorBugURL, vendorVersionString); } } diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index 8e0bead..fd6b1bb 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -312,10 +312,6 @@ %global interimver 0 %global updatever 1 %global patchver 1 -# If you bump featurever, you must also bump vendor_version_string -# Used via new version scheme. JDK 17 was -# GA'ed in March 2022 => 22.3 -%global vendor_version_string 22.3 # buildjdkver is usually same as %%{featurever}, # but in time of bootstrap of next jdk, it is featurever-1, # and this it is better to change it here, on single place @@ -359,6 +355,7 @@ %endif %endif %endif +%global oj_vendor_version (Red_Hat-%{version}-%{release}) # Define IcedTea version used for SystemTap tapsets and desktop file %global icedteaver 6.0.0pre00-c848b93a8598 @@ -371,7 +368,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 2 +%global rpmrelease 3 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -1762,6 +1759,8 @@ The %{origin_nice} %{featurever} API documentation compressed in a single archiv %prep +echo "Preparing %{oj_vendor_version}" + # Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-( %if 0%{?stapinstall:1} echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}" @@ -1959,7 +1958,7 @@ function buildjdk() { --with-version-build=%{buildver} \ --with-version-pre="${EA_DESIGNATOR}" \ --with-version-opt=%{lts_designator} \ - --with-vendor-version-string="%{vendor_version_string}" \ + --with-vendor-version-string="%{oj_vendor_version}" \ --with-vendor-name="%{oj_vendor}" \ --with-vendor-url="%{oj_vendor_url}" \ --with-vendor-bug-url="%{oj_vendor_bug_url}" \ @@ -2350,7 +2349,7 @@ if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; els # Check correct vendor values have been set $JAVA_HOME/bin/javac -d . %{SOURCE16} -$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" "%{oj_vendor_url}" "%{oj_vendor_bug_url}" +$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" "%{oj_vendor_url}" "%{oj_vendor_bug_url}" "%{oj_vendor_version}" %if %{include_staticlibs} # Check debug symbols in static libraries (smoke test) @@ -2619,6 +2618,9 @@ cjc.mainProgram(args) %endif %changelog +* Wed Jul 13 2022 Andrew Hughes - 1:18.0.1.1.2-3.rolling +- Make use of the vendor version string to store our version & release rather than an upstream release date + * Tue Jul 12 2022 FeRD (Frank Dana) - 1:18.0.1.1.2-2.rolling - Add javaver- and origin-specific javadoc and javadoczip alternatives. From f4dcf6aa0f0892d22cd3cbeae92d79f5602695cb Mon Sep 17 00:00:00 2001 From: Jiri Date: Wed, 13 Jul 2022 20:07:30 +0200 Subject: [PATCH 3/9] Replaced binaries and .so files with bash-stubs on i686 in preparation of the removal on that architecture https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs --- java-latest-openjdk.spec | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index fd6b1bb..b2fe136 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -368,7 +368,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 3 +%global rpmrelease 4 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -2203,6 +2203,21 @@ jdk_image=${top_dir_abs_main_build_path}/images/%{jdkimage} # Install the jdk mkdir -p $RPM_BUILD_ROOT%{_jvmdir} + +pushd ${jdk_image} +%ifarch %{ix86} + for file in $(find $(pwd) | grep -e "/bin/" -e "\.so$") ; do + echo "deprecating $file" + echo '#!/bin/bash' > $file + echo 'echo "We are going to remove i686 jdk. Please fix your package accordingly!"' >> $file + echo 'echo "See https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file + echo 'echo "See https://pagure.io/fesco/issue/2772"' >> $file + echo 'echo "See https://bugzilla.redhat.com/show_bug.cgi?id=2083750"' >> $file + echo 'exit 1' >> $file + done +%endif +popd + cp -a ${jdk_image} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} pushd ${jdk_image} @@ -2307,7 +2322,9 @@ find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/legal -type f -exec chmod 6 done %check - +%ifarch %{ix86} + exit 0 +%endif # We test debug first as it will give better diagnostics on a crash for suffix in %{build_loop} ; do @@ -2618,6 +2635,10 @@ cjc.mainProgram(args) %endif %changelog +* Wed Jul 13 2022 Jiri Vanek - 1:18.0.1.0.10-4.rolling. +- Replaced binaries and .so files with bash-stubs on i686 in preparation of the removal on that architecture: +- https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs + * Wed Jul 13 2022 Andrew Hughes - 1:18.0.1.1.2-3.rolling - Make use of the vendor version string to store our version & release rather than an upstream release date From 08334d8ce11bf8e9f3cfa5fa6749f3ff83eaaf2f Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Sat, 9 Jul 2022 01:10:32 +0100 Subject: [PATCH 4/9] Explicitly require crypto-policies during build and runtime for system security properties --- java-latest-openjdk.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index b2fe136..109e148 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -368,7 +368,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 4 +%global rpmrelease 5 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -1168,6 +1168,8 @@ OrderWithRequires: copy-jdk-configs %endif # for printing support Requires: cups-libs +# for system security properties +Requires: crypto-policies # for FIPS PKCS11 provider Requires: nss # Post requires alternatives to install tool alternatives @@ -1431,6 +1433,8 @@ BuildRequires: libXt-devel BuildRequires: libXtst-devel # Requirement for setting up nss.cfg and nss.fips.cfg BuildRequires: nss-devel +# Requirement for system security property test +BuildRequires: crypto-policies BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel BuildRequires: zip @@ -2635,7 +2639,10 @@ cjc.mainProgram(args) %endif %changelog -* Wed Jul 13 2022 Jiri Vanek - 1:18.0.1.0.10-4.rolling. +* Sat Jul 09 2022 Andrew Hughes - 1:18.0.1.1.2-5.rolling +- Explicitly require crypto-policies during build and runtime for system security properties + +* Wed Jul 13 2022 Jiri Vanek - 1:18.0.1.1.2-4.rolling. - Replaced binaries and .so files with bash-stubs on i686 in preparation of the removal on that architecture: - https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs From 3f2f52a2a3c7ae40f44cac89355d0695ede2e0a8 Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Sun, 17 Jul 2022 02:42:37 +0100 Subject: [PATCH 5/9] Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable --- java-latest-openjdk.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index 109e148..077a9de 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -368,7 +368,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 5 +%global rpmrelease 6 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -485,6 +485,9 @@ %global tapsetdir %{tapsetdirttapset}/%{stapinstall} %endif +# x86 is no longer supported +ExcludeArch: %{ix86} + # not-duplicated scriptlets for normal/debug packages %global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : @@ -2639,7 +2642,10 @@ cjc.mainProgram(args) %endif %changelog -* Sat Jul 09 2022 Andrew Hughes - 1:18.0.1.1.2-5.rolling +* Sun Jul 17 2022 Andrew Hughes - 1:18.0.1.1.2-6.rolling +- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable + +* Wed Jul 13 2022 Andrew Hughes - 1:18.0.1.1.2-5.rolling - Explicitly require crypto-policies during build and runtime for system security properties * Wed Jul 13 2022 Jiri Vanek - 1:18.0.1.1.2-4.rolling. From d66bf86c494cffeff2093751723f149a002df350 Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Tue, 19 Jul 2022 01:30:25 +0100 Subject: [PATCH 6/9] Try to build on x86 again by creating a husk of a JDK which does not depend on itself --- java-latest-openjdk.spec | 106 +++++++++++++++++++++++++++++++-------- 1 file changed, 86 insertions(+), 20 deletions(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index 077a9de..9087bca 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -368,7 +368,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 6 +%global rpmrelease 7 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -485,9 +485,6 @@ %global tapsetdir %{tapsetdirttapset}/%{stapinstall} %endif -# x86 is no longer supported -ExcludeArch: %{ix86} - # not-duplicated scriptlets for normal/debug packages %global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : @@ -825,14 +822,20 @@ exit 0 exit 0 } +%ifarch %{ix86} +%define files_jre() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-jre.sh} +%else %define files_jre() %{expand: %{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png %{_jvmdir}/%{sdkdir -- %{?1}}/lib/libsplashscreen.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/libawt_xawt.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/libjawt.so } +%endif - +%ifarch %{ix86} +%define files_jre_headless() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-headless.sh} +%else %define files_jre_headless() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal %doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS @@ -967,7 +970,11 @@ exit 0 %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/conf.rpmmoved %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/security.rpmmoved } +%endif +%ifarch %{ix86} +%define files_devel() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-devel.sh} +%else %define files_devel() %{expand: %dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar @@ -1072,29 +1079,49 @@ exit 0 %endif %endif } +%endif +%ifarch %{ix86} +%define files_jmods() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-jmods.sh} +%else %define files_jmods() %{expand: %{_jvmdir}/%{sdkdir -- %{?1}}/jmods } +%endif +%ifarch %{ix86} +%define files_demo() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-demo.sh} +%else %define files_demo() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal %{_jvmdir}/%{sdkdir -- %{?1}}/demo %{_jvmdir}/%{sdkdir -- %{?1}}/sample } +%endif +%ifarch %{ix86} +%define files_src() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-src.sh} +%else %define files_src() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal %{_jvmdir}/%{sdkdir -- %{?1}}/lib/src.zip } +%endif +%ifarch %{ix86} +%define files_static_libs() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-static_libs.sh} +%else %define files_static_libs() %{expand: %dir %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_root} %dir %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_arch_dir} %dir %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_install_dir} %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_install_dir}/lib*.a } +%endif +%ifarch %{ix86} +%define files_javadoc() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc.sh} +%else %define files_javadoc() %{expand: %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}} %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal @@ -1107,7 +1134,11 @@ exit 0 %endif %endif } +%endif +%ifarch %{ix86} +%define files_javadoc_zip() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc_zip.sh} +%else %define files_javadoc_zip() %{expand: %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal @@ -1120,6 +1151,7 @@ exit 0 %endif %endif } +%endif # not-duplicated requires/provides/obsoletes for normal/debug packages %define java_rpo() %{expand: @@ -1442,7 +1474,9 @@ BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel BuildRequires: zip BuildRequires: javapackages-filesystem +%ifnarch %{ix86} BuildRequires: java-latest-openjdk-devel +%endif # Zero-assembler build requirement %ifarch %{zero_arches} BuildRequires: libffi-devel @@ -1884,6 +1918,11 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg %build +# x86 is deprecated +%ifarch %{ix86} + exit 0 +%endif + # How many CPU's do we have? export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) export NUM_PROC=${NUM_PROC:-1} @@ -2211,20 +2250,34 @@ jdk_image=${top_dir_abs_main_build_path}/images/%{jdkimage} # Install the jdk mkdir -p $RPM_BUILD_ROOT%{_jvmdir} -pushd ${jdk_image} %ifarch %{ix86} - for file in $(find $(pwd) | grep -e "/bin/" -e "\.so$") ; do - echo "deprecating $file" - echo '#!/bin/bash' > $file - echo 'echo "We are going to remove i686 jdk. Please fix your package accordingly!"' >> $file - echo 'echo "See https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file - echo 'echo "See https://pagure.io/fesco/issue/2772"' >> $file - echo 'echo "See https://bugzilla.redhat.com/show_bug.cgi?id=2083750"' >> $file - echo 'exit 1' >> $file - done -%endif -popd + mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}} + file=/tmp/gonejdk.$$ + echo "OpenJDK on x86 is now deprecated" + echo '#!/bin/bash' > $file + echo 'echo "We are going to remove i686 jdk. Please fix your package accordingly!"' >> $file + echo 'echo "See https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file + echo 'echo "See https://pagure.io/fesco/issue/2772"' >> $file + echo 'echo "See https://bugzilla.redhat.com/show_bug.cgi?id=2083750"' >> $file + echo 'exit 1' >> $file + + for pkgsuffix in jre headless devel demo src debugsourcefiles jmods static_libs ; do + cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-${pkgsuffix}.sh + done + + # Docs were only in the normal build + if ! echo $suffix | grep -q "debug" ; then + for pkgsuffix in javadoc javadoc_zip ; do + cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-${pkgsuffix}.sh + done + fi + + rm -f ${file} + +%else + +# Install the jdk cp -a ${jdk_image} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} pushd ${jdk_image} @@ -2325,16 +2378,24 @@ find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 7 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ; find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/legal -type f -exec chmod 644 {} \; ; +%endif + # end, dual install done %check -%ifarch %{ix86} - exit 0 -%endif + # We test debug first as it will give better diagnostics on a crash for suffix in %{build_loop} ; do +%ifarch %{ix86} + + # Fake debugsourcefiles.list here after find-debuginfo.sh has already had a go + echo "%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-debugsourcefiles.sh" >> debugsourcefiles.list + cat debugsourcefiles.list + +%else + # Tests in the check stage are performed on the installed image # rpmbuild operates as follows: build -> install -> test export JAVA_HOME=${RPM_BUILD_ROOT}%{_jvmdir}/%{sdkdir -- $suffix} @@ -2395,6 +2456,8 @@ $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from" $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable +%endif + # build cycles check done @@ -2642,6 +2705,9 @@ cjc.mainProgram(args) %endif %changelog +* Tue Jul 19 2022 Andrew Hughes - 1:18.0.1.1.2-7.rolling +- Try to build on x86 again by creating a husk of a JDK which does not depend on itself + * Sun Jul 17 2022 Andrew Hughes - 1:18.0.1.1.2-6.rolling - Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable From 6e7911be349cfbfd0dcc686f423958c04436c2dd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 15:06:36 +0000 Subject: [PATCH 7/9] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- java-latest-openjdk.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index 9087bca..37f659c 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -1317,7 +1317,7 @@ Version: %{newjavaver}.%{buildver} # This package needs `.rolling` as part of Release so as to not conflict on install with # java-X-openjdk. I.e. when latest rolling release is also an LTS release packaged as # java-X-openjdk. See: https://bugzilla.redhat.com/show_bug.cgi?id=1647298 -Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist} +Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist}.1 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -2705,6 +2705,9 @@ cjc.mainProgram(args) %endif %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 1:18.0.1.1.2-7.rolling.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jul 19 2022 Andrew Hughes - 1:18.0.1.1.2-7.rolling - Try to build on x86 again by creating a husk of a JDK which does not depend on itself From e7bdf2e86c154cfaf21566fb5de13678bfd0fafc Mon Sep 17 00:00:00 2001 From: Jiri Date: Fri, 22 Jul 2022 12:27:35 +0200 Subject: [PATCH 8/9] moved to build only on %%{java_arches} -- https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs - reverted : -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild (always mess up release) -- Try to build on x86 again by creating a husk of a JDK which does not depend on itself -- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable -- Replaced binaries and .so files with bash-stubs on i686 - added ExclusiveArch: %%{java_arches} -- this now excludes i686 -- this is safely backport-able to older fedoras, as the macro was backported proeprly (with i686 included) - https://bugzilla.redhat.com/show_bug.cgi?id=2104125 --- java-latest-openjdk.spec | 105 +++++++-------------------------------- 1 file changed, 19 insertions(+), 86 deletions(-) diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index 37f659c..ec0f731 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -368,7 +368,7 @@ %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup %global buildver 2 -%global rpmrelease 7 +%global rpmrelease 8 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -485,6 +485,9 @@ %global tapsetdir %{tapsetdirttapset}/%{stapinstall} %endif +# x86 is no longer supported +ExclusiveArch: %{java_arches} + # not-duplicated scriptlets for normal/debug packages %global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : @@ -822,20 +825,14 @@ exit 0 exit 0 } -%ifarch %{ix86} -%define files_jre() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-jre.sh} -%else %define files_jre() %{expand: %{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png %{_jvmdir}/%{sdkdir -- %{?1}}/lib/libsplashscreen.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/libawt_xawt.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/libjawt.so } -%endif -%ifarch %{ix86} -%define files_jre_headless() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-headless.sh} -%else + %define files_jre_headless() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal %doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS @@ -970,11 +967,7 @@ exit 0 %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/conf.rpmmoved %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/security.rpmmoved } -%endif -%ifarch %{ix86} -%define files_devel() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-devel.sh} -%else %define files_devel() %{expand: %dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar @@ -1079,49 +1072,29 @@ exit 0 %endif %endif } -%endif -%ifarch %{ix86} -%define files_jmods() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-jmods.sh} -%else %define files_jmods() %{expand: %{_jvmdir}/%{sdkdir -- %{?1}}/jmods } -%endif -%ifarch %{ix86} -%define files_demo() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-demo.sh} -%else %define files_demo() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal %{_jvmdir}/%{sdkdir -- %{?1}}/demo %{_jvmdir}/%{sdkdir -- %{?1}}/sample } -%endif -%ifarch %{ix86} -%define files_src() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-src.sh} -%else %define files_src() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal %{_jvmdir}/%{sdkdir -- %{?1}}/lib/src.zip } -%endif -%ifarch %{ix86} -%define files_static_libs() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-static_libs.sh} -%else %define files_static_libs() %{expand: %dir %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_root} %dir %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_arch_dir} %dir %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_install_dir} %{_jvmdir}/%{sdkdir -- %{?1}}/%{static_libs_install_dir}/lib*.a } -%endif -%ifarch %{ix86} -%define files_javadoc() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc.sh} -%else %define files_javadoc() %{expand: %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}} %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal @@ -1134,11 +1107,7 @@ exit 0 %endif %endif } -%endif -%ifarch %{ix86} -%define files_javadoc_zip() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc_zip.sh} -%else %define files_javadoc_zip() %{expand: %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal @@ -1151,7 +1120,6 @@ exit 0 %endif %endif } -%endif # not-duplicated requires/provides/obsoletes for normal/debug packages %define java_rpo() %{expand: @@ -1317,7 +1285,7 @@ Version: %{newjavaver}.%{buildver} # This package needs `.rolling` as part of Release so as to not conflict on install with # java-X-openjdk. I.e. when latest rolling release is also an LTS release packaged as # java-X-openjdk. See: https://bugzilla.redhat.com/show_bug.cgi?id=1647298 -Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist}.1 +Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -1474,9 +1442,7 @@ BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel BuildRequires: zip BuildRequires: javapackages-filesystem -%ifnarch %{ix86} BuildRequires: java-latest-openjdk-devel -%endif # Zero-assembler build requirement %ifarch %{zero_arches} BuildRequires: libffi-devel @@ -1918,11 +1884,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg %build -# x86 is deprecated -%ifarch %{ix86} - exit 0 -%endif - # How many CPU's do we have? export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) export NUM_PROC=${NUM_PROC:-1} @@ -2249,35 +2210,6 @@ jdk_image=${top_dir_abs_main_build_path}/images/%{jdkimage} # Install the jdk mkdir -p $RPM_BUILD_ROOT%{_jvmdir} - -%ifarch %{ix86} - mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}} - - file=/tmp/gonejdk.$$ - echo "OpenJDK on x86 is now deprecated" - echo '#!/bin/bash' > $file - echo 'echo "We are going to remove i686 jdk. Please fix your package accordingly!"' >> $file - echo 'echo "See https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file - echo 'echo "See https://pagure.io/fesco/issue/2772"' >> $file - echo 'echo "See https://bugzilla.redhat.com/show_bug.cgi?id=2083750"' >> $file - echo 'exit 1' >> $file - - for pkgsuffix in jre headless devel demo src debugsourcefiles jmods static_libs ; do - cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-${pkgsuffix}.sh - done - - # Docs were only in the normal build - if ! echo $suffix | grep -q "debug" ; then - for pkgsuffix in javadoc javadoc_zip ; do - cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-${pkgsuffix}.sh - done - fi - - rm -f ${file} - -%else - -# Install the jdk cp -a ${jdk_image} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} pushd ${jdk_image} @@ -2378,8 +2310,6 @@ find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 7 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ; find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/legal -type f -exec chmod 644 {} \; ; -%endif - # end, dual install done @@ -2388,14 +2318,6 @@ done # We test debug first as it will give better diagnostics on a crash for suffix in %{build_loop} ; do -%ifarch %{ix86} - - # Fake debugsourcefiles.list here after find-debuginfo.sh has already had a go - echo "%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-debugsourcefiles.sh" >> debugsourcefiles.list - cat debugsourcefiles.list - -%else - # Tests in the check stage are performed on the installed image # rpmbuild operates as follows: build -> install -> test export JAVA_HOME=${RPM_BUILD_ROOT}%{_jvmdir}/%{sdkdir -- $suffix} @@ -2456,8 +2378,6 @@ $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from" $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable -%endif - # build cycles check done @@ -2705,6 +2625,19 @@ cjc.mainProgram(args) %endif %changelog +* Fri Jul 22 2022 Jiri Vanek - 1:18.0.1.1.2-8.rolling +- moved to build only on %%{java_arches} +-- https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs +- reverted : +-- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild (always mess up release) +-- Try to build on x86 again by creating a husk of a JDK which does not depend on itself +-- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable +-- Replaced binaries and .so files with bash-stubs on i686 +- added ExclusiveArch: %%{java_arches} +-- this now excludes i686 +-- this is safely backport-able to older fedoras, as the macro was backported proeprly (with i686 included) +- https://bugzilla.redhat.com/show_bug.cgi?id=2104125 + * Thu Jul 21 2022 Fedora Release Engineering - 1:18.0.1.1.2-7.rolling.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From c9b6c1b9f079b2373e356530279d7b7331329236 Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Fri, 22 Jul 2022 09:25:03 +0100 Subject: [PATCH 9/9] Update to jdk-18.0.2 release Update release notes to 18.0.2 Drop JDK-8282004 patch which is now upstreamed under JDK-8282231 Exclude x86 where java_arches is undefined, in order to unbreak build --- .gitignore | 1 + NEWS | 147 +++++++++++++++++++ java-latest-openjdk.spec | 23 ++- jdk8282004-x86_32-missing_call_effects.patch | 28 ---- sources | 2 +- 5 files changed, 164 insertions(+), 37 deletions(-) delete mode 100644 jdk8282004-x86_32-missing_call_effects.patch diff --git a/.gitignore b/.gitignore index 2576f6f..c095247 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ /openjdk-jdk18u-jdk-18.0.1+0.tar.xz /openjdk-jdk18u-jdk-18.0.1+10.tar.xz /openjdk-jdk18u-jdk-18.0.1.1+2.tar.xz +/openjdk-jdk18u-jdk-18.0.2+9.tar.xz diff --git a/NEWS b/NEWS index 0998f22..6537ddf 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,153 @@ Key: JDK-X - https://bugs.openjdk.java.net/browse/JDK-X CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release OpenJDK 18.0.2 (2022-07-19): +=========================================== +Live versions of these release notes can be found at: + * https://builds.shipilev.net/backports-monitor/release-notes-18.0.2.txt + +* Security fixes + - JDK-8272243: Improve DER parsing + - JDK-8272249: Better properties of loaded Properties + - JDK-8277608: Address IP Addressing + - JDK-8281859, CVE-2022-21540: Improve class compilation + - JDK-8281866, CVE-2022-21541: Enhance MethodHandle invocations + - JDK-8282676: Improve subject handling + - JDK-8283190: Improve MIDI processing + - JDK-8284370: Improve zlib usage + - JDK-8285407, CVE-2022-34169: Improve Xalan supports +* Other changes + - JDK-8240903: Add test to check that jmod hashes are reproducible + - JDK-8256368: Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers + - JDK-8270480: Better path to expressing Xpaths + - JDK-8271008: appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom + - JDK-8271055: Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack + - JDK-8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2 + - JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake + - JDK-8275337: C1: assert(false) failed: live_in set of first block must be empty + - JDK-8277055: Assert "missing inlining msg" with -XX:+PrintIntrinsics + - JDK-8277072: ObjectStreamClass caches keep ClassLoaders alive + - JDK-8277893: Arraycopy stress tests + - JDK-8278065: Refactor subclassAudits to use ClassValue + - JDK-8278381: [GCC 11] Address::make_raw() does not initialize rspec + - JDK-8278549: UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15 + - JDK-8278794: Infinite loop in DeflaterOutputStream.finish() + - JDK-8279219: [REDO] C2 crash when allocating array of size too large + - JDK-8279668: x86: AVX2 versions of vpxor should be asserted + - JDK-8279822: CI: Constant pool entries in error state are not supported + - JDK-8279958: Provide configure hints for Alpine/apk package managers + - JDK-8280041: Retry loop issues in java.io.ClassCache + - JDK-8280476: [macOS] : hotspot arm64 bug exposed by latest clang + - JDK-8280600: C2: assert(!had_error) failed: bad dominance + - JDK-8280674: Bump version numbers for July CPU + - JDK-8280799: ะก2: assert(false) failed: cyclic dependency prevents range check elimination + - JDK-8280867: Cpuid1Ecx feature parsing is incorrect for AMD CPUs + - JDK-8280901: MethodHandle::linkToNative stub is missing w/ -Xint + - JDK-8280956: Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y + - JDK-8281168: Micro-optimize VarForm.getMemberName for interpreter + - JDK-8281181: Do not use CPU Shares to compute active processor count + - JDK-8281266: [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly + - JDK-8281274: deal with ActiveProcessorCount in os::Linux::print_container_info + - JDK-8281318: Improve jfr/event/allocation tests reliability + - JDK-8281544: assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/ + - JDK-8281615: Deadlock caused by jdwp agent + - JDK-8281638: jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions + - JDK-8281771: Crash in java_lang_invoke_MethodType::print_signature + - JDK-8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 + - JDK-8281822: Test failures on non-DTrace builds due to incomplete DTrace* flags handling + - JDK-8282042: [testbug] FileEncodingTest.java depends on default encoding + - JDK-8282045: When loop strip mining fails, safepoints are removed from loop anyway + - JDK-8282080: Lambda deserialization fails for Object method references on interfaces + - JDK-8282170: JVMTI SetBreakpoint metaspace allocation test + - JDK-8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads + - JDK-8282194: C1: Missing side effects of dynamic constant linkage + - JDK-8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX + - JDK-8282225: GHA: Allow one concurrent run per PR only + - JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers + - JDK-8282295: SymbolPropertyEntry::set_method_type fails with assert + - JDK-8282300: Throws NamingException instead of InvalidNameException after JDK-8278972 + - JDK-8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86 + - JDK-8282444: Module finder incorrectly assumes default file system path-separator character + - JDK-8282551: Properly initialize L32X64MixRandom state + - JDK-8282583: Update BCEL md to include the copyright notice + - JDK-8282590: C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes + - JDK-8282592: C2: assert(false) failed: graph should be schedulable + - JDK-8282628: Potential memory leak in sun.font.FontConfigManager.getFontConfig() + - JDK-8282874: Bad performance on gather/scatter API caused by different IntSpecies of indexMap + - JDK-8282887: Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows + - JDK-8282929: Localized monetary symbols are not reflected in `toLocalizedPattern` return value + - JDK-8283017: GHA: Workflows break with update release versions + - JDK-8283022: com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297 + - JDK-8283037: Update jdk18u fix version to 18.0.2 + - JDK-8283187: C2: loop candidate for superword not always unrolled fully if superword fails + - JDK-8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c + - JDK-8283379: Memory leak in FileHeaderHelper + - JDK-8283408: Fix a C2 crash when filling arrays with unsafe + - JDK-8283422: Create a new test for JDK-8254790 + - JDK-8283451: C2: assert(_base == Long) failed: Not a Long + - JDK-8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak + - JDK-8283555: G1: Concurrent mark accesses uninitialized BOT of closed archive regions + - JDK-8283641: Large value for CompileThresholdScaling causes assert + - JDK-8283725: Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM + - JDK-8284012: Correction version-numbers.conf after merge + - JDK-8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo + - JDK-8284033: Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c + - JDK-8284094: Memory leak in invoker_completeInvokeRequest() + - JDK-8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4 + - JDK-8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer + - JDK-8284458: CodeHeapState::aggregate() leaks blob_name + - JDK-8284507: GHA: Only check test results if testing was not skipped + - JDK-8284532: Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler + - JDK-8284549: JFR: FieldTable leaks FieldInfoTable member + - JDK-8284620: CodeBuffer may leak _overflow_arena + - JDK-8284622: Update versions of some Github Actions used in JDK workflow + - JDK-8284808: change milestone to fcs for releases: jdk-11.0.16, jdk-17.0.4, jdk-18.0.2 + - JDK-8284848: C2: Compiler blackhole arguments should be treated as globally escaping + - JDK-8284866: Add test to JDK-8273056 + - JDK-8284992: Fix misleading Vector API doc for LSHR operator + - JDK-8285394: Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id() + - JDK-8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 + - JDK-8285517: System.getenv() returns unexpected value if environment variable has non ASCII character + - JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java + - JDK-8285686: Upgrade to FreeType 2.12.0 + - JDK-8285828: runtime/execstack/TestCheckJDK.java fails with zipped debug symbols + - JDK-8285921: serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine + - JDK-8285956: (fs) Excessive default poll interval in PollingWatchService + - JDK-8286013: Incorrect test configurations for compiler/stable/TestStableShort.java + - JDK-8286029: Add classpath exemption to globals_vectorApiSupport_***.S.inc + - JDK-8286198: [linux] Fix process-memory information + - JDK-8286283: assert(func2 == 0 && func3 == 0) failed: not unary + - JDK-8286444: javac errors after JDK-8251329 are not helpful enough to find root cause + - JDK-8286594: (zipfs) Mention paths with dot elements in ZipException and cleanups + - JDK-8286601: Mac Aarch: Excessive warnings to be ignored for build jdk + - JDK-8286855: javac error on invalid jar should only print filename + - JDK-8287119: Add Distrust.java to ProblemList + - JDK-8287162: (zipfs) Performance regression related to support for POSIX file permissions + - JDK-8287175: Backout 8270480: Better path to expressing Xpaths + - JDK-8287202: GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event + - JDK-8287336: GHA: Workflows break on patch versions + - JDK-8287378: GHA: Update cygwin to fix issues in langtools tests on Windows + - JDK-8287644: [18u] Backport of JDK-8240903 causes test errors + +Notes on individual issues: +=========================== + +hotspot/runtime: + +JDK-8288367: CPU Shares Ignored When Computing Active Processor Count +===================================================================== +Previous JDK releases used an incorrect interpretation of the Linux +cgroups parameter cpu.shares". This might cause the JVM to use fewer +CPUs than available, leading to an under utilization of CPU resources +when the JVM is used inside a container. + +Starting from this JDK release, by default, the JVM no longer +considers "cpu.shares" when deciding the number of threads to be used +by the various thread pools. The `-XX:+UseContainerCpuShares` +command-line option can be used to revert to the previous +behavior. This option is deprecated and may be removed in a future JDK +release. + New in release OpenJDK 18.0.1.1 (2022-04-22): ============================================= * Other changes diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index ec0f731..d092a5e 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -310,8 +310,8 @@ # New Version-String scheme-style defines %global featurever 18 %global interimver 0 -%global updatever 1 -%global patchver 1 +%global updatever 2 +%global patchver 0 # buildjdkver is usually same as %%{featurever}, # but in time of bootstrap of next jdk, it is featurever-1, # and this it is better to change it here, on single place @@ -367,8 +367,8 @@ %global origin_nice OpenJDK %global top_level_dir_name %{origin} %global top_level_dir_name_backup %{top_level_dir_name}-backup -%global buildver 2 -%global rpmrelease 8 +%global buildver 9 +%global rpmrelease 1 # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -486,7 +486,11 @@ %endif # x86 is no longer supported +%if 0%{?java_arches:1} ExclusiveArch: %{java_arches} +%else +ExcludeArch: %{ix86} +%endif # not-duplicated scriptlets for normal/debug packages %global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : @@ -1406,8 +1410,6 @@ Patch1001: fips-18u-%{fipsver}.patch # OpenJDK patches in need of upstreaming # ############################################# -# JDK-8282004: x86_32.ad rules that call SharedRuntime helpers should have CALL effects -Patch7: jdk8282004-x86_32-missing_call_effects.patch BuildRequires: autoconf BuildRequires: automake @@ -1821,7 +1823,6 @@ pushd %{top_level_dir_name} %patch2 -p1 %patch3 -p1 %patch6 -p1 -%patch7 -p1 # Add crypto policy and FIPS support %patch1001 -p1 # alt-java @@ -2625,6 +2626,12 @@ cjc.mainProgram(args) %endif %changelog +* Fri Jul 22 2022 Andrew Hughes - 1:18.0.2.0.9-1.rolling +- Update to jdk-18.0.2 release +- Update release notes to 18.0.2 +- Drop JDK-8282004 patch which is now upstreamed under JDK-8282231 +- Exclude x86 where java_arches is undefined, in order to unbreak build + * Fri Jul 22 2022 Jiri Vanek - 1:18.0.1.1.2-8.rolling - moved to build only on %%{java_arches} -- https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs @@ -2635,7 +2642,7 @@ cjc.mainProgram(args) -- Replaced binaries and .so files with bash-stubs on i686 - added ExclusiveArch: %%{java_arches} -- this now excludes i686 --- this is safely backport-able to older fedoras, as the macro was backported proeprly (with i686 included) +-- this is safely backport-able to older fedoras, as the macro was backported properly (with i686 included) - https://bugzilla.redhat.com/show_bug.cgi?id=2104125 * Thu Jul 21 2022 Fedora Release Engineering - 1:18.0.1.1.2-7.rolling.1 diff --git a/jdk8282004-x86_32-missing_call_effects.patch b/jdk8282004-x86_32-missing_call_effects.patch deleted file mode 100644 index 3efe993..0000000 --- a/jdk8282004-x86_32-missing_call_effects.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/src/hotspot/cpu/x86/x86_32.ad b/src/hotspot/cpu/x86/x86_32.ad -index a31a38a384f..6138ca5281f 100644 ---- a/src/hotspot/cpu/x86/x86_32.ad -+++ b/src/hotspot/cpu/x86/x86_32.ad -@@ -7825,9 +7825,9 @@ instruct divI_eReg(eAXRegI rax, eDXRegI rdx, eCXRegI div, eFlagsReg cr) %{ - %} - - // Divide Register Long --instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{ -+instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{ - match(Set dst (DivL src1 src2)); -- effect( KILL cr, KILL cx, KILL bx ); -+ effect(CALL); - ins_cost(10000); - format %{ "PUSH $src1.hi\n\t" - "PUSH $src1.lo\n\t" -@@ -7873,9 +7873,9 @@ instruct modI_eReg(eDXRegI rdx, eAXRegI rax, eCXRegI div, eFlagsReg cr) %{ - %} - - // Remainder Register Long --instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{ -+instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{ - match(Set dst (ModL src1 src2)); -- effect( KILL cr, KILL cx, KILL bx ); -+ effect(CALL); - ins_cost(10000); - format %{ "PUSH $src1.hi\n\t" - "PUSH $src1.lo\n\t" diff --git a/sources b/sources index 0d24fba..8b03eaa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30 -SHA512 (openjdk-jdk18u-jdk-18.0.1.1+2.tar.xz) = 183ff4b1c4b501edd2c2a436a093f9d99ec0df86046ca3ac26d7f44981d72d3036baa1f8b6036288edb6c6fc637468a80e9ea55dffdc1d18b61a237660e103b3 +SHA512 (openjdk-jdk18u-jdk-18.0.2+9.tar.xz) = 08b06407deb4a13f36b29738b8038c7b2ce953eb526abe732fb4a256d968511c9ef705c5d568b4b3c98867665b748e331c9f293e69fc13bea1eed6879b6095d0