/hg/icedtea6: RH995488: Java thinks that the default timezone is...
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Thu Sep 5 11:36:47 PDT 2013
changeset 0dbdbf696a34 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0dbdbf696a34
author: Andrew John Hughes <gnu.andrew at redhat.com>
date: Thu Sep 05 19:36:32 2013 +0100
RH995488: Java thinks that the default timezone is Busingen instead of Zurich
2013-09-05 Andrew John Hughes <gnu.andrew at redhat.com>
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* patches/rh995488-rhel_tz_fix.patch:
Use /etc/sysconfig/clock on RHEL & clones
so that they don't search /usr/share/zoneinfo.
* NEWS: Mention patch.
diffstat:
ChangeLog | 9 ++++
Makefile.am | 3 +-
NEWS | 1 +
patches/rh995488-rhel_tz_fix.patch | 77 ++++++++++++++++++++++++++++++++++++++
4 files changed, 89 insertions(+), 1 deletions(-)
diffs (121 lines):
diff -r 782a87f782f3 -r 0dbdbf696a34 ChangeLog
--- a/ChangeLog Mon Sep 02 20:59:15 2013 +0100
+++ b/ChangeLog Thu Sep 05 19:36:32 2013 +0100
@@ -1,3 +1,12 @@
+2013-09-05 Andrew John Hughes <gnu.andrew at redhat.com>
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patch.
+ * patches/rh995488-rhel_tz_fix.patch:
+ Use /etc/sysconfig/clock on RHEL & clones
+ so that they don't search /usr/share/zoneinfo.
+ * NEWS: Mention patch.
+
2013-09-02 Andrew John Hughes <gnu.andrew at redhat.com>
* Makefile.am:
diff -r 782a87f782f3 -r 0dbdbf696a34 Makefile.am
--- a/Makefile.am Mon Sep 02 20:59:15 2013 +0100
+++ b/Makefile.am Thu Sep 05 19:36:32 2013 +0100
@@ -760,7 +760,8 @@
patches/openjdk/6980281-majorver_for_solaris.patch \
patches/openjdk/7000225-bad_tabs.patch \
patches/openjdk/7038711-fix_no-clobber_usage.patch \
- patches/disable-cc-incompatible-sanity-checks.patch
+ patches/disable-cc-incompatible-sanity-checks.patch \
+ patches/rh995488-rhel_tz_fix.patch
if WITH_ALT_HSBUILD
ICEDTEA_PATCHES += \
diff -r 782a87f782f3 -r 0dbdbf696a34 NEWS
--- a/NEWS Mon Sep 02 20:59:15 2013 +0100
+++ b/NEWS Thu Sep 05 19:36:32 2013 +0100
@@ -46,6 +46,7 @@
- RH902004: very bad performance with E-Porto Add-In für OpenOffice Writer installed (hs23 only)
- RH991170: java does not use correct kerberos credential cache
- PR1535: Allow use of system Kerberos to obtain cache location
+ - RH995488: Java thinks that the default timezone is Busingen instead of Zurich
* JamVM
- JSR 335: Lambda Expressions
- JEP 171: Implement fence methods in sun.misc.Unsafe
diff -r 782a87f782f3 -r 0dbdbf696a34 patches/rh995488-rhel_tz_fix.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/rh995488-rhel_tz_fix.patch Thu Sep 05 19:36:32 2013 +0100
@@ -0,0 +1,77 @@
+diff --git a/src/solaris/native/java/util/TimeZone_md.c b/src/solaris/native/java/util/TimeZone_md.c
+--- openjdk/jdk/src/solaris/native/java/util/TimeZone_md.c
++++ openjdk/jdk/src/solaris/native/java/util/TimeZone_md.c
+@@ -52,6 +52,8 @@
+ #ifdef __linux__
+
+ static const char *ETC_TIMEZONE_FILE = "/etc/timezone";
++static const char *REDHAT_RELEASE_FILE = "/etc/redhat-release";
++static const char *SYSCONFIG_CLOCK_FILE = "/etc/sysconfig/clock";
+ static const char *ZONEINFO_DIR = "/usr/share/zoneinfo";
+ static const char *DEFAULT_ZONEINFO_FILE = "/etc/localtime";
+
+@@ -225,6 +227,64 @@
+ }
+
+ /*
++ * Next, try the ZONE entry in /etc/sysconfig/clock.
++ */
++ if ((fp = fopen(REDHAT_RELEASE_FILE, "r")) != NULL) {
++ char id[7];
++
++ /* Avoid this file on Fedora as may be buggy; RH489586 */
++ if (fgets(id, sizeof (id), fp) != NULL &&
++ strncmp(id, "Fedora", 6) != 0) {
++ (void) fclose(fp);
++ if ((fp = fopen(SYSCONFIG_CLOCK_FILE, "r")) != NULL) {
++ char line[256];
++
++ while (fgets(line, sizeof(line), fp) != NULL) {
++ char *p = line;
++ char *s;
++
++ SKIP_SPACE(p);
++ if (*p != 'Z') {
++ continue;
++ }
++ if (strncmp(p, "ZONE=\"", 6) == 0) {
++ p += 6;
++ } else {
++ /*
++ * In case we need to parse it token by token.
++ */
++ if (strncmp(p, "ZONE", 4) != 0) {
++ continue;
++ }
++ p += 4;
++ SKIP_SPACE(p);
++ if (*p++ != '=') {
++ break;
++ }
++ SKIP_SPACE(p);
++ if (*p++ != '"') {
++ break;
++ }
++ }
++ for (s = p; *s && *s != '"'; s++)
++ ;
++ if (*s != '"') {
++ /* this ZONE entry is broken. */
++ break;
++ }
++ *s = '\0';
++ tz = strdup(p);
++ break;
++ }
++ (void) fclose(fp);
++ if (tz != NULL) {
++ return tz;
++ }
++ }
++ }
++ }
++
++ /*
+ * Next, try /etc/localtime to find the zone ID.
+ */
+ if (lstat(DEFAULT_ZONEINFO_FILE, &statbuf) == -1) {
More information about the distro-pkg-dev
mailing list