This commit is contained in:
parent
f51043a488
commit
db1e9dba6d
@ -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]);
|
@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 7 12:44:28 UTC 2024 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
- Removed patch:
|
||||
* alternative-tzdb_dat.patch
|
||||
+ Remove the possibility to use the system timezone-java. It
|
||||
creates more problems then it solves (bsc#1213470)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 20 15:37:20 UTC 2024 - Fridrich Strba <fstrba@suse.com>
|
||||
|
||||
|
@ -168,7 +168,6 @@ Patch20: loadAssistiveTechnologies.patch
|
||||
Patch200: ppc_stack_overflow_fix.patch
|
||||
#
|
||||
Patch302: disable-doclint-by-default.patch
|
||||
Patch303: alternative-tzdb_dat.patch
|
||||
#
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: autoconf
|
||||
@ -278,7 +277,6 @@ Requires(posttrans): java-ca-certificates
|
||||
# Postun requires update-alternatives to uninstall tool update-alternatives.
|
||||
Requires(postun): update-alternatives
|
||||
Recommends: mozilla-nss-sysinit
|
||||
Recommends: tzdata-java8
|
||||
Obsoletes: %{name}-accessibility
|
||||
%if 0%{?suse_version} > 1315 || 0%{?java_bootstrap}
|
||||
# Standard JPackage base provides.
|
||||
@ -407,7 +405,6 @@ rm -rvf src/java.desktop/share/native/liblcms/lcms2*
|
||||
%patch -P 200 -p1
|
||||
|
||||
%patch -P 302 -p1
|
||||
%patch -P 303 -p1
|
||||
|
||||
# Extract systemtap tapsets
|
||||
|
||||
@ -507,9 +504,6 @@ popd >& /dev/null
|
||||
|
||||
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
|
||||
if [ -f %{buildoutputdir}/%{imagesdir}/jdk/lib/security/cacerts ]; then
|
||||
rm %{buildoutputdir}/%{imagesdir}/jdk/lib/security/cacerts
|
||||
@ -892,7 +886,6 @@ fi
|
||||
%{_jvmdir}/%{sdkdir}/conf/security/policy/unlimited/default_local.policy
|
||||
%{_jvmdir}/%{sdkdir}/conf/security/policy/unlimited/default_US_export.policy
|
||||
%{_jvmdir}/%{sdkdir}/conf/sound.properties
|
||||
%{_jvmdir}/%{sdkdir}/conf/tz.properties
|
||||
%{_jvmdir}/%{sdkdir}/lib/desktop/jconsole.desktop
|
||||
%{_jvmdir}/%{sdkdir}/lib/jexec
|
||||
%{_jvmdir}/%{sdkdir}/lib/jfr/default.jfc
|
||||
|
Loading…
x
Reference in New Issue
Block a user