Accepting request 1155903 from Java:Factory

Erase the existence of tzdata-java8 from the memory of mankind

OBS-URL: https://build.opensuse.org/request/show/1155903
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/java-17-openj9?expand=0&rev=13
This commit is contained in:
Dominique Leuenberger 2024-03-07 17:31:04 +00:00 committed by Git OBS Bridge
commit a85f504722
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;
@@ -252,7 +253,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"))))) {
@@ -266,6 +275,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:41:46 UTC 2024 - Fridrich Strba <fstrba@suse.com>

View File

@ -126,7 +126,6 @@ Patch32: stringop-overflow.patch
# OpenJDK specific patches
#
Patch302: disable-doclint-by-default.patch
Patch303: alternative-tzdb_dat.patch
#
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
@ -242,7 +241,6 @@ Requires(post): java-ca-certificates
Requires(post): update-alternatives
# Postun requires update-alternatives to uninstall tool update-alternatives.
Requires(postun): update-alternatives
Recommends: tzdata-java8
Obsoletes: %{name}-accessibility
%if 0%{?suse_version} > 1500 || 0%{?java_bootstrap}
# Standard JPackage base provides.
@ -378,7 +376,6 @@ rm -rvf src/java.desktop/share/native/liblcms/lcms2*
%patch -P 32 -p1
%patch -P 302 -p1
%patch -P 303 -p1
cat %{SOURCE100} \
| sed "s/@OPENJ9_SHA@/`expr substr '%{openj9_revision}' 1 7`/g" \
@ -451,9 +448,6 @@ find %{imagesdir}/jdk -iname '*.debuginfo' -exec rm {} \;
export JAVA_HOME=$(pwd)/%{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 %{imagesdir}/jdk/lib/security/cacerts ]; then
rm %{imagesdir}/jdk/lib/security/cacerts
@ -782,7 +776,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/J9TraceFormat.dat
%{_jvmdir}/%{sdkdir}/lib/OMRTraceFormat.dat
%{_jvmdir}/%{sdkdir}/lib/default/j9ddr.dat