Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package java-1_8_0-openjdk for
openSUSE:Factory checked in at 2026-11-10 16:29:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-1_8_0-openjdk (Old)
and /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_8_0-openjdk"
Tue Nov 10 16:29:50 2026 rev:119 rq:1396506 version:1.8.0.512
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-1_8_0-openjdk/java-1_8_0-openjdk.changes
2026-09-18 22:08:42.002028723 +0200
+++
/work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new.3759290/java-1_8_0-openjdk.changes
2026-11-10 16:30:05.913985214 +0100
@@ -1,0 +2,225 @@
+Mon Nov 9 15:04:37 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to upstream tag jdk8u512-b09 (October 2026 CPU)
+ * Security fixes
+ + JDK-8383530: Enhance Javadoc Searching
+ + JDK-8383679, CVE-2026-87294, bsc#1286490: Enhance Certificate
+ Name Checks
+ + JDK-8383439, CVE-2026-83395, bsc#1286479: Enhance HTTP Client
+ Response Handling
+ + JDK-8386783: WebRowSet empty elements read value of previous
+ element
+ + JDK-8383301, CVE-2026-83387, bsc#1286478: Enhance WebRowSets
+ + JDK-8380715, CVE-2026-83374, bsc#1286472: Enhance PKCS5
+ padding
+ + JDK-8384654, CVE-2026-87367, bsc#1286943: Enhance Template
+ Handling
+ + JDK-8383699, CVE-2026-87290, bsc#1286484: Enhance XPath
+ Expressions
+ + JDK-8383047, CVE-2026-83380, bsc#1286476: Enhance LDAP logins
+ + JDK-8384021, CVE-2026-101516, bsc#1286395: Enhance Certificate
+ Constraint Checking
+ + JDK-8387152, CVE-2026-91462, bsc#1286547: Enhance krb5 tokens
+ + JDK-8387238, CVE-2026-91464, bsc#1286550: Enhance Kerberos
+ validation
+ + JDK-8386013: Enhance EventListenerList
+ + JDK-8382407: Enhance LDAP Lookups
+ + JDK-8386535, CVE-2026-91453, bsc#1286545: Improve HTTP headers
+ + JDK-8385476, CVE-2026-91400, bsc#1286517: Enhance MIDI file
+ handling
+ + JDK-8386923, CVE-2026-91461, bsc#1286546: Enhance TLS
+ Extensions
+ + JDK-8387217, CVE-2026-91463, bsc#1286549: Enhance krb5 client
+ + JDK-8386515, CVE-2026-91451, bsc#1286542: Enhance HTTP server
+ parsing
+ + JDK-8373677: Clear text HttpServer connection could fail fast
+ if receiving SSL ClientHello
+ + JDK-8383756, CVE-2026-87292, bsc#1286486: Enhance Network
+ Clients
+ + JDK-8383956, CVE-2026-87293, bsc#1286488: Enhance RMI
+ connections
+ + JDK-8383281: Enhance MD5 Digesting
+ + JDK-8384664, CVE-2026-91335, bsc#1286494: Enhance Image
+ Handling
+ + JDK-8384746, CVE-2026-91380, bsc#1286500: Enhance Preferences
+ + JDK-8384781, CVE-2026-91381, bsc#1286501: Enhance Font
+ Rendering
+ + JDK-8386552, CVE-2026-91418, bsc#1286539: Enhance GIF loading
+ + JDK-8270915: GIFImageReader disregards ignoreMetadata flag
+ which causes memory exhaustion
+ + JDK-8386525, CVE-2026-91452, bsc#1286544: Enhance HTTP Server
+ Handler
+ + JDK-8386187, CVE-2026-91415, bsc#1286537: Enhance font
+ rendering
+ + JDK-8386175, CVE-2026-91417, bsc#1286538: Enhance CORBA
+ + JDK-8385260, CVE-2026-91398, bsc#1286515: Enhance SOCKS5
+ support
+ + JDK-8385249, CVE-2026-91397, bsc#1286513: Enhance diagnostic
+ sessions
+ + JDK-8385229, CVE-2026-91396, bsc#1286510: Improve Pack200
+ handling
+ + JDK-8385219, CVE-2026-91395, bsc#1286508: Enhance Pack200
+ unpacking
+ + JDK-8384930, CVE-2026-91374, bsc#1286496: Enhance jstatd
+ + JDK-8384771, CVE-2026-91373, bsc#1286495: Enhance TLS
+ handshakes
+ + JDK-8384455: Enhance DataFlavor
+ + JDK-8384445, CVE-2026-91334, bsc#1286493: Enhance JPEG loading
+ + JDK-8384031, CVE-2026-83400, bsc#1286480: Enhance XML
+ Processing
+ + JDK-8383076, CVE-2026-83381, bsc#1286477: Enhance SASL
+ Authentication
+ + JDK-8382178, CVE-2026-83376, bsc#1286474: Enhance TLS
+ certificate handling
+ + JDK-8395142, CVE-2026-91403, bsc#1287264: CA Enhancements
+ + JDK-8395690, CVE-2026-114820, bsc#1287962: CA certificate
+ improvements
+ * Other fixes
+ + JDK-8394265: [21u] Add explicit zone offset test for
+ America/Rainy_River
+ + JDK-8393848: Align the JDK with Microsoft's new timezone
+ name for Manitoba
+ + JDK-8392538: Align the JDK with Microsoft's new timezone
+ names for British Columbia/Alberta
+ + JDK-8396048: (tz) Update to tzdata2026f
+ + JDK-8393337: (tz) Update Timezone Data to 2026e
+ + JDK-8393344: Cherry-pick metazone changes from CLDR to support
+ tzdata2026e for JDK update releases
+ + JDK-8392377: (tz) Update Timezone Data to 2026d
+ + JDK-8392519: Cherry-pick metazone changes from CLDR for
+ tzdata2026d, for JDK update release
+ + JDK-8377992: (zipfs) Align ZipFileSystem END header validation
+ with the ZipFile implementation
+ + JDK-8341625: Improve ZipFile validation of the END header
+ + JDK-8304013: Add a fast, non-manual alternative to
+ test/jdk/java/util/zip/ZipFile/TestTooManyEntries
+ + JDK-8377983: (zipfs) ZipFileSystem.initCEN needlessly reads
+ END header
+ + JDK-8316391: (zipfs) ZipFileSystem.readFullyAt does not
+ tolerate short reads
+ + JDK-8255380: (zipfs) ZipFileSystem::readExtra can fail if
+ zipinfo-time is not set to false
+ + JDK-8272746: ZipFile can't open big file
+ (NegativeArraySizeException)
+ + JDK-8392072: Follow-on fix for Improve certification checking
+ + JDK-8391256: TestZoneTextPrinterParser.java assertion fails
+ with expected: <Mountain Standard Time> but was: <Mountain
+ Daylight Time>
+ + JDK-8388214: (tz) Update Timezone Data to 2026c
+ + JDK-8325680: Uninitialised memory in deleteGSSCB of
+ GSSLibStub.c:179 8194630: GSS: Uninitialized
+ cb->initiator_address when using channel binding with native
+ kerberos
+ + JDK-8390380: Cherry-pick metazone changes from CLDR to support
+ tzdata2026c for JDK update releases
+ + JDK-8390388: Cherry-pick tz attributes from newer CLDR data
+ for jdk25u and earlier
+ + JDK-8381379: Support std/dstOffset attributes in CLDR's
+ metazone definitions
+ + JDK-8387123: Remove LuxTrust Global Root CA
+ + JDK-8250839: Improve test template SSLEngineTemplate with
+ SSLContextTemplate
+ + JDK-8349988: Change cgroup version detection logic to not
+ depend on /proc/cgroups 8347811: Container detection code for
+ cgroups v2 should use cgroup.controllers 8354878: File Leak in
+ CgroupSubsystemFactory::determine_type of
+ cgroupSubsystem_linux.cpp:300 8347129: cpuset cgroups
+ controller is required for no good reason
+ + JDK-8259662: Don't wrap SocketExceptions into SSLExceptions
+ in SSLSocketImpl
+ + JDK-8345149: [8u]
+ javax/sound/midi/Soundbanks/GetSoundBankSecurityException/
+ /GetSoundBankSecurityException.java fails with
+ FileSystemException
+ + JDK-8186464: ZipFile cannot read some InfoZip ZIP64 zip files
+ + JDK-8384902: Update GIFlib to 6.1.3
+ + JDK-8388811: [8u] VS2010 build broken by JDK-8374058
+ + JDK-8388142: [8u] Path to PreferredKey.java exclusion is wrong
+ + JDK-8369032: Add test to ensure serialized ICC_Profile stores
+ only necessary optional data
+ + JDK-8385390: Update FreeType to 2.14.3
+ + JDK-8378823: AIX build fails after zlib updated by JDK-8378631
+ + JDK-8252250: isnanf is obsolete
+ + JDK-8303215: Make thread stacks not use huge pages
+ + JDK-8313083: Print 'rss' and 'cache' as part of the
+ container information
+ + JDK-8298730: Refactor subsystem_file_line_contents and add
+ docs and tests
+ + JDK-8386275: Bump update version of OpenJDK: 8u512
+ + JDK-8239798: SSLSocket closes socket both socket endpoints on
+ a SocketTimeoutException
+ + JDK-8347000: Bug in com/sun/net/httpserver/bugs/B6361557.java
+ test
+ + JDK-8395369: Adjust aix VirtualMachineImpl.c to latest changes
+ on Linux
+ + JDK-8267617: Certificate's IP x509 NameConstraints raises
+ ArrayIndexOutOfBoundsException
+ + JDK-8282201: Consider removal of expiry check in
+ VerifyCACerts.java test
+ + JDK-8300167: Add validation of the raster's layout before
+ using in native
+ + JDK-8298240: Replace the usage of ImageLayoutException by the
+ CMMException
+ + JDK-8264666: Change implementation of safeAdd/safeMult in the
+ LCMSImageLayout class
+ + JDK-8290368: Introduce LDAP and RMI protocol-specific object
+ factory filters to JNDI implementation
+ + JDK-8240226: DeflateIn_InflateOut.java test incorrectly
+ assumes size of compressed file
+ + JDK-8204539: improve error messages in matchJavaTZ [windows]
+- Migrate build from icedtea framework to the openjdk/jdk8u upstream
+ repository
+- Added patches:
+ * improved-font-rendering.patch
+ + port icedtea font rendering improvements
+ * keytool-systemlineendings.patch
+ + use system line endings in keytool
+ * multiple-pkcs11-library-init.patch
+ + allow multiple initialization of PKCS#11 libraries
+ * system-libs.patch
+ + allow building against system libraries
+ * system-pcsclite.patch
+ + allow building against system pcsc-lite
+ * x11-hidpi.patch
+ + add HiDPI support on X11
+- Removed patches:
+ * Upgrade-to-tzdata2026c.patch
+ + integrated upstream
+ * icedtea-3.8.0-s390.patch
+ * java-1_8_0-openjdk-suse-desktop-files.patch
+ * reproducible-dist-id.patch
+ * reproducible-jvm-cfg-order.patch
+ + not needed after migration from icedtea framework
+- Modified patches:
+ * 1015432.patch
+ * JDK_1_8_0-8208602.patch
+ * adlc-parser.patch
+ * bsc1211968.patch
+ * disable-doclint-by-default.patch
+ * fips.patch
+ * java-40y.patch
+ * java-atk-wrapper-security.patch
+ * make-jobserver-detection.patch
+ * ppc-zero-hotspot.patch
+ * reproducible-classuse-order.patch
+ * reproducible-copyright-year.patch
+ * reproducible-directory-mtime.patch
+ * reproducible-generated-source-dates.patch
+ * reproducible-generated-timestamps.patch
+ * reproducible-javadoc-timestamp.patch
+ * reproducible-properties.patch
+ * reproducible-zip-extra-fields.patch
+ * riscv64-zero.patch
+ * tls13extensions.patch
+ * zero-javadoc-verbose.patch
+ + rediff on top of direct openjdk 8u tree
+
+-------------------------------------------------------------------
+Sat Sep 19 19:04:28 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Added patch:
+ * Upgrade-to-tzdata2026c.patch
+ + port OpenJDK 8 to timezone data 2026c
+ (bsc#1275035, bsc#1280281)
+
+-------------------------------------------------------------------
Old:
----
aarch32-git.tar.xz
icedtea-3.40.1.tar.xz
icedtea-3.8.0-s390.patch
java-1_8_0-openjdk-suse-desktop-files.patch
openjdk-git.tar.xz
reproducible-dist-id.patch
reproducible-jvm-cfg-order.patch
shenandoah-git.tar.xz
New:
----
TestCryptoLevel.java
TestECDSA.java
config.guess
config.sub
improved-font-rendering.patch
jconsole.desktop.in
jdk8u512-b09.tar.gz
keytool-systemlineendings.patch
multiple-pkcs11-library-init.patch
nss.cfg.in
policytool.desktop.in
system-libs.patch
system-pcsclite.patch
systemtap-tapset.tar.xz
x11-hidpi.patch
----------(Old B)----------
Old: + integrated upstream
* icedtea-3.8.0-s390.patch
* java-1_8_0-openjdk-suse-desktop-files.patch
Old: * icedtea-3.8.0-s390.patch
* java-1_8_0-openjdk-suse-desktop-files.patch
* reproducible-dist-id.patch
Old: * java-1_8_0-openjdk-suse-desktop-files.patch
* reproducible-dist-id.patch
* reproducible-jvm-cfg-order.patch
Old: * reproducible-dist-id.patch
* reproducible-jvm-cfg-order.patch
+ not needed after migration from icedtea framework
----------(Old E)----------
----------(New B)----------
New:- Added patches:
* improved-font-rendering.patch
+ port icedtea font rendering improvements
New: + port icedtea font rendering improvements
* keytool-systemlineendings.patch
+ use system line endings in keytool
New: + use system line endings in keytool
* multiple-pkcs11-library-init.patch
+ allow multiple initialization of PKCS#11 libraries
New: + allow multiple initialization of PKCS#11 libraries
* system-libs.patch
+ allow building against system libraries
New: + allow building against system libraries
* system-pcsclite.patch
+ allow building against system pcsc-lite
New: + allow building against system pcsc-lite
* x11-hidpi.patch
+ add HiDPI support on X11
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_8_0-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:10.913194319 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:10.916194445 +0100
@@ -19,9 +19,11 @@
# ugly hack to prevent spec-cleaner from changing make -> make_build
%global make make
%{!?aarch64:%global aarch64 aarch64 arm64 armv8}
-%global jit_arches %{ix86} x86_64 ppc64 ppc64le %{aarch64} %{arm}
-%global icedtea_version 3.40.1
-%global buildoutputdir openjdk.build/
+%global jit_arches %{ix86} x86_64 ppc64 ppc64le %{aarch64}
+%global openjdk_repo jdk8u
+%global openjdk_tag jdk8u%{updatever}-b%{buildver}
+%global openjdk_dir %{openjdk_repo}-%{openjdk_tag}
+%global buildoutputdir build
%global headless_binaries java keytool orbd policytool rmid rmiregistry
servertool tnameserv
%global headless_binaries_comma %(echo %{headless_binaries} | sed 's#\ #,#g')
%global devel_binaries javac appletviewer extcheck jar jarsigner javadoc javah
javap jcmd jconsole jhat jinfo jmap jps jrunscript jsadebugd jstack jstat
jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc
@@ -43,8 +45,8 @@
%global priority 1805
%global featurever 8
%global javaver 1.%{featurever}.0
-%global updatever 504
-%global buildver 01
+%global updatever 512
+%global buildver 09
# Standard JPackage directories and symbolic links.
%global sdklnk java-%{javaver}-openjdk
%global archname %{sdklnk}
@@ -104,12 +106,6 @@
%ifarch ia64
%global archinstall ia64
%endif
-%ifarch s390
-%global archinstall s390
-%endif
-%ifarch s390x
-%global archinstall s390x
-%endif
%ifarch %{arm}
%global archinstall aarch32
%endif
@@ -178,15 +174,26 @@
License: Apache-1.1 AND Apache-2.0 AND GPL-1.0-or-later AND
GPL-2.0-only AND GPL-2.0-only WITH Classpath-exception-2.0 AND LGPL-2.0-only
AND MPL-1.0 AND MPL-1.1 AND LicenseRef-SUSE-Public-Domain AND W3C
Group: Development/Languages/Java
URL: https://openjdk.java.net/
-Source0:
https://icedtea.classpath.org/download/source/icedtea-%{icedtea_version}.tar.xz
-Source1:
https://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/openjdk-git.tar.xz
-Source2:
https://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/aarch32-git.tar.xz
-Source3:
https://icedtea.classpath.org/download/drops/icedtea8/%{icedtea_version}/shenandoah-git.tar.xz
-# nss fips configuration file
+Source0:
https://github.com/openjdk/%{openjdk_repo}/archive/%{openjdk_tag}.tar.gz
+Source10: systemtap-tapset.tar.xz
+Source11: jconsole.desktop.in
+Source12: policytool.desktop.in
+Source13: nss.cfg.in
+Source14: TestCryptoLevel.java
+Source15: TestECDSA.java
Source17: nss.fips.cfg.in
+Source100: config.guess
+Source101: config.sub
+# nss fips configuration file
# RPM/distribution specific patches
# bsc#1211968
Patch1: bsc1211968.patch
+Patch201: multiple-pkcs11-library-init.patch
+Patch203: system-pcsclite.patch
+Patch204: system-libs.patch
+Patch205: improved-font-rendering.patch
+Patch206: x11-hidpi.patch
+Patch207: keytool-systemlineendings.patch
# RHBZ 1015432
Patch2: 1015432.patch
# Restrict access to java-atk-wrapper classes
@@ -222,12 +229,8 @@
#
# Patch for PPC
Patch103: ppc-zero-hotspot.patch
-Patch1001: java-1_8_0-openjdk-suse-desktop-files.patch
-Patch1002: icedtea-3.8.0-s390.patch
# IcedTea-level reproducibility fixes - these patch the icedtea build itself,
# so unlike the openjdk ones above they are applied in %%prep
-Patch1003: reproducible-jvm-cfg-order.patch
-Patch1004: reproducible-dist-id.patch
Patch2001: disable-doclint-by-default.patch
Patch2002: JDK_1_8_0-8208602.patch
Patch3000: tls13extensions.patch
@@ -437,78 +440,126 @@
There are known issues with accessibility on, so please do not install
this package unless you really need to.
+%global bootcycle 1
+%if %{bootcycle}
+%global imagesdir bootcycle-build/images
+%global imagestarget bootcycle-images docs
+%else
+%global imagesdir images
+%global imagestarget images docs
+%endif
+
%prep
-%setup -q -n icedtea-%{icedtea_version}
+%setup -q -n %{openjdk_dir}
+cp %{SOURCE100} %{SOURCE101} common/autoconf/build-aux/
+%patch -P 1 -p1
+%patch -P 2 -p1
+%patch -P 3 -p1
+%patch -P 12 -p1
+%if %{with zero}
+%patch -P 14 -p1
+%endif
+%patch -P 15 -p1
+%patch -P 20 -p1
+%patch -P 21 -p1
+%patch -P 22 -p1
+%patch -P 23 -p1
+%patch -P 24 -p1
+%patch -P 25 -p1
+%patch -P 26 -p1
+%patch -P 27 -p1
+%patch -P 28 -p1
+%ifarch ppc ppc64 ppc64le
+%patch -P 103 -p1
+%endif
+%patch -P 201 -p1
+%patch -P 203 -p1
+%patch -P 204 -p1
+%patch -P 205 -p1
+%patch -P 206 -p1
+%patch -P 207 -p1
+%patch -P 2001 -p1
+%patch -P 2002 -p1
+%patch -P 3000 -p1
+%ifarch riscv64
+%patch -P 4000 -p1
+%endif
+%patch -P 5001 -p1
-%patch -P 1001 -p1
-%ifarch s390
-%patch -P 1002 -p1
+(cd common/autoconf && bash ./autogen.sh)
+
+# Extract systemtap tapsets
+%if %{with_systemtap}
+tar -x -I xz -f %{SOURCE10}
+for file in tapset/*.in; do
+ OUTPUT_FILE=`echo $file | sed -e s:\.in$::g`
+ sed -e
s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g
$file > $file.1
+%ifarch %{ix86}
+ sed -e
s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g
$file.1 > $OUTPUT_FILE
+%else
+ sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
%endif
+ sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE
+done
+%endif
+
+# Prepare desktop files
+for file in %{SOURCE11} %{SOURCE12} ; do
+ OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
+ sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE
+ sed -i -e s:@VERSION@:%{javaver}:g $OUTPUT_FILE
+done
-# Reproducibility fixes to the icedtea build itself. These must be applied
-# before %%build runs autogen.sh, which regenerates configure and Makefile.in.
-%patch -P 1003 -p1
-%patch -P 1004 -p1
+# Setup nss.cfg
+sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE13} > nss.cfg
+sed -i -e "s:@NSS_SECMOD@:sql\:%{_sysconfdir}/pki/nssdb:g" nss.cfg
# Setup nss.fips.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
sed -i -e "s:@NSS_SECMOD@:sql\:%{_sysconfdir}/pki/nssdb:g" nss.fips.cfg
%build
-%define _lto_cflags %{nil}
-export LANG=C
-
# How many cpu's do we have?
export NUM_PROC=`%{_bindir}/getconf _NPROCESSORS_ONLN 2> /dev/null || :`
export NUM_PROC=${NUM_PROC:-1}
-CFLAGS=$(rpm -E '%{optflags}' | sed 's/-Wall\>//')
-CFLAGS="$CFLAGS -Wno-error"
-CXXFLAGS=${CFLAGS}
+EXTRA_CFLAGS="-Wno-error"; EXTRA_CPP_FLAGS="-Wno-error"
%ifarch ppc64 ppc64le ppc
-CFLAGS="$CFLAGS -fno-strict-aliasing"
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
%if 0%{?suse_version} >= 1330
-CFLAGS="$CFLAGS -std=gnu99 -fno-delete-null-pointer-checks -fno-lifetime-dse
-fcommon"
-CXXFLAGS="$CXXFLAGS -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse -fcommon"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -std=gnu99 -fno-delete-null-pointer-checks
-fno-lifetime-dse -fcommon"
+ EXTRA_CPP_FLAGS="$EXTRA_CPP_FLAGS -std=gnu++98
-fno-delete-null-pointer-checks -fno-lifetime-dse -fcommon"
%endif
-export CFLAGS
-export CXXFLAGS
-
-%if 0%{?with_gcc}
-export CPP=cpp-%{with_gcc}
-export CXX=g++-%{with_gcc}
-export CC=gcc-%{with_gcc}
-export NM=gcc-nm-%{with_gcc}
+%ifarch %{ix86}
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -mstackrealign -mincoming-stack-boundary=2
-mpreferred-stack-boundary=4"
%endif
-sh autogen.sh
-%configure \
- --disable-downloading \
- --with-tzdata-dir=%{_datadir}/javazi \
- --with-pkgversion="build %{javaver}_%{updatever}-b%{buildver}
suse-0%{?suse_version}-%{_arch}" \
- --disable-nss \
- --enable-sysconf-nss \
- --with-curves=all \
-%if %{with bootstrap}
- --enable-bootstrap \
-%else
- --disable-bootstrap \
-%endif
-%ifnarch %{arm} %{aarch64}
- --with-parallel-jobs="${NUM_PROC}" \
-%endif
-%ifarch s390
- --with-boot-jdk-jvmargs="-Xms256M -Xmx768M" \
-%endif
+mkdir -p %{buildoutputdir}
+
+pushd %{buildoutputdir}
+
+bash ../configure \
+%if 0%{?with_gcc}
+ CC="gcc-%{with_gcc}" \
+ CXX="g++-%{with_gcc}" \
+ CPP="cpp-%{with_gcc}" \
+ NM="gcc-nm-%{with_gcc}" \
+%endif
+ --with-milestone=fcs --with-update-version=%{updatever} \
+ --with-build-number=b%{buildver} \
+ --with-user-release-suffix="suse-0%{?suse_version}-%{_arch}" \
%if %{with zero}
- --enable-zero \
- --disable-jfr \
+ --with-jvm-variants=zero --disable-jfr \
%endif
+ --with-native-debug-symbols=internal --disable-zip-debug-info \
+ --enable-unlimited-crypto --with-stdc++lib=dynamic \
+ --with-zlib=system --with-giflib=system \
+ --with-libjpeg=system --with-libpng=system \
%if %{with_system_lcms}
- --enable-system-lcms \
+ --with-lcms=system \
%else
- --disable-system-lcms \
+ --with-lcms=bundled \
%endif
%if %{with_system_pcsc}
--enable-system-pcsc \
@@ -530,71 +581,27 @@
%else
--disable-improved-font-rendering \
%endif
-%ifarch %{arm}
- --with-hotspot-src-zip=%{SOURCE2} \
-%else
-%if %{without zero} && %{with_shenandoah}
- --with-hotspot-src-zip=%{SOURCE3} \
- --with-hotspot-build=shenandoah \
-%endif
-%endif
- --with-openjdk-src-zip=%{SOURCE1}
-
-# configure has captured CFLAGS/CXXFLAGS and passes them on as
-# --with-extra-cflags/--with-extra-cxxflags, so they must not stay in the
-# environment: hotspot's makefiles only ever do "CFLAGS +=" and compile C++
-# with "$(CXX) $(CXXFLAGS) $(CFLAGS)", so an inherited CFLAGS puts -std=gnu99
-# on every g++ command line ("valid for C/ObjC but not for C++").
-unset CFLAGS CXXFLAGS
-
-%make patch %{?_smp_mflags}
-
-patch -p0 -i %{PATCH1}
-patch -p0 -i %{PATCH2}
-patch -p0 -i %{PATCH3}
-patch -p0 -i %{PATCH12}
-
-%if %{with zero}
-patch -p0 -i %{PATCH14}
-%endif
-
-patch -p0 -i %{PATCH15}
-
-patch -p0 -i %{PATCH20}
-patch -p0 -i %{PATCH21}
-patch -p0 -i %{PATCH22}
-patch -p1 -i %{PATCH23}
-patch -p1 -i %{PATCH24}
-patch -p1 -i %{PATCH25}
-patch -p1 -i %{PATCH26}
-patch -p1 -i %{PATCH27}
-patch -p1 -i %{PATCH28}
-
-%ifarch ppc ppc64 ppc64le
-# PPC fixes
-patch -p0 -i %{PATCH103}
+%ifarch s390
+ --with-boot-jdk-jvmargs="-Xms256M -Xmx768M" \
%endif
+ --with-extra-cflags="$EXTRA_CFLAGS" --with-extra-cxxflags="$EXTRA_CPP_FLAGS"
+make JOBS=$NUM_PROC LOG=trace DEBUG_BINARIES=true POST_STRIP_CMD="" \
+ WARNINGS_ARE_ERRORS="-Wno-error" %{imagestarget}
-patch -p0 -i %{PATCH2001}
-patch -p0 -i %{PATCH2002}
+popd >& /dev/null
-patch -p0 -i %{PATCH3000}
+export JAVA_HOME=$(pwd)/%{buildoutputdir}/%{imagesdir}/j2sdk-image
+cp %{SOURCE14} %{SOURCE15} .
-patch -p0 -i %{PATCH4000}
+$JAVA_HOME/bin/javac TestCryptoLevel.java TestECDSA.java
-patch -p0 -i %{PATCH5001}
+$JAVA_HOME/bin/java TestCryptoLevel
-(cd openjdk/common/autoconf
- bash ./autogen.sh
-)
-
-%{make} %{?_smp_mflags}
-
-export JAVA_HOME=$(pwd)/%{buildoutputdir}images/j2sdk-image
+$JAVA_HOME/bin/java TestECDSA || true
# cacerts are generated in runtime in openSUSE
-if [ -f %{buildoutputdir}images/j2sdk-image/jre/lib/security/cacerts ]; then
- rm -f %{buildoutputdir}images/j2sdk-image/jre/lib/security/cacerts
+if [ -f %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts ];
then
+ rm -f
%{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts
fi
# Check debug symbols are present and can identify code
@@ -618,7 +625,18 @@
# skip /usr/lib/rpm/brp-check-bytecode-version:
export NO_BRP_CHECK_BYTECODE_VERSION=true
-pushd %{buildoutputdir}images/j2sdk-image
+%if %{with_systemtap}
+ # Install systemtap support files.
+ install -dm 755 %{buildroot}%{_jvmdir}/%{sdkdir}/tapset
+ cp -a tapset/*.stp %{buildroot}%{_jvmdir}/%{sdkdir}/tapset/
+ install -d -m 755 %{buildroot}%{tapsetdir}
+ pushd %{buildroot}%{tapsetdir}
+ RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
+ ln -sf $RELATIVE/*.stp .
+ popd
+%endif
+
+pushd %{buildoutputdir}/%{imagesdir}/j2sdk-image
# Install main files.
install -d -m 755 %{buildroot}%{_jvmdir}/%{sdkdir}
@@ -685,24 +703,10 @@
[ -f bin/java-rmi.cgi ] && mv bin/java-rmi.cgi sample/rmi
cp -a sample %{buildroot}%{_jvmdir}/%{sdkdir}
-%if %{with_systemtap}
- # Install systemtap support files.
- cp -a tapset %{buildroot}%{_jvmdir}/%{sdkdir}
- pushd %{buildroot}%{_jvmdir}/%{sdkdir}/tapset
- for i in *.stp; do
- mv $i $(basename $i .stp)-%{javaver}.stp
- done
- popd
- install -d -m 755 %{buildroot}%{tapsetdir}
- pushd %{buildroot}%{tapsetdir}
- RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
- ln -sf $RELATIVE/*.stp .
- popd
-%endif
-
popd
# Install nss.fips.cfg: NSS configuration for global FIPS mode
(crypto-policies)
+install -m 644 nss.cfg %{buildroot}%{_jvmdir}/%{jredir}/lib/security/
install -m 644 nss.fips.cfg %{buildroot}%{_jvmdir}/%{jredir}/lib/security/
# Install Javadoc documentation.
@@ -712,7 +716,7 @@
# Install icons and menu entries.
for s in 16 24 32 48 ; do
install -D -p -m 644 \
- openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-openjdk.png
done
@@ -1162,9 +1166,9 @@
%dir %{_libdir}/jvm-exports
%dir %{_libdir}/jvm-private
-%doc %{buildoutputdir}images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir}images/j2sdk-image/jre/LICENSE
-%doc %{buildoutputdir}images/j2sdk-image/jre/THIRD_PARTY_README
+%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/LICENSE
+%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
++++++ 1015432.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:10.995197749 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.003198084 +0100
@@ -1,6 +1,8 @@
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 15:44:12
2013 -0700
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 19 16:03:33
2013 +0000
-@@ -4797,9 +4797,19 @@
+diff --git a/hotspot/src/os/linux/vm/os_linux.cpp
b/hotspot/src/os/linux/vm/os_linux.cpp
+index 742e17d115..af900264ee 100644
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -5200,9 +5200,19 @@ jint os::init_2(void)
// size. Add a page for compiler2 recursion in main thread.
// Add in 2*BytesPerWord times page size to account for VM stack during
// class initialization depending on 32 or 64 bit VM.
++++++ JDK_1_8_0-8208602.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.021198837 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.025199004 +0100
@@ -1,15 +1,7 @@
-
-# HG changeset patch
-# User weijun
-# Date 1533101708 -28800
-# Node ID 9d92ff04a29c12a5d47f2ca4e772f7716bfdb8ff
-# Parent b6e0bfe4a6ec5d8d9d9476c05627dfb47f2263e1
-8208602: Cannot read PEM X.509 cert if there is whitespace after the header or
footer
-Reviewed-by: xuelei
-
-diff -r b6e0bfe4a6ec -r 9d92ff04a29c
src/java.base/share/classes/sun/security/provider/X509Factory.java
---- openjdk/jdk/src/share/classes/sun/security/provider/X509Factory.java
Wed Aug 01 01:40:44 2018 -0400
-+++ openjdk/jdk/src/share/classes/sun/security/provider/X509Factory.java
Wed Aug 01 13:35:08 2018 +0800
+diff --git a/jdk/src/share/classes/sun/security/provider/X509Factory.java
b/jdk/src/share/classes/sun/security/provider/X509Factory.java
+index e0deae26cc..beb4efab40 100644
+--- a/jdk/src/share/classes/sun/security/provider/X509Factory.java
++++ b/jdk/src/share/classes/sun/security/provider/X509Factory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights
reserved.
@@ -17,7 +9,7 @@
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
-@@ -635,7 +635,8 @@
+@@ -634,7 +634,8 @@ public class X509Factory extends CertificateFactorySpi {
if (next != '\r') footer.append((char)next);
}
@@ -27,9 +19,10 @@
return Pem.decode(new String(data, 0, pos));
}
-diff -r b6e0bfe4a6ec -r 9d92ff04a29c
test/jdk/sun/security/provider/X509Factory/BadPem.java
---- openjdk/jdk/test/sun/security/provider/X509Factory/BadPem.java Wed Aug
01 01:40:44 2018 -0400
-+++ openjdk/jdk/test/sun/security/provider/X509Factory/BadPem.java Wed Aug
01 13:35:08 2018 +0800
+diff --git a/jdk/test/sun/security/provider/X509Factory/BadPem.java
b/jdk/test/sun/security/provider/X509Factory/BadPem.java
+index 9147ab8ce9..e800b6ac56 100644
+--- a/jdk/test/sun/security/provider/X509Factory/BadPem.java
++++ b/jdk/test/sun/security/provider/X509Factory/BadPem.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
@@ -37,7 +30,7 @@
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
-@@ -23,14 +23,13 @@
+@@ -23,13 +23,12 @@
/*
* @test
@@ -53,8 +46,7 @@
import java.io.PrintStream;
import java.security.KeyStore;
import java.security.cert.CertificateException;
- import java.util.Arrays;
-@@ -49,10 +48,12 @@
+@@ -48,10 +47,12 @@ public class BadPem {
String pass = "passphrase";
String alias = "dummy";
@@ -67,7 +59,7 @@
ByteArrayOutputStream bout = new ByteArrayOutputStream();
PrintStream pout = new PrintStream(bout);
byte[] CRLF = new byte[] {'\r', '\n'};
-@@ -64,14 +65,20 @@
+@@ -63,14 +64,20 @@ public class BadPem {
}
pout.println(X509Factory.END_CERT);
@@ -91,4 +83,3 @@
}
-
++++++ TestCryptoLevel.java ++++++
/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
Copyright (C) 2012 Red Hat, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
import java.security.Permission;
import java.security.PermissionCollection;
public class TestCryptoLevel
{
public static void main(String[] args)
throws NoSuchFieldException, ClassNotFoundException,
IllegalAccessException, InvocationTargetException
{
Class<?> cls = null;
Method def = null, exempt = null;
try
{
cls = Class.forName("javax.crypto.JceSecurity");
}
catch (ClassNotFoundException ex)
{
System.err.println("Running a non-Sun JDK.");
System.exit(0);
}
try
{
def = cls.getDeclaredMethod("getDefaultPolicy");
exempt = cls.getDeclaredMethod("getExemptPolicy");
}
catch (NoSuchMethodException ex)
{
System.err.println("Running IcedTea with the original crypto patch.");
System.exit(0);
}
def.setAccessible(true);
exempt.setAccessible(true);
PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
PermissionCollection exemptPerms = (PermissionCollection)
exempt.invoke(null);
Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
Field apField = apCls.getDeclaredField("INSTANCE");
apField.setAccessible(true);
Permission allPerms = (Permission) apField.get(null);
if (defPerms.implies(allPerms) && (exemptPerms == null ||
exemptPerms.implies(allPerms)))
{
System.err.println("Running with the unlimited policy.");
System.exit(0);
}
else
{
System.err.println("WARNING: Running with a restricted crypto policy.");
System.exit(-1);
}
}
}
++++++ TestECDSA.java ++++++
/* TestECDSA -- Ensure ECDSA signatures are working.
Copyright (C) 2016 Red Hat, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Signature;
/**
* @test
*/
public class TestECDSA {
public static void main(String[] args) throws Exception {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
KeyPair key = keyGen.generateKeyPair();
byte[] data = "This is a string to sign".getBytes("UTF-8");
Signature dsa = Signature.getInstance("NONEwithECDSA");
dsa.initSign(key.getPrivate());
dsa.update(data);
byte[] sig = dsa.sign();
System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
dsaCheck.initVerify(key.getPublic());
dsaCheck.update(data);
boolean success = dsaCheck.verify(sig);
if (!success) {
throw new RuntimeException("Test failed. Signature verification
error");
}
System.out.println("Test passed.");
}
}
++++++ adlc-parser.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.111202601 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.116202810 +0100
@@ -1,6 +1,8 @@
---- openjdk/hotspot/src/share/vm/adlc/formsopt.cpp 2014-07-03
21:56:12.000000000 +0200
-+++ openjdk/hotspot/src/share/vm/adlc/formsopt.cpp 2014-07-14
11:43:21.900408570 +0200
-@@ -347,6 +347,7 @@
+diff --git a/hotspot/src/share/vm/adlc/formsopt.cpp
b/hotspot/src/share/vm/adlc/formsopt.cpp
+index ac8ffff296..3fe42992aa 100644
+--- a/hotspot/src/share/vm/adlc/formsopt.cpp
++++ b/hotspot/src/share/vm/adlc/formsopt.cpp
+@@ -440,6 +440,7 @@ FrameForm::FrameForm() {
_return_value = NULL;
_c_return_value = NULL;
_interpreter_frame_pointer_reg = NULL;
++++++ bsc1211968.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.135203605 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.138203731 +0100
@@ -1,6 +1,8 @@
---- openjdk/jdk/src/share/classes/sun/security/ssl/DHKeyExchange.java
2023-11-14 07:18:11.483931806 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/DHKeyExchange.java
2023-11-14 07:20:21.018138340 +0100
-@@ -253,11 +253,7 @@
+diff --git a/jdk/src/share/classes/sun/security/ssl/DHKeyExchange.java
b/jdk/src/share/classes/sun/security/ssl/DHKeyExchange.java
+index 49f5a90254..2e3d6218d7 100644
+--- a/jdk/src/share/classes/sun/security/ssl/DHKeyExchange.java
++++ b/jdk/src/share/classes/sun/security/ssl/DHKeyExchange.java
+@@ -253,11 +253,7 @@ final class DHKeyExchange {
static {
String property = GetPropertyAction.privilegedGetProperty(
"jdk.tls.ephemeralDHKeySize");
++++++ config.guess ++++++
++++ 1808 lines (skipped)
++++++ config.sub ++++++
++++ 1961 lines (skipped)
++++++ disable-doclint-by-default.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.201206366 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.207206617 +0100
@@ -1,18 +1,8 @@
-Disable doclint by default
-
-OpenJDK 8 adds and enables doclint by default. This catches issues in
-javadoc comments. It is too strict, breaks javadoc compilation and, in
-general, breaks the build for old code known to build with previous
-versions of OpenJDK.
-
-See: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
-See:
https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150.html
-
-Author: Andrew John Hughes <[email protected]>
-Author: Emmanuel Bourg <[email protected]>
---- openjdk/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
-+++ openjdk/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
-@@ -811,10 +811,9 @@
+diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
+index 3db4597958..a59b56daaa 100644
+--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
++++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
+@@ -812,10 +812,9 @@ public class DocEnv {
doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION :
DocLint.XMSGS_CUSTOM_PREFIX + opt);
}
@@ -26,9 +16,11 @@
return;
}
---- openjdk/langtools/test/tools/javadoc/doclint/DocLintTest.java
-+++ openjdk/langtools/test/tools/javadoc/doclint/DocLintTest.java
-@@ -130,12 +130,12 @@
+diff --git a/langtools/test/tools/javadoc/doclint/DocLintTest.java
b/langtools/test/tools/javadoc/doclint/DocLintTest.java
+index 346b457f29..3a1fd67d31 100644
+--- a/langtools/test/tools/javadoc/doclint/DocLintTest.java
++++ b/langtools/test/tools/javadoc/doclint/DocLintTest.java
+@@ -130,12 +130,12 @@ public class DocLintTest {
};
test(Collections.<String>emptyList(),
@@ -45,7 +37,7 @@
test(Arrays.asList("-Xdoclint:none"),
Main.Result.OK,
-@@ -158,8 +158,8 @@
+@@ -158,8 +158,8 @@ public class DocLintTest {
EnumSet.of(Message.DL_WRN12));
test(Arrays.asList(rawDiags, "-private"),
++++++ fips.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.233207705 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.238207914 +0100
@@ -1,6 +1,8 @@
---- openjdk/common/autoconf/configure.ac 2022-02-08 15:00:13.864829794
+0100
-+++ openjdk/common/autoconf/configure.ac 2022-02-08 15:00:30.560949558
+0100
-@@ -212,6 +212,7 @@
+diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac
+index 151e5a109f..a8761b500e 100644
+--- a/common/autoconf/configure.ac
++++ b/common/autoconf/configure.ac
+@@ -212,6 +212,7 @@ LIB_SETUP_FREETYPE
LIB_SETUP_ALSA
LIB_SETUP_FONTCONFIG
LIB_SETUP_MISC_LIBS
@@ -8,9 +10,11 @@
LIB_SETUP_STATIC_LINK_LIBSTDCPP
LIB_SETUP_ON_WINDOWS
---- openjdk/common/autoconf/libraries.m4 2022-02-08 15:00:13.864829794
+0100
-+++ openjdk/common/autoconf/libraries.m4 2022-02-08 15:00:30.560949558
+0100
-@@ -1334,3 +1334,63 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+index 85cfe1fe19..b2d1f665e0 100644
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -1161,3 +1161,63 @@ AC_DEFUN_ONCE([LIB_SETUP_ON_WINDOWS],
BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
fi
])
@@ -74,9 +78,11 @@
+ fi
+ AC_SUBST(USE_SYSCONF_NSS)
+])
---- openjdk/common/autoconf/spec.gmk.in 2022-02-08 15:00:13.864829794
+0100
-+++ openjdk/common/autoconf/spec.gmk.in 2022-02-08 15:00:30.560949558
+0100
-@@ -313,6 +313,10 @@
+diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
+index 8ce3f216c6..fb58f31725 100644
+--- a/common/autoconf/spec.gmk.in
++++ b/common/autoconf/spec.gmk.in
+@@ -312,6 +312,10 @@ CUPS_CFLAGS:=@CUPS_CFLAGS@
ALSA_LIBS:=@ALSA_LIBS@
ALSA_CFLAGS:=@ALSA_CFLAGS@
@@ -87,42 +93,10 @@
PACKAGE_PATH=@PACKAGE_PATH@
# Source file for cacerts
---- openjdk/common/bin/compare_exceptions.sh.incl 2022-02-08
15:00:13.864829794 +0100
-+++ openjdk/common/bin/compare_exceptions.sh.incl 2022-02-08
15:00:30.560949558 +0100
-@@ -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/libunpack.so
- ./jre/lib/i386/libverify.so
- ./jre/lib/i386/libzip.so
-@@ -432,6 +433,7 @@
- ./jre/lib/amd64/libsplashscreen.so
- ./jre/lib/amd64/libsunec.so
- ./jre/lib/amd64/libsunwjdga.so
-+./jre/lib/amd64/libsystemconf.so
- ./jre/lib/amd64/libunpack.so
- ./jre/lib/amd64/libverify.so
- ./jre/lib/amd64/libzip.so
-@@ -585,6 +587,7 @@
- ./jre/lib/sparc/libsplashscreen.so
- ./jre/lib/sparc/libsunec.so
- ./jre/lib/sparc/libsunwjdga.so
-+./jre/lib/sparc/libsystemconf.so
- ./jre/lib/sparc/libunpack.so
- ./jre/lib/sparc/libverify.so
- ./jre/lib/sparc/libzip.so
-@@ -738,6 +741,7 @@
- ./jre/lib/sparcv9/libsplashscreen.so
- ./jre/lib/sparcv9/libsunec.so
- ./jre/lib/sparcv9/libsunwjdga.so
-+./jre/lib/sparcv9/libsystemconf.so
- ./jre/lib/sparcv9/libunpack.so
- ./jre/lib/sparcv9/libverify.so
- ./jre/lib/sparcv9/libzip.so
---- openjdk/common/nb_native/nbproject/configurations.xml 2022-02-08
15:00:13.868829822 +0100
-+++ openjdk/common/nb_native/nbproject/configurations.xml 2022-02-08
15:00:30.564949586 +0100
+diff --git a/common/nb_native/nbproject/configurations.xml
b/common/nb_native/nbproject/configurations.xml
+index d2beed0b93..3b6aef98d9 100644
+--- a/common/nb_native/nbproject/configurations.xml
++++ b/common/nb_native/nbproject/configurations.xml
@@ -53,6 +53,9 @@
<in>jvmtiEnterTrace.cpp</in>
</df>
@@ -133,21 +107,23 @@
</df>
</df>
<df name="jdk">
-@@ -12771,6 +12774,11 @@
- ex="false"
+@@ -12772,6 +12775,11 @@
tool="0"
flavor2="0">
-+ </item>
+ </item>
+ <item path="../../jdk/src/solaris/native/java/security/systemconf.c"
+ ex="false"
+ tool="0"
+ flavor2="0">
- </item>
++ </item>
<item path="../../jdk/src/share/native/java/util/TimeZone.c"
ex="false"
---- openjdk/jdk/make/lib/SecurityLibraries.gmk 2022-02-08 15:00:15.708843020
+0100
-+++ openjdk/jdk/make/lib/SecurityLibraries.gmk 2022-02-08 15:00:30.564949586
+0100
-@@ -300,3 +300,34 @@
+ tool="0"
+diff --git a/jdk/make/lib/SecurityLibraries.gmk
b/jdk/make/lib/SecurityLibraries.gmk
+index 39f7e46c55..1f44badc9e 100644
+--- a/jdk/make/lib/SecurityLibraries.gmk
++++ b/jdk/make/lib/SecurityLibraries.gmk
+@@ -324,3 +324,34 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
endif
endif
@@ -182,8 +158,11 @@
+ BUILD_LIBRARIES += $(BUILD_LIBSYSTEMCONF)
+endif
+
---- openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers 1970-01-01
01:00:00.000000000 +0100
-+++ openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers 2022-02-08
15:00:30.564949586 +0100
+diff --git a/jdk/make/mapfiles/libsystemconf/mapfile-vers
b/jdk/make/mapfiles/libsystemconf/mapfile-vers
+new file mode 100644
+index 0000000000..a65ceb3b78
+--- /dev/null
++++ b/jdk/make/mapfiles/libsystemconf/mapfile-vers
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 2021, Red Hat, Inc.
@@ -220,9 +199,11 @@
+ local:
+ *;
+};
---- openjdk/jdk/src/share/classes/java/security/Security.java 2022-02-08
15:00:16.912851658 +0100
-+++ openjdk/jdk/src/share/classes/java/security/Security.java 2022-02-08
15:03:03.346045505 +0100
-@@ -30,6 +30,8 @@
+diff --git a/jdk/src/share/classes/java/security/Security.java
b/jdk/src/share/classes/java/security/Security.java
+index 0db09da706..adae0e47a4 100644
+--- a/jdk/src/share/classes/java/security/Security.java
++++ b/jdk/src/share/classes/java/security/Security.java
+@@ -30,6 +30,8 @@ import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.io.*;
import java.net.URL;
@@ -231,7 +212,7 @@
import sun.security.util.Debug;
import sun.security.util.PropertyExpander;
-@@ -69,6 +71,19 @@
+@@ -62,6 +64,19 @@ public final class Security {
}
static {
@@ -251,41 +232,26 @@
// doPrivileged here because there are multiple
// things in initialize that might require privs.
// (the FileInputStream call and the File.exists call,
-@@ -188,29 +203,10 @@
+@@ -179,6 +194,14 @@ public final class Security {
+ }
}
- String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
-- if (disableSystemProps == null &&
-- "true".equalsIgnoreCase(props.getProperty
-- ("security.useSystemPropertiesFile"))) {
--
-- // now load the system file, if it exists, so its values
-- // will win if they conflict with the earlier values
-- try (BufferedInputStream bis =
-- new BufferedInputStream(new
FileInputStream(SYSTEM_PROPERTIES))) {
-- props.load(bis);
++ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
+ if ((disableSystemProps == null ||
"false".equalsIgnoreCase(disableSystemProps)) &&
+
"true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile")))
{
+ if (SystemConfigurator.configure(props)) {
- loadedProps = true;
--
-- if (sdebug != null) {
-- sdebug.println("reading system security properties file "
+
-- SYSTEM_PROPERTIES);
-- sdebug.println(props.toString());
-- }
-- } catch (IOException e) {
-- if (sdebug != null) {
-- sdebug.println
-- ("unable to load security properties from " +
-- SYSTEM_PROPERTIES);
-- e.printStackTrace();
-- }
- }
- }
-
---- openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
2022-02-08 15:03:03.346045505 +0100
++ loadedProps = true;
++ }
++ }
++
+ if (!loadedProps) {
+ initializeStatic();
+ if (sdebug != null) {
+diff --git a/jdk/src/share/classes/java/security/SystemConfigurator.java
b/jdk/src/share/classes/java/security/SystemConfigurator.java
+new file mode 100644
+index 0000000000..926a8f2cfa
+--- /dev/null
++++ b/jdk/src/share/classes/java/security/SystemConfigurator.java
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) 2019, 2021, Red Hat, Inc.
@@ -523,8 +489,11 @@
+ }
+ }
+}
----
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
1970-01-01 01:00:00.000000000 +0100
-+++
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
2022-02-08 15:03:03.346045505 +0100
+diff --git
a/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+new file mode 100644
+index 0000000000..5c30a8b29c
+--- /dev/null
++++ b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2020, Red Hat, Inc.
@@ -557,9 +526,11 @@
+ boolean isSystemFipsEnabled();
+ boolean isPlainKeySupportEnabled();
+}
---- openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java 2022-02-08
15:00:17.096852977 +0100
-+++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java 2022-02-08
15:00:30.568949614 +0100
-@@ -63,6 +63,7 @@
+diff --git a/jdk/src/share/classes/sun/misc/SharedSecrets.java
b/jdk/src/share/classes/sun/misc/SharedSecrets.java
+index f065a2c685..40ca609e02 100644
+--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -63,6 +63,7 @@ public class SharedSecrets {
private static JavaObjectInputStreamReadString
javaObjectInputStreamReadString;
private static JavaObjectInputStreamAccess javaObjectInputStreamAccess;
private static JavaSecuritySignatureAccess javaSecuritySignatureAccess;
@@ -567,7 +538,7 @@
public static JavaUtilJarAccess javaUtilJarAccess() {
if (javaUtilJarAccess == null) {
-@@ -248,4 +249,12 @@
+@@ -248,4 +249,12 @@ public class SharedSecrets {
}
return javaxCryptoSealedObjectAccess;
}
@@ -580,8 +551,11 @@
+ return javaSecuritySystemConfiguratorAccess;
+ }
}
---- openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
2022-02-08 15:03:03.346045505 +0100
+diff --git a/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+new file mode 100644
+index 0000000000..14d1945039
+--- /dev/null
++++ b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2021, Red Hat, Inc.
@@ -873,8 +847,10 @@
+ }
+ }
+}
---- openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
2022-02-08 15:00:17.144853321 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
2022-02-08 15:03:03.350045534 +0100
+diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+index 27aaa5a2df..e450c35c48 100644
+--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
@@ -26,6 +26,9 @@
package sun.security.pkcs11;
@@ -885,7 +861,7 @@
import java.util.*;
import java.security.*;
-@@ -42,6 +45,8 @@
+@@ -42,6 +45,8 @@ import javax.security.auth.callback.ConfirmationCallback;
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.callback.TextOutputCallback;
@@ -894,7 +870,7 @@
import sun.security.util.Debug;
import sun.security.util.ResourcesMgr;
-@@ -58,6 +63,29 @@
+@@ -58,6 +63,29 @@ import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
*/
public final class SunPKCS11 extends AuthProvider {
@@ -924,7 +900,7 @@
private static final long serialVersionUID = -1354835039035306505L;
static final Debug debug = Debug.getInstance("sunpkcs11");
-@@ -320,10 +348,15 @@
+@@ -320,10 +348,15 @@ public final class SunPKCS11 extends AuthProvider {
// request multithreaded access first
initArgs.flags = CKF_OS_LOCKING_OK;
PKCS11 tmpPKCS11;
@@ -941,7 +917,7 @@
} catch (PKCS11Exception e) {
if (debug != null) {
debug.println("Multi-threaded initialization failed: " +
e);
-@@ -339,7 +372,7 @@
+@@ -339,7 +372,7 @@ public final class SunPKCS11 extends AuthProvider {
initArgs.flags = 0;
}
tmpPKCS11 = PKCS11.getInstance(library,
@@ -950,7 +926,7 @@
}
p11 = tmpPKCS11;
-@@ -379,6 +412,24 @@
+@@ -379,6 +412,24 @@ public final class SunPKCS11 extends AuthProvider {
if (nssModule != null) {
nssModule.setProvider(this);
}
@@ -975,9 +951,11 @@
} catch (Exception e) {
if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
throw new UnsupportedOperationException
---- openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
2022-02-08 15:00:17.148853350 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
2022-02-08 15:03:03.350045534 +0100
-@@ -49,6 +49,7 @@
+diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+index 2e42d1d9fb..6c9c920254 100644
+--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
++++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+@@ -49,6 +49,7 @@ package sun.security.pkcs11.wrapper;
import java.io.File;
import java.io.IOException;
@@ -985,7 +963,7 @@
import java.util.*;
import java.security.AccessController;
-@@ -147,17 +148,29 @@
+@@ -147,17 +148,29 @@ public class PKCS11 {
public static synchronized PKCS11 getInstance(String pkcs11ModulePath,
String functionList, CK_C_INITIALIZE_ARGS pInitArgs,
@@ -1016,7 +994,7 @@
if (omitInitialize == false) {
try {
pkcs11.C_Initialize(pInitArgs);
-@@ -1905,4 +1918,69 @@
+@@ -1905,4 +1918,69 @@ static class SynchronizedPKCS11 extends PKCS11 {
super.C_GenerateRandom(hSession, randomData);
}
}
@@ -1086,9 +1064,11 @@
+ }
+}
}
---- openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
2022-02-08 15:00:17.152853378 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
2022-02-08 15:03:03.350045534 +0100
-@@ -33,8 +33,13 @@
+diff --git a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+index ffee2c1603..9811947982 100644
+--- a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
++++ b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+@@ -33,8 +33,13 @@ import java.security.KeyStore.*;
import javax.net.ssl.*;
@@ -1102,7 +1082,7 @@
X509ExtendedKeyManager keyManager;
boolean isInitialized;
-@@ -62,7 +67,8 @@
+@@ -62,7 +67,8 @@ abstract class KeyManagerFactoryImpl extends
KeyManagerFactorySpi {
KeyStoreException, NoSuchAlgorithmException,
UnrecoverableKeyException {
if ((ks != null) && SunJSSE.isFIPS()) {
@@ -1112,7 +1092,7 @@
throw new KeyStoreException("FIPS mode: KeyStore must be "
+ "from provider " +
SunJSSE.cryptoProvider.getName());
}
-@@ -91,8 +97,8 @@
+@@ -91,8 +97,8 @@ abstract class KeyManagerFactoryImpl extends
KeyManagerFactorySpi {
keyManager = new X509KeyManagerImpl(
Collections.<Builder>emptyList());
} else {
@@ -1123,9 +1103,11 @@
throw new KeyStoreException(
"FIPS mode: KeyStore must be " +
"from provider " + SunJSSE.cryptoProvider.getName());
---- openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
2022-02-08 15:00:17.152853378 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
2022-02-08 15:00:30.568949614 +0100
-@@ -31,6 +31,7 @@
+diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+index 820e10164f..05f037eb16 100644
+--- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
++++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+@@ -31,6 +31,7 @@ import java.security.*;
import java.security.cert.*;
import java.util.*;
import javax.net.ssl.*;
@@ -1133,7 +1115,7 @@
import sun.security.action.GetPropertyAction;
import sun.security.provider.certpath.AlgorithmChecker;
import sun.security.validator.Validator;
-@@ -539,6 +540,23 @@
+@@ -539,6 +540,23 @@ public abstract class SSLContextImpl extends
SSLContextSpi {
static {
if (SunJSSE.isFIPS()) {
@@ -1157,7 +1139,7 @@
supportedProtocols = Arrays.asList(
ProtocolVersion.TLS13,
ProtocolVersion.TLS12,
-@@ -553,6 +571,7 @@
+@@ -553,6 +571,7 @@ public abstract class SSLContextImpl extends SSLContextSpi
{
ProtocolVersion.TLS11,
ProtocolVersion.TLS10
});
@@ -1165,7 +1147,7 @@
} else {
supportedProtocols = Arrays.asList(
ProtocolVersion.TLS13,
-@@ -612,6 +631,16 @@
+@@ -612,6 +631,16 @@ public abstract class SSLContextImpl extends
SSLContextSpi {
static ProtocolVersion[] getSupportedProtocols() {
if (SunJSSE.isFIPS()) {
@@ -1182,7 +1164,7 @@
return new ProtocolVersion[] {
ProtocolVersion.TLS13,
ProtocolVersion.TLS12,
-@@ -939,6 +968,16 @@
+@@ -939,6 +968,16 @@ public abstract class SSLContextImpl extends
SSLContextSpi {
static ProtocolVersion[] getProtocols() {
if (SunJSSE.isFIPS()) {
@@ -1197,11 +1179,13 @@
+ };
+ }
return new ProtocolVersion[]{
+ ProtocolVersion.TLS13,
ProtocolVersion.TLS12,
- ProtocolVersion.TLS11,
---- openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
2022-02-08 15:00:17.156853408 +0100
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
2022-02-08 15:00:30.568949614 +0100
-@@ -30,6 +30,8 @@
+diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+index 2845dc3793..d605726010 100644
+--- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
++++ b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+@@ -30,6 +30,8 @@ import static
sun.security.util.SecurityConstants.PROVIDER_VER;
import java.security.*;
@@ -1210,7 +1194,7 @@
/**
* The JSSE provider.
*
-@@ -215,8 +217,13 @@
+@@ -215,8 +217,13 @@ public abstract class SunJSSE extends
java.security.Provider {
"sun.security.ssl.SSLContextImpl$TLS11Context");
put("SSLContext.TLSv1.2",
"sun.security.ssl.SSLContextImpl$TLS12Context");
@@ -1224,12 +1208,15 @@
put("SSLContext.TLS",
"sun.security.ssl.SSLContextImpl$TLSContext");
if (isfips == false) {
---- openjdk/jdk/src/share/lib/security/java.security-linux 2022-02-08
15:00:17.300854441 +0100
-+++ openjdk/jdk/src/share/lib/security/java.security-linux 2022-02-08
15:00:30.568949614 +0100
-@@ -80,6 +80,14 @@
- #security.provider.10=sun.security.pkcs11.SunPKCS11
${java.home}/lib/security/nss.cfg
+diff --git a/jdk/src/share/lib/security/java.security-linux
b/jdk/src/share/lib/security/java.security-linux
+index 2f9e0348e2..e8db1101c0 100644
+--- a/jdk/src/share/lib/security/java.security-linux
++++ b/jdk/src/share/lib/security/java.security-linux
+@@ -75,6 +75,14 @@ security.provider.7=com.sun.security.sasl.Provider
+ security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
+ security.provider.9=sun.security.smartcardio.SunPCSC
- #
++#
+# Security providers used when global crypto-policies are set to FIPS.
+#
+fips.provider.1=sun.security.pkcs11.SunPKCS11
${java.home}/lib/security/nss.fips.cfg
@@ -1237,24 +1224,40 @@
+fips.provider.3=sun.security.ec.SunEC
+fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS
+
-+#
+ #
# Sun Provider SecureRandom seed source.
#
- # Select the primary source of seed data for the "SHA1PRNG" and
-@@ -175,6 +183,11 @@
+@@ -170,6 +178,11 @@ policy.ignoreIdentityScope=false
+ #
keystore.type=jks
- #
++#
+# Default keystore type used when global crypto-policies are set to FIPS.
+#
+fips.keystore.type=PKCS11
+
-+#
+ #
# Controls compatibility mode for the JKS keystore type.
#
- # When set to 'true', the JKS keystore type supports loading
---- openjdk/jdk/src/solaris/native/java/security/systemconf.c 1970-01-01
01:00:00.000000000 +0100
-+++ openjdk/jdk/src/solaris/native/java/security/systemconf.c 2022-02-08
15:00:30.568949614 +0100
+@@ -291,6 +304,13 @@ package.definition=sun.,\
+ #
+ security.overridePropertiesFile=true
+
++#
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=true
++
+ #
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+diff --git a/jdk/src/solaris/native/java/security/systemconf.c
b/jdk/src/solaris/native/java/security/systemconf.c
+new file mode 100644
+index 0000000000..34d0ff0ce9
+--- /dev/null
++++ b/jdk/src/solaris/native/java/security/systemconf.c
@@ -0,0 +1,170 @@
+/*
+ * Copyright (c) 2021, Red Hat, Inc.
++++++ improved-font-rendering.patch ++++++
++++ 1154 lines (skipped)
++++++ java-40y.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.276209503 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.286209921 +0100
@@ -1,19 +1,7 @@
-# Widen the currency cut-over sanity check from 10 to 40 years
-#
-# GenerateCurrencyData rejects any special-case cut-over time that is more
-# than 10 years away from the current time. That guard is about catching
-# typos in CurrencyData.properties, but it also makes the build fail when it
-# is run with a clock far from the data's epoch - which is what happens when
-# testing reproducibility with a shifted clock, and will happen anyway as
-# the data ages.
-#
-# Same change as java-40y.patch carries for java-17-openjdk.
-#
-
-diff --git
a/openjdk/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
b/openjdk/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
-index d599d9744fd..b544701fe66 100644
----
a/openjdk/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
-+++
b/openjdk/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+diff --git
a/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
b/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+index d599d9744f..b544701fe6 100644
+---
a/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++
b/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
@@ -283,8 +283,8 @@ public class GenerateCurrencyData {
checkCurrencyCode(newCurrency);
String timeString = currencyInfo.substring(4, length - 4);
++++++ java-atk-wrapper-security.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.308210842 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.312211009 +0100
@@ -1,6 +1,8 @@
---- openjdk/jdk/src/share/lib/security/java.security-linux 2014-07-15
23:08:27.000000000 +0200
-+++ openjdk/jdk/src/share/lib/security/java.security-linux 2014-07-18
09:04:45.127566697 +0200
-@@ -227,7 +227,9 @@
+diff --git a/jdk/src/share/lib/security/java.security-linux
b/jdk/src/share/lib/security/java.security-linux
+index 63b0ff9e73..2f9e0348e2 100644
+--- a/jdk/src/share/lib/security/java.security-linux
++++ b/jdk/src/share/lib/security/java.security-linux
+@@ -226,7 +226,9 @@ package.access=sun.,\
com.sun.activation.registries.,\
jdk.jfr.events.,\
jdk.jfr.internal.,\
@@ -11,7 +13,7 @@
#
# List of comma-separated packages that start with or equal this string
-@@ -280,7 +282,9 @@
+@@ -279,7 +281,9 @@ package.definition=sun.,\
com.sun.activation.registries.,\
jdk.jfr.events.,\
jdk.jfr.internal.,\
++++++ jconsole.desktop.in ++++++
[Desktop Entry]
Name=OpenJDK @VERSION@ Monitoring & Management Console
GenericName=OpenJDK Monitoring & Management Console
Comment=Monitor and manage OpenJDK applications
Exec=@JAVA_HOME@/bin/jconsole
Icon=java-@VERSION@-openjdk
Terminal=false
Type=Application
StartupWMClass=sun-tools-jconsole-JConsole
Categories=Development;Profiling;Java;
Version=1.0
++++++ keytool-systemlineendings.patch ++++++
diff --git a/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
b/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
index 9698c18cf1..b079e7f4d4 100644
--- a/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
+++ b/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
@@ -30,11 +30,13 @@ import java.io.PrintStream;
import java.io.IOException;
import java.math.BigInteger;
+import java.security.AccessController;
import java.security.cert.CertificateException;
import java.security.*;
import java.util.Base64;
+import sun.security.action.GetPropertyAction;
import sun.security.util.*;
import sun.security.x509.AlgorithmId;
import sun.security.x509.X509Key;
@@ -74,6 +76,14 @@ import sun.security.util.SignatureUtil;
* @author Hemma Prafullchandra
*/
public class PKCS10 {
+
+ private static final byte[] sysLineEndings;
+
+ static {
+ sysLineEndings =
+ AccessController.doPrivileged(new
GetPropertyAction("line.separator")).getBytes();
+ }
+
/**
* Constructs an unsigned PKCS #10 certificate request. Before this
* request may be used, it must be encoded and signed. Then it
@@ -303,13 +313,39 @@ public class PKCS10 {
*/
public void print(PrintStream out)
throws IOException, SignatureException {
+ print(out, false);
+ }
+
+ /**
+ * Prints an E-Mailable version of the certificate request on the print
+ * stream passed. The format is a common base64 encoded one, supported
+ * by most Certificate Authorities because Netscape web servers have
+ * used this for some time. Some certificate authorities expect some
+ * more information, in particular contact information for the web
+ * server administrator.
+ *
+ * @param out the print stream where the certificate request
+ * will be printed.
+ * @param systemLineEndings true if the request should be terminated
+ * using the system line endings.
+ * @exception IOException when an output operation failed
+ * @exception SignatureException when the certificate request was
+ * not yet signed.
+ */
+ public void print(PrintStream out, boolean systemLineEndings)
+ throws IOException, SignatureException {
+ byte[] lineEndings;
+
if (encoded == null)
throw new SignatureException("Cert request was not signed");
+ if (systemLineEndings)
+ lineEndings = sysLineEndings;
+ else
+ lineEndings = new byte[] {'\r', '\n'}; // CRLF
- byte[] CRLF = new byte[] {'\r', '\n'};
out.println("-----BEGIN NEW CERTIFICATE REQUEST-----");
- out.println(Base64.getMimeEncoder(64, CRLF).encodeToString(encoded));
+ out.println(Base64.getMimeEncoder(64,
lineEndings).encodeToString(encoded));
out.println("-----END NEW CERTIFICATE REQUEST-----");
}
diff --git a/jdk/src/share/classes/sun/security/tools/keytool/Main.java
b/jdk/src/share/classes/sun/security/tools/keytool/Main.java
index 9c04e60589..3518b0eb89 100644
--- a/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Main.java
@@ -131,6 +131,7 @@ public final class Main {
private String infilename = null;
private String outfilename = null;
private String srcksfname = null;
+ private boolean systemLineEndings = false;
// User-specified providers are added before any command is called.
// However, they are not removed before the end of the main() method.
@@ -198,7 +199,7 @@ public final class Main {
CERTREQ("Generates.a.certificate.request",
ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, DNAME,
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
- PROVIDERARG, PROVIDERPATH, V, PROTECTED),
+ PROVIDERARG, PROVIDERPATH, SYSTEMLINEENDINGS, V, PROTECTED),
CHANGEALIAS("Changes.an.entry.s.alias",
ALIAS, DESTALIAS, KEYPASS, KEYSTORE, STOREPASS,
STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG,
@@ -331,6 +332,7 @@ public final class Main {
STARTDATE("startdate", "<startdate>",
"certificate.validity.start.date.time"),
STOREPASS("storepass", "<arg>", "keystore.password"),
STORETYPE("storetype", "<storetype>", "keystore.type"),
+ SYSTEMLINEENDINGS("systemlineendings", null, "system.line.endings"),
TRUSTCACERTS("trustcacerts", null, "trust.certificates.from.cacerts"),
V("v", null, "verbose.output"),
VALIDITY("validity", "<valDays>", "validity.number.of.days");
@@ -571,6 +573,8 @@ public final class Main {
protectedPath = true;
} else if (collator.compare(flags, "-srcprotected") == 0) {
srcprotectedPath = true;
+ } else if (collator.compare(flags, "-systemlineendings") == 0) {
+ systemLineEndings = true;
} else {
System.err.println(rb.getString("Illegal.option.") + flags);
tinyHelp();
@@ -1488,7 +1492,7 @@ public final class Main {
// Sign the request and base-64 encode it
request.encodeAndSign(subject, signature);
- request.print(out);
+ request.print(out, systemLineEndings);
checkWeak(rb.getString("the.generated.certificate.request"), request);
}
@@ -4617,4 +4621,3 @@ class Pair<A, B> {
return new Pair<>(a,b);
}
}
-
diff --git a/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
b/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
index d3955359d9..4649ef8b16 100644
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
@@ -168,6 +168,8 @@ public class Resources extends java.util.ListResourceBundle
{
"keystore password"}, //-storepass
{"keystore.type",
"keystore type"}, //-storetype
+ {"system.line.endings",
+ "use system line endings rather than CRLF to terminate
output"}, //-systemlineendings
{"trust.certificates.from.cacerts",
"trust certificates from cacerts"}, //-trustcacerts
{"verbose.output",
++++++ make-jobserver-detection.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.370213435 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.373213561 +0100
@@ -1,7 +1,7 @@
-Index: openjdk/make/MakeHelpers.gmk
-===================================================================
---- openjdk/make/MakeHelpers.gmk.orig
-+++ openjdk/make/MakeHelpers.gmk
+diff --git a/make/MakeHelpers.gmk b/make/MakeHelpers.gmk
+index c999535555..6efb364566 100644
+--- a/make/MakeHelpers.gmk
++++ b/make/MakeHelpers.gmk
@@ -145,7 +145,7 @@ endef
# Hook to be called as the very first thing when running a normal build
++++++ multiple-pkcs11-library-init.patch ++++++
diff --git a/jdk/src/share/classes/sun/security/pkcs11/Config.java
b/jdk/src/share/classes/sun/security/pkcs11/Config.java
index 60ca2b3dca..b38f32be65 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/Config.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/Config.java
@@ -53,6 +53,7 @@ final class Config {
static final int ERR_HALT = 1;
static final int ERR_IGNORE_ALL = 2;
static final int ERR_IGNORE_LIB = 3;
+ static final int ERR_IGNORE_MULTI_INIT = 4;
// same as allowSingleThreadedModules but controlled via a system property
// and applied to all providers. if set to false, no SunPKCS11 instances
@@ -1002,6 +1003,8 @@ final class Config {
handleStartupErrors = ERR_IGNORE_LIB;
} else if (val.equals("halt")) {
handleStartupErrors = ERR_HALT;
+ } else if (val.equals("ignoreMultipleInitialisation")) {
+ handleStartupErrors = ERR_IGNORE_MULTI_INIT;
} else {
throw excToken("Invalid value for handleStartupErrors:");
}
diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
index fedcd7743e..27aaa5a2df 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
@@ -168,26 +168,37 @@ public final class SunPKCS11 extends AuthProvider {
String nssLibraryDirectory = config.getNssLibraryDirectory();
String nssSecmodDirectory = config.getNssSecmodDirectory();
boolean nssOptimizeSpace = config.getNssOptimizeSpace();
+ int errorHandling = config.getHandleStartupErrors();
if (secmod.isInitialized()) {
if (nssSecmodDirectory != null) {
String s = secmod.getConfigDir();
if ((s != null) &&
(s.equals(nssSecmodDirectory) == false)) {
- throw new ProviderException("Secmod directory "
- + nssSecmodDirectory
- + " invalid, NSS already initialized with "
- + s);
+ String msg = "Secmod directory " +
nssSecmodDirectory
+ + " invalid, NSS already initialized with " +
s;
+ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT
||
+ errorHandling == Config.ERR_IGNORE_ALL) {
+ throw new UnsupportedOperationException(msg);
+ } else {
+ throw new ProviderException(msg);
+ }
}
}
if (nssLibraryDirectory != null) {
String s = secmod.getLibDir();
if ((s != null) &&
(s.equals(nssLibraryDirectory) == false)) {
- throw new ProviderException("NSS library directory
"
+ String msg = "NSS library directory "
+ nssLibraryDirectory
+ " invalid, NSS already initialized with "
- + s);
+ + s;
+ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT
||
+ errorHandling == Config.ERR_IGNORE_ALL) {
+ throw new UnsupportedOperationException(msg);
+ } else {
+ throw new ProviderException(msg);
+ }
}
}
} else {
++++++ nss.cfg.in ++++++
name = NSS
nssLibraryDirectory = @NSS_LIBDIR@
nssDbMode = noDb
attributes = compatibility
handleStartupErrors = ignoreMultipleInitialisation
++++++ policytool.desktop.in ++++++
[Desktop Entry]
Name=OpenJDK @VERSION@ Policy Tool
GenericName=OpenJDK Policy Tool
Comment=Manage OpenJDK policy files
Exec=@JAVA_HOME@/jre/bin/policytool
Icon=java-@VERSION@-openjdk
Terminal=false
Type=Application
StartupWMClass=sun-security-tools-PolicyTool
Categories=System;DesktopSettings;Security;Java;
Version=1.0
++++++ ppc-zero-hotspot.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.472217702 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.482218120 +0100
@@ -1,6 +1,7 @@
-diff -up openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64
openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
---- openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64
2013-02-22 19:02:06.000000000 +0100
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
2013-04-18 16:21:24.897403406 +0200
+diff --git a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+index 663f0ac45c..bfa6c7828f 100644
+--- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
++++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
@@ -32,11 +32,15 @@
//
++++++ reproducible-classuse-order.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.509219250 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.513219417 +0100
@@ -1,34 +1,8 @@
-# Give the javadoc class-use tables a total ordering
-#
-# ClassUseWriter.pkgDivide sorts each list of uses with Collections.sort, i.e.
-# by Doc.compareTo, whose key is the member's own name plus its signature
-# (ExecutableMemberDocImpl.generateKey). The declaring class is not part of
-# that key, so every _Dyn*Stub.get_val() in org.omg.DynamicAny has the
-# identical key "get_val()", all the comparisons return 0, and the stable sort
-# leaves those rows in the order they were inserted.
-#
-# That insertion order is the order of RootDoc.classes(), which comes from the
-# package Scope and ultimately from the order javac's file manager listed the
-# source directory, so it varies between builds. Thirteen class-use pages
-# differed between two builds this way - the same rows, rotated.
-#
-# Break the tie on the qualified name, which does include the declaring class.
-# Entries that already compared unequal keep their position, so nothing else in
-# the generated documentation moves. IndexBuilder.DocComparator already breaks
-# its ties the same way, which is why the index pages were unaffected.
-#
-# JDK-8039410 fixed this upstream in 9 by routing the sort through
-# Util.makeComparatorForClassUse(); that change also rewrites IndexBuilder and
-# adds 160 lines of comparator plumbing to Util.java, none of which JDK 8
needs.
-#
-# Diffed against the icedtea8 drop rather than exported from the jdk8u tree:
-# icedtea's langtools has a newer ClassUseWriter.java than jdk8u492-ga, so a
-# patch generated from git does not apply here.
-#
-
----
a/openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
2026-07-29 21:17:30.204172822 +0200
-+++
b/openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
2026-07-29 21:17:41.462022551 +0200
-@@ -28,6 +28,7 @@
+diff --git
a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
+index 75bc023fd9..d96b985c8b 100644
+---
a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
++++
b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
+@@ -28,6 +28,7 @@ package com.sun.tools.doclets.formats.html;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -36,7 +10,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-@@ -176,11 +177,22 @@
+@@ -178,11 +179,22 @@ public class ClassUseWriter extends
SubWriterHolderWriter {
}
}
@@ -57,7 +31,7 @@
if (list != null) {
- Collections.sort(list);
+ Collections.sort(list, useComparator);
- for (ProgramElementDoc doc : list) {
- PackageDoc pkg = doc.containingPackage();
- pkgSet.add(pkg);
+ Iterator<? extends ProgramElementDoc> it = list.iterator();
+ while (it.hasNext()) {
+ ProgramElementDoc doc = it.next();
++++++ reproducible-copyright-year.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.529220086 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.534220295 +0100
@@ -1,23 +1,7 @@
-# Derive the copyright year from SOURCE_DATE_EPOCH
-#
-# configure takes COPYRIGHT_YEAR from the wall clock unless
-# --with-copyright-year is given. That year is substituted into the bottom
-# line of every generated javadoc page (make/Javadoc.gmk CopyrightLine), so
-# two builds that straddle New Year produce a different javadoc bundle in
-# its entirety - which is what the whole -javadoc subpackage differing came
-# down to.
-#
-# Honour SOURCE_DATE_EPOCH when it is set and no explicit year was asked
-# for, which is what later releases do via JDK-8282567.
-#
-# The spec re-runs openjdk/common/autoconf/autogen.sh after applying the
-# patches, so generated-configure.sh does not need patching too.
-#
-
-diff --git a/openjdk/common/autoconf/jdk-options.m4
b/openjdk/common/autoconf/jdk-options.m4
-index 18ba585209b..bd1bf7bd549 100644
---- a/openjdk/common/autoconf/jdk-options.m4
-+++ b/openjdk/common/autoconf/jdk-options.m4
+diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
+index 18ba585209..bd1bf7bd54 100644
+--- a/common/autoconf/jdk-options.m4
++++ b/common/autoconf/jdk-options.m4
@@ -596,6 +596,16 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VERSION_NUMBERS],
AC_MSG_ERROR([Copyright year must have a value])
elif test "x$with_copyright_year" != x; then
++++++ reproducible-directory-mtime.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.550220964 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.557221257 +0100
@@ -1,6 +1,8 @@
---- openjdk/jdk/src/share/classes/java/io/File.java 2024-10-07
14:14:13.587124931 +0200
-+++ openjdk/jdk/src/share/classes/java/io/File.java 2024-10-07
14:15:27.187669663 +0200
-@@ -1352,7 +1352,11 @@
+diff --git a/jdk/src/share/classes/java/io/File.java
b/jdk/src/share/classes/java/io/File.java
+index 24fb1c92c2..6f53905937 100644
+--- a/jdk/src/share/classes/java/io/File.java
++++ b/jdk/src/share/classes/java/io/File.java
+@@ -1352,7 +1352,11 @@ public class File
if (isInvalid()) {
return false;
}
++++++ reproducible-generated-source-dates.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.579222178 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.582222303 +0100
@@ -1,30 +1,7 @@
-# Use SOURCE_DATE_EPOCH for dates written into generated sources
-#
-# Three build tools stamp the current date into the sources they generate, so
-# the result depends on when the build runs, and all three end up in the
-# shipped src.zip.
-#
-# - CopyrightHeaders.getYear() in the CLDR converter used the current year,
-# which puts "Copyright (c) 2012, 2026" into one build and "2012, 2027"
-# into the next.
-#
-# - GenerateCharacter wrote "This file was generated AUTOMATICALLY from a
-# template file <full timestamp>" into the CharacterData*.java files.
-#
-# - EquivMapsGenerator did the same as the CLDR converter for the copyright
-# header of sun/util/locale/LocaleEquivalentMaps.java.
-#
-# Take the date from SOURCE_DATE_EPOCH when it is set, and keep the current
-# time otherwise. The year is still computed in America/Los_Angeles, as
-# before, so only the instant changes.
-#
-# Backported from the same fix made for java-11-openjdk.
-#
-
-diff --git
a/openjdk/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
b/openjdk/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
-index 1ea0186bc03..7c349ec0c07 100644
----
a/openjdk/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
-+++
b/openjdk/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
+diff --git
a/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
b/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
+index 1ea0186bc0..7c349ec0c0 100644
+--- a/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
++++ b/jdk/make/src/classes/build/tools/cldrconverter/CopyrightHeaders.java
@@ -145,8 +145,17 @@ class CopyrightHeaders {
}
@@ -45,10 +22,10 @@
}
// no instantiation
-diff --git
a/openjdk/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
b/openjdk/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
-index 83973ef07c4..dbc4230fb51 100644
----
a/openjdk/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
-+++
b/openjdk/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
+diff --git
a/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
b/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
+index 83973ef07c..dbc4230fb5 100644
+--- a/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
++++ b/jdk/make/src/classes/build/tools/generatecharacter/GenerateCharacter.java
@@ -686,6 +686,17 @@ OUTER: for (int i = 0; i < n; i += m) {
* @see GenerateCharacter#replaceCommand
*/
@@ -76,10 +53,10 @@
int marklen = commandMarker.length();
LOOP: while(true) {
try {
-diff --git
a/openjdk/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
b/openjdk/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
-index ba83f92a183..7e732752697 100644
----
a/openjdk/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
-+++
b/openjdk/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
+diff --git
a/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
b/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
+index ba83f92a18..7e73275269 100644
+---
a/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
++++
b/jdk/make/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
@@ -226,9 +226,16 @@ public class EquivMapsGenerator {
+ "}";
++++++ reproducible-generated-timestamps.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.603223181 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.609223432 +0100
@@ -1,28 +1,7 @@
-# Drop build timestamps from generated javadoc and CORBA output
-#
-# Three more places stamp the wall clock into shipped files:
-#
-# - HtmlDocletWriter emits <meta name="date" content="..."> into every
-# javadoc page. This is the same concern as the "Generated by javadoc"
-# comment that reproducible-javadoc-timestamp.patch already suppresses,
-# so suppress it the same way, when SOURCE_DATE_EPOCH is set. On its own
-# it accounted for all 11969 differing HTML files.
-#
-# - MC.java writes "Generated from input file <f> on <date>" into the CORBA
-# log wrapper sources.
-#
-# - The IDL compiler writes the generation time into the prolog of every
-# file it generates.
-#
-# The two CORBA generators just drop the date; it carries no information the
-# build does not already have, and both feed src.zip - 525 of its entries
-# differed between two builds because of them.
-#
-
-diff --git
a/openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
b/openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
-index 7e0d8373dab..e271bf7820e 100644
----
a/openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
-+++
b/openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
+diff --git
a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
+index 7e0d8373da..e271bf7820 100644
+---
a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
++++
b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java
@@ -68,11 +68,8 @@ package com.sun.tools.corba.se.idl.toJavaPortable;
import java.io.File;
import java.io.PrintWriter;
@@ -62,10 +41,10 @@
stream.println ("*/");
stream.println ();
} // writeProlog
-diff --git
a/openjdk/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
b/openjdk/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
-index b2fd98a5205..007827f5e05 100644
---- a/openjdk/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
-+++ b/openjdk/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
+diff --git a/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
b/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
+index b2fd98a520..007827f5e0 100644
+--- a/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
++++ b/corba/src/share/classes/com/sun/tools/corba/se/logutil/MC.java
@@ -30,7 +30,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
@@ -83,10 +62,10 @@
pw.println();
}
-diff --git
a/openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
b/openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
-index 76229a1f7b7..baa1cd37659 100644
----
a/openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
-+++
b/openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
+diff --git
a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
+index 76229a1f7b..baa1cd3765 100644
+---
a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
++++
b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
@@ -400,7 +400,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
head.addContent(meta);
}
++++++ reproducible-javadoc-timestamp.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.628224227 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.632224394 +0100
@@ -1,6 +1,8 @@
----
openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
2024-10-07 14:14:13.353789871 +0200
-+++
openjdk/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
2024-10-07 14:27:56.233184616 +0200
-@@ -328,7 +328,7 @@
+diff --git
a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
+index 1ddf6e67b0..e3fbb7927d 100644
+---
a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
++++
b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
+@@ -328,7 +328,7 @@ public abstract class HtmlDocWriter extends HtmlWriter {
protected Comment getGeneratedBy(boolean timestamp) {
String text = "Generated by javadoc"; // marker string, deliberately
not localized
++++++ reproducible-properties.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.653225273 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.659225524 +0100
@@ -1,6 +1,8 @@
---- openjdk/jdk/src/share/classes/java/util/Properties.java 2024-10-07
14:14:13.617125153 +0200
-+++ openjdk/jdk/src/share/classes/java/util/Properties.java 2024-10-07
14:35:53.223317114 +0200
-@@ -826,7 +826,12 @@
+diff --git a/jdk/src/share/classes/java/util/Properties.java
b/jdk/src/share/classes/java/util/Properties.java
+index aba5fd1a33..2a550ff1e8 100644
+--- a/jdk/src/share/classes/java/util/Properties.java
++++ b/jdk/src/share/classes/java/util/Properties.java
+@@ -826,7 +826,12 @@ class Properties extends Hashtable<Object,Object> {
if (comments != null) {
writeComments(bw, comments);
}
++++++ reproducible-zip-extra-fields.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.678226319 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.682226486 +0100
@@ -1,19 +1,7 @@
-# Pass -X to zip so archives carry no access times
-#
-# SetupZipArchive builds the demo src.zip files with InfoZIP zip, which by
-# default records a "UT" extra field per entry holding the file's mtime and
-# its access time. The access time differs between builds, and
-# strip-nondeterminism does not normalise it - it only rewrites the mtime,
-# which is why two demo src.zip files still differed after everything else
-# had been fixed.
-#
-# -X drops the extra attributes entirely.
-#
-
-diff --git a/openjdk/make/common/JavaCompilation.gmk
b/openjdk/make/common/JavaCompilation.gmk
-index bc34720245e..ba46b2b0c52 100644
---- a/openjdk/make/common/JavaCompilation.gmk
-+++ b/openjdk/make/common/JavaCompilation.gmk
+diff --git a/make/common/JavaCompilation.gmk b/make/common/JavaCompilation.gmk
+index bc34720245..ba46b2b0c5 100644
+--- a/make/common/JavaCompilation.gmk
++++ b/make/common/JavaCompilation.gmk
@@ -305,7 +305,7 @@ define SetupZipArchive
$$($1_ZIP) : $$($1_ALL_SRCS) $$($1_EXTRA_DEPS)
$(MKDIR) -p $$(@D)
++++++ riscv64-zero.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.696227072 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.699227197 +0100
@@ -1,7 +1,7 @@
-Index: openjdk/common/autoconf/build-aux/autoconf-config.sub
-===================================================================
---- openjdk.orig/common/autoconf/build-aux/autoconf-config.sub
-+++ openjdk/common/autoconf/build-aux/autoconf-config.sub
+diff --git a/common/autoconf/build-aux/autoconf-config.sub
b/common/autoconf/build-aux/autoconf-config.sub
+index 1aab2b303e..662b002a12 100644
+--- a/common/autoconf/build-aux/autoconf-config.sub
++++ b/common/autoconf/build-aux/autoconf-config.sub
@@ -302,6 +302,7 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
@@ -18,11 +18,11 @@
| romp-* | rs6000-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* |
shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-Index: openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-===================================================================
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -365,7 +365,7 @@ void os::init_system_properties_values()
+diff --git a/hotspot/src/os/linux/vm/os_linux.cpp
b/hotspot/src/os/linux/vm/os_linux.cpp
+index af900264ee..8ccc879e9d 100644
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -364,7 +364,7 @@ void os::init_system_properties_values() {
// 1: ...
// ...
// 7: The default directories, normally /lib and /usr/lib.
++++++ system-libs.patch ++++++
++++ 1214 lines (skipped)
++++++ system-pcsclite.patch ++++++
diff --git a/jdk/make/lib/SecurityLibraries.gmk
b/jdk/make/lib/SecurityLibraries.gmk
index 23c6419bdb..39f7e46c55 100644
--- a/jdk/make/lib/SecurityLibraries.gmk
+++ b/jdk/make/lib/SecurityLibraries.gmk
@@ -64,6 +64,14 @@ BUILD_LIBRARIES += $(BUILD_LIBJAAS)
##########################################################################################
+ifeq ($(USE_EXTERNAL_PCSC), true)
+ J2PCSC_CFLAGS := -DUSE_SYSTEM_PCSC $(PCSC_CFLAGS)
+ J2PCSC_LIBS := $(PCSC_LIBS)
+else
+ J2PCSC_CFLAGS :=
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE
+ J2PCSC_LIBS := $(LIBDL)
+endif
+
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \
LIBRARY := j2pcsc, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
@@ -72,14 +80,13 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \
LANG := C, \
CFLAGS_posix := -D__sun_jdk, \
OPTIMIZATION := LOW, \
- CFLAGS := $(CFLAGS_JDKLIB) \
+ CFLAGS := $(CFLAGS_JDKLIB) $(J2PCSC_CFLAGS) \
-I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
-
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio
\
-
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE,
\
+
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio,
\
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pcsc/mapfile-vers, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX_posix := $(LIBDL), \
+ LDFLAGS_SUFFIX_posix := $(J2PCSC_LIBS), \
LDFLAGS_SUFFIX_windows := winscard.lib, \
LDFLAGS_SUFFIX_solaris := -lc, \
VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
@@ -154,6 +161,10 @@ ifneq ($(BUILD_CRYPTO), no)
BUILD_LIBKRB5_NAME := osxkrb5
BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/share/native/sun/security/krb5
BUILD_LIBKRB5_LIBS := -framework Kerberos
+ else ifeq ($(USE_EXTERNAL_KRB5), true)
+ BUILD_LIBKRB5_NAME := j2krb5
+ BUILD_LIBKRB5_SRC :=
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5
+ BUILD_LIBKRB5_LIBS := $(KRB5_LIBS)
endif
ifneq ($(BUILD_LIBKRB5_NAME), )
@@ -165,7 +176,7 @@ ifneq ($(BUILD_CRYPTO), no)
SRC := $(BUILD_LIBKRB5_SRC), \
LANG := C, \
OPTIMIZATION := LOW, \
- CFLAGS := $(CFLAGS_JDKLIB) \
+ CFLAGS := $(CFLAGS_JDKLIB) $(KRB5_CFLAGS) \
-I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \
-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
diff --git a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
index f344f4a00d..29d874e3e3 100644
--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
+++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
@@ -36,6 +36,7 @@
#include "pcsc_md.h"
+#ifndef USE_SYSTEM_PCSC
void *hModule;
FPTR_SCardEstablishContext scardEstablishContext;
FPTR_SCardConnect scardConnect;
@@ -47,6 +48,7 @@ FPTR_SCardListReaders scardListReaders;
FPTR_SCardBeginTransaction scardBeginTransaction;
FPTR_SCardEndTransaction scardEndTransaction;
FPTR_SCardControl scardControl;
+#endif
/*
* Throws a Java Exception by name
@@ -75,6 +77,7 @@ void throwIOException(JNIEnv *env, const char *msg)
throwByName(env, "java/io/IOException", msg);
}
+#ifndef USE_SYSTEM_PCSC
void *findFunction(JNIEnv *env, void *hModule, char *functionName) {
void *fAddress = dlsym(hModule, functionName);
if (fAddress == NULL) {
@@ -85,9 +88,11 @@ void *findFunction(JNIEnv *env, void *hModule, char
*functionName) {
}
return fAddress;
}
+#endif
JNIEXPORT void JNICALL Java_sun_security_smartcardio_PlatformPCSC_initialize
(JNIEnv *env, jclass thisClass, jstring jLibName) {
+#ifndef USE_SYSTEM_PCSC
const char *libName = (*env)->GetStringUTFChars(env, jLibName, NULL);
if (libName == NULL) {
throwNullPointerException(env, "PCSC library name is null");
@@ -141,4 +146,6 @@ JNIEXPORT void JNICALL
Java_sun_security_smartcardio_PlatformPCSC_initialize
#else
scardControl = (FPTR_SCardControl) findFunction(env,
hModule, "SCardControl132");
#endif // __APPLE__
+
+#endif // USE_SYSTEM_PCSC
}
diff --git a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
index db93c9cd93..cead5f73a8 100644
--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
+++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
@@ -23,6 +23,8 @@
* questions.
*/
+#ifndef USE_SYSTEM_PCSC
+
typedef LONG (*FPTR_SCardEstablishContext)(DWORD dwScope,
LPCVOID pvReserved1,
LPCVOID pvReserved2,
@@ -111,3 +113,41 @@ extern FPTR_SCardListReaders scardListReaders;
extern FPTR_SCardBeginTransaction scardBeginTransaction;
extern FPTR_SCardEndTransaction scardEndTransaction;
extern FPTR_SCardControl scardControl;
+
+#else
+
+#define CALL_SCardEstablishContext(dwScope, pvReserved1, pvReserved2,
phContext) \
+ (SCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext))
+
+#define CALL_SCardConnect(hContext, szReader, dwSharedMode,
dwPreferredProtocols, phCard, pdwActiveProtocols) \
+ (SCardConnect(hContext, szReader, dwSharedMode, dwPreferredProtocols,
phCard, pdwActiveProtocols))
+
+#define CALL_SCardDisconnect(hCard, dwDisposition) \
+ (SCardDisconnect(hCard, dwDisposition))
+
+#define CALL_SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState,
pdwProtocol, pbAtr, pcbAtrLen) \
+ (SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol,
pbAtr, pcbAtrLen))
+
+#define CALL_SCardGetStatusChange(hContext, dwTimeout, rgReaderStates,
cReaders) \
+ (SCardGetStatusChange(hContext, dwTimeout, rgReaderStates, cReaders))
+
+#define CALL_SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
+ pioRecvPci, pbRecvBuffer, pcbRecvLength) \
+ (SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
+ pioRecvPci, pbRecvBuffer, pcbRecvLength))
+
+#define CALL_SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders) \
+ (SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders))
+
+#define CALL_SCardBeginTransaction(hCard) \
+ (SCardBeginTransaction(hCard))
+
+#define CALL_SCardEndTransaction(hCard, dwDisposition) \
+ (SCardEndTransaction(hCard, dwDisposition))
+
+#define CALL_SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
+ pbRecvBuffer, pcbRecvLength, lpBytesReturned) \
+ (SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
+ pbRecvBuffer, pcbRecvLength, lpBytesReturned))
+
+#endif
++++++ tls13extensions.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.736228745 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.742228996 +0100
@@ -1,6 +1,8 @@
---- openjdk/jdk/src/share/classes/sun/security/ssl/SSLExtension.java
2021-05-21 08:10:00.830159018 +0200
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLExtension.java
2021-05-21 08:11:40.258772361 +0200
-@@ -198,7 +198,7 @@
+diff --git a/jdk/src/share/classes/sun/security/ssl/SSLExtension.java
b/jdk/src/share/classes/sun/security/ssl/SSLExtension.java
+index a4b14c0849..3cf38c8d5a 100644
+--- a/jdk/src/share/classes/sun/security/ssl/SSLExtension.java
++++ b/jdk/src/share/classes/sun/security/ssl/SSLExtension.java
+@@ -198,7 +198,7 @@ enum SSLExtension implements SSLStringizer {
CH_SIGNATURE_ALGORITHMS_CERT (0x0032, "signature_algorithms_cert",
SSLHandshake.CLIENT_HELLO,
@@ -9,7 +11,7 @@
CertSignAlgsExtension.chNetworkProducer,
CertSignAlgsExtension.chOnLoadConsumer,
null,
-@@ -319,7 +319,7 @@
+@@ -319,7 +319,7 @@ enum SSLExtension implements SSLStringizer {
CH_SUPPORTED_VERSIONS (0x002B, "supported_versions",
SSLHandshake.CLIENT_HELLO,
++++++ x11-hidpi.patch ++++++
++++ 3356 lines (skipped)
++++++ zero-javadoc-verbose.patch ++++++
--- /var/tmp/diff_new_pack.3bcg7J/_old 2026-11-10 16:30:11.771230209 +0100
+++ /var/tmp/diff_new_pack.3bcg7J/_new 2026-11-10 16:30:11.774230334 +0100
@@ -1,6 +1,8 @@
---- openjdk/make/Javadoc.gmk
-+++ openjdk/make/Javadoc.gmk
-@@ -260,7 +260,6 @@ $(call CopyrightLine,$(COPYRIGHT_URL),$(
+diff --git a/make/Javadoc.gmk b/make/Javadoc.gmk
+index f65465c31f..5bf388140c 100644
+--- a/make/Javadoc.gmk
++++ b/make/Javadoc.gmk
+@@ -270,7 +270,6 @@ Also see the <a target="_blank"
href="http://www.oracle.com/technetwork/java/red
# Common javadoc options used by all
COMMON_JAVADOCFLAGS = \
-XDignore.symbol.file=true \