Fridrich Strba 2024-03-07 12:46:14 +00:00 committed by Git OBS Bridge
parent f51043a488
commit db1e9dba6d
3 changed files with 8 additions and 118 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,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>

View File

@ -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