Sync from SUSE:ALP:Source:Standard:1.0 java-21-openjdk revision 7f911e4633e4215783e73cdabd8d925d

This commit is contained in:
Adrian Schröter 2024-09-25 15:53:27 +02:00
parent dafc3c90b6
commit 915e4737d0
15 changed files with 1226 additions and 246 deletions

View File

@ -1,111 +0,0 @@
--- a/src/java.base/share/classes/java/time/zone/TzdbZoneRulesProvider.java
+++ b/src/java.base/share/classes/java/time/zone/TzdbZoneRulesProvider.java
@@ -74,6 +74,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.NavigableMap;
+import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
@@ -106,7 +107,14 @@ final class TzdbZoneRulesProvider extends ZoneRulesProvider {
*/
public TzdbZoneRulesProvider() {
try {
- String libDir = StaticProperty.javaHome() + File.separator + "lib";
+ final String homeDir = StaticProperty.javaHome();
+ if (homeDir == null) {
+ throw new Error("java.home is not set");
+ }
+ String libDir = homeDir + File.separator + "lib";
+ String otherDir = getZoneInfoDir(homeDir);
+ if (otherDir != null)
+ libDir = otherDir;
try (DataInputStream dis = new DataInputStream(
new BufferedInputStream(new FileInputStream(
new File(libDir, "tzdb.dat"))))) {
@@ -117,6 +125,28 @@ final class TzdbZoneRulesProvider extends ZoneRulesProvider {
}
}
+ private static String getZoneInfoDir(final String homeDir) {
+ try {
+ File f = new File(homeDir + File.separator + "conf" +
+ File.separator + "tz.properties");
+ if (!f.exists())
+ return null;
+ BufferedInputStream bin = new BufferedInputStream(new FileInputStream(f));
+ Properties props = new Properties();
+ props.load(bin);
+ bin.close();
+ String dir = props.getProperty("sun.zoneinfo.dir");
+ if (dir == null)
+ return null;
+ File tzdbdat = new File(dir, "tzdb.dat");
+ if (tzdbdat.exists())
+ return dir;
+ return null;
+ } catch (Exception x) {
+ return null;
+ }
+ }
+
@Override
protected Set<String> provideZoneIds() {
return new HashSet<>(regionIds);
--- a/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java
+++ b/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java
@@ -45,6 +45,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Properties;
import java.util.SimpleTimeZone;
import java.util.concurrent.ConcurrentHashMap;
import java.util.zip.CRC32;
@@ -256,7 +257,15 @@ public final class ZoneInfoFile {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
try {
- String libDir = StaticProperty.javaHome() + File.separator + "lib";
+ final String homeDir = StaticProperty.javaHome();
+ if (homeDir == null) {
+ throw new Error("java.home is not set");
+ }
+ String libDir = homeDir + File.separator + "lib";
+ String otherDir = getZoneInfoDir(homeDir);
+ if (otherDir != null)
+ libDir = otherDir;
+
try (DataInputStream dis = new DataInputStream(
new BufferedInputStream(new FileInputStream(
new File(libDir, "tzdb.dat"))))) {
@@ -270,6 +279,28 @@ public final class ZoneInfoFile {
});
}
+ private static String getZoneInfoDir(final String homeDir) {
+ try {
+ File f = new File(homeDir + File.separator + "conf" +
+ File.separator + "tz.properties");
+ if (!f.exists())
+ return null;
+ BufferedInputStream bin = new BufferedInputStream(new FileInputStream(f));
+ Properties props = new Properties();
+ props.load(bin);
+ bin.close();
+ String dir = props.getProperty("sun.zoneinfo.dir");
+ if (dir == null)
+ return null;
+ File tzdbdat = new File(dir, "tzdb.dat");
+ if (tzdbdat.exists())
+ return dir;
+ return null;
+ } catch (Exception x) {
+ return null;
+ }
+ }
+
private static void addOldMapping() {
for (String[] alias : oldMappings) {
aliases.put(alias[0], alias[1]);

View File

@ -1,6 +1,6 @@
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java
@@ -795,7 +795,7 @@ public abstract class BaseConfiguration { @@ -785,7 +785,7 @@ public abstract class BaseConfiguration {
} }
} else { } else {
// no -Xmsgs options of any kind, use default // no -Xmsgs options of any kind, use default

View File

@ -1,5 +1,3 @@
diff --git a/make/autoconf/build-aux/pkg.m4 b/make/autoconf/build-aux/pkg.m4
index 5f4b22bb27f..1ca9f5b8ffe 100644
--- a/make/autoconf/build-aux/pkg.m4 --- a/make/autoconf/build-aux/pkg.m4
+++ b/make/autoconf/build-aux/pkg.m4 +++ b/make/autoconf/build-aux/pkg.m4
@@ -179,3 +179,19 @@ else @@ -179,3 +179,19 @@ else
@ -22,9 +20,6 @@ index 5f4b22bb27f..1ca9f5b8ffe 100644
+ +
+AS_VAR_IF([$1], [""], [$5], [$4])dnl +AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR +])dnl PKG_CHECK_VAR
diff --git a/make/autoconf/lib-sysconf.m4 b/make/autoconf/lib-sysconf.m4
new file mode 100644
index 00000000000..f48fc7f7e80
--- /dev/null --- /dev/null
+++ b/make/autoconf/lib-sysconf.m4 +++ b/make/autoconf/lib-sysconf.m4
@@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
@ -115,8 +110,6 @@ index 00000000000..f48fc7f7e80
+ AC_SUBST(USE_SYSCONF_NSS) + AC_SUBST(USE_SYSCONF_NSS)
+ AC_SUBST(NSS_LIBDIR) + AC_SUBST(NSS_LIBDIR)
+]) +])
diff --git a/make/autoconf/libraries.m4 b/make/autoconf/libraries.m4
index a1fc81564b1..ebad69d9dcf 100644
--- a/make/autoconf/libraries.m4 --- a/make/autoconf/libraries.m4
+++ b/make/autoconf/libraries.m4 +++ b/make/autoconf/libraries.m4
@@ -35,6 +35,7 @@ m4_include([lib-std.m4]) @@ -35,6 +35,7 @@ m4_include([lib-std.m4])
@ -127,7 +120,7 @@ index a1fc81564b1..ebad69d9dcf 100644
################################################################################ ################################################################################
# Determine which libraries are needed for this configuration # Determine which libraries are needed for this configuration
@@ -134,6 +135,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES], @@ -128,6 +129,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
LIB_SETUP_X11 LIB_SETUP_X11
LIB_TESTS_SETUP_GTEST LIB_TESTS_SETUP_GTEST
@ -135,11 +128,9 @@ index a1fc81564b1..ebad69d9dcf 100644
BASIC_JDKLIB_LIBS="" BASIC_JDKLIB_LIBS=""
BASIC_JDKLIB_LIBS_TARGET="" BASIC_JDKLIB_LIBS_TARGET=""
diff --git a/make/autoconf/spec.gmk.in b/make/autoconf/spec.gmk.in
index 0f85917814e..9419562b654 100644
--- a/make/autoconf/spec.gmk.in --- a/make/autoconf/spec.gmk.in
+++ b/make/autoconf/spec.gmk.in +++ b/make/autoconf/spec.gmk.in
@@ -867,6 +867,11 @@ INSTALL_SYSCONFDIR=@sysconfdir@ @@ -874,6 +874,11 @@ INSTALL_SYSCONFDIR=@sysconfdir@
# Libraries # Libraries
# #
@ -151,8 +142,6 @@ index 0f85917814e..9419562b654 100644
USE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@ USE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@
LCMS_CFLAGS:=@LCMS_CFLAGS@ LCMS_CFLAGS:=@LCMS_CFLAGS@
LCMS_LIBS:=@LCMS_LIBS@ LCMS_LIBS:=@LCMS_LIBS@
diff --git a/make/modules/java.base/Gendata.gmk b/make/modules/java.base/Gendata.gmk
index 9e5cfe2d0fc..434ade8e182 100644
--- a/make/modules/java.base/Gendata.gmk --- a/make/modules/java.base/Gendata.gmk
+++ b/make/modules/java.base/Gendata.gmk +++ b/make/modules/java.base/Gendata.gmk
@@ -98,3 +98,17 @@ $(GENDATA_JAVA_SECURITY): $(BUILD_TOOLS_JDK) $(GENDATA_JAVA_SECURITY_SRC) $(REST @@ -98,3 +98,17 @@ $(GENDATA_JAVA_SECURITY): $(BUILD_TOOLS_JDK) $(GENDATA_JAVA_SECURITY_SRC) $(REST
@ -173,8 +162,6 @@ index 9e5cfe2d0fc..434ade8e182 100644
+TARGETS += $(GENDATA_NSS_FIPS_CFG) +TARGETS += $(GENDATA_NSS_FIPS_CFG)
+ +
+################################################################################ +################################################################################
diff --git a/make/modules/java.base/Lib.gmk b/make/modules/java.base/Lib.gmk
index 1e0f66726d0..59fe923f2c5 100644
--- a/make/modules/java.base/Lib.gmk --- a/make/modules/java.base/Lib.gmk
+++ b/make/modules/java.base/Lib.gmk +++ b/make/modules/java.base/Lib.gmk
@@ -163,6 +163,29 @@ ifeq ($(call isTargetOsType, unix), true) @@ -163,6 +163,29 @@ ifeq ($(call isTargetOsType, unix), true)
@ -207,8 +194,6 @@ index 1e0f66726d0..59fe923f2c5 100644
################################################################################ ################################################################################
# Create the symbols file for static builds. # Create the symbols file for static builds.
diff --git a/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java b/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java
index 10093137151..b023c63ae58 100644
--- a/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java --- a/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java
+++ b/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java
@@ -31,6 +31,7 @@ import java.security.SecureRandom; @@ -31,6 +31,7 @@ import java.security.SecureRandom;
@ -1130,8 +1115,6 @@ index 10093137151..b023c63ae58 100644
} }
// Return the instance of this class or create one if needed. // Return the instance of this class or create one if needed.
diff --git a/src/java.base/share/classes/java/security/Security.java b/src/java.base/share/classes/java/security/Security.java
index 671529f71a1..af632936921 100644
--- a/src/java.base/share/classes/java/security/Security.java --- a/src/java.base/share/classes/java/security/Security.java
+++ b/src/java.base/share/classes/java/security/Security.java +++ b/src/java.base/share/classes/java/security/Security.java
@@ -34,6 +34,7 @@ import java.net.URL; @@ -34,6 +34,7 @@ import java.net.URL;
@ -1253,9 +1236,6 @@ index 671529f71a1..af632936921 100644
InputStream is = null; InputStream is = null;
try { try {
if (masterFile != null && masterFile.exists()) { if (masterFile != null && masterFile.exists()) {
diff --git a/src/java.base/share/classes/java/security/SystemConfigurator.java b/src/java.base/share/classes/java/security/SystemConfigurator.java
new file mode 100644
index 00000000000..9d26a54f5d4
--- /dev/null --- /dev/null
+++ b/src/java.base/share/classes/java/security/SystemConfigurator.java +++ b/src/java.base/share/classes/java/security/SystemConfigurator.java
@@ -0,0 +1,232 @@ @@ -0,0 +1,232 @@
@ -1491,9 +1471,6 @@ index 00000000000..9d26a54f5d4
+ } + }
+ } + }
+} +}
diff --git a/src/java.base/share/classes/jdk/internal/access/JavaSecuritySystemConfiguratorAccess.java b/src/java.base/share/classes/jdk/internal/access/JavaSecuritySystemConfiguratorAccess.java
new file mode 100644
index 00000000000..3f3caac64dc
--- /dev/null --- /dev/null
+++ b/src/java.base/share/classes/jdk/internal/access/JavaSecuritySystemConfiguratorAccess.java +++ b/src/java.base/share/classes/jdk/internal/access/JavaSecuritySystemConfiguratorAccess.java
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
@ -1528,8 +1505,6 @@ index 00000000000..3f3caac64dc
+ boolean isSystemFipsEnabled(); + boolean isSystemFipsEnabled();
+ boolean isPlainKeySupportEnabled(); + boolean isPlainKeySupportEnabled();
+} +}
diff --git a/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java b/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
index 919d758a6e3..b1e5fbaf84a 100644
--- a/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java --- a/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
+++ b/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java +++ b/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java
@@ -43,6 +43,7 @@ import java.io.PrintStream; @@ -43,6 +43,7 @@ import java.io.PrintStream;
@ -1564,8 +1539,6 @@ index 919d758a6e3..b1e5fbaf84a 100644
+ return javaSecuritySystemConfiguratorAccess; + return javaSecuritySystemConfiguratorAccess;
+ } + }
} }
diff --git a/src/java.base/share/classes/module-info.java b/src/java.base/share/classes/module-info.java
index 06b141dcf22..e8cbf7f15d7 100644
--- a/src/java.base/share/classes/module-info.java --- a/src/java.base/share/classes/module-info.java
+++ b/src/java.base/share/classes/module-info.java +++ b/src/java.base/share/classes/module-info.java
@@ -158,6 +158,7 @@ module java.base { @@ -158,6 +158,7 @@ module java.base {
@ -1576,8 +1549,6 @@ index 06b141dcf22..e8cbf7f15d7 100644
jdk.jartool, jdk.jartool,
jdk.jlink, jdk.jlink,
jdk.jfr, jdk.jfr,
diff --git a/src/java.base/share/classes/sun/security/provider/SunEntries.java b/src/java.base/share/classes/sun/security/provider/SunEntries.java
index f036a411f1d..1e9de933bd9 100644
--- a/src/java.base/share/classes/sun/security/provider/SunEntries.java --- a/src/java.base/share/classes/sun/security/provider/SunEntries.java
+++ b/src/java.base/share/classes/sun/security/provider/SunEntries.java +++ b/src/java.base/share/classes/sun/security/provider/SunEntries.java
@@ -38,6 +38,7 @@ import java.util.HashMap; @@ -38,6 +38,7 @@ import java.util.HashMap;
@ -1872,8 +1843,6 @@ index f036a411f1d..1e9de933bd9 100644
/* /*
* Certificates * Certificates
diff --git a/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java b/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java
index 539ef1e8ee8..435f57e3ff2 100644
--- a/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java --- a/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java
+++ b/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java +++ b/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java
@@ -27,6 +27,7 @@ package sun.security.rsa; @@ -27,6 +27,7 @@ package sun.security.rsa;
@ -1978,11 +1947,9 @@ index 539ef1e8ee8..435f57e3ff2 100644
addA(p, "AlgorithmParameters", "RSASSA-PSS", addA(p, "AlgorithmParameters", "RSASSA-PSS",
"sun.security.rsa.PSSParameters", null); "sun.security.rsa.PSSParameters", null);
} }
diff --git a/src/java.base/share/conf/security/java.security b/src/java.base/share/conf/security/java.security
index 5149edba0e5..8227d650a03 100644
--- a/src/java.base/share/conf/security/java.security --- a/src/java.base/share/conf/security/java.security
+++ b/src/java.base/share/conf/security/java.security +++ b/src/java.base/share/conf/security/java.security
@@ -86,6 +86,17 @@ security.provider.tbd=Apple @@ -85,6 +85,17 @@ security.provider.tbd=Apple
#endif #endif
security.provider.tbd=SunPKCS11 security.provider.tbd=SunPKCS11
@ -2048,7 +2015,7 @@ index 5149edba0e5..8227d650a03 100644
# #
# Controls compatibility mode for JKS and PKCS12 keystore types. # Controls compatibility mode for JKS and PKCS12 keystore types.
# #
@@ -332,6 +384,13 @@ package.definition=sun.misc.,\ @@ -336,6 +388,13 @@ package.definition=sun.misc.,\
# #
security.overridePropertiesFile=true security.overridePropertiesFile=true
@ -2062,9 +2029,6 @@ index 5149edba0e5..8227d650a03 100644
# #
# Determines the default key and trust manager factory algorithms for # Determines the default key and trust manager factory algorithms for
# the javax.net.ssl package. # the javax.net.ssl package.
diff --git a/src/java.base/share/conf/security/nss.fips.cfg.in b/src/java.base/share/conf/security/nss.fips.cfg.in
new file mode 100644
index 00000000000..55bbba98b7a
--- /dev/null --- /dev/null
+++ b/src/java.base/share/conf/security/nss.fips.cfg.in +++ b/src/java.base/share/conf/security/nss.fips.cfg.in
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
@ -2076,8 +2040,6 @@ index 00000000000..55bbba98b7a
+ +
+attributes(*,CKO_SECRET_KEY,CKK_GENERIC_SECRET)={ CKA_SIGN=true } +attributes(*,CKO_SECRET_KEY,CKK_GENERIC_SECRET)={ CKA_SIGN=true }
+ +
diff --git a/src/java.base/share/lib/security/default.policy b/src/java.base/share/lib/security/default.policy
index 86d45147709..22fd8675503 100644
--- a/src/java.base/share/lib/security/default.policy --- a/src/java.base/share/lib/security/default.policy
+++ b/src/java.base/share/lib/security/default.policy +++ b/src/java.base/share/lib/security/default.policy
@@ -130,6 +130,7 @@ grant codeBase "jrt:/jdk.charsets" { @@ -130,6 +130,7 @@ grant codeBase "jrt:/jdk.charsets" {
@ -2097,9 +2059,6 @@ index 86d45147709..22fd8675503 100644
permission java.security.SecurityPermission "putProviderProperty.*"; permission java.security.SecurityPermission "putProviderProperty.*";
permission java.security.SecurityPermission "clearProviderProperties.*"; permission java.security.SecurityPermission "clearProviderProperties.*";
permission java.security.SecurityPermission "removeProviderProperty.*"; permission java.security.SecurityPermission "removeProviderProperty.*";
diff --git a/src/java.base/share/native/libsystemconf/systemconf.c b/src/java.base/share/native/libsystemconf/systemconf.c
new file mode 100644
index 00000000000..ddf9befe5bc
--- /dev/null --- /dev/null
+++ b/src/java.base/share/native/libsystemconf/systemconf.c +++ b/src/java.base/share/native/libsystemconf/systemconf.c
@@ -0,0 +1,236 @@ @@ -0,0 +1,236 @@
@ -2339,9 +2298,6 @@ index 00000000000..ddf9befe5bc
+} +}
+ +
+#endif +#endif
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSKeyImporter.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
new file mode 100644
index 00000000000..48d6d656a28
--- /dev/null --- /dev/null
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSKeyImporter.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
@@ -0,0 +1,457 @@ @@ -0,0 +1,457 @@
@ -2802,9 +2758,6 @@ index 00000000000..48d6d656a28
+ } + }
+ } + }
+} +}
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSTokenLoginHandler.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSTokenLoginHandler.java
new file mode 100644
index 00000000000..f8d505ca815
--- /dev/null --- /dev/null
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSTokenLoginHandler.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/FIPSTokenLoginHandler.java
@@ -0,0 +1,149 @@ @@ -0,0 +1,149 @@
@ -2958,8 +2911,6 @@ index 00000000000..f8d505ca815
+ } + }
+} +}
\ No newline at end of file \ No newline at end of file
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java
index 6b26297b1b4..7ee5e07756c 100644
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java
@@ -37,6 +37,8 @@ import javax.crypto.*; @@ -37,6 +37,8 @@ import javax.crypto.*;
@ -2981,20 +2932,20 @@ index 6b26297b1b4..7ee5e07756c 100644
private static final String PUBLIC = "public"; private static final String PUBLIC = "public";
private static final String PRIVATE = "private"; private static final String PRIVATE = "private";
private static final String SECRET = "secret"; private static final String SECRET = "secret";
@@ -401,8 +406,10 @@ abstract class P11Key implements Key, Length { @@ -401,9 +406,10 @@ abstract class P11Key implements Key, Length {
new CK_ATTRIBUTE(CKA_EXTRACTABLE), new CK_ATTRIBUTE(CKA_EXTRACTABLE),
}); });
- boolean keySensitive = (attrs[0].getBoolean() || - boolean keySensitive =
- attrs[1].getBoolean() || !attrs[2].getBoolean());
+ boolean exportable = plainKeySupportEnabled && !algorithm.equals("DH"); + boolean exportable = plainKeySupportEnabled && !algorithm.equals("DH");
+ boolean keySensitive = (!exportable && + boolean keySensitive = (!exportable &&
+ (attrs[0].getBoolean() || (attrs[0].getBoolean() && P11Util.isNSS(session.token)) ||
+ attrs[1].getBoolean() || !attrs[2].getBoolean())); - attrs[1].getBoolean() || !attrs[2].getBoolean();
+ attrs[1].getBoolean() || !attrs[2].getBoolean());
return switch (algorithm) { return switch (algorithm) {
case "RSA" -> P11RSAPrivateKeyInternal.of(session, keyID, algorithm, case "RSA" -> P11RSAPrivateKeyInternal.of(session, keyID, algorithm,
@@ -454,7 +461,8 @@ abstract class P11Key implements Key, Length { @@ -455,7 +461,8 @@ abstract class P11Key implements Key, Length {
public String getFormat() { public String getFormat() {
token.ensureValid(); token.ensureValid();
@ -3004,13 +2955,11 @@ index 6b26297b1b4..7ee5e07756c 100644
return null; return null;
} else { } else {
return "RAW"; return "RAW";
@@ -1624,4 +1632,3 @@ final class SessionKeyRef extends PhantomReference<P11Key> { @@ -1625,4 +1632,3 @@ final class SessionKeyRef extends PhantomReference<P11Key> {
this.clear(); this.clear();
} }
} }
- -
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java
index 5cd6828d293..bae49c4e8a9 100644
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java
@@ -26,6 +26,9 @@ @@ -26,6 +26,9 @@
@ -3106,7 +3055,7 @@ index 5cd6828d293..bae49c4e8a9 100644
return new SunPKCS11(new Config(newConfigName)); return new SunPKCS11(new Config(newConfigName));
} }
}); });
@@ -325,9 +386,19 @@ public final class SunPKCS11 extends AuthProvider { @@ -336,9 +397,19 @@ public final class SunPKCS11 extends AuthProvider {
// request multithreaded access first // request multithreaded access first
initArgs.flags = CKF_OS_LOCKING_OK; initArgs.flags = CKF_OS_LOCKING_OK;
PKCS11 tmpPKCS11; PKCS11 tmpPKCS11;
@ -3128,7 +3077,7 @@ index 5cd6828d293..bae49c4e8a9 100644
} catch (PKCS11Exception e) { } catch (PKCS11Exception e) {
if (debug != null) { if (debug != null) {
debug.println("Multi-threaded initialization failed: " + e); debug.println("Multi-threaded initialization failed: " + e);
@@ -342,8 +413,9 @@ public final class SunPKCS11 extends AuthProvider { @@ -353,8 +424,9 @@ public final class SunPKCS11 extends AuthProvider {
} else { } else {
initArgs.flags = 0; initArgs.flags = 0;
} }
@ -3140,7 +3089,7 @@ index 5cd6828d293..bae49c4e8a9 100644
} }
p11 = tmpPKCS11; p11 = tmpPKCS11;
@@ -1389,11 +1461,52 @@ public final class SunPKCS11 extends AuthProvider { @@ -1400,11 +1472,52 @@ public final class SunPKCS11 extends AuthProvider {
} }
@Override @Override
@ -3193,7 +3142,7 @@ index 5cd6828d293..bae49c4e8a9 100644
try { try {
return newInstance0(param); return newInstance0(param);
} catch (PKCS11Exception e) { } catch (PKCS11Exception e) {
@@ -1750,6 +1863,9 @@ public final class SunPKCS11 extends AuthProvider { @@ -1761,6 +1874,9 @@ public final class SunPKCS11 extends AuthProvider {
try { try {
session = token.getOpSession(); session = token.getOpSession();
p11.C_Logout(session.id()); p11.C_Logout(session.id());
@ -3203,8 +3152,6 @@ index 5cd6828d293..bae49c4e8a9 100644
if (debug != null) { if (debug != null) {
debug.println("logout succeeded"); debug.println("logout succeeded");
} }
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java
index 3378409ca1c..7602a92a252 100644
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java
@@ -33,6 +33,7 @@ import java.lang.ref.*; @@ -33,6 +33,7 @@ import java.lang.ref.*;
@ -3250,8 +3197,6 @@ index 3378409ca1c..7602a92a252 100644
} }
} }
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
index 4b06daaf264..55e14945469 100644
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
@@ -49,6 +49,9 @@ package sun.security.pkcs11.wrapper; @@ -49,6 +49,9 @@ package sun.security.pkcs11.wrapper;
@ -3506,8 +3451,6 @@ index 4b06daaf264..55e14945469 100644
+ } + }
+} +}
} }
diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java
index 920422376f8..6aa308fa5f8 100644
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java
@@ -215,6 +215,14 @@ public class PKCS11Exception extends Exception { @@ -215,6 +215,14 @@ public class PKCS11Exception extends Exception {
@ -3525,8 +3468,6 @@ index 920422376f8..6aa308fa5f8 100644
/** /**
* Constructor taking the error code (the CKR_* constants in PKCS#11) and * Constructor taking the error code (the CKR_* constants in PKCS#11) and
* extra info for error message. * extra info for error message.
diff --git a/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java b/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java
index 7f8c4dba002..e65b11fc3ee 100644
--- a/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java --- a/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java +++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java
@@ -34,6 +34,7 @@ import java.security.ProviderException; @@ -34,6 +34,7 @@ import java.security.ProviderException;
@ -3793,9 +3734,6 @@ index 7f8c4dba002..e65b11fc3ee 100644
} }
} }
diff --git a/test/jdk/sun/security/pkcs11/fips/NssdbPin.java b/test/jdk/sun/security/pkcs11/fips/NssdbPin.java
new file mode 100644
index 00000000000..ce01c655eb8
--- /dev/null --- /dev/null
+++ b/test/jdk/sun/security/pkcs11/fips/NssdbPin.java +++ b/test/jdk/sun/security/pkcs11/fips/NssdbPin.java
@@ -0,0 +1,349 @@ @@ -0,0 +1,349 @@
@ -4148,9 +4086,6 @@ index 00000000000..ce01c655eb8
+ "2nd line with garbage"); + "2nd line with garbage");
+ } + }
+} +}
diff --git a/test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java b/test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java
new file mode 100644
index 00000000000..87f1ad04505
--- /dev/null --- /dev/null
+++ b/test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java +++ b/test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java
@@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
@ -4231,4 +4166,3 @@ index 00000000000..87f1ad04505
+ } + }
+ } + }
+} +}

File diff suppressed because it is too large Load Diff

View File

@ -33,8 +33,8 @@
# Standard JPackage naming and versioning defines. # Standard JPackage naming and versioning defines.
%global featurever 21 %global featurever 21
%global interimver 0 %global interimver 0
%global updatever 2 %global updatever 4
%global buildver 13 %global buildver 7
%global openjdk_repo jdk21u %global openjdk_repo jdk21u
%global openjdk_tag jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}+%{buildver} %global openjdk_tag jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}+%{buildver}
%global openjdk_dir %{openjdk_repo}-jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}-%{buildver} %global openjdk_dir %{openjdk_repo}-jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}-%{buildver}
@ -99,6 +99,9 @@
%global package_version %{featurever}.%{interimver}.%{?updatever:%{updatever}}%{!?updatever:0}.%{?patchver:%{patchver}}%{!?patchver:0}~%{buildver} %global package_version %{featurever}.%{interimver}.%{?updatever:%{updatever}}%{!?updatever:0}.%{?patchver:%{patchver}}%{!?patchver:0}~%{buildver}
%endif %endif
%global NSS_LIBDIR %(pkg-config --variable=libdir nss) %global NSS_LIBDIR %(pkg-config --variable=libdir nss)
%if 0%{?gcc_version} < 7
%global with_gcc 7
%endif
%bcond_with zero %bcond_with zero
%if ! %{with zero} %if ! %{with zero}
%global with_systemtap 1 %global with_systemtap 1
@ -151,6 +154,7 @@ Patch4: PStack-808293.patch
Patch5: multiple-pkcs11-library-init.patch Patch5: multiple-pkcs11-library-init.patch
# Fix instantiation of VM on ZERO # Fix instantiation of VM on ZERO
Patch8: zero-ranges.patch Patch8: zero-ranges.patch
Patch9: reproducible-javadoc-timestamp.patch
# From icedtea: Increase default memory limits # From icedtea: Increase default memory limits
Patch10: memory-limits.patch Patch10: memory-limits.patch
Patch11: reproducible-properties.patch Patch11: reproducible-properties.patch
@ -158,6 +162,7 @@ Patch11: reproducible-properties.patch
Patch12: adlc-parser.patch Patch12: adlc-parser.patch
# Fix: implicit-pointer-decl # Fix: implicit-pointer-decl
Patch13: implicit-pointer-decl.patch Patch13: implicit-pointer-decl.patch
Patch14: reproducible-jlink.patch
Patch15: system-pcsclite.patch Patch15: system-pcsclite.patch
Patch16: fips.patch Patch16: fips.patch
# #
@ -168,7 +173,6 @@ Patch20: loadAssistiveTechnologies.patch
Patch200: ppc_stack_overflow_fix.patch Patch200: ppc_stack_overflow_fix.patch
# #
Patch302: disable-doclint-by-default.patch Patch302: disable-doclint-by-default.patch
Patch303: alternative-tzdb_dat.patch
# #
BuildRequires: alsa-lib-devel BuildRequires: alsa-lib-devel
BuildRequires: autoconf BuildRequires: autoconf
@ -180,6 +184,8 @@ BuildRequires: desktop-file-utils
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: fontconfig-devel BuildRequires: fontconfig-devel
BuildRequires: freetype2-devel BuildRequires: freetype2-devel
BuildRequires: gcc%{?with_gcc}
BuildRequires: gcc%{?with_gcc}-c++
BuildRequires: giflib-devel BuildRequires: giflib-devel
BuildRequires: hicolor-icon-theme BuildRequires: hicolor-icon-theme
BuildRequires: java-ca-certificates BuildRequires: java-ca-certificates
@ -233,13 +239,6 @@ Provides: jre1.7.x
Provides: jre1.8.x Provides: jre1.8.x
Provides: jre1.9.x Provides: jre1.9.x
%endif %endif
%if 0%{?suse_version} < 1500
BuildRequires: gcc7
BuildRequires: gcc7-c++
%else
BuildRequires: gcc >= 7
BuildRequires: gcc-c++ >= 7
%endif
%if %{with_system_lcms} %if %{with_system_lcms}
BuildRequires: liblcms2-devel BuildRequires: liblcms2-devel
%endif %endif
@ -274,11 +273,11 @@ Requires: jpackage-utils
Requires: mozilla-nss Requires: mozilla-nss
# Post requires update-alternatives to install tool update-alternatives. # Post requires update-alternatives to install tool update-alternatives.
Requires(post): update-alternatives Requires(post): update-alternatives
Requires(posttrans): file
Requires(posttrans): java-ca-certificates Requires(posttrans): java-ca-certificates
# Postun requires update-alternatives to uninstall tool update-alternatives. # Postun requires update-alternatives to uninstall tool update-alternatives.
Requires(postun): update-alternatives Requires(postun): update-alternatives
Recommends: mozilla-nss-sysinit Recommends: mozilla-nss-sysinit
Recommends: tzdata-java8
Obsoletes: %{name}-accessibility Obsoletes: %{name}-accessibility
%if 0%{?suse_version} > 1315 || 0%{?java_bootstrap} %if 0%{?suse_version} > 1315 || 0%{?java_bootstrap}
# Standard JPackage base provides. # Standard JPackage base provides.
@ -387,27 +386,28 @@ rm -rvf src/java.desktop/share/native/liblcms/cms*
rm -rvf src/java.desktop/share/native/liblcms/lcms2* rm -rvf src/java.desktop/share/native/liblcms/lcms2*
%endif %endif
%patch3 -p1 %patch -P 3 -p1
%patch4 -p1 %patch -P 4 -p1
%patch5 -p1 %patch -P 5 -p1
%patch8 -p1 %patch -P 8 -p1
%patch10 -p1 %patch -P 9 -p1
%patch11 -p1 %patch -P 10 -p1
%patch12 -p1 %patch -P 11 -p1
%patch13 -p1 %patch -P 12 -p1
%patch -P 13 -p1
%patch -P 14 -p1
%if %{with_system_pcsc} %if %{with_system_pcsc}
%patch15 -p1 %patch -P 15 -p1
%endif %endif
%patch16 -p1 %patch -P 16 -p1
%patch20 -p1 %patch -P 20 -p1
%patch200 -p1 %patch -P 200 -p1
%patch302 -p1 %patch -P 302 -p1
%patch303 -p1
# Extract systemtap tapsets # Extract systemtap tapsets
@ -455,11 +455,11 @@ mkdir -p %{buildoutputdir}
pushd %{buildoutputdir} pushd %{buildoutputdir}
bash ../configure \ bash ../configure \
%if 0%{?suse_version} < 1500 %if 0%{?with_gcc}
CPP=cpp-7 \ CPP="cpp-%{with_gcc}" \
CXX=g++-7 \ CXX="g++-%{with_gcc}" \
CC=gcc-7 \ CC="gcc-%{with_gcc}" \
NM=gcc-nm-7 \ NM="gcc-nm-%{with_gcc}" \
%endif %endif
%if %{is_release} %if %{is_release}
--with-version-pre="" \ --with-version-pre="" \
@ -507,9 +507,6 @@ popd >& /dev/null
export JAVA_HOME=$(pwd)/%{buildoutputdir}/%{imagesdir}/jdk export JAVA_HOME=$(pwd)/%{buildoutputdir}/%{imagesdir}/jdk
# Copy tz.properties
echo "sun.zoneinfo.dir=%{_datadir}/javazi" >> $JAVA_HOME/conf/tz.properties
# cacerts are generated in runtime in openSUSE # cacerts are generated in runtime in openSUSE
if [ -f %{buildoutputdir}/%{imagesdir}/jdk/lib/security/cacerts ]; then if [ -f %{buildoutputdir}/%{imagesdir}/jdk/lib/security/cacerts ]; then
rm %{buildoutputdir}/%{imagesdir}/jdk/lib/security/cacerts rm %{buildoutputdir}/%{imagesdir}/jdk/lib/security/cacerts
@ -892,7 +889,6 @@ fi
%{_jvmdir}/%{sdkdir}/conf/security/policy/unlimited/default_local.policy %{_jvmdir}/%{sdkdir}/conf/security/policy/unlimited/default_local.policy
%{_jvmdir}/%{sdkdir}/conf/security/policy/unlimited/default_US_export.policy %{_jvmdir}/%{sdkdir}/conf/security/policy/unlimited/default_US_export.policy
%{_jvmdir}/%{sdkdir}/conf/sound.properties %{_jvmdir}/%{sdkdir}/conf/sound.properties
%{_jvmdir}/%{sdkdir}/conf/tz.properties
%{_jvmdir}/%{sdkdir}/lib/desktop/jconsole.desktop %{_jvmdir}/%{sdkdir}/lib/desktop/jconsole.desktop
%{_jvmdir}/%{sdkdir}/lib/jexec %{_jvmdir}/%{sdkdir}/lib/jexec
%{_jvmdir}/%{sdkdir}/lib/jfr/default.jfc %{_jvmdir}/%{sdkdir}/lib/jfr/default.jfc

View File

@ -1,6 +1,6 @@
--- a/src/java.base/share/conf/security/java.security --- a/src/java.base/share/conf/security/java.security
+++ b/src/java.base/share/conf/security/java.security +++ b/src/java.base/share/conf/security/java.security
@@ -307,6 +307,8 @@ keystore.type.compat=true @@ -313,6 +313,8 @@ keystore.type.compat=true
# #
package.access=sun.misc.,\ package.access=sun.misc.,\
sun.reflect.,\ sun.reflect.,\
@ -9,7 +9,7 @@
# #
# List of comma-separated packages that start with or equal this string # List of comma-separated packages that start with or equal this string
@@ -319,6 +321,8 @@ package.access=sun.misc.,\ @@ -325,6 +327,8 @@ package.access=sun.misc.,\
# #
package.definition=sun.misc.,\ package.definition=sun.misc.,\
sun.reflect.,\ sun.reflect.,\

BIN
jdk-21.0.2+13.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
jdk-21.0.4+7.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
--- a/src/java.desktop/share/classes/java/awt/Toolkit.java --- a/src/java.desktop/share/classes/java/awt/Toolkit.java
+++ b/src/java.desktop/share/classes/java/awt/Toolkit.java +++ b/src/java.desktop/share/classes/java/awt/Toolkit.java
@@ -602,7 +602,11 @@ public abstract class Toolkit { @@ -598,7 +598,11 @@ public abstract class Toolkit {
toolkit = new HeadlessToolkit(toolkit); toolkit = new HeadlessToolkit(toolkit);
} }
if (!GraphicsEnvironment.isHeadless()) { if (!GraphicsEnvironment.isHeadless()) {

View File

@ -1,6 +1,6 @@
--- a/src/hotspot/share/gc/shared/gc_globals.hpp --- a/src/hotspot/share/gc/shared/gc_globals.hpp
+++ b/src/hotspot/share/gc/shared/gc_globals.hpp +++ b/src/hotspot/share/gc/shared/gc_globals.hpp
@@ -596,7 +596,7 @@ @@ -589,7 +589,7 @@
"Initial heap size (in bytes); zero means use ergonomics") \ "Initial heap size (in bytes); zero means use ergonomics") \
constraint(InitialHeapSizeConstraintFunc,AfterErgo) \ constraint(InitialHeapSizeConstraintFunc,AfterErgo) \
\ \

View File

@ -1,6 +1,6 @@
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java 2023-04-01 12:03:26.147543172 +0200 --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java 2023-04-01 12:03:45.455660866 +0200 +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java
@@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@ final class Config {
static final int ERR_HALT = 1; static final int ERR_HALT = 1;
static final int ERR_IGNORE_ALL = 2; static final int ERR_IGNORE_ALL = 2;
static final int ERR_IGNORE_LIB = 3; static final int ERR_IGNORE_LIB = 3;
@ -8,7 +8,7 @@
// same as allowSingleThreadedModules but controlled via a system property // same as allowSingleThreadedModules but controlled via a system property
// and applied to all providers. if set to false, no SunPKCS11 instances // and applied to all providers. if set to false, no SunPKCS11 instances
@@ -1037,6 +1038,7 @@ @@ -1037,6 +1038,7 @@ final class Config {
handleStartupErrors = switch (val) { handleStartupErrors = switch (val) {
case "ignoreAll" -> ERR_IGNORE_ALL; case "ignoreAll" -> ERR_IGNORE_ALL;
case "ignoreMissingLibrary" -> ERR_IGNORE_LIB; case "ignoreMissingLibrary" -> ERR_IGNORE_LIB;
@ -16,9 +16,9 @@
case "halt" -> ERR_HALT; case "halt" -> ERR_HALT;
default -> throw excToken("Invalid value for handleStartupErrors:"); default -> throw excToken("Invalid value for handleStartupErrors:");
}; };
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java 2023-04-01 12:03:26.147543172 +0200 --- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java 2023-04-01 12:07:19.664979695 +0200 +++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java
@@ -184,26 +184,37 @@ @@ -184,26 +184,37 @@ public final class SunPKCS11 extends AuthProvider {
String nssLibraryDirectory = config.getNssLibraryDirectory(); String nssLibraryDirectory = config.getNssLibraryDirectory();
String nssSecmodDirectory = config.getNssSecmodDirectory(); String nssSecmodDirectory = config.getNssSecmodDirectory();
boolean nssOptimizeSpace = config.getNssOptimizeSpace(); boolean nssOptimizeSpace = config.getNssOptimizeSpace();

View File

@ -0,0 +1,28 @@
diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
index 6bff863e178..60c01d18320 100644
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
@@ -25,7 +25,9 @@
package jdk.javadoc.internal.doclets.formats.html;
+import java.time.Instant;
import java.time.ZonedDateTime;
+import java.time.ZoneId;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
@@ -264,8 +266,12 @@ public class HtmlConfiguration extends BaseConfiguration {
return false;
}
+ ZonedDateTime now = ZonedDateTime.now();
+ if ( System.getenv("SOURCE_DATE_EPOCH") != null ) {
+ now = ZonedDateTime.ofInstant(Instant.ofEpochMilli(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))), ZoneId.of("UTC"));
+ }
ZonedDateTime zdt = options.date();
- buildDate = zdt != null ? zdt : ZonedDateTime.now();
+ buildDate = zdt != null ? zdt : now;
if (!getSpecifiedTypeElements().isEmpty()) {
Map<String, PackageElement> map = new HashMap<>();

11
reproducible-jlink.patch Normal file
View File

@ -0,0 +1,11 @@
--- a/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java
+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java
@@ -763,7 +763,7 @@ public class JlinkTask {
private String getSaveOpts() {
StringBuilder sb = new StringBuilder();
- sb.append('#').append(new Date()).append("\n");
+ sb.append('#').append(System.getenv("SOURCE_DATE_EPOCH") != null ? new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))) : new Date()).append("\n");
for (String c : optionsHelper.getInputCommand()) {
sb.append(c).append(" ");
}

View File

@ -8,7 +8,7 @@
]) ])
################################################################################ ################################################################################
@@ -304,3 +305,41 @@ AC_DEFUN_ONCE([LIB_SETUP_HARFBUZZ], @@ -309,3 +310,41 @@ AC_DEFUN_ONCE([LIB_SETUP_HARFBUZZ],
AC_SUBST(HARFBUZZ_CFLAGS) AC_SUBST(HARFBUZZ_CFLAGS)
AC_SUBST(HARFBUZZ_LIBS) AC_SUBST(HARFBUZZ_LIBS)
]) ])
@ -52,7 +52,7 @@
+]) +])
--- a/make/autoconf/spec.gmk.in --- a/make/autoconf/spec.gmk.in
+++ b/make/autoconf/spec.gmk.in +++ b/make/autoconf/spec.gmk.in
@@ -776,6 +776,7 @@ TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@ @@ -806,6 +806,7 @@ TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@
# Build setup # Build setup
USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
@ -96,7 +96,7 @@
/* /*
* Throws a Java Exception by name * Throws a Java Exception by name
@@ -75,6 +77,7 @@ void throwIOException(JNIEnv *env, const char *msg) @@ -75,6 +77,7 @@ static void throwIOException(JNIEnv *env, const char *msg)
throwByName(env, "java/io/IOException", msg); throwByName(env, "java/io/IOException", msg);
} }
@ -104,7 +104,7 @@
static void *findFunction(JNIEnv *env, void *hModule, char *functionName) { static void *findFunction(JNIEnv *env, void *hModule, char *functionName) {
void *fAddress = dlsym(hModule, functionName); void *fAddress = dlsym(hModule, functionName);
if (fAddress == NULL) { if (fAddress == NULL) {
@@ -85,9 +88,11 @@ void *findFunction(JNIEnv *env, void *hModule, char *functionName) { @@ -85,9 +88,11 @@ static void *findFunction(JNIEnv *env, void *hModule, char *functionName) {
} }
return fAddress; return fAddress;
} }

View File

@ -1,6 +1,6 @@
--- a/src/hotspot/cpu/zero/globals_zero.hpp --- a/src/hotspot/cpu/zero/globals_zero.hpp
+++ b/src/hotspot/cpu/zero/globals_zero.hpp +++ b/src/hotspot/cpu/zero/globals_zero.hpp
@@ -52,9 +52,9 @@ define_pd_global(intx, InitArrayShortSize, 0); @@ -54,9 +54,9 @@ define_pd_global(intx, InitArrayShortSize, 0);
#define DEFAULT_STACK_SHADOW_PAGES (5 LP64_ONLY(+1) DEBUG_ONLY(+3)) #define DEFAULT_STACK_SHADOW_PAGES (5 LP64_ONLY(+1) DEBUG_ONLY(+3))
#define DEFAULT_STACK_RESERVED_PAGES (0) #define DEFAULT_STACK_RESERVED_PAGES (0)