Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package java-21-openjdk for openSUSE:Factory 
checked in at 2026-08-27 18:49:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-21-openjdk (Old)
 and      /work/SRC/openSUSE:Factory/.java-21-openjdk.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "java-21-openjdk"

Thu Aug 27 18:49:23 2026 rev:28 rq:1373463 version:21.0.12.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/java-21-openjdk/java-21-openjdk.changes  
2026-07-23 23:10:14.916089152 +0200
+++ 
/work/SRC/openSUSE:Factory/.java-21-openjdk.new.1265/java-21-openjdk.changes    
    2026-08-27 18:49:25.388498531 +0200
@@ -1,0 +2,31 @@
+Mon Aug 24 17:22:38 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Update to upstream tag jdk-21.0.12.1+1 (August 2026 CSPU)
+  * Changes
+    + JDK-8333743: Change .jcheck/conf branches property to match
+      valid branches
+    + JDK-8382471, bsc#1275777, CVE-2026-60589: Improve Resource
+      Resolving
+    + JDK-8384708, bsc#1275778, CVE-2026-61308: Enhance HTTP
+      Connections
+    + JDK-8386205, bsc#1275764, CVE-2026-70907: Enhance TLS server
+    + JDK-8388789: Bump update version for OpenJDK: jdk-21.0.12.1
+    + JDK-8389946: [21u] Remove designator
+      DEFAULT_PROMOTED_VERSION_PRE=ea for release 21.0.12.1
+- Added patch:
+  * tzdata-2026c.patch
+    + backport upcoming upgrade of timezone data (bsc#1275035)
+
+-------------------------------------------------------------------
+Mon Jul 27 19:29:07 UTC 2026 - Bernhard Wiedemann <[email protected]>
+
+- Added patch:
+  * bsc-1221224.patch
+    + Fix bsc#1221224 java-21-openjdk classlist depends on the CPU
+      count of the build machine
+    + Explicitly use G1 if the JVM supports it. GC ergonomics pick
+      SerialGC on single-CPU machines. SerialGC does not support
+      dumping of the shared heap, thus the classlist is different on
+      a single-CPU builder.
+
+-------------------------------------------------------------------

Old:
----
  jdk-21.0.12+8.tar.gz

New:
----
  bsc-1221224.patch
  jdk-21.0.12.1+1.tar.gz
  tzdata-2026c.patch

----------(New B)----------
  New:- Added patch:
  * bsc-1221224.patch
    + Fix bsc#1221224 java-21-openjdk classlist depends on the CPU
  New:- Added patch:
  * tzdata-2026c.patch
    + backport upcoming upgrade of timezone data (bsc#1275035)
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ java-21-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.Rbp0Km/_old  2026-08-27 18:49:33.106767212 +0200
+++ /var/tmp/diff_new_pack.Rbp0Km/_new  2026-08-27 18:49:33.110767351 +0200
@@ -38,7 +38,8 @@
 %global featurever      21
 %global interimver      0
 %global updatever       12
-%global buildver        8
+%global patchver        1
+%global buildver        1
 %global openjdk_repo    jdk21u
 %global openjdk_tag     
jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}+%{buildver}
 %global openjdk_dir     
%{openjdk_repo}-jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}-%{buildver}
@@ -184,6 +185,9 @@
 #
 Patch302:       disable-doclint-by-default.patch
 Patch303:       java-40y.patch
+Patch304:       bsc-1221224.patch
+#
+Patch400:       tzdata-2026c.patch
 #
 BuildRequires:  alsa-lib-devel
 BuildRequires:  autoconf
@@ -426,6 +430,9 @@
 
 %patch -P 302 -p1
 %patch -P 303 -p1
+%patch -P 304 -p1
+
+%patch -P 400 -p1
 
 # Extract systemtap tapsets
 

++++++ bsc-1221224.patch ++++++
From: Bernhard M. Wiedemann <[email protected]>
Date: Mon, 27 Jul 2026 05:37:39 +0200
Subject: [PATCH] Make classlist generation independent of the build CPU count

The previous backport attempts did not help: JDK-8334598's "grep -v @cp"
filter is a no-op on JDK 21 (@cp lines only exist after JDK-8293980,
which is JDK 23+), and JDK-8293980's -Xint plus
-Djava.util.concurrent.ForkJoinPool.common.parallelism=0 address
constant pool resolution, not class loading.

