The package rpms/java-1.8.0-openjdk.git has added or updated architecture specific content
in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id....
Change:
+%ifarch %{gdb_arches}
+%ifarch %{bootstrap_arches}
+%ifarch %{share_arches}
Thanks.
Full change:
============
commit 870c9df011084103e6d428088e7a6662d57dec32
Merge: 3c30c3c d2443b0
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Apr 28 15:34:48 2022 +0200
Merge branch 'f36' into f35
commit d2443b0107fb7855cf52e3879cab1caa46ba23f8
Merge: 9b9a3bb 100440c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Apr 28 14:25:55 2022 +0200
Merge branch 'rawhide' into f36
commit 100440c51eb31742f057c7e2b66df2a1c8d7d3fa
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Apr 20 20:38:06 2022 +0100
Update to shenandoah-jdk8u332-b09 (GA)
Update release notes for 8u332-b09.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index 42c84a9..a973960 100644
--- a/.gitignore
+++ b/.gitignore
@@ -254,3 +254,4 @@
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 6baf506..f9af271 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,22 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u332
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u332.txt
+* Security fixes
+ - JDK-8269938: Enhance XML processing passes redux
+ - JDK-8270504, CVE-2022-21426: Better XPath expression handling
+ - JDK-8272255: Completely handle MIDI files
+ - JDK-8272261: Improve JFR recording file processing
+ - JDK-8272594: Better record of recordings
+ - JDK-8274221: More definite BER encodings
+ - JDK-8275151, CVE-2022-21443: Improved Object Identification
+ - JDK-8277227: Better identification of OIDs
+ - JDK-8277672, CVE-2022-21434: Better invocation handler handling
+ - JDK-8278008, CVE-2022-21476: Improve Santuario processing
+ - JDK-8278356: Improve file creation
+ - JDK-8278449: Improve keychain support
+ - JDK-8278805: Enhance BMP image loading
+ - JDK-8278972, CVE-2022-21496: Improve URL supports
+ - JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo
* Other changes
- JDK-8033980: Xerces Update: datatype XMLGregorianCalendarImpl and DurationImpl
- JDK-8035437: Xerces Update: xml/serialize/DOMSerializerImpl
@@ -32,7 +48,6 @@ Live versions of these release notes can be found at:
- JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big
for insn
- JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens
- JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node
- - JDK-8260632: Build failures after JDK-8253353
- JDK-8266749: AArch64: Backtracing broken on PAC enabled systems
- JDK-8270290: NTLM authentication fails if HEAD request is used
- JDK-8273229: Update OS detection code to recognize Windows Server 2022
@@ -43,7 +58,13 @@ Live versions of these release notes can be found at:
- JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May
2022
- JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal
handler
- JDK-8280060: The sun/rmi/server/Activation.java class use Thread.dumpStack()
+ - JDK-8282300: Throws NamingException instead of InvalidNameException after
JDK-8278972
+ - JDK-8282397: createTempFile method of java.io.File is failing when called with suffix
of spaces character
+ - JDK-8284548: Invalid XPath expression causes StringIndexOutOfBoundsException
+ - JDK-8284920: Incorrect Token type causes XPath expression to return empty result
+ - JDK-8284936: Fix Java 7 bootstrap breakage due to use of Arrays.stream
* Shenandoah
+ - JDK-8260632: Build failures after JDK-8253353
- JDK-8282458: Update .jcheck/conf file for sh-jdk8u move to git
New in release OpenJDK 8u322 (2022-01-18):
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a81960a..5098c8b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision shenandoah-jdk8u332-b06
+%global shenandoah_revision shenandoah-jdk8u332-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -349,7 +349,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2781,6 +2781,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-1
+- Update to shenandoah-jdk8u332-b09 (GA)
+- Update release notes for 8u332-b09.
+- Switch to GA mode for final release.
+
* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b06-0.1.ea
- Update to shenandoah-jdk8u332-b06 (EA)
- Update release notes for shenandoah-8u332-b06.
diff --git a/sources b/sources
index 8c3d3bb..4662b4c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz) =
663e0093bf7d5698c168e1609b88179ccd8cfb8b1e8ecc937cdaae287960dedea170bce16572f79046e45fafce38dca6848e7524da06a56d4aa0ad15af271775
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz) =
23d906ecce6864e0bd3ae4c95ac597eb697c1e28356371aafd7aabab5c3a9a9d861c326125e7a45f15340a5a106c1915808fa93b3ff7cdc8b003647a44caf7fd
commit 019748fe88a640f21bc95a68a25c96082b5fe52b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Apr 19 00:39:55 2022 +0100
Update to shenandoah-jdk8u332-b06 (EA)
Update release notes for shenandoah-8u332-b06.
diff --git a/.gitignore b/.gitignore
index 1a13c4c..42c84a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -253,3 +253,4 @@
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 8c34c43..6baf506 100644
--- a/NEWS
+++ b/NEWS
@@ -13,11 +13,16 @@ Live versions of these release notes can be found at:
- JDK-8033980: Xerces Update: datatype XMLGregorianCalendarImpl and DurationImpl
- JDK-8035437: Xerces Update: xml/serialize/DOMSerializerImpl
- JDK-8035577: Xerces Update: impl/xpath/regex/RangeToken.java
+ - JDK-8037259: xerces update: xpointer update
+ - JDK-8041523: Xerces Update: Serializer improvements from Xalan
+ - JDK-8141508: java.lang.invoke.LambdaConversionException: Invalid receiver type
- JDK-8162572: Update License Header for all JAXP sources
- JDK-8167014: jdeps: Missing message: warn.skipped.entry
- JDK-8198411: [TEST_BUG] Two java2d tests are unstable in mach5
- JDK-8202822: Add .git to .hgignore
- JDK-8205540: test/hotspot/jtreg/vmTestbase/nsk/jdb/trace/trace001/trace001.java fails
with Debuggee did not exit after 15 <cont> commands
+ - JDK-8209178: Proxied HttpsURLConnection doesn't send BODY when retrying POST
request
+ - JDK-8210283: Support git as an SCM alternative in the build
- JDK-8218682: [TEST_BUG] DashOffset fails in mach5
- JDK-8225690: Multiple AttachListener threads can be created
- JDK-8227738: jvmti/DataDumpRequest/datadumpreq001 failed due to "exit code is
134"
@@ -27,10 +32,17 @@ Live versions of these release notes can be found at:
- JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big
for insn
- JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens
- JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node
+ - JDK-8260632: Build failures after JDK-8253353
- JDK-8266749: AArch64: Backtracing broken on PAC enabled systems
- JDK-8270290: NTLM authentication fails if HEAD request is used
+ - JDK-8273229: Update OS detection code to recognize Windows Server 2022
+ - JDK-8273341: Update Siphash to version 1.0
+ - JDK-8273575: memory leak in appendBootClassPath(), paths must be deallocated
+ - JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake
- JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE
+ - JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May
2022
- JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal
handler
+ - JDK-8280060: The sun/rmi/server/Activation.java class use Thread.dumpStack()
* Shenandoah
- JDK-8282458: Update .jcheck/conf file for sh-jdk8u move to git
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bcb79b4..a81960a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision shenandoah-jdk8u332-b01
+%global shenandoah_revision shenandoah-jdk8u332-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2781,9 +2781,13 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b06-0.1.ea
+- Update to shenandoah-jdk8u332-b06 (EA)
+- Update release notes for shenandoah-8u332-b06.
+
* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b01-0.1.ea
- Update to shenandoah-jdk8u332-b01 (EA)
-- Update release notes for 8u332-b01.
+- Update release notes for shenandoah-8u332-b01.
- Switch to EA mode.
* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
diff --git a/sources b/sources
index 71b554d..8c3d3bb 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz) =
55b8968e78631acdf14a594d83f6e357e00114dac9f6330a80116a909b402a9f879abb9f1cd8b576fb627a50b01db22be19a1e24ee4078e97c8ecc84428eb184
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz) =
663e0093bf7d5698c168e1609b88179ccd8cfb8b1e8ecc937cdaae287960dedea170bce16572f79046e45fafce38dca6848e7524da06a56d4aa0ad15af271775
commit cb59f552f45f912f6949702632cd35daa82bfb7a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Apr 18 01:19:19 2022 +0100
Update to shenandoah-jdk8u332-b01 (EA)
Update release notes for 8u332-b01.
Switch to EA mode.
diff --git a/.gitignore b/.gitignore
index c3d10c5..1a13c4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -252,3 +252,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index e911b13..8c34c43 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,37 @@ 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 8u332 (2022-04-19):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u332
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u332.txt
+
+* Other changes
+ - JDK-8033980: Xerces Update: datatype XMLGregorianCalendarImpl and DurationImpl
+ - JDK-8035437: Xerces Update: xml/serialize/DOMSerializerImpl
+ - JDK-8035577: Xerces Update: impl/xpath/regex/RangeToken.java
+ - JDK-8162572: Update License Header for all JAXP sources
+ - JDK-8167014: jdeps: Missing message: warn.skipped.entry
+ - JDK-8198411: [TEST_BUG] Two java2d tests are unstable in mach5
+ - JDK-8202822: Add .git to .hgignore
+ - JDK-8205540: test/hotspot/jtreg/vmTestbase/nsk/jdb/trace/trace001/trace001.java fails
with Debuggee did not exit after 15 <cont> commands
+ - JDK-8218682: [TEST_BUG] DashOffset fails in mach5
+ - JDK-8225690: Multiple AttachListener threads can be created
+ - JDK-8227738: jvmti/DataDumpRequest/datadumpreq001 failed due to "exit code is
134"
+ - JDK-8227815: Minimal VM: set_state is not a member of AttachListener
+ - JDK-8240633: Memory leaks in the implementations of FileChooserUI
+ - JDK-8241768: git needs .gitattributes
+ - JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big
for insn
+ - JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens
+ - JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node
+ - JDK-8266749: AArch64: Backtracing broken on PAC enabled systems
+ - JDK-8270290: NTLM authentication fails if HEAD request is used
+ - JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE
+ - JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal
handler
+* Shenandoah
+ - JDK-8282458: Update .jcheck/conf file for sh-jdk8u move to git
+
New in release OpenJDK 8u322 (2022-01-18):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9177d7d..bcb79b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
+%global shenandoah_revision shenandoah-jdk8u332-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -344,12 +344,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 7
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2781,6 +2781,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b01-0.1.ea
+- Update to shenandoah-jdk8u332-b01 (EA)
+- Update release notes for 8u332-b01.
+- Switch to EA mode.
+
* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
- Reinstate JIT builds on x86_32.
- Add JDK-8282231 to fix missing CALL effects on x86_32.
diff --git a/sources b/sources
index 35c822f..71b554d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) =
0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz) =
55b8968e78631acdf14a594d83f6e357e00114dac9f6330a80116a909b402a9f879abb9f1cd8b576fb627a50b01db22be19a1e24ee4078e97c8ecc84428eb184
commit 9b9a3bb4af6552f3a6a88c45bd8ed22498195f99
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 19:50:19 2022 +0000
Reinstate JIT builds on x86_32.
Add JDK-8282231 to fix missing CALL effects on x86_32.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c4c077f..bab7b61 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -100,9 +100,9 @@
# Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
-%global jit_arches %{aarch64} %{power64} sparcv9 sparc64 x86_64
+%global jit_arches %{aarch64} %{ix86} %{power64} sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches)
-%global zero_arches %{arm} %{ix86} ppc s390 s390x
+%global zero_arches %{arm} ppc s390 s390x
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 6
+%global rpmrelease 7
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1524,6 +1524,8 @@ Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
# JDK-8257794: Zero: assert(istate->_stack_limit ==
istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
Patch581: jdk8257794-remove_broken_assert.patch
+# JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
+Patch582: jdk8282231-x86_32-missing_call_effects.patch
#############################################
#
@@ -1959,6 +1961,7 @@ sh %{SOURCE12}
%patch112
%patch580
%patch581
+%patch582
# RPM-only fixes
%patch539
@@ -2778,6 +2781,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
+- Reinstate JIT builds on x86_32.
+- Add JDK-8282231 to fix missing CALL effects on x86_32.
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
diff --git a/jdk8282231-x86_32-missing_call_effects.patch
b/jdk8282231-x86_32-missing_call_effects.patch
new file mode 100644
index 0000000..ab341b6
--- /dev/null
+++ b/jdk8282231-x86_32-missing_call_effects.patch
@@ -0,0 +1,35 @@
+diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+index c8f4ee1613..cc0f4eef14 100644
+--- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
++++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+@@ -1,5 +1,5 @@
+ //
+-// Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
++// Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
+ // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ //
+ // This code is free software; you can redistribute it and/or modify it
+@@ -7665,9 +7665,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"
+@@ -7713,9 +7713,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"
commit 7e5331a512b10f543bdc371bf13db8cee6ec1f77
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 19:50:19 2022 +0000
Reinstate JIT builds on x86_32.
Add JDK-8282231 to fix missing CALL effects on x86_32.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5efbb8e..9177d7d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -100,9 +100,9 @@
# Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
-%global jit_arches %{aarch64} %{power64} sparcv9 sparc64 x86_64
+%global jit_arches %{aarch64} %{ix86} %{power64} sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches)
-%global zero_arches %{arm} %{ix86} ppc s390 s390x
+%global zero_arches %{arm} ppc s390 s390x
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 6
+%global rpmrelease 7
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1524,6 +1524,8 @@ Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
# JDK-8257794: Zero: assert(istate->_stack_limit ==
istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
Patch581: jdk8257794-remove_broken_assert.patch
+# JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
+Patch582: jdk8282231-x86_32-missing_call_effects.patch
#############################################
#
@@ -1959,6 +1961,7 @@ sh %{SOURCE12}
%patch112
%patch580
%patch581
+%patch582
# RPM-only fixes
%patch539
@@ -2778,6 +2781,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
+- Reinstate JIT builds on x86_32.
+- Add JDK-8282231 to fix missing CALL effects on x86_32.
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
diff --git a/jdk8282231-x86_32-missing_call_effects.patch
b/jdk8282231-x86_32-missing_call_effects.patch
new file mode 100644
index 0000000..ab341b6
--- /dev/null
+++ b/jdk8282231-x86_32-missing_call_effects.patch
@@ -0,0 +1,35 @@
+diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+index c8f4ee1613..cc0f4eef14 100644
+--- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
++++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+@@ -1,5 +1,5 @@
+ //
+-// Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
++// Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
+ // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ //
+ // This code is free software; you can redistribute it and/or modify it
+@@ -7665,9 +7665,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"
+@@ -7713,9 +7713,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"
commit 92f7c940c557cc8e65671d3c99071fde209ddd8c
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Feb 27 11:47:05 2022 +0100
Storing and restoring alterntives during update manually
Fixing:
Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and
select (as auto) system JDK/JRE
The move of alternatives creation to posttrans to fix:
Bug 1200302 - dnf reinstall breaks alternatives
Had caused the alternatives to be removed, and then created again,
instead of being added, and then removing the old, and thus persisting
the selection in family
Thus this fix, is storing the family of manually selected master, and if
stored, then it is restoring the family of the master
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ef8d491..c4c077f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 5
+%global rpmrelease 6
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -446,6 +446,50 @@
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+%define save_alternatives() %{expand:
+ # warning! alternatives are localised!
+ # LANG=cs_CZ.UTF-8 alternatives --display java | head
+ # LANG=en_US.UTF-8 alternatives --display java | head
+ function nonLocalisedAlternativesDisplayOfMaster() {
+ LANG=en_US.UTF-8 alternatives --display "$MASTER"
+ }
+ function headOfAbove() {
+ nonLocalisedAlternativesDisplayOfMaster | head -n $1
+ }
+ MASTER="%{?1}"
+ LOCAL_LINK="%{?2}"
+ FAMILY="%{?3}"
+ rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null
+ if nonLocalisedAlternativesDisplayOfMaster > /dev/null ; then
+ if headOfAbove 1 | grep -q manual ; then
+ if headOfAbove 2 | tail -n 1 | grep -q %{compatiblename} ; then
+ headOfAbove 2 >
%{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY"
+ fi
+ fi
+ fi
+}
+
+%define save_and_remove_alternatives() %{expand:
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ upgrade1_uninstal0=%{?3}
+ if [ "0$upgrade1_uninstal0" -gt 0 ] ; then # removal of this condition will
cause persistence between uninstall
+ %{save_alternatives %{?1} %{?2} %{?4}}
+ fi
+ alternatives --remove "%{?1}" "%{?2}"
+}
+
+%define set_if_needed_alternatives() %{expand:
+ MASTER="%{?1}"
+ FAMILY="%{?2}"
+
ALTERNATIVES_FILE="%{_localstatedir}/lib/rpm-state/$MASTER"_"$FAMILY"
+ if [ -e "$ALTERNATIVES_FILE" ] ; then
+ rm "$ALTERNATIVES_FILE"
+ alternatives --set $MASTER $FAMILY
+ fi
+}
+
%define post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -454,14 +498,18 @@ exit 0
}
%define alternatives_java_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=java
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
+ --install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -499,11 +547,17 @@ alternatives \\
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family}
+ key=jre_"$X"
+ alternatives --install %{_jvmdir}/jre-"$X" $key %{_jvmdir}/%{jredir -- %{?1}}
$PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family}
+key=jre_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jrelnk --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_headless() %{expand:
@@ -536,10 +590,14 @@ exit 0
%define postun_headless() %{expand:
- alternatives --remove java %{jrebindir -- %{?1}}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives java %{jrebindir -- %{?1}}/java $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
$post_state %{family}}
}
%define posttrans_script() %{expand:
@@ -548,14 +606,18 @@ exit 0
%define alternatives_javac_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=javac
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
+ --install %{_bindir}/javac $key %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -649,12 +711,17 @@ alternatives \\
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{family}
+ key=java_sdk_"$X"
+ alternatives --install %{_jvmdir}/java-"$X" $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family}
+key=java_sdk_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_devel() %{expand:
@@ -665,10 +732,14 @@ exit 0
}
%define postun_devel() %{expand:
- alternatives --remove javac %{sdkbindir -- %{?1}}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javac %{sdkbindir -- %{?1}}/javac $post_state
%{family}}
+ %{save_and_remove_alternatives java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir --
%{?1}} $post_state %{family}}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -685,36 +756,49 @@ exit 0
}
%define alternatives_javadoc_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-alternatives \\
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{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
}
%define postun_javadoc() %{expand:
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $post_state %{family_noarch}}
exit 0
}
%define alternatives_javadoczip_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-
-alternatives \\
- --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{family_noarch}
+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
}
%define postun_javadoc_zip() %{expand:
- alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $post_state %{family_noarch}}
exit 0
}
@@ -2694,6 +2778,17 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
+- Storing and restoring alterntives during update manually
+- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
+-- The move of alternatives creation to posttrans to fix:
+-- Bug 1200302 - dnf reinstall breaks alternatives
+-- Had caused the alternatives to be removed, and then created again,
+-- instead of being added, and then removing the old, and thus persisting
+-- the selection in family
+-- Thus this fix, is storing the family of manually selected master, and if
+-- stored, then it is restoring the family of the master
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
- Family extracted to globals
commit 917b9b412102145fecb2e50aa9c19418ca1788c4
Author: Jiri <jvanek(a)redhat.com>
Date: Sat Feb 26 20:50:05 2022 +0100
family extracted to globals
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e9a7a5f..ef8d491 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 5
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -426,6 +426,9 @@
%global alternatives_requires %{_sbindir}/alternatives
%endif
+%global family %{name}.%{_arch}
+%global family_noarch %{name}
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific sub-dir,
@@ -458,7 +461,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -497,10 +500,10 @@ alternatives \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family}
}
%define post_headless() %{expand:
@@ -552,7 +555,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -648,10 +651,10 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{family}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family}
}
%define post_devel() %{expand:
@@ -689,7 +692,7 @@ fi
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{family_noarch}
exit 0
}
@@ -706,7 +709,7 @@ fi
alternatives \\
--install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{family_noarch}
exit 0
}
@@ -2691,6 +2694,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
+- Family extracted to globals
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
- javadoc-zip got its own provides next to plain javadoc ones
commit 967ddd7db2f60920f109a601a71eedabd2086426
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Feb 27 12:01:51 2022 +0100
Providing proper provides for javadoc-zip subpk
Before this patch, the java-17-openjdk-javadoc-zip was not existing, and
instead of that, javadoc was provided by both
Factm, that both subpkgs should provide javadoc, should be kept
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8b0abfa..e9a7a5f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1217,10 +1217,10 @@ Requires(post): %{alternatives_requires}
Requires(postun): %{alternatives_requires}
# Standard JPackage javadoc provides
-Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
%if %is_system_jdk
-Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
%endif
}
@@ -1705,7 +1705,8 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} -zip}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc
The %{origin_nice} %{majorver} API documentation.
@@ -1718,7 +1719,7 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc-zip
The %{origin_nice} %{majorver} API documentation compressed in a single archive.
@@ -2690,6 +2691,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
+- javadoc-zip got its own provides next to plain javadoc ones
+
* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
commit 355e52d362a612cced85770416edd7c6d8e2c80a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 23 17:22:05 2022 +0000
Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8ab490b..8b0abfa 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1357,6 +1357,7 @@ Patch1011: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
Patch1014: rh2021263-fips_ensure_security_initialised.patch
Patch1015: rh2021263-fips_missing_native_returns.patch
+Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
#############################################
#
@@ -1886,6 +1887,7 @@ sh %{SOURCE12}
%patch1011
%patch1014
%patch1015
+%patch1016
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2688,6 +2690,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
+- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
+
* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
- Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch
b/rh2021263-fips_separate_policy_and_fips_init.patch
new file mode 100644
index 0000000..e237841
--- /dev/null
+++ b/rh2021263-fips_separate_policy_and_fips_init.patch
@@ -0,0 +1,98 @@
+commit aaf92165ad1cbb1c9818eb60178c91293e13b053
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 15:13:14 2022 +0000
+
+ RH2021263: Improve Security initialisation, now FIPS support no longer relies on
crypto policy support
+
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+index fa494b680f..b5aa5c749d 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -57,10 +57,6 @@ public final class Security {
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
+- /* System property file*/
+- private static final String SYSTEM_PROPERTIES =
+- "/etc/crypto-policies/back-ends/java.config";
+-
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -202,13 +198,6 @@ public final class Security {
+ }
+ }
+
+- String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
+- if (disableSystemProps == null &&
+- "true".equalsIgnoreCase(props.getProperty
+- ("security.useSystemPropertiesFile"))) {
+- loadedProps = loadedProps && SystemConfigurator.configure(props);
+- }
+-
+ if (!loadedProps) {
+ initializeStatic();
+ if (sdebug != null) {
+@@ -217,6 +206,28 @@ public final class Security {
+ }
+ }
+
++ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
++ if ((disableSystemProps == null ||
"false".equalsIgnoreCase(disableSystemProps)) &&
++
"true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile")))
{
++ if (!SystemConfigurator.configureSysProps(props)) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System properties could not be
loaded.");
++ }
++ }
++ }
++
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
++ if (sdebug != null) {
++ if (fipsEnabled) {
++ sdebug.println("FIPS support enabled.");
++ } else {
++ sdebug.println("FIPS support disabled.");
++ }
++ }
++ }
+ }
+
+ /*
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+index d1f677597d..7da65b1d2c 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -76,7 +76,7 @@ final class SystemConfigurator {
+ * java.security.disableSystemPropertiesFile property is not set and
+ * security.useSystemPropertiesFile is true.
+ */
+- static boolean configure(Properties props) {
++ static boolean configureSysProps(Properties props) {
+ boolean loadedProps = false;
+
+ try (BufferedInputStream bis =
+@@ -96,11 +96,19 @@ final class SystemConfigurator {
+ e.printStackTrace();
+ }
+ }
++ return loadedProps;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
+
+ try {
+ if (enableFips()) {
+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
+- loadedProps = false;
+ // Remove all security providers
+ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
+ while (i.hasNext()) {
commit 0e882feab657bc9990c6dab6f9eebe406640c1b4
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 02:36:10 2022 +0000
Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b9bb5c6..8ab490b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2688,6 +2688,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
+- Fix FIPS issues in native code and with initialisation of java.security.Security
+
* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
- Update release notes for 8u322-b06.
commit edb63206cdde09841e8be821f7393b649aaf07eb
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Feb 27 11:47:05 2022 +0100
Storing and restoring alterntives during update manually
Fixing:
Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and
select (as auto) system JDK/JRE
The move of alternatives creation to posttrans to fix:
Bug 1200302 - dnf reinstall breaks alternatives
Had caused the alternatives to be removed, and then created again,
instead of being added, and then removing the old, and thus persisting
the selection in family
Thus this fix, is storing the family of manually selected master, and if
stored, then it is restoring the family of the master
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 587eee8..5efbb8e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 5
+%global rpmrelease 6
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -446,6 +446,50 @@
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+%define save_alternatives() %{expand:
+ # warning! alternatives are localised!
+ # LANG=cs_CZ.UTF-8 alternatives --display java | head
+ # LANG=en_US.UTF-8 alternatives --display java | head
+ function nonLocalisedAlternativesDisplayOfMaster() {
+ LANG=en_US.UTF-8 alternatives --display "$MASTER"
+ }
+ function headOfAbove() {
+ nonLocalisedAlternativesDisplayOfMaster | head -n $1
+ }
+ MASTER="%{?1}"
+ LOCAL_LINK="%{?2}"
+ FAMILY="%{?3}"
+ rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null
+ if nonLocalisedAlternativesDisplayOfMaster > /dev/null ; then
+ if headOfAbove 1 | grep -q manual ; then
+ if headOfAbove 2 | tail -n 1 | grep -q %{compatiblename} ; then
+ headOfAbove 2 >
%{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY"
+ fi
+ fi
+ fi
+}
+
+%define save_and_remove_alternatives() %{expand:
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ upgrade1_uninstal0=%{?3}
+ if [ "0$upgrade1_uninstal0" -gt 0 ] ; then # removal of this condition will
cause persistence between uninstall
+ %{save_alternatives %{?1} %{?2} %{?4}}
+ fi
+ alternatives --remove "%{?1}" "%{?2}"
+}
+
+%define set_if_needed_alternatives() %{expand:
+ MASTER="%{?1}"
+ FAMILY="%{?2}"
+
ALTERNATIVES_FILE="%{_localstatedir}/lib/rpm-state/$MASTER"_"$FAMILY"
+ if [ -e "$ALTERNATIVES_FILE" ] ; then
+ rm "$ALTERNATIVES_FILE"
+ alternatives --set $MASTER $FAMILY
+ fi
+}
+
%define post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -454,14 +498,18 @@ exit 0
}
%define alternatives_java_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=java
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
+ --install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -499,11 +547,17 @@ alternatives \\
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family}
+ key=jre_"$X"
+ alternatives --install %{_jvmdir}/jre-"$X" $key %{_jvmdir}/%{jredir -- %{?1}}
$PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family}
+key=jre_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jrelnk --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_headless() %{expand:
@@ -536,10 +590,14 @@ exit 0
%define postun_headless() %{expand:
- alternatives --remove java %{jrebindir -- %{?1}}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives java %{jrebindir -- %{?1}}/java $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
$post_state %{family}}
}
%define posttrans_script() %{expand:
@@ -548,14 +606,18 @@ exit 0
%define alternatives_javac_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=javac
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
+ --install %{_bindir}/javac $key %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -649,12 +711,17 @@ alternatives \\
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{family}
+ key=java_sdk_"$X"
+ alternatives --install %{_jvmdir}/java-"$X" $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family}
+key=java_sdk_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_devel() %{expand:
@@ -665,10 +732,14 @@ exit 0
}
%define postun_devel() %{expand:
- alternatives --remove javac %{sdkbindir -- %{?1}}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javac %{sdkbindir -- %{?1}}/javac $post_state
%{family}}
+ %{save_and_remove_alternatives java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir --
%{?1}} $post_state %{family}}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -685,36 +756,49 @@ exit 0
}
%define alternatives_javadoc_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-alternatives \\
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{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
}
%define postun_javadoc() %{expand:
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $post_state %{family_noarch}}
exit 0
}
%define alternatives_javadoczip_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-
-alternatives \\
- --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{family_noarch}
+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
}
%define postun_javadoc_zip() %{expand:
- alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $post_state %{family_noarch}}
exit 0
}
@@ -2694,6 +2778,17 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
+- Storing and restoring alterntives during update manually
+- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
+-- The move of alternatives creation to posttrans to fix:
+-- Bug 1200302 - dnf reinstall breaks alternatives
+-- Had caused the alternatives to be removed, and then created again,
+-- instead of being added, and then removing the old, and thus persisting
+-- the selection in family
+-- Thus this fix, is storing the family of manually selected master, and if
+-- stored, then it is restoring the family of the master
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
- Family extracted to globals
commit 0da973f5a714bef5d665c3cc22869dad44a3a3bc
Author: Jiri <jvanek(a)redhat.com>
Date: Sat Feb 26 20:50:05 2022 +0100
family extracted to globals
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8bb6504..587eee8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 5
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -426,6 +426,9 @@
%global alternatives_requires %{_sbindir}/alternatives
%endif
+%global family %{name}.%{_arch}
+%global family_noarch %{name}
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific sub-dir,
@@ -458,7 +461,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -497,10 +500,10 @@ alternatives \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family}
}
%define post_headless() %{expand:
@@ -552,7 +555,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -648,10 +651,10 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{family}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family}
}
%define post_devel() %{expand:
@@ -689,7 +692,7 @@ fi
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{family_noarch}
exit 0
}
@@ -706,7 +709,7 @@ fi
alternatives \\
--install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{family_noarch}
exit 0
}
@@ -2691,6 +2694,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
+- Family extracted to globals
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
- javadoc-zip got its own provides next to plain javadoc ones
commit e88c69368c88f3a4a595433f1b9a21d1963c2054
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Feb 27 12:01:51 2022 +0100
Providing proper provides for javadoc-zip subpk
Before this patch, the java-17-openjdk-javadoc-zip was not existing, and
instead of that, javadoc was provided by both
Factm, that both subpkgs should provide javadoc, should be kept
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9885a10..8bb6504 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1217,10 +1217,10 @@ Requires(post): %{alternatives_requires}
Requires(postun): %{alternatives_requires}
# Standard JPackage javadoc provides
-Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
%if %is_system_jdk
-Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
%endif
}
@@ -1705,7 +1705,8 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} -zip}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc
The %{origin_nice} %{majorver} API documentation.
@@ -1718,7 +1719,7 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc-zip
The %{origin_nice} %{majorver} API documentation compressed in a single archive.
@@ -2690,6 +2691,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
+- javadoc-zip got its own provides next to plain javadoc ones
+
* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
commit f2e995182a63de4467a5361b3516fd4e42bb74ef
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 23 17:22:05 2022 +0000
Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7e6f114..9885a10 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1357,6 +1357,7 @@ Patch1011: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
Patch1014: rh2021263-fips_ensure_security_initialised.patch
Patch1015: rh2021263-fips_missing_native_returns.patch
+Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
#############################################
#
@@ -1886,6 +1887,7 @@ sh %{SOURCE12}
%patch1011
%patch1014
%patch1015
+%patch1016
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2688,6 +2690,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
+- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
+
* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
- Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch
b/rh2021263-fips_separate_policy_and_fips_init.patch
new file mode 100644
index 0000000..e237841
--- /dev/null
+++ b/rh2021263-fips_separate_policy_and_fips_init.patch
@@ -0,0 +1,98 @@
+commit aaf92165ad1cbb1c9818eb60178c91293e13b053
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 15:13:14 2022 +0000
+
+ RH2021263: Improve Security initialisation, now FIPS support no longer relies on
crypto policy support
+
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+index fa494b680f..b5aa5c749d 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -57,10 +57,6 @@ public final class Security {
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
+- /* System property file*/
+- private static final String SYSTEM_PROPERTIES =
+- "/etc/crypto-policies/back-ends/java.config";
+-
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -202,13 +198,6 @@ public final class Security {
+ }
+ }
+
+- String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
+- if (disableSystemProps == null &&
+- "true".equalsIgnoreCase(props.getProperty
+- ("security.useSystemPropertiesFile"))) {
+- loadedProps = loadedProps && SystemConfigurator.configure(props);
+- }
+-
+ if (!loadedProps) {
+ initializeStatic();
+ if (sdebug != null) {
+@@ -217,6 +206,28 @@ public final class Security {
+ }
+ }
+
++ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
++ if ((disableSystemProps == null ||
"false".equalsIgnoreCase(disableSystemProps)) &&
++
"true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile")))
{
++ if (!SystemConfigurator.configureSysProps(props)) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System properties could not be
loaded.");
++ }
++ }
++ }
++
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
++ if (sdebug != null) {
++ if (fipsEnabled) {
++ sdebug.println("FIPS support enabled.");
++ } else {
++ sdebug.println("FIPS support disabled.");
++ }
++ }
++ }
+ }
+
+ /*
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+index d1f677597d..7da65b1d2c 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -76,7 +76,7 @@ final class SystemConfigurator {
+ * java.security.disableSystemPropertiesFile property is not set and
+ * security.useSystemPropertiesFile is true.
+ */
+- static boolean configure(Properties props) {
++ static boolean configureSysProps(Properties props) {
+ boolean loadedProps = false;
+
+ try (BufferedInputStream bis =
+@@ -96,11 +96,19 @@ final class SystemConfigurator {
+ e.printStackTrace();
+ }
+ }
++ return loadedProps;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
+
+ try {
+ if (enableFips()) {
+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
+- loadedProps = false;
+ // Remove all security providers
+ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
+ while (i.hasNext()) {
commit aa4a54e45a31ba0961e19c53b427976df48cd61f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 8 15:48:38 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b06 (EA)
Update release notes for 8u322-b06.
Switch to GA mode for final release.
Require tzdata 2021e as of JDK-8275766.
Update tarball generation script to use git following shenandoah-jdk8u's move to
github
Re-enable gdb backtrace check.
Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/.gitignore b/.gitignore
index f1536da..c3d10c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -250,3 +250,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 9773926..e911b13 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,33 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u322
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+* Security fixes
+ - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
+ - JDK-8268488: More valuable DerValues
+ - JDK-8268494: Better inlining of inlined interfaces
+ - JDK-8268512: More content for ContentInfo
+ - JDK-8268795: Enhance digests of Jar files
+ - JDK-8268801: Improve PKCS attribute handling
+ - JDK-8268813, CVE-2022-21283: Better String matching
+ - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
+ - JDK-8269944: Better HTTP transport redux
+ - JDK-8270392, CVE-2022-21293: Improve String constructions
+ - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
+ - JDK-8270492, CVE-2022-21282: Better resolution of URIs
+ - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
+ - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
+ - JDK-8271962: Better TrueType font loading
+ - JDK-8271968: Better canonical naming
+ - JDK-8271987: Manifest improved manifest entries
+ - JDK-8272014, CVE-2022-21305: Better array indexing
+ - JDK-8272026, CVE-2022-21340: Verify Jar Verification
+ - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
+ - JDK-8272272: Enhance jcmd communication
+ - JDK-8272462: Enhance image handling
+ - JDK-8273290: Enhance sound handling
+ - JDK-8273748, CVE-2022-21349: Improve Solaris font rendering
+ - JDK-8273756, CVE-2022-21360: Enhance BMP image support
+ - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
* Other changes
- JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
- JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java
fails NPE since 7u25b03
@@ -56,13 +83,18 @@ Live versions of these release notes can be found at:
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
- JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
+ - JDK-8273308: PatternMatchTest.java fails on CI
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
- JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8273968: JCK javax_xml tests fail in CI
- JDK-8274407: (tz) Update Timezone Data to 2021c
- JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
- JDK-8274468: TimeZoneTest.java fails with tzdata2021b
- JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
- JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
+ - JDK-8275766: (tz) Update Timezone Data to 2021e
+ - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
+ - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
Notes on individual issues:
===========================
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c6f0756..61aad1f 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -7,9 +7,9 @@
# If you want to use a local copy of patch PR3822, set the path to it in the PR3822
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
-# PROJECT_NAME=jdk8u OR aarch64-port
-# REPO_NAME=jdk8u60 OR jdk8u60
-# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should
do the job there
+# PROJECT_NAME=openjdk
+# REPO_NAME=shenandoah-jdk8u
+# VERSION=HEAD
#
# They are used to create correct name and are used in construction of sources url
(unless REPO_ROOT is set)
@@ -40,7 +40,7 @@ fi
set -e
-OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
# jdk is last for its size
REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
@@ -99,7 +99,7 @@ if [ "x$FILE_NAME_ROOT" = "x" ] ; then
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
- REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "x$REPOS" = "x" ] ; then
@@ -123,15 +123,9 @@ mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
-hg clone ${REPO_ROOT} openjdk -r ${VERSION}
+git clone -b ${VERSION} ${REPO_ROOT} openjdk
pushd openjdk
-for subrepo in ${REPOS}
-do
- echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
-done
-
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it
non-Free
if [ -d langtools ] ; then
echo "Removing langtools test case with non-Free license"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 970234f..b9bb5c6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -115,15 +115,10 @@
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support JFR
%global jfr_arches %{jit_arches}
-# Set of architectures where we verify backtraces with gdb (ideally all)
-# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
-# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
-# A problem internal to GDB has been detected,
-# further debugging may prove unreliable.
-# See
https://bugzilla.redhat.com/show_bug.cgi?id=2041970
-%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} ppc s390
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
+# Set of architectures where we verify backtraces with gdb
+%global gdb_arches %{jit_arches} %{zero_arches}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -332,9 +327,9 @@
%endif
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
-%global shenandoah_project aarch64-port
-%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b04
+%global shenandoah_project openjdk
+%global shenandoah_repo shenandoah-jdk8u
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -349,12 +344,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1146,8 +1141,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021c required as of JDK-8274407 in January 2022 CPU
-Requires: tzdata-java >= 2021c
+# 2021e required as of JDK-8275766 in January 2022 CPU
+Requires: tzdata-java >= 2021e
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1359,6 +1354,9 @@ Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
Patch1008: rh1996182-login_to_nss_software_token.patch
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to
false
Patch1011: rh1991003-enable_fips_keys_import.patch
+# RH2021263: Resolve outstanding FIPS issues
+Patch1014: rh2021263-fips_ensure_security_initialised.patch
+Patch1015: rh2021263-fips_missing_native_returns.patch
#############################################
#
@@ -1519,8 +1517,8 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >=
1.7.0.151-2.6.11.3
%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
-# 2021c required as of JDK-8274407 in January 2022 CPU
-BuildRequires: tzdata-java >= 2021c
+# 2021e required as of JDK-8275766 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021e
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -1886,6 +1884,8 @@ sh %{SOURCE12}
%patch1007
%patch1008
%patch1011
+%patch1014
+%patch1015
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2688,6 +2688,17 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
+- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
+- Update release notes for 8u322-b06.
+- Switch to GA mode for final release.
+- Require tzdata 2021e as of JDK-8275766.
+- Update tarball generation script to use git following shenandoah-jdk8u's move to
github
+- Fix FIPS issues in native code and with initialisation of java.security.Security
+
+* Mon Feb 07 2022 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.322.b06-1
+- Re-enable gdb backtrace check.
+
* Thu Jan 20 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.2.ea
- Temporarily move x86 to use Zero in order to get a working build
- Introduce architecture restriction logic for the gdb test. (RH2041970)
diff --git a/rh2021263-fips_ensure_security_initialised.patch
b/rh2021263-fips_ensure_security_initialised.patch
new file mode 100644
index 0000000..5aa9ec7
--- /dev/null
+++ b/rh2021263-fips_ensure_security_initialised.patch
@@ -0,0 +1,28 @@
+commit 06c2decab204fcce5aca2d285953fcac1820b1ae
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 01:23:28 2022 +0000
+
+ RH2021263: Make sure java.security.Security is initialised when retrieving
JavaSecuritySystemConfiguratorAccess instance
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+index 40ca609e02..0dafe6f59c 100644
+--- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -31,6 +31,7 @@ import java.io.Console;
+ import java.io.FileDescriptor;
+ import java.io.ObjectInputStream;
+ import java.security.ProtectionDomain;
++import java.security.Security;
+ import java.security.Signature;
+
+ import java.security.AccessController;
+@@ -255,6 +256,9 @@ public class SharedSecrets {
+ }
+
+ public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
++ if (javaSecuritySystemConfiguratorAccess == null) {
++ unsafe.ensureClassInitialized(Security.class);
++ }
+ return javaSecuritySystemConfiguratorAccess;
+ }
+ }
diff --git a/rh2021263-fips_missing_native_returns.patch
b/rh2021263-fips_missing_native_returns.patch
new file mode 100644
index 0000000..90cc44e
--- /dev/null
+++ b/rh2021263-fips_missing_native_returns.patch
@@ -0,0 +1,24 @@
+commit 7f58a05104138ebdfd3b7b968ed67ea4c8573073
+Author: Fridrich Strba <fstrba(a)suse.com>
+Date: Mon Jan 24 01:10:57 2022 +0000
+
+ RH2021263: Return in C code after having generated Java exception
+
+diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
+index 6f4656bfcb..34d0ff0ce9 100644
+--- openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
++++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
+@@ -131,11 +131,13 @@ JNIEXPORT jboolean JNICALL
Java_java_security_SystemConfigurator_getSystemFIPSEn
+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ fips_enabled = fgetc(fe);
+ fclose(fe);
+ if (fips_enabled == EOF) {
+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
+ " read character is '%c'", fips_enabled);
diff --git a/sources b/sources
index eb1f71f..35c822f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz) =
ebc3cceb40f7ca567fd9fe751ba9762ad50ac474f63da5e2123cf268683db10132ffb09b6f6a99b3379c021b4fcc3b04a82bc81c2e63c8d4da0fdcf58d995322
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) =
0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
commit 6d412ee58b7019db098546df7e7b53f1f331ec93
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 02:36:10 2022 +0000
Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c39eaaa..7e6f114 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1354,6 +1354,9 @@ Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
Patch1008: rh1996182-login_to_nss_software_token.patch
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to
false
Patch1011: rh1991003-enable_fips_keys_import.patch
+# RH2021263: Resolve outstanding FIPS issues
+Patch1014: rh2021263-fips_ensure_security_initialised.patch
+Patch1015: rh2021263-fips_missing_native_returns.patch
#############################################
#
@@ -1881,6 +1884,8 @@ sh %{SOURCE12}
%patch1007
%patch1008
%patch1011
+%patch1014
+%patch1015
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2683,6 +2688,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
+- Fix FIPS issues in native code and with initialisation of java.security.Security
+
* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
- Update release notes for 8u322-b06.
diff --git a/rh2021263-fips_ensure_security_initialised.patch
b/rh2021263-fips_ensure_security_initialised.patch
new file mode 100644
index 0000000..5aa9ec7
--- /dev/null
+++ b/rh2021263-fips_ensure_security_initialised.patch
@@ -0,0 +1,28 @@
+commit 06c2decab204fcce5aca2d285953fcac1820b1ae
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 01:23:28 2022 +0000
+
+ RH2021263: Make sure java.security.Security is initialised when retrieving
JavaSecuritySystemConfiguratorAccess instance
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+index 40ca609e02..0dafe6f59c 100644
+--- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -31,6 +31,7 @@ import java.io.Console;
+ import java.io.FileDescriptor;
+ import java.io.ObjectInputStream;
+ import java.security.ProtectionDomain;
++import java.security.Security;
+ import java.security.Signature;
+
+ import java.security.AccessController;
+@@ -255,6 +256,9 @@ public class SharedSecrets {
+ }
+
+ public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
++ if (javaSecuritySystemConfiguratorAccess == null) {
++ unsafe.ensureClassInitialized(Security.class);
++ }
+ return javaSecuritySystemConfiguratorAccess;
+ }
+ }
diff --git a/rh2021263-fips_missing_native_returns.patch
b/rh2021263-fips_missing_native_returns.patch
new file mode 100644
index 0000000..90cc44e
--- /dev/null
+++ b/rh2021263-fips_missing_native_returns.patch
@@ -0,0 +1,24 @@
+commit 7f58a05104138ebdfd3b7b968ed67ea4c8573073
+Author: Fridrich Strba <fstrba(a)suse.com>
+Date: Mon Jan 24 01:10:57 2022 +0000
+
+ RH2021263: Return in C code after having generated Java exception
+
+diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
+index 6f4656bfcb..34d0ff0ce9 100644
+--- openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
++++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
+@@ -131,11 +131,13 @@ JNIEXPORT jboolean JNICALL
Java_java_security_SystemConfigurator_getSystemFIPSEn
+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ fips_enabled = fgetc(fe);
+ fclose(fe);
+ if (fips_enabled == EOF) {
+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
+ " read character is '%c'", fips_enabled);
commit 050fecd883ec846a10507fa7b121b722f6ba0114
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 00:05:22 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b06 (EA)
Update release notes for 8u322-b06.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index a986941..c3d10c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -251,3 +251,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index b8a1f92..e911b13 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,33 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u322
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+* Security fixes
+ - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
+ - JDK-8268488: More valuable DerValues
+ - JDK-8268494: Better inlining of inlined interfaces
+ - JDK-8268512: More content for ContentInfo
+ - JDK-8268795: Enhance digests of Jar files
+ - JDK-8268801: Improve PKCS attribute handling
+ - JDK-8268813, CVE-2022-21283: Better String matching
+ - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
+ - JDK-8269944: Better HTTP transport redux
+ - JDK-8270392, CVE-2022-21293: Improve String constructions
+ - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
+ - JDK-8270492, CVE-2022-21282: Better resolution of URIs
+ - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
+ - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
+ - JDK-8271962: Better TrueType font loading
+ - JDK-8271968: Better canonical naming
+ - JDK-8271987: Manifest improved manifest entries
+ - JDK-8272014, CVE-2022-21305: Better array indexing
+ - JDK-8272026, CVE-2022-21340: Verify Jar Verification
+ - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
+ - JDK-8272272: Enhance jcmd communication
+ - JDK-8272462: Enhance image handling
+ - JDK-8273290: Enhance sound handling
+ - JDK-8273748, CVE-2022-21349: Improve Solaris font rendering
+ - JDK-8273756, CVE-2022-21360: Enhance BMP image support
+ - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
* Other changes
- JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
- JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java
fails NPE since 7u25b03
@@ -56,8 +83,10 @@ Live versions of these release notes can be found at:
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
- JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
+ - JDK-8273308: PatternMatchTest.java fails on CI
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
- JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8273968: JCK javax_xml tests fail in CI
- JDK-8274407: (tz) Update Timezone Data to 2021c
- JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
- JDK-8274468: TimeZoneTest.java fails with tzdata2021b
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f65ab51..c39eaaa 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -349,7 +349,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2683,6 +2683,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
+- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
+- Update release notes for 8u322-b06.
+- Switch to GA mode for final release.
+
* Tue Feb 15 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b05 (EA)
- Update release notes for 8u322-b05.
diff --git a/sources b/sources
index 12cd6db..35c822f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz) =
5026d6bd2e6d052fa88fb27d7d9fca2f50c5cc66ca3a9e52f8d3903ec4c738c0c815c20dfd5dfd44ab0ec48d264a36c67f35c302c1eee06a1b2277d842035221
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) =
0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
commit c867f608e3471506aea129a45d31aa10d815b389
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 15 16:45:42 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b05 (EA)
Update release notes for 8u322-b05.
Require tzdata 2021e as of JDK-8275766.
Update tarball generation script to use git following shenandoah-jdk8u's move to
github
diff --git a/.gitignore b/.gitignore
index f1536da..a986941 100644
--- a/.gitignore
+++ b/.gitignore
@@ -250,3 +250,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 9773926..b8a1f92 100644
--- a/NEWS
+++ b/NEWS
@@ -63,6 +63,9 @@ Live versions of these release notes can be found at:
- JDK-8274468: TimeZoneTest.java fails with tzdata2021b
- JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
- JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
+ - JDK-8275766: (tz) Update Timezone Data to 2021e
+ - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
+ - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
Notes on individual issues:
===========================
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c6f0756..61aad1f 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -7,9 +7,9 @@
# If you want to use a local copy of patch PR3822, set the path to it in the PR3822
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
-# PROJECT_NAME=jdk8u OR aarch64-port
-# REPO_NAME=jdk8u60 OR jdk8u60
-# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should
do the job there
+# PROJECT_NAME=openjdk
+# REPO_NAME=shenandoah-jdk8u
+# VERSION=HEAD
#
# They are used to create correct name and are used in construction of sources url
(unless REPO_ROOT is set)
@@ -40,7 +40,7 @@ fi
set -e
-OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
# jdk is last for its size
REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
@@ -99,7 +99,7 @@ if [ "x$FILE_NAME_ROOT" = "x" ] ; then
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
- REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "x$REPOS" = "x" ] ; then
@@ -123,15 +123,9 @@ mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
-hg clone ${REPO_ROOT} openjdk -r ${VERSION}
+git clone -b ${VERSION} ${REPO_ROOT} openjdk
pushd openjdk
-for subrepo in ${REPOS}
-do
- echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
-done
-
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it
non-Free
if [ -d langtools ] ; then
echo "Removing langtools test case with non-Free license"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9dc6a8a..f65ab51 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -327,9 +327,9 @@
%endif
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
-%global shenandoah_project aarch64-port
-%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b04
+%global shenandoah_project openjdk
+%global shenandoah_repo shenandoah-jdk8u
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1141,8 +1141,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021c required as of JDK-8274407 in January 2022 CPU
-Requires: tzdata-java >= 2021c
+# 2021e required as of JDK-8275766 in January 2022 CPU
+Requires: tzdata-java >= 2021e
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1514,8 +1514,8 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >=
1.7.0.151-2.6.11.3
%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
-# 2021c required as of JDK-8274407 in January 2022 CPU
-BuildRequires: tzdata-java >= 2021c
+# 2021e required as of JDK-8275766 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021e
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2683,6 +2683,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Feb 15 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b05 (EA)
+- Update release notes for 8u322-b05.
+- Require tzdata 2021e as of JDK-8275766.
+- Update tarball generation script to use git following shenandoah-jdk8u's move to
github
+
* Mon Feb 07 2022 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.322.b04-0.3.ea
- Re-enable gdb backtrace check.
diff --git a/sources b/sources
index eb1f71f..12cd6db 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz) =
ebc3cceb40f7ca567fd9fe751ba9762ad50ac474f63da5e2123cf268683db10132ffb09b6f6a99b3379c021b4fcc3b04a82bc81c2e63c8d4da0fdcf58d995322
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz) =
5026d6bd2e6d052fa88fb27d7d9fca2f50c5cc66ca3a9e52f8d3903ec4c738c0c815c20dfd5dfd44ab0ec48d264a36c67f35c302c1eee06a1b2277d842035221
commit d3b17054c227146584b900828461d6c414e1aad4
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 8 15:48:38 2022 +0000
Re-enable gdb backtrace check.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 970234f..9dc6a8a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -115,15 +115,10 @@
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support JFR
%global jfr_arches %{jit_arches}
-# Set of architectures where we verify backtraces with gdb (ideally all)
-# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
-# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
-# A problem internal to GDB has been detected,
-# further debugging may prove unreliable.
-# See
https://bugzilla.redhat.com/show_bug.cgi?id=2041970
-%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} ppc s390
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
+# Set of architectures where we verify backtraces with gdb
+%global gdb_arches %{jit_arches} %{zero_arches}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -349,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2688,6 +2683,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Feb 07 2022 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.322.b04-0.3.ea
+- Re-enable gdb backtrace check.
+
* Thu Jan 20 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.2.ea
- Temporarily move x86 to use Zero in order to get a working build
- Introduce architecture restriction logic for the gdb test. (RH2041970)
commit 2988ce90ffc176c047dcb63bb70e4c8ca1ec6d88
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jan 20 23:09:54 2022 +0000
Temporarily move x86 to use Zero in order to get a working build
Introduce architecture restriction logic for the gdb test.
Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC
build (JDK-8281098)
Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass
-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4
Refactor build functions so we can build just HotSpot without any attempt at
installation.
Explicitly list JIT architectures rather than relying on those with slowdebug builds
Disable the serviceability agent on Zero architectures even when the architecture
itself is supported
Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds
Resolves: rhbz#2045726
Related: rhbz#2051302
Related: rhbz#2041970
diff --git a/java-1.8.0-openjdk-gcc11.patch b/java-1.8.0-openjdk-gcc11.patch
deleted file mode 100644
index 2d0820d..0000000
--- a/java-1.8.0-openjdk-gcc11.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff --git a/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
b/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-index 31955ff7..6dcd90ac 100644
---- openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-@@ -4564,7 +4564,7 @@ char *ADLParser::get_paren_expr(const char *description, bool
include_location)
- // string(still inside the file buffer). Returns a pointer to the string or
- // NULL if some other token is found instead.
- char *ADLParser::get_ident_common(bool do_preproc) {
-- register char c;
-+ char c;
- char *start; // Pointer to start of token
- char *end; // Pointer to end of token
-
-@@ -4762,7 +4762,7 @@ char *ADLParser::get_unique_ident(FormDict& dict, const char*
nameDescription){
- // invokes a parse_err if the next token is not an integer.
- // This routine does not leave the integer null-terminated.
- int ADLParser::get_int(void) {
-- register char c;
-+ char c;
- char *start; // Pointer to start of token
- char *end; // Pointer to end of token
- int result; // Storage for integer result
-diff --git a/openjdk/hotspot/src/share/vm/adlc/arena.cpp
b/openjdk/hotspot/src/share/vm/adlc/arena.cpp
-index d7e4fc6e..406187ae 100644
---- openjdk/hotspot/src/share/vm/adlc/arena.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/arena.cpp
-@@ -79,7 +79,7 @@ Arena::Arena( Arena *a )
- // Total of all Chunks in arena
- size_t Arena::used() const {
- size_t sum = _chunk->_len - (_max-_hwm); // Size leftover in this Chunk
-- register Chunk *k = _first;
-+ Chunk *k = _first;
- while( k != _chunk) { // Whilst have Chunks in a row
- sum += k->_len; // Total size of this Chunk
- k = k->_next; // Bump along to next Chunk
-@@ -93,7 +93,7 @@ void* Arena::grow( size_t x ) {
- // Get minimal required size. Either real big, or even bigger for giant objs
- size_t len = max(x, Chunk::size);
-
-- register Chunk *k = _chunk; // Get filled-up chunk address
-+ Chunk *k = _chunk; // Get filled-up chunk address
- _chunk = new (len) Chunk(len);
-
- if( k ) k->_next = _chunk; // Append new chunk to end of linked list
-diff --git a/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
b/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-index f341a2b6..2dc60b25 100644
---- openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-@@ -283,9 +283,9 @@ void Dict::print(PrintKeyOrValue print_key, PrintKeyOrValue
print_value) {
- // limited to MAXID characters in length. Experimental evidence on 150K of
- // C text shows excellent spreading of values for any size hash table.
- int hashstr(const void *t) {
-- register char c, k = 0;
-- register int sum = 0;
-- register const char *s = (const char *)t;
-+ char c, k = 0;
-+ int sum = 0;
-+ const char *s = (const char *)t;
-
- while (((c = s[k]) != '\0') && (k < MAXID-1)) { // Get characters
till nul
- c = (char) ((c << 1) + 1); // Characters are always odd!
-diff --git a/openjdk/hotspot/src/share/vm/adlc/main.cpp
b/openjdk/hotspot/src/share/vm/adlc/main.cpp
-index 52044f12..40bcda74 100644
---- openjdk/hotspot/src/share/vm/adlc/main.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/main.cpp
-@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
-
- // Read command line arguments and file names
- for( int i = 1; i < argc; i++ ) { // For all arguments
-- register char *s = argv[i]; // Get option/filename
-+ char *s = argv[i]; // Get option/filename
-
- if( *s++ == '-' ) { // It's a flag? (not a filename)
- if( !*s ) { // Stand-alone `-' means stdin
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 43b33d4..970234f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -24,6 +24,15 @@
%bcond_without release
# Remove build artifacts by default
%bcond_with artifacts
+# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
+%bcond_without fresh_libjvm
+
+# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
+%if %{with fresh_libjvm}
+%global build_hotspot_first 1
+%else
+%global build_hotspot_first 0
+%endif
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
@@ -91,9 +100,9 @@
# Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
-%global jit_arches %{debug_arches}
+%global jit_arches %{aarch64} %{power64} sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches)
-%global zero_arches %{arm} ppc s390 s390x
+%global zero_arches %{arm} %{ix86} ppc s390 s390x
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
@@ -104,8 +113,15 @@
# See
https://bugzilla.redhat.com/show_bug.cgi?id=513605
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+# Set of architectures which support JFR
%global jfr_arches %{jit_arches}
-
+# Set of architectures where we verify backtraces with gdb (ideally all)
+# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
+# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
+# A problem internal to GDB has been detected,
+# further debugging may prove unreliable.
+# See
https://bugzilla.redhat.com/show_bug.cgi?id=2041970
+%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} ppc s390
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
@@ -143,7 +159,7 @@
%global fastdebug_build %{nil}
%endif
-# If you disable both builds, then the build fails
+# If you disable all builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
@@ -156,6 +172,18 @@
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
+# Target to use to just build HotSpot
+%global hotspot_target hotspot
+
+# JDK to use for bootstrapping
+# Use OpenJDK 7 where available (on RHEL) to avoid
+# having to use the rhel-7.x-java-unsafe-candidate hack
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+%global buildjdkver 1.7.0
+%else
+%global buildjdkver 1.8.0
+%endif
+%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Disable LTO as this causes build failures at the moment.
# See RHBZ#1861401
@@ -321,7 +349,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -814,8 +842,10 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
%ifarch %{sa_arches}
+%ifnarch %{zero_arches}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
%endif
+%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
@@ -952,8 +982,10 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
%ifarch %{sa_arches}
+%ifnarch %{zero_arches}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
%endif
+%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
@@ -1215,7 +1247,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1358,8 +1390,8 @@ Patch600: rh1750419-redhat_alt_java.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
-# Similar for GCC 11
-Patch112: %{name}-gcc11.patch
+# JDK-8281098, PR3836: Extra compiler flags not passed to adlc build
+Patch112: jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
#############################################
#
@@ -1404,6 +1436,8 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
# JDK-8195607, PR3776, RH1760437: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed
with "NSS initialization failed" on NSS 3.34.1
Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
+# JDK-8257794: Zero: assert(istate->_stack_limit ==
istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
+Patch581: jdk8257794-remove_broken_assert.patch
#############################################
#
@@ -1479,16 +1513,10 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
BuildRequires: unzip
-# Use OpenJDK 7 where available (on RHEL) to avoid
-# having to use the rhel-7.x-java-unsafe-candidate hack
-%if ! 0%{?fedora} && 0%{?rhel} <= 7
# Require a boot JDK which doesn't fail due to RH1482244
-BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
-%else
-BuildRequires: java-1.8.0-openjdk-devel
-%endif
+BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
# Zero-assembler build requirement
-%ifnarch %{jit_arches}
+%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
# 2021c required as of JDK-8274407 in January 2022 CPU
@@ -1843,6 +1871,7 @@ sh %{SOURCE12}
%patch111
%patch112
%patch580
+%patch581
# RPM-only fixes
%patch539
@@ -1953,10 +1982,9 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
function buildjdk() {
local outputdir=${1}
- local installdir=${2}
- local buildjdk=${3}
- local maketargets=${4}
- local debuglevel=${5}
+ local buildjdk=${2}
+ local maketargets="${3}"
+ local debuglevel=${4}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
@@ -1966,7 +1994,7 @@ function buildjdk() {
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
- mkdir -p ${outputdir} ${installdir}
+ mkdir -p ${outputdir}
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
@@ -1975,7 +2003,7 @@ function buildjdk() {
%else
--disable-jfr \
%endif
-%ifnarch %{jit_arches}
+%ifarch %{zero_arches}
--with-jvm-variants=zero \
%endif
--with-native-debug-symbols=internal \
@@ -2011,24 +2039,16 @@ function buildjdk() {
SCTP_WERROR= \
${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name
"hs_err_pid*.log" | xargs cat && false )
- # the build (erroneously) removes read permissions from some jars
- # this is a regression in OpenJDK 7 (our compiler):
- #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
- find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
- chmod ugo+r images/%{jdkimage}/lib/ct.sym
-
- # remove redundant *diz and *debuginfo files
- find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
- find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
-
- # Build screws up permissions on binaries
- #
https://bugs.openjdk.java.net/browse/JDK-8173610
- find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
- find images/%{jdkimage}/bin/ -exec chmod +x {} \;
+ popd
+}
- popd >& /dev/null
+function installjdk() {
+ local outputdir=${1}
+ local installdir=${2}
+ local imagepath=${installdir}/images/%{jdkimage}
echo "Installing build from ${outputdir} to ${installdir}..."
+ mkdir -p ${installdir}
echo "Installing images..."
mv ${outputdir}/images ${installdir}
if [ -d ${outputdir}/bundles ] ; then
@@ -2044,8 +2064,35 @@ function buildjdk() {
echo "Removing output directory...";
rm -rf ${outputdir}
%endif
+
+ if [ -d ${imagepath} ] ; then
+ # the build (erroneously) removes read permissions from some jars
+ # this is a regression in OpenJDK 7 (our compiler):
+ #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+ find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} \;
+ chmod ugo+r ${imagepath}/lib/ct.sym
+
+ # remove redundant *diz and *debuginfo files
+ find ${imagepath} -iname '*.diz' -exec rm -v {} \;
+ find ${imagepath} -iname '*.debuginfo' -exec rm -v {} \;
+
+ # Build screws up permissions on binaries
+ #
https://bugs.openjdk.java.net/browse/JDK-8173610
+ find ${imagepath} -iname '*.so' -exec chmod +x {} \;
+ find ${imagepath}/bin/ -exec chmod +x {} \;
+ fi
}
+%if %{build_hotspot_first}
+ # Build a fresh libjvm.so first and use it to bootstrap
+ cp -LR --preserve=mode,timestamps %{bootjdk} newboot
+ systemjdk=$(pwd)/newboot
+ buildjdk build/newboot ${systemjdk} %{hotspot_target} "release"
"bundled"
+ mv build/newboot/hotspot/dist/jre/lib/%{archinstall}/server/libjvm.so
newboot/jre/lib/%{archinstall}/server
+%else
+ systemjdk=%{bootjdk}
+%endif
+
for suffix in %{build_loop} ; do
if [ "x$suffix" = "x" ] ; then
debugbuild=release
@@ -2054,7 +2101,6 @@ else
debugbuild=`echo $suffix | sed "s/-//g"`
fi
-systemjdk=/usr/lib/jvm/java-openjdk
builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
installdir=%{installoutputdir -- $suffix}
@@ -2072,11 +2118,14 @@ else
fi
if ${run_bootstrap} ; then
- buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk}
"%{bootstrap_targets}" ${debugbuild}
- buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+ installjdk ${bootbuilddir} ${bootinstalldir}
+ buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ installjdk ${builddir} ${installdir}
%{!?with_artifacts:rm -rf ${bootinstalldir}}
else
- buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}"
${debugbuild}
+ buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+ installjdk ${builddir} ${installdir}
fi
# Install nss.cfg right away as we will be using the JRE above
@@ -2197,7 +2246,9 @@ end
run -version
EOF
+%ifarch %{gdb_arches}
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
+%endif
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
@@ -2637,6 +2688,20 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.2.ea
+- Temporarily move x86 to use Zero in order to get a working build
+- Introduce architecture restriction logic for the gdb test. (RH2041970)
+- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
+- Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC
build (JDK-8281098)
+- Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass
-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4
+- Refactor build functions so we can build just HotSpot without any attempt at
installation.
+- Explicitly list JIT architectures rather than relying on those with slowdebug builds
+- Disable the serviceability agent on Zero architectures even when the architecture
itself is supported
+- Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds
+- Resolves: rhbz#2045726
+- Related: rhbz#2051302
+- Related: rhbz#2041970
+
* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.322.b04-0.1.ea.1
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
diff --git
a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
index ae48068..0af9d51 100644
--- a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
+++ b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
@@ -22,7 +22,7 @@ diff --git openjdk.orig///common/autoconf/flags.m4
openjdk///common/autoconf/fla
+ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
+ # While waiting for a better solution, the current workaround is to use
-mstackrealign
+ # This is also required on Linux systems which use libraries compiled with SSE
instructions
-+ REALIGN_CFLAG="-mstackrealign"
++ REALIGN_CFLAG="-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4"
+ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
+ )
diff --git a/jdk8257794-remove_broken_assert.patch
b/jdk8257794-remove_broken_assert.patch
new file mode 100644
index 0000000..bb88013
--- /dev/null
+++ b/jdk8257794-remove_broken_assert.patch
@@ -0,0 +1,13 @@
+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+@@ -493,9 +493,6 @@
+ assert(labs(istate->_stack_base - istate->_stack_limit) ==
(istate->_method->max_stack() + extra_stack_entries
+
+ 1), "bad stack limit");
+ }
+-#ifndef SHARK
+- IA32_ONLY(assert(istate->_stack_limit == istate->_thread->last_Java_sp() +
1, "wrong"));
+-#endif // !SHARK
+ }
+ // Verify linkages.
+ interpreterState l = istate;
diff --git a/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
new file mode 100644
index 0000000..774a08e
--- /dev/null
+++ b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
@@ -0,0 +1,67 @@
+# HG changeset patch
+# User Andrew John Hughes <gnu_andrew(a)member.fsf.org>
+# Date 1620365804 -3600
+# Fri May 07 06:36:44 2021 +0100
+# Node ID 39b62f35eca823b4c9a98bc1dc0cb9acb87360f8
+# Parent 723b59ed1afe878c5cd35f080399c8ceec4f776b
+PR3836: Extra compiler flags not passed to adlc build
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/adlc.make
openjdk/hotspot/make/aix/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/aix/makefiles/adlc.make
++++ openjdk/hotspot/make/aix/makefiles/adlc.make
+@@ -69,6 +69,11 @@
+ CFLAGS_WARN = -w
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
openjdk/hotspot/make/bsd/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
++++ openjdk/hotspot/make/bsd/makefiles/adlc.make
+@@ -71,6 +71,11 @@
+ endif
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/linux/makefiles/adlc.make
openjdk/hotspot/make/linux/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/adlc.make
++++ openjdk/hotspot/make/linux/makefiles/adlc.make
+@@ -69,6 +69,11 @@
+ CFLAGS_WARN = $(WARNINGS_ARE_ERRORS)
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
openjdk/hotspot/make/solaris/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
++++ openjdk/hotspot/make/solaris/makefiles/adlc.make
+@@ -85,6 +85,10 @@
+ endif
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ ifeq ("${Platform_compiler}", "sparcWorks")
+ # Enable the following CFLAGS addition if you need to compare the
+ # built ELF objects.
commit 92c5ccf84cd523a631a4591a4caca18c28c7b722
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 13:39:33 2022 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 52325f3..43b33d4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1215,7 +1215,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -2637,6 +2637,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.322.b04-0.1.ea.1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Mon Jan 10 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b04 (EA)
- Update release notes for 8u322-b04.
commit e3e7a2f6b3250760d68043d5075cdb3d5806a596
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jan 10 16:26:55 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b04 (EA)
Update release notes for 8u322-b04.
Require tzdata 2021c as of JDK-8274407.
diff --git a/.gitignore b/.gitignore
index bc46b5c..f1536da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -249,3 +249,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index da4df72..9773926 100644
--- a/NEWS
+++ b/NEWS
@@ -58,6 +58,9 @@ Live versions of these release notes can be found at:
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
- JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8274407: (tz) Update Timezone Data to 2021c
+ - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
+ - JDK-8274468: TimeZoneTest.java fails with tzdata2021b
- JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
- JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
@@ -82,6 +85,18 @@ The following root certificate from Google has been removed from the
Alias Name: globalsignr2ca [jdk]
Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
+core-libs/java.time:
+
+JDK-8274857: Update Timezone Data to 2021c
+===========================================
+IANA Time Zone Database, on which JDK's Date/Time libraries are based,
+has been updated to version 2021c
+(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note
+that with this update, some of the time zone rules prior to the year
+1970 have been modified according to the changes which were introduced
+with 2021b. For more detail, refer to the announcement of 2021b
+(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html)
+
New in release OpenJDK 8u312 (2021-10-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b17d121..52325f3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1114,8 +1114,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021a required as of JDK-8260356 in April CPU
-Requires: tzdata-java >= 2021a
+# 2021c required as of JDK-8274407 in January 2022 CPU
+Requires: tzdata-java >= 2021c
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1491,8 +1491,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2021a required as of JDK-8260356 in April CPU
-BuildRequires: tzdata-java >= 2021a
+# 2021c required as of JDK-8274407 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021c
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2637,6 +2637,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jan 10 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b04 (EA)
+- Update release notes for 8u322-b04.
+- Require tzdata 2021c as of JDK-8274407.
+
* Fri Jan 07 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b03-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b03 (EA)
- Update release notes for 8u322-b03.
diff --git a/sources b/sources
index f8bc0ea..eb1f71f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz) =
5a511b7721f5d3178c494ebf2ee51dd93b44ca4843226b3e9fc49a6350a5563651e0fe06cef68f21b229f13031661830dfab52ec2ead46d31aaa02c5720d71b0
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz) =
ebc3cceb40f7ca567fd9fe751ba9762ad50ac474f63da5e2123cf268683db10132ffb09b6f6a99b3379c021b4fcc3b04a82bc81c2e63c8d4da0fdcf58d995322
commit 172b64584ad633cd9f755d573a4cebbd3c74cc23
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jan 7 15:25:17 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b03 (EA)
Update release notes for 8u322-b03.
diff --git a/.gitignore b/.gitignore
index 9cd6ee4..bc46b5c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -248,3 +248,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 433a4f6..da4df72 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ Live versions of these release notes can be found at:
- JDK-8041928: MouseEvent.getModifiersEx gives wrong result
- JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402
- JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining
group (OS X 10.9)
+ - JDK-8048021: Remove @version tag in jaxp repo
- JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use
incorrect assumption about REXB prefix usage
- JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and
java/beans/XMLEncoder/java_awt_GridBagLayout.java
- JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
fails to compile
@@ -49,6 +50,7 @@ Live versions of these release notes can be found at:
- JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina
- JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may
fail
- JDK-8235153: [TESTBUG] [macos 10.15]
java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
+ - JDK-8236897: Fix the copyright header for pkcs11gcm2.h
- JDK-8237499: JFR: Include stack trace in the ThreadStart event
- JDK-8239886: Minimal VM build fails after JDK-8237499
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 682224d..b17d121 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2637,6 +2637,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Jan 07 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b03 (EA)
+- Update release notes for 8u322-b03.
+
* Fri Dec 17 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b02-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b02 (EA)
- Update release notes for 8u322-b02.
diff --git a/sources b/sources
index 1ea332b..f8bc0ea 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz) =
ebf2c1495ad47345fdc9025fbb690e5fe31fdcb08f180020b061a91cd4f9d01f1617f56f1038c3acbdb1dd9e3ade2cdf7f7c3854cf229084ef5b1fc822ab5422
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz) =
5a511b7721f5d3178c494ebf2ee51dd93b44ca4843226b3e9fc49a6350a5563651e0fe06cef68f21b229f13031661830dfab52ec2ead46d31aaa02c5720d71b0
commit a0ac8516d6ebc12bab3af9fec466a19e1c478869
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Dec 17 03:06:13 2021 +0000
Update to aarch64-shenandoah-jdk8u322-b02 (EA)
Update release notes for 8u322-b02.
diff --git a/.gitignore b/.gitignore
index 891d2d8..9cd6ee4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -247,3 +247,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 2dac9d2..433a4f6 100644
--- a/NEWS
+++ b/NEWS
@@ -11,12 +11,22 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
+ - JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java
fails NPE since 7u25b03
+ - JDK-8025430: [TEST_BUG] javax/swing/JEditorPane/5076514/bug5076514.java failed since
jdk8b108
+ - JDK-8041928: MouseEvent.getModifiersEx gives wrong result
+ - JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402
+ - JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining
group (OS X 10.9)
- JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use
incorrect assumption about REXB prefix usage
+ - JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and
java/beans/XMLEncoder/java_awt_GridBagLayout.java
- JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
fails to compile
+ - JDK-8066652: Default TimeZone is GMT not local if user.timezone is invalid on Mac OS
- JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly
failure
- JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win
compiler upgrade
- JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and
BufferedImage.TYPE_INT_ARGB_PRE is blank
+ - JDK-8140329: [TEST_BUG] test FullScreenAfterSplash.java failed because image was not
generated
- JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with
java.net.BindException: Address already in use: NET_Bind
+ - JDK-8147051: StaxEntityResolverWrapper should create StaxXMLInputSource with a
resolver indicator
+ - JDK-8148915: Intermittent failures of bug6400879.java
- JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
- JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black
- JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests
@@ -25,20 +35,29 @@ Live versions of these release notes can be found at:
- JDK-8183543: Aarch64: C2 compilation often fails with "failed
spill-split-recycle sanity check"
- JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
- JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
+ - JDK-8190482: InnocuousThread creation should not require the caller to possess
enableContextClassLoaderOverride
- JDK-8190793: Httpserver does not detect truncated request body
+ - JDK-8196572: Tests ColConvCCMTest.java and MTColConvTest.java fail
- JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit
- JDK-8210058: Algorithmic Italic font leans opposite angle in Printing
+ - JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W
glyphs
- JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
- JDK-8225083: Remove Google certificate that is expiring in December 2021
- JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate
thread
+ - JDK-8231254: (fs) Add test for macOS Catalina changes to protect system software
- JDK-8231438: [macOS] Dark mode for the desktop is not supported
+ - JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina
- JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may
fail
+ - JDK-8235153: [TESTBUG] [macos 10.15]
java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
- JDK-8237499: JFR: Include stack trace in the ThreadStart event
- JDK-8239886: Minimal VM build fails after JDK-8237499
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
- JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
+ - JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
+ - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
Notes on individual issues:
===========================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 41a4f39..682224d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2637,6 +2637,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Dec 17 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b02 (EA)
+- Update release notes for 8u322-b02.
+
* Tue Dec 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b01-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b01 (EA)
- Update release notes for 8u322-b01.
diff --git a/sources b/sources
index fc55bb8..1ea332b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz) =
0a514ce037f3681819f931312c3de38683d3d8a12fc8b038b11466a8ccb89d1828944816a47267f140707c4149ed959a921b03356f3587487988916c658d5197
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz) =
ebf2c1495ad47345fdc9025fbb690e5fe31fdcb08f180020b061a91cd4f9d01f1617f56f1038c3acbdb1dd9e3ade2cdf7f7c3854cf229084ef5b1fc822ab5422
commit be50f32572d549f56dc2b1b39434ee6ebba211ac
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Dec 14 02:19:05 2021 +0000
Update to aarch64-shenandoah-jdk8u322-b01 (EA)
Update release notes for 8u322-b01.
Switch to EA mode.
diff --git a/.gitignore b/.gitignore
index d5493bd..891d2d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -246,3 +246,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index ef9db68..2dac9d2 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,64 @@ 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 8u322 (2022-01-18):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u322
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+
+* Other changes
+ - JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
+ - JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use
incorrect assumption about REXB prefix usage
+ - JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
fails to compile
+ - JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly
failure
+ - JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win
compiler upgrade
+ - JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and
BufferedImage.TYPE_INT_ARGB_PRE is blank
+ - JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with
java.net.BindException: Address already in use: NET_Bind
+ - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
+ - JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black
+ - JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests
+ - JDK-8182036: Load from initializing arraycopy uses wrong memory state
+ - JDK-8183369: RFC unconformity of HttpURLConnection with proxy
+ - JDK-8183543: Aarch64: C2 compilation often fails with "failed
spill-split-recycle sanity check"
+ - JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
+ - JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
+ - JDK-8190793: Httpserver does not detect truncated request body
+ - JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit
+ - JDK-8210058: Algorithmic Italic font leans opposite angle in Printing
+ - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
+ - JDK-8225083: Remove Google certificate that is expiring in December 2021
+ - JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate
thread
+ - JDK-8231438: [macOS] Dark mode for the desktop is not supported
+ - JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may
fail
+ - JDK-8237499: JFR: Include stack trace in the ThreadStart event
+ - JDK-8239886: Minimal VM build fails after JDK-8237499
+ - JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
+ - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
+ - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
+ - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8271434: Removed IdenTrust Root Certificate
+===============================================
+The following root certificate from IdenTrust has been removed from
+the `cacerts` keystore:
+
+Alias Name: identrustdstx3 [jdk]
+Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
+
+JDK-8272535: Removed Google's GlobalSign Root Certificate
+=========================================================
+The following root certificate from Google has been removed from the
+`cacerts` keystore:
+
+Alias Name: globalsignr2ca [jdk]
+Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
+
New in release OpenJDK 8u312 (2021-10-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5275910..41a4f39 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -321,12 +321,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2637,6 +2637,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Dec 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b01 (EA)
+- Update release notes for 8u322-b01.
+- Switch to EA mode.
+
* Mon Dec 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-3
- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
diff --git a/sources b/sources
index 32ce1e2..fc55bb8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz) =
6da9aab9f456336d73cb41755b9e075c43b21ce54fa208d94295aaeef0dce9e4059740efe87458e131b633c3ab3d6f964a5d2407a76e79dd9b080a5416efd7e7
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz) =
0a514ce037f3681819f931312c3de38683d3d8a12fc8b038b11466a8ccb89d1828944816a47267f140707c4149ed959a921b03356f3587487988916c658d5197
commit 0478a68d4063ca222c2a544192dfe376ede17488
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Dec 6 00:42:17 2021 +0000
Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6557c22..5275910 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -86,13 +86,18 @@
%global ppc64be ppc64 ppc64p7
# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-# Set of architectures for which we build debug builds
+# Set of architectures for which we build slowdebug builds
%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures for which we build fastdebug builds
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{debug_arches}
+# Set of architectures which use the Zero assembler port (!jit_arches)
+%global zero_arches %{arm} ppc s390 s390x
+# Set of architectures which run a full bootstrap cycle
+%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
%global systemtap_arches %{jit_arches}
-%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support class data sharing
@@ -137,12 +142,17 @@
%else
%global fastdebug_build %{nil}
%endif
-%global bootstrap_build 1
# If you disable both builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
+%ifarch %{bootstrap_arches}
+%global bootstrap_build true
+%else
+%global bootstrap_build false
+%endif
+
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
@@ -311,7 +321,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2051,19 +2061,23 @@ installdir=%{installoutputdir -- $suffix}
bootinstalldir=boot${installdir}
# Debug builds don't need same targets as release for
-# build speed-up
-maketargets="%{release_targets}"
+# build speed-up. We also avoid bootstrapping these
+# slower builds.
if echo $debugbuild | grep -q "debug" ; then
maketargets="%{debug_targets}"
+ run_bootstrap=false
+else
+ maketargets="%{release_targets}"
+ run_bootstrap=%{bootstrap_build}
fi
-%if %{bootstrap_build}
-buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}"
${debugbuild}
-buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
-%{!?with_artifacts:rm -rf ${bootinstalldir}}
-%else
-buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
-%endif
+if ${run_bootstrap} ; then
+ buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk}
"%{bootstrap_targets}" ${debugbuild}
+ buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ %{!?with_artifacts:rm -rf ${bootinstalldir}}
+else
+ buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}"
${debugbuild}
+fi
# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
@@ -2623,6 +2637,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Dec 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-3
+- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
+
* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
secmod.db file as part of nss
commit b1a7d3ba426353f381b04c725272bf1bb197e02a
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Nov 3 11:43:58 2021 +0100
Use 'sql:' prefix in nss.fips.cfg
Fedora 35 and better no longer ship the legacy
secmod.db file as part of the nss package. Explicitly
tell OpenJDK to use sqlite-based sec mode.
Resolves: RHBZ#2019555
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index afad6cd..6557c22 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1907,7 +1907,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
# Setup nss.fips.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
-sed -i -e "s:@NSS_SECMOD@:/etc/pki/nssdb:g" nss.fips.cfg
%build
# How many CPU's do we have?
@@ -2624,6 +2623,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
+- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
+ secmod.db file as part of nss
+
* Fri Oct 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-1
- Update to aarch64-shenandoah-jdk8u312-b07 (GA)
- Update release notes for 8u312-b07.
diff --git a/nss.fips.cfg.in b/nss.fips.cfg.in
index ead27be..1aff153 100644
--- a/nss.fips.cfg.in
+++ b/nss.fips.cfg.in
@@ -1,6 +1,6 @@
name = NSS-FIPS
nssLibraryDirectory = @NSS_LIBDIR@
-nssSecmodDirectory = @NSS_SECMOD@
+nssSecmodDirectory = sql:/etc/pki/nssdb
nssDbMode = readOnly
nssModule = fips
commit 06afebf8011b6c20c3771e6f98f8f76ea2c0c36c
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Oct 20 01:46:06 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b07 (GA)
Update release notes for 8u312-b07.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index f34cedd..d5493bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -244,3 +244,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 05c1b39..ef9db68 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,33 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u312
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt
+* Security fixes
+ - JDK-8130183, CVE-2021-35588: InnerClasses: VM permits wrong Throw ClassFormatError if
InnerClasses attribute's inner_class_info_index is 0
+ - JDK-8161016: Strange behavior of URLConnection with proxy
+ - JDK-8163326, CVE-2021-35550: Update the default enabled cipher suites preference
+ - JDK-8254967, CVE-2021-35565: com.sun.net.HttpsServer spins on TLS session close
+ - JDK-8263314: Enhance XML Dsig modes
+ - JDK-8265167, CVE-2021-35556: Richer Text Editors
+ - JDK-8265574: Improve handling of sheets
+ - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit
+ - JDK-8265776: Improve Stream handling for SSL
+ - JDK-8266097, CVE-2021-35561: Better hashing support
+ - JDK-8266103: Better specified spec values
+ - JDK-8266109: More Resilient Classloading
+ - JDK-8266115: More Manifest Jar Loading
+ - JDK-8266137, CVE-2021-35564: Improve Keystore integrity
+ - JDK-8266689, CVE-2021-35567: More Constrained Delegation
+ - JDK-8267086: ArrayIndexOutOfBoundsException in
java.security.KeyFactory.generatePublic
+ - JDK-8267712: Better LDAP reference processing
+ - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking
+ - JDK-8267735, CVE-2021-35586: Better BMP support
+ - JDK-8268193: Improve requests of certificates
+ - JDK-8268199: Correct certificate requests
+ - JDK-8268506: More Manifest Digests
+ - JDK-8269618, CVE-2021-35603: Better session identification
+ - JDK-8269624: Enhance method selection support
+ - JDK-8270398: Enhance canonicalization
+ - JDK-8270404: Better canonicalization
* Other changes
- JDK-6847157: java.lang.NullPointerException: HDC for component at
sun.java2d.loops.Blit.Blit
- JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
@@ -29,10 +56,9 @@ Live versions of these release notes can be found at:
- JDK-8134869: AARCH64: GHASH intrinsic is not optimal
- JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
- JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
- - JDK-8161016: Strange behavior of URLConnection with proxy
+ - JDK-8157404: Unable to read certain PKCS12 keystores from SequenceInputStream
- JDK-8166673: The new implementation of Robot.waitForIdle() may hang
- JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders
- - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
- JDK-8194246: JVM crashes when calling getStackTrace if stack contains a method that
is a member of a very large class
- JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails
- JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore
@@ -40,6 +66,7 @@ Live versions of these release notes can be found at:
- JDK-8214418: half-closed SSLEngine status may cause application dead loop
- JDK-8214513: A PKCS12 keystore from Java 8 using custom PBE parameters cannot be read
in Java 11
- JDK-8220786: Create new switch to redirect error reporting output to stdout or
stderr
+ - JDK-8222751:
closed/test/jdk/sun/security/util/DerIndefLenConverter/IndefBerPkcs12.java fail
- JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
- JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces
- JDK-8237495: Java MIDI fails with a dereferenced memory error when asked to send a
raw 0xF7
@@ -49,7 +76,6 @@ Live versions of these release notes can be found at:
- JDK-8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files
- JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
- - JDK-8254967: com.sun.net.HttpsServer spins on TLS session close
- JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
@@ -61,7 +87,9 @@ Live versions of these release notes can be found at:
- JDK-8265978: make test should look for more locations when searching for exit code
- JDK-8266206: Build failure after JDK-8264752 with older GCCs
- JDK-8268103: JNI functions incorrectly return a double after JDK-8265836
+ - JDK-8268965: TCP Connection Reset when connecting simple socket to SSL server
- JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating
handle outside HandleMark
+ - JDK-8269763: The JEditorPane is blank after JDK-8265167
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
- JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu
usage in containers
- JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short
@@ -72,6 +100,34 @@ Live versions of these release notes can be found at:
- JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path
contains colon
- JDK-8272214: [8u] Build failure after backport of JDK-8248901
- JDK-8272714: [8u] Build failure after backport of JDK-8248901 with MSVC 2013
+* Shenandoah
+ - [backport] JDK-8269661: JNI_GetStringCritical does not lock char array
+ - Re-cast JNI critical strings patch to be Shenandoah-specific
+
+Notes on individual issues:
+===========================
+
+core-libs/java.net:
+
+JDK-8164200: Modified HttpURLConnection behavior when no suitable proxy is found
+================================================================================
+The behavior of HttpURLConnection when using a ProxySelector has been
+modified with this JDK release. HttpURLConnection used to fall back to
+a DIRECT connection attempt if the configured proxy(s) failed to make
+a connection. This release introduces a change whereby no DIRECT
+connection will be attempted in such a scenario. Instead, the
+HttpURLConnection.connect() method will fail and throw an IOException
+which occurred from the last proxy tested.
+
+security-libs/javax.net.ssl:
+
+JDK-8219551: Updated the Default Enabled Cipher Suites Preference
+=================================================================
+The preference of the default enabled cipher suites has been
+changed. The compatibility impact should be minimal. If needed,
+applications can customize the enabled cipher suites and the
+preference. For more details, refer to the SunJSSE provider
+documentation and the JSSE Reference Guide documentation.
New in release OpenJDK 8u302 (2021-07-20):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 16c2d89..afad6cd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,12 +311,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2624,6 +2624,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Oct 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-1
+- Update to aarch64-shenandoah-jdk8u312-b07 (GA)
+- Update release notes for 8u312-b07.
+- Switch to GA mode for final release.
+
* Thu Oct 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
- Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
diff --git a/sources b/sources
index 7c2359c..32ce1e2 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz) =
41aa7cfe6946f9b88e8ae66716e8db204a401f5ded43037c54c071b7a895e08df389d6a7ae5961da00c309a6802c88197cd59ed8e5e52a466c997a680f7f425f
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz) =
6da9aab9f456336d73cb41755b9e075c43b21ce54fa208d94295aaeef0dce9e4059740efe87458e131b633c3ab3d6f964a5d2407a76e79dd9b080a5416efd7e7
commit 38ede77603423977c87a2c9298a9993fa00d9545
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Oct 10 22:01:08 2021 +0100
Add FIPS patch to allow plain key import.
Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 35a55bd..16c2d89 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1315,6 +1315,8 @@ Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
# RH1996182: Login to the NSS software token in FIPS mode
Patch1008: rh1996182-login_to_nss_software_token.patch
+# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to
false
+Patch1011: rh1991003-enable_fips_keys_import.patch
#############################################
#
@@ -1844,6 +1846,7 @@ sh %{SOURCE12}
%patch1006
%patch1007
%patch1008
+%patch1011
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2621,6 +2624,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Oct 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
+- Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
+
+* Thu Oct 07 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
+- Add patch to allow plain key import.
+
* Thu Sep 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b05 (EA)
- Update release notes for 8u312-b05.
diff --git a/rh1991003-enable_fips_keys_import.patch
b/rh1991003-enable_fips_keys_import.patch
new file mode 100644
index 0000000..028769d
--- /dev/null
+++ b/rh1991003-enable_fips_keys_import.patch
@@ -0,0 +1,583 @@
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -78,6 +78,10 @@
+ public boolean isSystemFipsEnabled() {
+ return SystemConfigurator.isSystemFipsEnabled();
+ }
++ @Override
++ public boolean isPlainKeySupportEnabled() {
++ return SystemConfigurator.isPlainKeySupportEnabled();
++ }
+ });
+
+ // doPrivileged here because there are multiple
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -55,6 +55,7 @@
+ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
+
+ private static boolean systemFipsEnabled = false;
++ private static boolean plainKeySupportEnabled = false;
+
+ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
+
+@@ -149,6 +150,16 @@
+ }
+ loadedProps = true;
+ systemFipsEnabled = true;
++ String plainKeySupport =
System.getProperty("com.redhat.fips.plainKeySupport",
++ "true");
++ plainKeySupportEnabled = !"false".equals(plainKeySupport);
++ if (sdebug != null) {
++ if (plainKeySupportEnabled) {
++ sdebug.println("FIPS support enabled with plain key
support");
++ } else {
++ sdebug.println("FIPS support enabled without plain key
support");
++ }
++ }
+ }
+ } catch (Exception e) {
+ if (sdebug != null) {
+@@ -176,6 +187,19 @@
+ return systemFipsEnabled;
+ }
+
++ /**
++ * Returns {@code true} if system FIPS alignment is enabled
++ * and plain key support is allowed. Plain key support is
++ * enabled by default but can be disabled with
++ * {@code -Dcom.redhat.fips.plainKeySupport=false}.
++ *
++ * @return a boolean indicating whether plain key support
++ * should be enabled.
++ */
++ static boolean isPlainKeySupportEnabled() {
++ return plainKeySupportEnabled;
++ }
++
+ /*
+ * OpenJDK FIPS mode will be enabled only if the com.redhat.fips
+ * system property is true (default) and the system is in FIPS mode.
+diff --git
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+---
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
++++ openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+@@ -27,4 +27,5 @@
+
+ public interface JavaSecuritySystemConfiguratorAccess {
+ boolean isSystemFipsEnabled();
++ boolean isPlainKeySupportEnabled();
+ }
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+@@ -0,0 +1,290 @@
++/*
++ * Copyright (c) 2021, Red Hat, Inc.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit
www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++package sun.security.pkcs11;
++
++import java.math.BigInteger;
++import java.security.KeyFactory;
++import java.security.Provider;
++import java.security.Security;
++import java.util.HashMap;
++import java.util.Map;
++import java.util.concurrent.locks.ReentrantLock;
++
++import javax.crypto.Cipher;
++import javax.crypto.spec.DHPrivateKeySpec;
++import javax.crypto.spec.IvParameterSpec;
++
++import sun.security.jca.JCAUtil;
++import sun.security.pkcs11.TemplateManager;
++import sun.security.pkcs11.wrapper.CK_ATTRIBUTE;
++import sun.security.pkcs11.wrapper.CK_MECHANISM;
++import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
++import sun.security.pkcs11.wrapper.PKCS11Exception;
++import sun.security.rsa.RSAUtil.KeyType;
++import sun.security.util.Debug;
++import sun.security.util.ECUtil;
++
++final class FIPSKeyImporter {
++
++ private static final Debug debug =
++ Debug.getInstance("sunpkcs11");
++
++ private static P11Key importerKey = null;
++ private static final ReentrantLock importerKeyLock = new ReentrantLock();
++ private static CK_MECHANISM importerKeyMechanism = null;
++ private static Cipher importerCipher = null;
++
++ private static Provider sunECProvider = null;
++ private static final ReentrantLock sunECProviderLock = new ReentrantLock();
++
++ private static KeyFactory DHKF = null;
++ private static final ReentrantLock DHKFLock = new ReentrantLock();
++
++ static Long importKey(SunPKCS11 sunPKCS11, long hSession, CK_ATTRIBUTE[]
attributes)
++ throws PKCS11Exception {
++ long keyID = -1;
++ Token token = sunPKCS11.getToken();
++ if (debug != null) {
++ debug.println("Private or Secret key will be imported in" +
++ " system FIPS mode.");
++ }
++ if (importerKey == null) {
++ importerKeyLock.lock();
++ try {
++ if (importerKey == null) {
++ if (importerKeyMechanism == null) {
++ // Importer Key creation has not been tried yet. Try it.
++ createImporterKey(token);
++ }
++ if (importerKey == null || importerCipher == null) {
++ if (debug != null) {
++ debug.println("Importer Key could not be" +
++ " generated.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ if (debug != null) {
++ debug.println("Importer Key successfully" +
++ " generated.");
++ }
++ }
++ } finally {
++ importerKeyLock.unlock();
++ }
++ }
++ long importerKeyID = importerKey.getKeyID();
++ try {
++ byte[] keyBytes = null;
++ byte[] encKeyBytes = null;
++ long keyClass = 0L;
++ long keyType = 0L;
++ Map<Long, CK_ATTRIBUTE> attrsMap = new HashMap<>();
++ for (CK_ATTRIBUTE attr : attributes) {
++ if (attr.type == CKA_CLASS) {
++ keyClass = attr.getLong();
++ } else if (attr.type == CKA_KEY_TYPE) {
++ keyType = attr.getLong();
++ }
++ attrsMap.put(attr.type, attr);
++ }
++ BigInteger v = null;
++ if (keyClass == CKO_PRIVATE_KEY) {
++ if (keyType == CKK_RSA) {
++ if (debug != null) {
++ debug.println("Importing an RSA private key...");
++ }
++ keyBytes = sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(
++ KeyType.RSA,
++ null,
++ ((v = attrsMap.get(CKA_MODULUS).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PUBLIC_EXPONENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIVATE_EXPONENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME_1).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME_2).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_EXPONENT_1).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_EXPONENT_2).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_COEFFICIENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO
++ ).getEncoded();
++ } else if (keyType == CKK_DSA) {
++ if (debug != null) {
++ debug.println("Importing a DSA private key...");
++ }
++ keyBytes = new sun.security.provider.DSAPrivateKey(
++ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_SUBPRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO
++ ).getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else if (keyType == CKK_EC) {
++ if (debug != null) {
++ debug.println("Importing an EC private key...");
++ }
++ if (sunECProvider == null) {
++ sunECProviderLock.lock();
++ try {
++ if (sunECProvider == null) {
++ sunECProvider =
Security.getProvider("SunEC");
++ }
++ } finally {
++ sunECProviderLock.unlock();
++ }
++ }
++ keyBytes = P11ECUtil.generateECPrivateKey(
++ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ECUtil.getECParameterSpec(sunECProvider,
++ attrsMap.get(CKA_EC_PARAMS).getByteArray()))
++ .getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else if (keyType == CKK_DH) {
++ if (debug != null) {
++ debug.println("Importing a Diffie-Hellman private
key...");
++ }
++ if (DHKF == null) {
++ DHKFLock.lock();
++ try {
++ if (DHKF == null) {
++ DHKF = KeyFactory.getInstance(
++ "DH", P11Util.getSunJceProvider());
++ }
++ } finally {
++ DHKFLock.unlock();
++ }
++ }
++ DHPrivateKeySpec spec = new DHPrivateKeySpec
++ (((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO);
++ keyBytes = DHKF.generatePrivate(spec).getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else {
++ if (debug != null) {
++ debug.println("Unrecognized private key type.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ } else if (keyClass == CKO_SECRET_KEY) {
++ if (debug != null) {
++ debug.println("Importing a secret key...");
++ }
++ keyBytes = attrsMap.get(CKA_VALUE).getByteArray();
++ }
++ if (keyBytes == null || keyBytes.length == 0) {
++ if (debug != null) {
++ debug.println("Private or secret key plain bytes could" +
++ " not be obtained. Import failed.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ importerCipher.init(Cipher.ENCRYPT_MODE, importerKey,
++ new IvParameterSpec((byte[])importerKeyMechanism.pParameter),
++ null);
++ attributes = new CK_ATTRIBUTE[attrsMap.size()];
++ attrsMap.values().toArray(attributes);
++ encKeyBytes = importerCipher.doFinal(keyBytes);
++ attributes = token.getAttributes(TemplateManager.O_IMPORT,
++ keyClass, keyType, attributes);
++ keyID = token.p11.C_UnwrapKey(hSession,
++ importerKeyMechanism, importerKeyID, encKeyBytes, attributes);
++ if (debug != null) {
++ debug.println("Imported key ID: " + keyID);
++ }
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ } finally {
++ importerKey.releaseKeyID();
++ }
++ return Long.valueOf(keyID);
++ }
++
++ private static void createImporterKey(Token token) {
++ if (debug != null) {
++ debug.println("Generating Importer Key...");
++ }
++ byte[] iv = new byte[16];
++ JCAUtil.getSecureRandom().nextBytes(iv);
++ importerKeyMechanism = new CK_MECHANISM(CKM_AES_CBC_PAD, iv);
++ try {
++ CK_ATTRIBUTE[] attributes = token.getAttributes(TemplateManager.O_GENERATE,
++ CKO_SECRET_KEY, CKK_AES, new CK_ATTRIBUTE[] {
++ new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY),
++ new CK_ATTRIBUTE(CKA_VALUE_LEN, 256 >> 3)});
++ Session s = null;
++ try {
++ s = token.getObjSession();
++ long keyID = token.p11.C_GenerateKey(
++ s.id(), new CK_MECHANISM(CKM_AES_KEY_GEN),
++ attributes);
++ if (debug != null) {
++ debug.println("Importer Key ID: " + keyID);
++ }
++ importerKey = (P11Key)P11Key.secretKey(s, keyID, "AES",
++ 256 >> 3, null);
++ } catch (PKCS11Exception e) {
++ // best effort
++ } finally {
++ token.releaseSession(s);
++ }
++ if (importerKey != null) {
++ importerCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
++ }
++ } catch (Throwable t) {
++ // best effort
++ importerKey = null;
++ importerCipher = null;
++ // importerKeyMechanism value is kept initialized to indicate that
++ // Importer Key creation has been tried and failed.
++ }
++ }
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+@@ -26,6 +26,9 @@
+ package sun.security.pkcs11;
+
+ import java.io.*;
++import java.lang.invoke.MethodHandle;
++import java.lang.invoke.MethodHandles;
++import java.lang.invoke.MethodType;
+ import java.util.*;
+
+ import java.security.*;
+@@ -63,6 +66,26 @@
+ private static final boolean systemFipsEnabled = SharedSecrets
+ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
+
++ private static final boolean plainKeySupportEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
++
++ private static final MethodHandle fipsImportKey;
++ static {
++ MethodHandle fipsImportKeyTmp = null;
++ if (plainKeySupportEnabled) {
++ try {
++ fipsImportKeyTmp = MethodHandles.lookup().findStatic(
++ FIPSKeyImporter.class, "importKey",
++ MethodType.methodType(Long.class, SunPKCS11.class,
++ long.class, CK_ATTRIBUTE[].class));
++ } catch (Throwable t) {
++ throw new SecurityException("FIPS key importer initialization"
+
++ " failed", t);
++ }
++ }
++ fipsImportKey = fipsImportKeyTmp;
++ }
++
+ private static final long serialVersionUID = -1354835039035306505L;
+
+ static final Debug debug = Debug.getInstance("sunpkcs11");
+@@ -314,10 +337,15 @@
+ // request multithreaded access first
+ initArgs.flags = CKF_OS_LOCKING_OK;
+ PKCS11 tmpPKCS11;
++ MethodHandle fipsKeyImporter = null;
++ if (plainKeySupportEnabled) {
++ fipsKeyImporter = MethodHandles.insertArguments(
++ fipsImportKey, 0, this);
++ }
+ try {
+ tmpPKCS11 = PKCS11.getInstance(
+ library, functionList, initArgs,
+- config.getOmitInitialize());
++ config.getOmitInitialize(), fipsKeyImporter);
+ } catch (PKCS11Exception e) {
+ if (debug != null) {
+ debug.println("Multi-threaded initialization failed: " +
e);
+@@ -333,7 +361,7 @@
+ initArgs.flags = 0;
+ }
+ tmpPKCS11 = PKCS11.getInstance(library,
+- functionList, initArgs, config.getOmitInitialize());
++ functionList, initArgs, config.getOmitInitialize(),
fipsKeyImporter);
+ }
+ p11 = tmpPKCS11;
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+@@ -49,6 +49,7 @@
+
+ import java.io.File;
+ import java.io.IOException;
++import java.lang.invoke.MethodHandle;
+ import java.util.*;
+
+ import java.security.AccessController;
+@@ -147,16 +148,28 @@
+
+ public static synchronized PKCS11 getInstance(String pkcs11ModulePath,
+ String functionList, CK_C_INITIALIZE_ARGS pInitArgs,
+- boolean omitInitialize) throws IOException, PKCS11Exception {
++ boolean omitInitialize, MethodHandle fipsKeyImporter)
++ throws IOException, PKCS11Exception {
+ // we may only call C_Initialize once per native .so/.dll
+ // so keep a cache using the (non-canonicalized!) path
+ PKCS11 pkcs11 = moduleMap.get(pkcs11ModulePath);
+ if (pkcs11 == null) {
++ boolean nssFipsMode = fipsKeyImporter != null;
+ if ((pInitArgs != null)
+ && ((pInitArgs.flags & CKF_OS_LOCKING_OK) != 0)) {
+- pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
++ if (nssFipsMode) {
++ pkcs11 = new FIPSPKCS11(pkcs11ModulePath, functionList,
++ fipsKeyImporter);
++ } else {
++ pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
++ }
+ } else {
+- pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
++ if (nssFipsMode) {
++ pkcs11 = new SynchronizedFIPSPKCS11(pkcs11ModulePath,
++ functionList, fipsKeyImporter);
++ } else {
++ pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
++ }
+ }
+ if (omitInitialize == false) {
+ try {
+@@ -1905,4 +1918,69 @@
+ super.C_GenerateRandom(hSession, randomData);
+ }
+ }
++
++// PKCS11 subclass that allows using plain private or secret keys in
++// FIPS-configured NSS Software Tokens. Only used when System FIPS
++// is enabled.
++static class FIPSPKCS11 extends PKCS11 {
++ private MethodHandle fipsKeyImporter;
++ FIPSPKCS11(String pkcs11ModulePath, String functionListName,
++ MethodHandle fipsKeyImporter) throws IOException {
++ super(pkcs11ModulePath, functionListName);
++ this.fipsKeyImporter = fipsKeyImporter;
++ }
++
++ public synchronized long C_CreateObject(long hSession,
++ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
++ // Creating sensitive key objects from plain key material in a
++ // FIPS-configured NSS Software Token is not allowed. We apply
++ // a key-unwrapping scheme to achieve so.
++ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
++ try {
++ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
++ .longValue();
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ }
++ return super.C_CreateObject(hSession, pTemplate);
++ }
+ }
++
++// FIPSPKCS11 synchronized counterpart.
++static class SynchronizedFIPSPKCS11 extends SynchronizedPKCS11 {
++ private MethodHandle fipsKeyImporter;
++ SynchronizedFIPSPKCS11(String pkcs11ModulePath, String functionListName,
++ MethodHandle fipsKeyImporter) throws IOException {
++ super(pkcs11ModulePath, functionListName);
++ this.fipsKeyImporter = fipsKeyImporter;
++ }
++
++ public synchronized long C_CreateObject(long hSession,
++ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
++ // See FIPSPKCS11::C_CreateObject.
++ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
++ try {
++ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
++ .longValue();
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ }
++ return super.C_CreateObject(hSession, pTemplate);
++ }
++}
++
++private static class FIPSPKCS11Helper {
++ static boolean isSensitiveObject(CK_ATTRIBUTE[] pTemplate) {
++ for (CK_ATTRIBUTE attr : pTemplate) {
++ if (attr.type == CKA_CLASS &&
++ (attr.getLong() == CKO_PRIVATE_KEY ||
++ attr.getLong() == CKO_SECRET_KEY)) {
++ return true;
++ }
++ }
++ return false;
++ }
++}
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+@@ -33,8 +33,13 @@
+
+ import javax.net.ssl.*;
+
++import sun.misc.SharedSecrets;
++
+ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi {
+
++ private static final boolean plainKeySupportEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
++
+ X509ExtendedKeyManager keyManager;
+ boolean isInitialized;
+
+@@ -62,7 +67,8 @@
+ KeyStoreException, NoSuchAlgorithmException,
+ UnrecoverableKeyException {
+ if ((ks != null) && SunJSSE.isFIPS()) {
+- if (ks.getProvider() != SunJSSE.cryptoProvider) {
++ if (ks.getProvider() != SunJSSE.cryptoProvider &&
++ !plainKeySupportEnabled) {
+ throw new KeyStoreException("FIPS mode: KeyStore must be
"
+ + "from provider " +
SunJSSE.cryptoProvider.getName());
+ }
+@@ -91,8 +97,8 @@
+ keyManager = new X509KeyManagerImpl(
+ Collections.<Builder>emptyList());
+ } else {
+- if (SunJSSE.isFIPS() &&
+- (ks.getProvider() != SunJSSE.cryptoProvider)) {
++ if (SunJSSE.isFIPS() && (ks.getProvider() !=
SunJSSE.cryptoProvider)
++ && !plainKeySupportEnabled) {
+ throw new KeyStoreException(
+ "FIPS mode: KeyStore must be " +
+ "from provider " + SunJSSE.cryptoProvider.getName());
commit afeb38682d63bf513aca64685b0b6938a86918ef
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Oct 9 23:21:05 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b05 (EA)
Update release notes for 8u312-b05.
diff --git a/.gitignore b/.gitignore
index 402cdf4..f34cedd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -243,3 +243,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 832ad01..05c1b39 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,9 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6847157: java.lang.NullPointerException: HDC for component at
sun.java2d.loops.Blit.Blit
- JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
+ - JDK-7188942: Remove support of pbuffers in OGL Java2d pipeline
- JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime
+ - JDK-8022323: [JavaSecurityScanner] review package com.sun.management.* Native methods
should be private
- JDK-8027154: [TESTBUG] Test
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
- JDK-8035001: TEST_BUG: the retry logic in RMID.start() should check that the
subprocess hasn't terminated
- JDK-8035424: (reflect) Performance problem in
sun.reflect.generics.parser.SignatureParser
@@ -23,6 +25,8 @@ Live versions of these release notes can be found at:
- JDK-8079891: Store configure log in $BUILD/configure.log
- JDK-8080082: configure fails if you create an empty directory and then run configure
from it
- JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass
base: 0x0000000000000000, Narrow klass shift: 3' missing
+ - JDK-8131062: aarch64: add support for GHASH acceleration
+ - JDK-8134869: AARCH64: GHASH intrinsic is not optimal
- JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
- JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
- JDK-8161016: Strange behavior of URLConnection with proxy
@@ -59,12 +63,15 @@ Live versions of these release notes can be found at:
- JDK-8268103: JNI functions incorrectly return a double after JDK-8265836
- JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating
handle outside HandleMark
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
+ - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu
usage in containers
- JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short
- JDK-8269882: stack-use-after-scope in NewObjectA
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
- JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm
Setup
- JDK-8271466: StackGap test fails on aarch64 due to "-m64"
+ - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path
contains colon
- JDK-8272214: [8u] Build failure after backport of JDK-8248901
+ - JDK-8272714: [8u] Build failure after backport of JDK-8248901 with MSVC 2013
New in release OpenJDK 8u302 (2021-07-20):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 149ca75..35a55bd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2621,6 +2621,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Sep 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b05 (EA)
+- Update release notes for 8u312-b05.
+
* Mon Sep 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.2.ea
- Reduce disk footprint by removing build artifacts by default.
diff --git a/sources b/sources
index 36c8460..7c2359c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz) =
7553ff5b007150a3361be355e210ae8394926b61aeb1921c67e839710d8a57a639060725b589b7c62ef7b67936239452b438b68e08b38be4c74a3f636f7e9823
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz) =
41aa7cfe6946f9b88e8ae66716e8db204a401f5ded43037c54c071b7a895e08df389d6a7ae5961da00c309a6802c88197cd59ed8e5e52a466c997a680f7f425f
commit 92642a8a9641a89fdbf0dd620f25258bb1d32f03
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Oct 1 16:29:42 2021 +0100
Reduce disk footprint by removing build artifacts by default.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 22a6971..149ca75 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -22,6 +22,8 @@
%bcond_without slowdebug
# Enable release builds by default on relevant arches.
%bcond_without release
+# Remove build artifacts by default
+%bcond_with artifacts
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
@@ -309,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -343,6 +345,7 @@
%global jdkimage j2sdk-image
# output dir stub
%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
+%define installoutputdir() %{expand:install/jdk8.install%{?1}}
# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
# main id and dir of this jdk
@@ -1045,8 +1048,8 @@ exit 0
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
-#javadoc is in jdk8 noarch, so also licnese file must be treated like it
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+#javadoc is in jdk8 noarch, so also license file must be treated like it
+%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java
@@ -1057,8 +1060,8 @@ exit 0
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
-#javadoc is in jdk8 noarch, so also licnese file must be treated like it
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+#javadoc is in jdk8 noarch, so also license file must be treated like it
+%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java-zip
@@ -1938,9 +1941,10 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
function buildjdk() {
local outputdir=${1}
- local buildjdk=${2}
- local maketargets=${3}
- local debuglevel=${4}
+ local installdir=${2}
+ local buildjdk=${3}
+ local maketargets=${4}
+ local debuglevel=${5}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
@@ -1950,7 +1954,7 @@ function buildjdk() {
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
- mkdir -p ${outputdir}
+ mkdir -p ${outputdir} ${installdir}
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
@@ -2011,6 +2015,23 @@ function buildjdk() {
find images/%{jdkimage}/bin/ -exec chmod +x {} \;
popd >& /dev/null
+
+ echo "Installing build from ${outputdir} to ${installdir}..."
+ echo "Installing images..."
+ mv ${outputdir}/images ${installdir}
+ if [ -d ${outputdir}/bundles ] ; then
+ echo "Installing bundles...";
+ mv ${outputdir}/bundles ${installdir} ;
+ fi
+ if [ -d ${outputdir}/docs ] ; then
+ echo "Installing docs...";
+ mv ${outputdir}/docs ${installdir} ;
+ fi
+
+%if !%{with artifacts}
+ echo "Removing output directory...";
+ rm -rf ${outputdir}
+%endif
}
for suffix in %{build_loop} ; do
@@ -2024,6 +2045,8 @@ fi
systemjdk=/usr/lib/jvm/java-openjdk
builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
+installdir=%{installoutputdir -- $suffix}
+bootinstalldir=boot${installdir}
# Debug builds don't need same targets as release for
# build speed-up
@@ -2033,15 +2056,15 @@ if echo $debugbuild | grep -q "debug" ; then
fi
%if %{bootstrap_build}
-buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
-buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}"
${debugbuild}
-rm -rf ${bootbuilddir}
+buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}"
${debugbuild}
+buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+%{!?with_artifacts:rm -rf ${bootinstalldir}}
%else
-buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
%endif
# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
@@ -2067,7 +2090,7 @@ done
# We test debug first as it will give better diagnostics on a crash
for suffix in %{build_loop} ; do
-export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -2182,7 +2205,7 @@ STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
# Install the jdk
-pushd %{buildoutputdir -- $suffix}/images/%{jdkimage}
+pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
# Install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
@@ -2249,9 +2272,9 @@ popd
if ! echo $suffix | grep -q "debug" ; then
# Install Javadoc documentation
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
- cp -a %{buildoutputdir -- $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
+ cp -a %{installoutputdir -- $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" |
sed s/slowdebug/debug/`
- cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+ cp -a %{installoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
fi
# Install release notes
@@ -2598,6 +2621,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Sep 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.2.ea
+- Reduce disk footprint by removing build artifacts by default.
+
* Sun Sep 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b04 (EA)
- Update release notes for 8u312-b04.
commit 5e8cea34ec67303a43c0d0bd3a57e05a93705b0a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Sep 26 20:02:53 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b04 (EA)
Update release notes for 8u312-b04.
diff --git a/.gitignore b/.gitignore
index 5ddd4a9..402cdf4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -242,3 +242,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 9052cf4..832ad01 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,7 @@ Live versions of these release notes can be found at:
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt
* Other changes
+ - JDK-6847157: java.lang.NullPointerException: HDC for component at
sun.java2d.loops.Blit.Blit
- JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
- JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime
- JDK-8027154: [TESTBUG] Test
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
@@ -24,8 +25,11 @@ Live versions of these release notes can be found at:
- JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass
base: 0x0000000000000000, Narrow klass shift: 3' missing
- JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
- JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
+ - JDK-8161016: Strange behavior of URLConnection with proxy
- JDK-8166673: The new implementation of Robot.waitForIdle() may hang
- JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders
+ - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
+ - JDK-8194246: JVM crashes when calling getStackTrace if stack contains a method that
is a member of a very large class
- JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails
- JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore
- JDK-8206189: sun/security/pkcs12/EmptyPassword.java fails with Sequence tag error
@@ -38,6 +42,7 @@ Live versions of these release notes can be found at:
- JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
- JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
+ - JDK-8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files
- JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
- JDK-8254967: com.sun.net.HttpsServer spins on TLS session close
@@ -45,12 +50,17 @@ Live versions of these release notes can be found at:
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
- JDK-8263311: Watch registry changes for remote printers update instead of polling
+ - JDK-8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers:
getLoggerNames() returned unexpected loggers"
- JDK-8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M
- JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
- JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a
container
- JDK-8265978: make test should look for more locations when searching for exit code
- JDK-8266206: Build failure after JDK-8264752 with older GCCs
+ - JDK-8268103: JNI functions incorrectly return a double after JDK-8265836
+ - JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating
handle outside HandleMark
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
+ - JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short
+ - JDK-8269882: stack-use-after-scope in NewObjectA
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
- JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm
Setup
- JDK-8271466: StackGap test fails on aarch64 due to "-m64"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index dfda03b..22a6971 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2598,7 +2598,11 @@ cjc.mainProgram(args)
%endif
%changelog
-* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
+* Sun Sep 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b04 (EA)
+- Update release notes for 8u312-b04.
+
+* Tue Sep 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
- Add patch to login to the NSS software token when in FIPS mode.
* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
@@ -2727,7 +2731,7 @@ cjc.mainProgram(args)
- removed patch1 rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch and patch3
rh1648644-java_access_bridge_privileged_security.patch
- removal of accessibility{,-slowdebug,-fastdebug} subpackages
- no longer creating symlinks of %%{_libdir}/java-atk-wrapper/libatk-wrapper.so.0
libatk-wrapper.so and %%{_libdir}/java-atk-wrapper/java-atk-wrapper.jar
java-atk-wrapper.jar
-- no longer creating %%{_jvmdir}/%{jredir -- $suffix}/lib/accessibility.properties with
content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
+- no longer creating %%{_jvmdir}/%%{jredir -- $suffix}/lib/accessibility.properties with
content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
- removal of accessibility{,-slowdebug,-fastdebug} subpackages files sections
* Mon Mar 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b06-0.0.ea
diff --git a/sources b/sources
index fc6c611..36c8460 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz) =
e6a9dd82d3c76920b03124f9cf261f68f520bea9368427b850adfb36385cd717cfe6a5f684b6f1653d4d79c9863e45e4b62907567446e8a5c68587a3a8bdef10
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz) =
7553ff5b007150a3361be355e210ae8394926b61aeb1921c67e839710d8a57a639060725b589b7c62ef7b67936239452b438b68e08b38be4c74a3f636f7e9823
commit aa2c8f31b92b74e2eca59bdcf1acb5b92792764b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Sep 14 02:59:18 2021 +0100
Add patch to login to the NSS software token when in FIPS mode.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3d857b9..dfda03b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1310,6 +1310,8 @@ Patch1005: rh1906862-always_initialise_configurator_access.patch
# RH1929465: Improve system FIPS detection
Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
+# RH1996182: Login to the NSS software token in FIPS mode
+Patch1008: rh1996182-login_to_nss_software_token.patch
#############################################
#
@@ -1838,6 +1840,7 @@ sh %{SOURCE12}
%patch1005
%patch1006
%patch1007
+%patch1008
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2595,6 +2598,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
+- Add patch to login to the NSS software token when in FIPS mode.
+
* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b03 (EA)
- Update release notes for 8u312-b03.
diff --git a/rh1996182-login_to_nss_software_token.patch
b/rh1996182-login_to_nss_software_token.patch
new file mode 100644
index 0000000..341e092
--- /dev/null
+++ b/rh1996182-login_to_nss_software_token.patch
@@ -0,0 +1,55 @@
+# HG changeset patch
+# User mbalao
+# Date 1630103180 -3600
+# Fri Aug 27 23:26:20 2021 +0100
+# Node ID b3bd3119fab9bc5adfd7073377aca12bb1af80b3
+# Parent c90394a76ee02a689f95199559d5724824b4b25e
+RH1996182: Login to the NSS Software Token in FIPS Mode
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+@@ -42,6 +42,8 @@
+ import javax.security.auth.callback.PasswordCallback;
+ import javax.security.auth.callback.TextOutputCallback;
+
++import sun.misc.SharedSecrets;
++
+ import sun.security.util.Debug;
+ import sun.security.util.ResourcesMgr;
+
+@@ -58,6 +60,9 @@
+ */
+ public final class SunPKCS11 extends AuthProvider {
+
++ private static final boolean systemFipsEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
++
+ private static final long serialVersionUID = -1354835039035306505L;
+
+ static final Debug debug = Debug.getInstance("sunpkcs11");
+@@ -368,6 +373,24 @@
+ if (nssModule != null) {
+ nssModule.setProvider(this);
+ }
++ if (systemFipsEnabled) {
++ // The NSS Software Token in FIPS 140-2 mode requires a user
++ // login for most operations. See sftk_fipsCheck. The NSS DB
++ // (/etc/pki/nssdb) PIN is empty.
++ Session session = null;
++ try {
++ session = token.getOpSession();
++ p11.C_Login(session.id(), CKU_USER, new char[] {});
++ } catch (PKCS11Exception p11e) {
++ if (debug != null) {
++ debug.println("Error during token login: " +
++ p11e.getMessage());
++ }
++ throw p11e;
++ } finally {
++ token.releaseSession(session);
++ }
++ }
+ } catch (Exception e) {
+ if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
+ throw new UnsupportedOperationException
commit 0cb1fbdb0bdab3fca4fd43433c0d0c677ceab770
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Sep 13 12:28:45 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b03 (EA)
Update release notes for 8u312-b03.
diff --git a/.gitignore b/.gitignore
index 5d0524d..5ddd4a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -241,3 +241,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 3cf6136..9052cf4 100644
--- a/NEWS
+++ b/NEWS
@@ -34,21 +34,27 @@ Live versions of these release notes can be found at:
- JDK-8220786: Create new switch to redirect error reporting output to stdout or
stderr
- JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
- JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces
+ - JDK-8237495: Java MIDI fails with a dereferenced memory error when asked to send a
raw 0xF7
- JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
- JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
- JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
+ - JDK-8254967: com.sun.net.HttpsServer spins on TLS session close
- JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
- JDK-8263311: Watch registry changes for remote printers update instead of polling
+ - JDK-8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M
- JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
- JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a
container
- JDK-8265978: make test should look for more locations when searching for exit code
+ - JDK-8266206: Build failure after JDK-8264752 with older GCCs
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
+ - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm
Setup
- JDK-8271466: StackGap test fails on aarch64 due to "-m64"
+ - JDK-8272214: [8u] Build failure after backport of JDK-8248901
New in release OpenJDK 8u302 (2021-07-20):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c545df3..3d857b9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2595,6 +2595,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b03 (EA)
+- Update release notes for 8u312-b03.
+
* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b02-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b02 (EA)
- Update release notes for 8u312-b02.
diff --git a/sources b/sources
index c2c873f..fc6c611 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz) =
fcff36d3c837de6770eb32ac1ff514278ec92feb6311aa0b8150d9da4b917494899993b498ffd3ac55c7ddbd22860105af0ffcb30b3c43ec702847650098c349
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz) =
e6a9dd82d3c76920b03124f9cf261f68f520bea9368427b850adfb36385cd717cfe6a5f684b6f1653d4d79c9863e45e4b62907567446e8a5c68587a3a8bdef10
commit 12c54a64a11f9620ab5d31b3773f15156f442dba
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Sep 10 05:30:49 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b02 (EA)
Update release notes for 8u312-b02.
diff --git a/.gitignore b/.gitignore
index 4252ee4..5d0524d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -240,3 +240,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 947e72a..3cf6136 100644
--- a/NEWS
+++ b/NEWS
@@ -37,12 +37,14 @@ Live versions of these release notes can be found at:
- JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
- JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
+ - JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
- JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
- JDK-8263311: Watch registry changes for remote printers update instead of polling
- JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
+ - JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a
container
- JDK-8265978: make test should look for more locations when searching for exit code
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 294ed12..c545df3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2595,6 +2595,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b02 (EA)
+- Update release notes for 8u312-b02.
+
* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
- Port FIPS system detection support to OpenJDK 8u
- Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
diff --git a/sources b/sources
index 743cecf..c2c873f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz) =
ddce8d47e12e4de078004d981d4c89538738a7cb201b7e7f820f51a39aac2c00040e3ba9c6ee92ec10d10e5607f420a4c3e4d059e05a8d9930e3f71e0917c84f
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz) =
fcff36d3c837de6770eb32ac1ff514278ec92feb6311aa0b8150d9da4b917494899993b498ffd3ac55c7ddbd22860105af0ffcb30b3c43ec702847650098c349
commit d57e76505362030867d295ab1f4c36a2664de233
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Sep 4 02:14:31 2021 +0100
Detect FIPS using SECMOD_GetSystemFIPSEnabled in the new libsystemconf JDK library.
Port FIPS system detection support to OpenJDK 8u
Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
Remove unneeded Requires on NSS as it will now be dynamically linked and detected by
RPM.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a31c545..294ed12 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -352,7 +352,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
-%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global _publiclibs
libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
%if %is_system_jdk
%global __provides_exclude ^(%{_privatelibs})$
@@ -805,6 +805,7 @@ exit 0
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so
@@ -1112,8 +1113,6 @@ Requires: copy-jdk-configs >= 4.0
OrderWithRequires: copy-jdk-configs
# for printing support
Requires: cups-libs
-# for FIPS PKCS11 provider
-Requires: nss
# Post requires alternatives to install tool alternatives
Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
@@ -1308,6 +1307,9 @@ Patch1002: rh1760838-fips_default_keystore_type.patch
Patch1004: rh1860986-disable_tlsv1.3_in_fips_mode.patch
# RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
Patch1005: rh1906862-always_initialise_configurator_access.patch
+# RH1929465: Improve system FIPS detection
+Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
+Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
#############################################
#
@@ -1454,8 +1456,8 @@ BuildRequires: libXinerama-devel
BuildRequires: libXrender-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
-# Requirements for setting up the nss.cfg
-BuildRequires: nss-devel
+# Requirements for setting up the nss.cfg and FIPS support
+BuildRequires: nss-devel >= 3.53
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
@@ -1834,6 +1836,8 @@ sh %{SOURCE12}
%patch1003
%patch1004
%patch1005
+%patch1006
+%patch1007
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -1965,6 +1969,7 @@ function buildjdk() {
--with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
--with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \
+ --enable-sysconf-nss \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
@@ -2590,7 +2595,15 @@ cjc.mainProgram(args)
%endif
%changelog
-* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.1.ea
+* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
+- Port FIPS system detection support to OpenJDK 8u
+- Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
+- Remove unneeded Requires on NSS as it will now be dynamically linked and detected by
RPM.
+
+* Wed Sep 01 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
+- Detect FIPS using SECMOD_GetSystemFIPSEnabled in the new libsystemconf JDK library.
+
+* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.2.ea
- Update to aarch64-shenandoah-jdk8u312-b01 (EA)
- Update release notes for 8u312-b01.
- Switch to EA mode.
diff --git a/rh1929465-improve_system_FIPS_detection-jdk.patch
b/rh1929465-improve_system_FIPS_detection-jdk.patch
new file mode 100644
index 0000000..1461be8
--- /dev/null
+++ b/rh1929465-improve_system_FIPS_detection-jdk.patch
@@ -0,0 +1,344 @@
+diff --git openjdk.orig/jdk/make/lib/SecurityLibraries.gmk
openjdk/jdk/make/lib/SecurityLibraries.gmk
+--- openjdk.orig/jdk/make/lib/SecurityLibraries.gmk
++++ openjdk/jdk/make/lib/SecurityLibraries.gmk
+@@ -289,3 +289,34 @@
+
+ endif
+ endif
++
++################################################################################
++# Create the systemconf library
++
++LIBSYSTEMCONF_CFLAGS :=
++LIBSYSTEMCONF_CXXFLAGS :=
++
++ifeq ($(USE_SYSCONF_NSS), true)
++ LIBSYSTEMCONF_CFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
++ LIBSYSTEMCONF_CXXFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
++endif
++
++ifeq ($(OPENJDK_BUILD_OS), linux)
++ $(eval $(call SetupNativeCompilation,BUILD_LIBSYSTEMCONF, \
++ LIBRARY := systemconf, \
++ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
++ SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/security, \
++ LANG := C, \
++ OPTIMIZATION := LOW, \
++ CFLAGS := $(CFLAGS_JDKLIB) $(LIBSYSTEMCONF_CFLAGS), \
++ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBSYSTEMCONF_CXXFLAGS), \
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsystemconf/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX := $(LIBDL) $(NSS_LIBS), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsystemconf, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
++
++ BUILD_LIBRARIES += $(BUILD_LIBSYSTEMCONF)
++endif
++
+diff --git openjdk.orig/jdk/make/mapfiles/libsystemconf/mapfile-vers
openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers
+@@ -0,0 +1,35 @@
++#
++# Copyright (c) 2021, Red Hat, Inc.
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# This code is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit
www.oracle.com if you need additional information or have any
++# questions.
++#
++
++# Define public interface.
++
++SUNWprivate_1.1 {
++ global:
++ DEF_JNI_OnLoad;
++ DEF_JNI_OnUnLoad;
++ Java_java_security_SystemConfigurator_getSystemFIPSEnabled;
++ local:
++ *;
++};
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2019, 2020, Red Hat, Inc.
++ * Copyright (c) 2019, 2021, Red Hat, Inc.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -30,14 +30,9 @@
+ import java.io.FileInputStream;
+ import java.io.IOException;
+
+-import java.nio.file.Files;
+-import java.nio.file.FileSystems;
+-import java.nio.file.Path;
+-
+ import java.util.Iterator;
+ import java.util.Map.Entry;
+ import java.util.Properties;
+-import java.util.regex.Pattern;
+
+ import sun.security.util.Debug;
+
+@@ -59,10 +54,21 @@
+ private static final String CRYPTO_POLICIES_JAVA_CONFIG =
+ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
+
+- private static final String CRYPTO_POLICIES_CONFIG =
+- CRYPTO_POLICIES_BASE_DIR + "/config";
++ private static boolean systemFipsEnabled = false;
++
++ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
++
++ private static native boolean getSystemFIPSEnabled()
++ throws IOException;
+
+- private static boolean systemFipsEnabled = false;
++ static {
++ AccessController.doPrivileged(new PrivilegedAction<Void>() {
++ public Void run() {
++ System.loadLibrary(SYSTEMCONF_NATIVE_LIB);
++ return null;
++ }
++ });
++ }
+
+ /*
+ * Invoked when java.security.Security class is initialized, if
+@@ -171,17 +177,34 @@
+ }
+
+ /*
+- * FIPS is enabled only if crypto-policies are set to "FIPS"
+- * and the com.redhat.fips property is true.
++ * OpenJDK FIPS mode will be enabled only if the com.redhat.fips
++ * system property is true (default) and the system is in FIPS mode.
++ *
++ * There are 2 possible ways in which OpenJDK detects that the system
++ * is in FIPS mode: 1) if the NSS SECMOD_GetSystemFIPSEnabled API is
++ * available at OpenJDK's built-time, it is called; 2) otherwise, the
++ * /proc/sys/crypto/fips_enabled file is read.
+ */
+- private static boolean enableFips() throws Exception {
++ private static boolean enableFips() throws IOException {
+ boolean shouldEnable =
Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
+ if (shouldEnable) {
+- Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
+- String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
+- if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
+- Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
+- return pattern.matcher(cryptoPoliciesConfig).find();
++ if (sdebug != null) {
++ sdebug.println("Calling getSystemFIPSEnabled
(libsystemconf)...");
++ }
++ try {
++ shouldEnable = getSystemFIPSEnabled();
++ if (sdebug != null) {
++ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
returned: "
++ + shouldEnable);
++ }
++ return shouldEnable;
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
failed:");
++ sdebug.println(e.getMessage());
++ }
++ throw e;
++ }
+ } else {
+ return false;
+ }
+diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
+@@ -0,0 +1,168 @@
++/*
++ * Copyright (c) 2021, Red Hat, Inc.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit
www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++#include <dlfcn.h>
++#include <jni.h>
++#include <jni_util.h>
++#include <stdio.h>
++
++#ifdef SYSCONF_NSS
++#include <nss3/pk11pub.h>
++#endif //SYSCONF_NSS
++
++#include "java_security_SystemConfigurator.h"
++
++#define FIPS_ENABLED_PATH "/proc/sys/crypto/fips_enabled"
++#define MSG_MAX_SIZE 96
++
++static jmethodID debugPrintlnMethodID = NULL;
++static jobject debugObj = NULL;
++
++static void throwIOException(JNIEnv *env, const char *msg);
++static void dbgPrint(JNIEnv *env, const char* msg);
++
++/*
++ * Class: java_security_SystemConfigurator
++ * Method: JNI_OnLoad
++ */
++JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved)
++{
++ JNIEnv *env;
++ jclass sysConfCls, debugCls;
++ jfieldID sdebugFld;
++
++ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
++ return JNI_EVERSION; /* JNI version not supported */
++ }
++
++ sysConfCls =
(*env)->FindClass(env,"java/security/SystemConfigurator");
++ if (sysConfCls == NULL) {
++ printf("libsystemconf: SystemConfigurator class not found\n");
++ return JNI_ERR;
++ }
++ sdebugFld = (*env)->GetStaticFieldID(env, sysConfCls,
++ "sdebug", "Lsun/security/util/Debug;");
++ if (sdebugFld == NULL) {
++ printf("libsystemconf: SystemConfigurator::sdebug field not
found\n");
++ return JNI_ERR;
++ }
++ debugObj = (*env)->GetStaticObjectField(env, sysConfCls, sdebugFld);
++ if (debugObj != NULL) {
++ debugCls = (*env)->FindClass(env,"sun/security/util/Debug");
++ if (debugCls == NULL) {
++ printf("libsystemconf: Debug class not found\n");
++ return JNI_ERR;
++ }
++ debugPrintlnMethodID = (*env)->GetMethodID(env, debugCls,
++ "println", "(Ljava/lang/String;)V");
++ if (debugPrintlnMethodID == NULL) {
++ printf("libsystemconf: Debug::println(String) method not
found\n");
++ return JNI_ERR;
++ }
++ debugObj = (*env)->NewGlobalRef(env, debugObj);
++ }
++
++ return (*env)->GetVersion(env);
++}
++
++/*
++ * Class: java_security_SystemConfigurator
++ * Method: JNI_OnUnload
++ */
++JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved)
++{
++ JNIEnv *env;
++
++ if (debugObj != NULL) {
++ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
++ return; /* Should not happen */
++ }
++ (*env)->DeleteGlobalRef(env, debugObj);
++ }
++}
++
++JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEnabled
++ (JNIEnv *env, jclass cls)
++{
++ int fips_enabled;
++ char msg[MSG_MAX_SIZE];
++ int msg_bytes;
++
++#ifdef SYSCONF_NSS
++
++ dbgPrint(env, "getSystemFIPSEnabled: calling
SECMOD_GetSystemFIPSEnabled");
++ fips_enabled = SECMOD_GetSystemFIPSEnabled();
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
++ " SECMOD_GetSystemFIPSEnabled returned 0x%x", fips_enabled);
++ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
++ dbgPrint(env, msg);
++ } else {
++ dbgPrint(env, "getSystemFIPSEnabled: cannot render" \
++ " SECMOD_GetSystemFIPSEnabled return value");
++ }
++ return (fips_enabled == 1 ? JNI_TRUE : JNI_FALSE);
++
++#else // SYSCONF_NSS
++
++ FILE *fe;
++
++ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
++ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
++ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ }
++ fips_enabled = fgetc(fe);
++ fclose(fe);
++ if (fips_enabled == EOF) {
++ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ }
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
++ " read character is '%c'", fips_enabled);
++ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
++ dbgPrint(env, msg);
++ } else {
++ dbgPrint(env, "getSystemFIPSEnabled: cannot render" \
++ " read character");
++ }
++ return (fips_enabled == '1' ? JNI_TRUE : JNI_FALSE);
++
++#endif // SYSCONF_NSS
++}
++
++static void throwIOException(JNIEnv *env, const char *msg)
++{
++ jclass cls = (*env)->FindClass(env, "java/io/IOException");
++ if (cls != 0)
++ (*env)->ThrowNew(env, cls, msg);
++}
++
++static void dbgPrint(JNIEnv *env, const char* msg)
++{
++ jstring jMsg;
++ if (debugObj != NULL) {
++ jMsg = (*env)->NewStringUTF(env, msg);
++ CHECK_NULL(jMsg);
++ (*env)->CallVoidMethod(env, debugObj, debugPrintlnMethodID, jMsg);
++ }
++}
diff --git a/rh1929465-improve_system_FIPS_detection-root.patch
b/rh1929465-improve_system_FIPS_detection-root.patch
new file mode 100644
index 0000000..64d8ac0
--- /dev/null
+++ b/rh1929465-improve_system_FIPS_detection-root.patch
@@ -0,0 +1,152 @@
+diff --git openjdk.orig/common/autoconf/configure.ac
openjdk/common/autoconf/configure.ac
+--- openjdk.orig/common/autoconf/configure.ac
++++ openjdk/common/autoconf/configure.ac
+@@ -212,6 +212,7 @@
+ LIB_SETUP_ALSA
+ LIB_SETUP_FONTCONFIG
+ LIB_SETUP_MISC_LIBS
++LIB_SETUP_SYSCONF_LIBS
+ LIB_SETUP_STATIC_LINK_LIBSTDCPP
+ LIB_SETUP_ON_WINDOWS
+
+diff --git openjdk.orig/common/autoconf/libraries.m4
openjdk/common/autoconf/libraries.m4
+--- openjdk.orig/common/autoconf/libraries.m4
++++ openjdk/common/autoconf/libraries.m4
+@@ -1067,3 +1067,63 @@
+ BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
+ fi
+ ])
++
++################################################################################
++# Setup system configuration libraries
++################################################################################
++AC_DEFUN_ONCE([LIB_SETUP_SYSCONF_LIBS],
++[
++ ###############################################################################
++ #
++ # Check for the NSS library
++ #
++
++ AC_MSG_CHECKING([whether to use the system NSS library with the System Configurator
(libsysconf)])
++
++ # default is not available
++ DEFAULT_SYSCONF_NSS=no
++
++ AC_ARG_ENABLE([sysconf-nss], [AS_HELP_STRING([--enable-sysconf-nss],
++ [build the System Configurator (libsysconf) using the system NSS library if
available @<:@disabled@:>@])],
++ [
++ case "${enableval}" in
++ yes)
++ sysconf_nss=yes
++ ;;
++ *)
++ sysconf_nss=no
++ ;;
++ esac
++ ],
++ [
++ sysconf_nss=${DEFAULT_SYSCONF_NSS}
++ ])
++ AC_MSG_RESULT([$sysconf_nss])
++
++ USE_SYSCONF_NSS=false
++ if test "x${sysconf_nss}" = "xyes"; then
++ PKG_CHECK_MODULES(NSS, nss >= 3.53, [NSS_FOUND=yes], [NSS_FOUND=no])
++ if test "x${NSS_FOUND}" = "xyes"; then
++ AC_MSG_CHECKING([for system FIPS support in NSS])
++ saved_libs="${LIBS}"
++ saved_cflags="${CFLAGS}"
++ CFLAGS="${CFLAGS} ${NSS_CFLAGS}"
++ LIBS="${LIBS} ${NSS_LIBS}"
++ AC_LANG_PUSH([C])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nss3/pk11pub.h>]],
++ [[SECMOD_GetSystemFIPSEnabled()]])],
++ [AC_MSG_RESULT([yes])],
++ [AC_MSG_RESULT([no])
++ AC_MSG_ERROR([System NSS FIPS detection unavailable])])
++ AC_LANG_POP([C])
++ CFLAGS="${saved_cflags}"
++ LIBS="${saved_libs}"
++ USE_SYSCONF_NSS=true
++ else
++ dnl NSS 3.53 is the one that introduces the SECMOD_GetSystemFIPSEnabled API
++ dnl in nss3/pk11pub.h.
++ AC_MSG_ERROR([--enable-sysconf-nss specified, but NSS 3.53 or above not
found.])
++ fi
++ fi
++ AC_SUBST(USE_SYSCONF_NSS)
++])
+diff --git openjdk.orig/common/autoconf/spec.gmk.in openjdk/common/autoconf/spec.gmk.in
+--- openjdk.orig/common/autoconf/spec.gmk.in
++++ openjdk/common/autoconf/spec.gmk.in
+@@ -312,6 +312,10 @@
+ ALSA_LIBS:=@ALSA_LIBS@
+ ALSA_CFLAGS:=@ALSA_CFLAGS@
+
++USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@
++NSS_LIBS:=@NSS_LIBS@
++NSS_CFLAGS:=@NSS_CFLAGS@
++
+ PACKAGE_PATH=@PACKAGE_PATH@
+
+ # Source file for cacerts
+diff --git openjdk.orig/common/bin/compare_exceptions.sh.incl
openjdk/common/bin/compare_exceptions.sh.incl
+--- openjdk.orig/common/bin/compare_exceptions.sh.incl
++++ openjdk/common/bin/compare_exceptions.sh.incl
+@@ -280,6 +280,7 @@
+ ./jre/lib/i386/libsplashscreen.so
+ ./jre/lib/i386/libsunec.so
+ ./jre/lib/i386/libsunwjdga.so
++./jre/lib/i386/libsystemconf.so
+ ./jre/lib/i386/libt2k.so
+ ./jre/lib/i386/libunpack.so
+ ./jre/lib/i386/libverify.so
+@@ -433,6 +434,7 @@
+ ./jre/lib/amd64/libsplashscreen.so
+ ./jre/lib/amd64/libsunec.so
+ ./jre/lib/amd64/libsunwjdga.so
++//jre/lib/amd64/libsystemconf.so
+ ./jre/lib/amd64/libt2k.so
+ ./jre/lib/amd64/libunpack.so
+ ./jre/lib/amd64/libverify.so
+@@ -587,6 +589,7 @@
+ ./jre/lib/sparc/libsplashscreen.so
+ ./jre/lib/sparc/libsunec.so
+ ./jre/lib/sparc/libsunwjdga.so
++./jre/lib/sparc/libsystemconf.so
+ ./jre/lib/sparc/libt2k.so
+ ./jre/lib/sparc/libunpack.so
+ ./jre/lib/sparc/libverify.so
+@@ -741,6 +744,7 @@
+ ./jre/lib/sparcv9/libsplashscreen.so
+ ./jre/lib/sparcv9/libsunec.so
+ ./jre/lib/sparcv9/libsunwjdga.so
++./jre/lib/sparcv9/libsystemconf.so
+ ./jre/lib/sparcv9/libt2k.so
+ ./jre/lib/sparcv9/libunpack.so
+ ./jre/lib/sparcv9/libverify.so
+diff --git openjdk.orig/common/nb_native/nbproject/configurations.xml
openjdk/common/nb_native/nbproject/configurations.xml
+--- openjdk.orig/common/nb_native/nbproject/configurations.xml
++++ openjdk/common/nb_native/nbproject/configurations.xml
+@@ -53,6 +53,9 @@
+ <in>jvmtiEnterTrace.cpp</in>
+ </df>
+ </df>
++ <df name="libsystemconf">
++ <in>systemconf.c</in>
++ </df>
+ </df>
+ </df>
+ <df name="jdk">
+@@ -12772,6 +12775,11 @@
+ tool="0"
+ flavor2="0">
+ </item>
++ <item path="../../jdk/src/solaris/native/java/security/systemconf.c"
++ ex="false"
++ tool="0"
++ flavor2="0">
++ </item>
+ <item path="../../jdk/src/share/native/java/util/TimeZone.c"
+ ex="false"
+ tool="0"
commit 37a363e30cf6934369ea54430e41bd92cd21d940
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Sep 1 23:23:51 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b01 (EA)
Update release notes for 8u312-b01.
Switch to EA mode.
Remove "-clean" suffix as no 8u312 builds are unclean.
diff --git a/.gitignore b/.gitignore
index 67c9eb6..4252ee4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -239,3 +239,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 1cb973a..947e72a 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,51 @@ 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 8u312 (2021-10-19):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u312
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt
+
+* Other changes
+ - JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
+ - JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime
+ - JDK-8027154: [TESTBUG] Test
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
+ - JDK-8035001: TEST_BUG: the retry logic in RMID.start() should check that the
subprocess hasn't terminated
+ - JDK-8035424: (reflect) Performance problem in
sun.reflect.generics.parser.SignatureParser
+ - JDK-8042557: compiler/uncommontrap/TestSpecTrapClassUnloading.java fails with: GC
triggered before VM initialization completed
+ - JDK-8054118: java/net/ipv6tests/UdpTest.java failed intermittently
+ - JDK-8065215: Print warning summary at end of configure
+ - JDK-8072767: DefaultCellEditor for comboBox creates ActionEvent with wrong source
object
+ - JDK-8079891: Store configure log in $BUILD/configure.log
+ - JDK-8080082: configure fails if you create an empty directory and then run configure
from it
+ - JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass
base: 0x0000000000000000, Narrow klass shift: 3' missing
+ - JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
+ - JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
+ - JDK-8166673: The new implementation of Robot.waitForIdle() may hang
+ - JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders
+ - JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails
+ - JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore
+ - JDK-8206189: sun/security/pkcs12/EmptyPassword.java fails with Sequence tag error
+ - JDK-8214418: half-closed SSLEngine status may cause application dead loop
+ - JDK-8214513: A PKCS12 keystore from Java 8 using custom PBE parameters cannot be read
in Java 11
+ - JDK-8220786: Create new switch to redirect error reporting output to stdout or
stderr
+ - JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
+ - JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces
+ - JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
+ - JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
+ - JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
+ - JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
+ - JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
+ - JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
+ - JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
+ - JDK-8263311: Watch registry changes for remote printers update instead of polling
+ - JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
+ - JDK-8265978: make test should look for more locations when searching for exit code
+ - JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
+ - JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
+ - JDK-8271466: StackGap test fails on aarch64 due to "-m64"
+
New in release OpenJDK 8u302 (2021-07-20):
===========================================
Live versions of these release notes can be found at:
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index e9eed11..c6f0756 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -177,7 +177,7 @@ if [ "X$COMPRESSION" = "Xxz" ] ; then
else
SWITCH=czf
fi
-TARBALL_NAME=${FILE_NAME_ROOT}-4curve-clean.tar.${COMPRESSION}
+TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION}
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} openjdk
mv ${TARBALL_NAME} ..
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 68867b4..a31c545 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -314,7 +314,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1238,7 +1238,7 @@ URL:
http://openjdk.java.net/
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve-clean.tar.xz
+Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -2590,6 +2590,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b01 (EA)
+- Update release notes for 8u312-b01.
+- Switch to EA mode.
+- Remove "-clean" suffix as no 8u312 builds are unclean.
+
* Mon Aug 30 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.302.b08-2
- alternatives creation moved to posttrans
- Thus fixing the old reisntall issue:
diff --git a/sources b/sources
index 3236329..743cecf 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz) =
04ecdcde841038c0042b44fb3c5303a08616864566fb918ab261fc381fae8804a21f875b1645538e864a1c6db5985f16dfc13b91eb1caeeab54d6d07828c7657
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz) =
ddce8d47e12e4de078004d981d4c89538738a7cb201b7e7f820f51a39aac2c00040e3ba9c6ee92ec10d10e5607f420a4c3e4d059e05a8d9930e3f71e0917c84f
commit ae9982ef76614e5357e5d4409d330f9e738b3277
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Sep 1 16:48:03 2021 +0200
alternatives creation moved to posttrans
Thus fixing the old reisntall issue:
https://bugzilla.redhat.com/show_bug.cgi?id=1200302
https://bugzilla.redhat.com/show_bug.cgi?id=1976053
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 53718f7..68867b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -63,7 +63,7 @@
# in alternatives those are slaves and master, very often triplicated by man pages
# in files all masters and slaves are ghosted
# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
-# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_
+# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_ -e alternatives
# TODO - fix those hardcoded lists via single list
# Those files must *NOT* be ghosted for *slowdebug* packages
# FIXME - if you are moving jshell or jlink or similar, always modify all three sections
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -414,12 +414,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null
|| :
exit 0
}
-
-%define post_headless() %{expand:
-%ifarch %{share_arches}
-%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
-%endif
-
+%define alternatives_java_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -469,8 +464,13 @@ for X in %{origin} %{javaver} ; do
alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+}
+%define post_headless() %{expand:
+%ifarch %{share_arches}
+%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
+%endif
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -507,8 +507,8 @@ exit 0
%{update_desktop_icons}
}
-%define post_devel() %{expand:
+%define alternatives_javac_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -616,7 +616,9 @@ for X in %{origin} %{javaver} ; do
done
update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+}
+%define post_devel() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -639,11 +641,11 @@ exit 0
}
%define posttrans_devel() %{expand:
+%{alternatives_javac_install -- %{?1}}
%{update_desktop_icons}
}
-%define post_javadoc() %{expand:
-
+%define alternatives_javadoc_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -660,8 +662,7 @@ exit 0
exit 0
}
-%define post_javadoc_zip() %{expand:
-
+%define alternatives_javadoczip_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -2419,6 +2420,9 @@ cjc.mainProgram(args)
%posttrans
%{posttrans_script %{nil}}
+%posttrans headless
+%{alternatives_java_install %{nil}}
+
%post devel
%{post_devel %{nil}}
@@ -2428,14 +2432,14 @@ cjc.mainProgram(args)
%posttrans devel
%{posttrans_devel %{nil}}
-%post javadoc
-%{post_javadoc %{nil}}
+%posttrans javadoc
+%{alternatives_javadoc_install %{nil}}
%postun javadoc
%{postun_javadoc %{nil}}
-%post javadoc-zip
-%{post_javadoc_zip %{nil}}
+%posttrans javadoc-zip
+%{alternatives_javadoczip_install %{nil}}
%postun javadoc-zip
%{postun_javadoc_zip %{nil}}
@@ -2448,6 +2452,9 @@ cjc.mainProgram(args)
%post headless-slowdebug
%{post_headless -- %{debug_suffix_unquoted}}
+%posttrans headless-slowdebug
+%{alternatives_java_install -- %{debug_suffix_unquoted}}
+
%postun slowdebug
%{postun_script -- %{debug_suffix_unquoted}}
@@ -2483,6 +2490,9 @@ cjc.mainProgram(args)
%posttrans fastdebug
%{posttrans_script -- %{fastdebug_suffix_unquoted}}
+%posttrans headless-fastdebug
+%{alternatives_java_install -- %{fastdebug_suffix_unquoted}}
+
%post devel-fastdebug
%{post_devel -- %{fastdebug_suffix_unquoted}}
@@ -2580,6 +2590,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Aug 30 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.302.b08-2
+- alternatives creation moved to posttrans
+- Thus fixing the old reisntall issue:
+-
https://bugzilla.redhat.com/show_bug.cgi?id=1200302
+-
https://bugzilla.redhat.com/show_bug.cgi?id=1976053
+
* Sun Aug 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-1
- Remove non-Free test and demo files from source tarball.
commit 1b05b0ca2a1c58fa9eeee68440d19506bb238846
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Aug 8 05:21:18 2021 +0100
Remove non-Free test and demo files from source tarball.
diff --git a/.gitignore b/.gitignore
index a4aa037..67c9eb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -238,3 +238,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 94b75e7..e9eed11 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -19,12 +19,25 @@
# level folder, name is created, based on parameter
#
+SCRIPT_DIR=$(dirname $0)
+JCONSOLE_JS_PATCH_DEFAULT=${SCRIPT_DIR}/jconsole-plugin.patch
+
if [ ! "x$PR3822" = "x" ] ; then
if [ ! -f "$PR3822" ] ; then
- echo "You have specified PR3822 as $PR3822 but it does not exists.
exiting"
+ echo "You have specified PR3822 as $PR3822 but it does not exist. Exiting"
exit 1
fi
fi
+
+if [ "x${JCONSOLE_JS_PATCH}" != "x" ] ; then
+ if [ ! -f "${JCONSOLE_JS_PATCH}" ] ; then
+ echo "You have specified the jconsole.js patch as ${JCONSOLE_JS_PATCH} but it does
not exist. Exiting.";
+ exit 2;
+ fi
+else
+ JCONSOLE_JS_PATCH=${JCONSOLE_JS_PATCH_DEFAULT}
+fi
+
set -e
OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
@@ -42,6 +55,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if
unavailable)"
+ echo "JCONSOLE_JS_PATCH - the path to a patch to fix non-availiability of
jconsole.js (optional; defaults to ${JCONSOLE_JS_PATCH_DEFAULT})"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -88,6 +102,22 @@ if [ "x$REPO_ROOT" = "x" ] ; then
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
+if [ "x$REPOS" = "x" ] ; then
+ REPOS=${REPOS_DEFAULT}
+ echo "No repositories specified; defaulting to ${REPOS}"
+fi;
+
+echo -e "Settings:"
+echo -e "\tVERSION: ${VERSION}"
+echo -e "\tPROJECT_NAME: ${PROJECT_NAME}"
+echo -e "\tREPO_NAME: ${REPO_NAME}"
+echo -e "\tOPENJDK_URL: ${OPENJDK_URL}"
+echo -e "\tCOMPRESSION: ${COMPRESSION}"
+echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
+echo -e "\tREPO_ROOT: ${REPO_ROOT}"
+echo -e "\tPR3822: ${PR3822}"
+echo -e "\tJCONSOLE_JS_PATCH: ${JCONSOLE_JS_PATCH}"
+echo -e "\tREPOS: ${REPOS}"
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
@@ -96,22 +126,22 @@ echo "Cloning ${VERSION} root repository from
${REPO_ROOT}"
hg clone ${REPO_ROOT} openjdk -r ${VERSION}
pushd openjdk
-
-if [ "x$REPOS" = "x" ] ; then
- repos=${REPOS_DEFAULT}
- echo "No repositories specified; defaulting to ${repos}"
-else
- repos=$REPOS
- echo "Repositories: ${repos}"
-fi;
-
-for subrepo in $repos
+for subrepo in ${REPOS}
do
echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
done
-if [ -d jdk ]; then
+# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it
non-Free
+if [ -d langtools ] ; then
+ echo "Removing langtools test case with non-Free license"
+ rm -vf langtools/test/tools/javadoc/api/basic/TagletPathTest.java
+ rm -vf langtools/test/tools/javadoc/api/basic/taglets/UnderlineTaglet.java
+fi
+if [ -d jdk ]; then
+# jconsole.js has a BSD license with a field-of-use restriction, making it non-Free
+echo "Removing jconsole-plugin file with non-Free license"
+rm -vf jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
echo "Removing EC source code we don't build"
rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h
rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c
@@ -123,7 +153,6 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c
rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-
if [ "x$PR3822" = "x" ] ; then
# get pr3822.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822)
@@ -135,6 +164,10 @@ else
patch -Np1 < $PR3822
fi;
fi
+
+echo "Patching out use of jconsole.js"
+patch -Np1 < ${JCONSOLE_JS_PATCH}
+
find . -name '*.orig' -exec rm -vf '{}' ';'
popd
@@ -144,7 +177,7 @@ if [ "X$COMPRESSION" = "Xxz" ] ; then
else
SWITCH=czf
fi
-TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION}
+TARBALL_NAME=${FILE_NAME_ROOT}-4curve-clean.tar.${COMPRESSION}
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} openjdk
mv ${TARBALL_NAME} ..
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b5067ff..53718f7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1202,7 +1202,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1237,7 +1237,7 @@ URL:
http://openjdk.java.net/
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
+Source0:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve-clean.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -2580,6 +2580,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sun Aug 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-1
+- Remove non-Free test and demo files from source tarball.
+
* Thu Jul 22 2021 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.302.b08-0.1
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
diff --git a/jconsole-plugin.patch b/jconsole-plugin.patch
new file mode 100644
index 0000000..b015a78
--- /dev/null
+++ b/jconsole-plugin.patch
@@ -0,0 +1,31 @@
+diff --git openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
openjdk/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
+--- openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
++++ openjdk/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
+@@ -18,11 +18,9 @@
+ engine javax.script.ScriptEngine
+ plugin com.sun.tools.jconsole.JConsolePlugin
+
+-If you use JavaScript, there are many useful global functions defined in
+-./src/resources/jconsole.js. This is built into the script plugin jar file.
+-In addition, you can add other global functions and global variables by
+-defining those in ~/jconsole.js (or jconsole.<ext> where <ext> is the file
+-extension for your scripting language of choice under your home directory).
++You can add global functions and global variables by defining those in
++~/jconsole.js (or jconsole.<ext> where <ext> is the file extension for
++your scripting language of choice under your home directory).
+
+ How do I compile script console plugin?
+
+diff --git openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
openjdk/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
+--- openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
++++ openjdk/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
+@@ -73,9 +73,6 @@
+ <copy todir="${classes.dir}/META-INF/services">
+ <fileset dir="${src.dir}/META-INF/services"/>
+ </copy>
+- <copy todir="${resources.dir}">
+- <fileset dir="${src.dir}/resources"/>
+- </copy>
+ </target>
+
+ <target name="all" depends="compile" description="buile
deployment bundle">
diff --git a/sources b/sources
index 0357887..3236329 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz) =
938b3308357c5be40fd474e861f5a612e758520988588b633791ada742fdaef522ecc05f4b2a0c40799a01e1b5d33960c1b76deb2089e36b6d92b0788a74bf74
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz) =
04ecdcde841038c0042b44fb3c5303a08616864566fb918ab261fc381fae8804a21f875b1645538e864a1c6db5985f16dfc13b91eb1caeeab54d6d07828c7657