The actual cause of boo#1221224 is GC ergonomics: on a machine with a
single CPU the JVM is not considered a server class machine and picks
SerialGC. In JDK 21 only G1 can dump the shared heap
(HeapShared::can_write() requires UseG1GC), so the intermediate
-Xshare:dump of the classlist recipe produces an archive without
archived heap objects. The second HelloClasslist run then does not
restore the archived subgraphs, which changes the set of loaded classes
- java/lang/Byte$ByteCache, java/lang/Short$ShortCache and
jdk/internal/math/FDBigInteger are the visible symptom - and the
resulting lib/classlist differs, which in turn changes lib/modules,
lib/server/classes*.jsa and jmods/java.base.jmod.

Explicitly use G1 for classlist generation if the JVM supports it, the
same way Images.gmk already does when dumping the shipped CDS archives.
Measured on this machine, the classlist and the intermediate archive are
now bit-identical for 1, 2, 4 and 16 CPUs, and identical to what
multi-core builds produce today, so the shipped content does not change.

Upstream fixed this differently and only in JDK 24 via JDK-8298614
(Support CDS heap dumping for SerialGC and ParallelGC), which is a
HotSpot change that is not suitable for 21u.

---
diff --git a/make/GenerateLinkOptData.gmk b/make/GenerateLinkOptData.gmk
index 5dd766c8c07..4ade4373842 100644
--- a/make/GenerateLinkOptData.gmk
+++ b/make/GenerateLinkOptData.gmk
@@ -59,6 +59,19 @@ ifeq ($(EXTERNAL_BUILDJDK), true)
   INTERIM_IMAGE_DIR := $(BUILD_JDK)
 endif
 
+# These are needed for deterministic classlist:
+# - The classlist can be influenced by locale. Always set it to en/US.
+# - Only G1 supports dumping the shared heap, and GC ergonomics pick SerialGC 
on
+#   single-CPU machines. Without archived heap objects a different set of 
classes
+#   is loaded, so the classlist would depend on the CPU count of the build 
machine.
+#   Explicitly use G1 if the JVM supports it, like Images.gmk does for the 
shipped
+#   CDS archives.
+CLASSLIST_GC_OPT := $(if $(filter g1gc, 
$(JVM_FEATURES_$(JVM_VARIANT_MAIN))),-XX:+UseG1GC)
+
+CLASSLIST_FILE_VM_OPTS = \
+    -Duser.language=en -Duser.country=US \
+    $(CLASSLIST_GC_OPT)
+
 # Save the stderr output of the command and print it along with stdout in case
 # something goes wrong.
 $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) 
$(CLASSLIST_JAR)
@@ -66,17 +79,17 @@ $(CLASSLIST_FILE): 
$(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
        $(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $@))
        $(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, 
$(JLI_TRACE_FILE)))
        $(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -XX:[email protected] 
\
-           -Duser.language=en -Duser.country=US \
+           $(CLASSLIST_FILE_VM_OPTS) \
            -cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
            build.tools.classlist.HelloClasslist $(LOG_DEBUG)
        $(GREP) -v HelloClasslist [email protected] > [email protected]
        $(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java -Xshare:dump \
            -XX:[email protected] -XX:[email protected] \
-           -Xmx128M -Xms128M $(LOG_INFO)
+           $(CLASSLIST_GC_OPT) -Xmx128M -Xms128M $(LOG_INFO)
        $(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java 
-XX:[email protected] \
            -XX:[email protected] -XX:[email protected] \
            -Djava.lang.invoke.MethodHandle.TRACE_RESOLVE=true \
-           -Duser.language=en -Duser.country=US \
+           $(CLASSLIST_FILE_VM_OPTS) \
            --module-path $(SUPPORT_OUTPUTDIR)/classlist.jar \
            -cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
            build.tools.classlist.HelloClasslist \

++++++ jdk-21.0.12+8.tar.gz -> jdk-21.0.12.1+1.tar.gz ++++++
/work/SRC/openSUSE:Factory/java-21-openjdk/jdk-21.0.12+8.tar.gz 
/work/SRC/openSUSE:Factory/.java-21-openjdk.new.1265/jdk-21.0.12.1+1.tar.gz 
differ: char 15, line 1

++++++ tzdata-2026c.patch ++++++
++++ 806 lines (skipped)

Reply via email to