forked from pool/timezone
Accepting request 235368 from home:leonardocf:branches:Base:System
- tzcode-revert-low-valued.patch: revert 'zic' patch to improve handling of low-valued time stamps as it breaks applications that read the binary files directly (bnc#879680, bnc#879512, bnc#879073) OBS-URL: https://build.opensuse.org/request/show/235368 OBS-URL: https://build.opensuse.org/package/show/Base:System/timezone?expand=0&rev=137
This commit is contained in:
parent
d42e0b37bf
commit
53a5f0a615
@ -1,5 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue May 13 15:52:04 UTC 2014 - lchiquitto@suse.com
|
||||
Fri May 23 19:02:56 CEST 2014 - lchiquitto@suse.de
|
||||
|
||||
- tzcode-revert-low-valued.patch: revert 'zic' patch to improve
|
||||
handling of low-valued time stamps as it breaks applications that
|
||||
read the binary files directly (bnc#879680, bnc#879512, bnc#879073)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 13 18:05:31 CEST 2014 - lchiquitto@suse.com
|
||||
|
||||
- update to 2014c (bnc#877535):
|
||||
* Egypt observes DST starting 2014-05-15 at 24:00
|
||||
|
@ -36,6 +36,7 @@ Patch2: tzcode-fromname.patch
|
||||
Patch3: iso3166-uk.diff
|
||||
Patch4: tzcode-link.diff
|
||||
Patch5: tzcode-symlink.patch
|
||||
Patch6: tzcode-revert-low-valued.patch
|
||||
# COMMON-END
|
||||
# COMMON-END
|
||||
Url: http://www.gnu.org/software/libc/libc.html
|
||||
@ -63,6 +64,7 @@ package is intended for Java Virtual Machine based on OpenJDK.
|
||||
%else
|
||||
%patch5 -p1
|
||||
%endif
|
||||
%patch6 -p1
|
||||
sed -ri 's@/usr/local/etc/zoneinfo@%{_datadir}/zoneinfo@g' *.[1358]
|
||||
# COMMON-PREP-END
|
||||
# COMMON-PREP-END
|
||||
|
@ -1,5 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue May 13 15:52:04 UTC 2014 - lchiquitto@suse.com
|
||||
Fri May 23 19:02:56 CEST 2014 - lchiquitto@suse.de
|
||||
|
||||
- tzcode-revert-low-valued.patch: revert 'zic' patch to improve
|
||||
handling of low-valued time stamps as it breaks applications that
|
||||
read the binary files directly (bnc#879680, bnc#879512, bnc#879073)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 13 18:05:31 CEST 2014 - lchiquitto@suse.com
|
||||
|
||||
- update to 2014c (bnc#877535):
|
||||
* Egypt observes DST starting 2014-05-15 at 24:00
|
||||
|
@ -34,6 +34,7 @@ Patch2: tzcode-fromname.patch
|
||||
Patch3: iso3166-uk.diff
|
||||
Patch4: tzcode-link.diff
|
||||
Patch5: tzcode-symlink.patch
|
||||
Patch6: tzcode-revert-low-valued.patch
|
||||
# COMMON-END
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%global AREA Etc
|
||||
@ -57,6 +58,7 @@ can select an appropriate time zone for your system with YaST.
|
||||
%else
|
||||
%patch5 -p1
|
||||
%endif
|
||||
%patch6 -p1
|
||||
sed -ri 's@/usr/local/etc/zoneinfo@%{_datadir}/zoneinfo@g' *.[1358]
|
||||
# COMMON-PREP-END
|
||||
|
||||
|
197
tzcode-revert-low-valued.patch
Normal file
197
tzcode-revert-low-valued.patch
Normal file
@ -0,0 +1,197 @@
|
||||
This patch reverts the following commits because they break some applications
|
||||
that read the binary timezone files directly. References: bnc #879680, bnc#
|
||||
879512, bnc#879073.
|
||||
|
||||
commit ebd01ad62ec849fbb6fcda66df4c3e1df1e53d61
|
||||
Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Thu May 1 16:36:16 2014 -0700
|
||||
|
||||
* NEWS: Document zic change for low-valued time stamps.
|
||||
|
||||
commit 7fb077a9ff67dab22b9a23f64f65f85d59cf593e
|
||||
Author: Arthur David Olson <arthurdavidolson@gmail.com>
|
||||
Date: Thu May 1 16:32:16 2014 -0700
|
||||
|
||||
zic: improve handling of low-valued time stamps
|
||||
|
||||
* zic.c (writezone, outzone): Arrange things so that binary files
|
||||
include "transition" entries for minimum time values; these
|
||||
entries eliminate localtime guesswork in handling low-valued time
|
||||
stamps. The bad news: binary files grow slightly as a result of
|
||||
these changes. The good news: there are no changes in the output
|
||||
of "zdump -v" applied to before-and-after versions of all the
|
||||
binary files generated by a "make install".
|
||||
|
||||
commit 2586e998c630cf95a4850d81132203f0901748bc
|
||||
Author: Arthur David Olson <arthurdavidolson@gmail.com>
|
||||
Date: Thu May 1 16:25:19 2014 -0700
|
||||
|
||||
zic: revert Macquarie-specific changes
|
||||
|
||||
These were part of commit fada9b7b05339d848f6fcacb4a1c4fd51b49ec7d
|
||||
dated 2013-05-23 12:19:13 -0700.
|
||||
* zic.c (writezone): Don't set type 0 to that of lowest-valued time.
|
||||
(writezone, outzone): Don't reserve type 0.
|
||||
|
||||
Index: timezone-2014c/zic.c
|
||||
===================================================================
|
||||
--- timezone-2014c.orig/zic.c
|
||||
+++ timezone-2014c/zic.c
|
||||
@@ -983,6 +983,8 @@ gethms(const char *string, const char *c
|
||||
error(_("time overflow"));
|
||||
return 0;
|
||||
}
|
||||
+ if (noise && hh == HOURSPERDAY && mm == 0 && ss == 0)
|
||||
+ warning(_("24:00 not handled by pre-1998 versions of zic"));
|
||||
if (noise && (hh > HOURSPERDAY ||
|
||||
(hh == HOURSPERDAY && (mm != 0 || ss != 0))))
|
||||
warning(_("values over 24 hours not handled by pre-2007 versions of zic"));
|
||||
@@ -1501,11 +1503,17 @@ writezone(const char *const name, const
|
||||
fromi = 0;
|
||||
while (fromi < timecnt && attypes[fromi].at < min_time)
|
||||
++fromi;
|
||||
+ /*
|
||||
+ ** Remember that type 0 is reserved.
|
||||
+ */
|
||||
+ if (isdsts[1] == 0)
|
||||
+ while (fromi < timecnt && attypes[fromi].type == 1)
|
||||
+ ++fromi; /* handled by default rule */
|
||||
for ( ; fromi < timecnt; ++fromi) {
|
||||
- if (toi > 1 && ((attypes[fromi].at +
|
||||
+ if (toi != 0 && ((attypes[fromi].at +
|
||||
gmtoffs[attypes[toi - 1].type]) <=
|
||||
- (attypes[toi - 1].at +
|
||||
- gmtoffs[attypes[toi - 2].type]))) {
|
||||
+ (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0
|
||||
+ : attypes[toi - 2].type]))) {
|
||||
attypes[toi - 1].type =
|
||||
attypes[fromi].type;
|
||||
continue;
|
||||
@@ -1516,9 +1524,6 @@ writezone(const char *const name, const
|
||||
}
|
||||
timecnt = toi;
|
||||
}
|
||||
- if (noise && timecnt > 1200)
|
||||
- warning(_("pre-2014 clients may mishandle"
|
||||
- " more than 1200 transition times"));
|
||||
/*
|
||||
** Transfer.
|
||||
*/
|
||||
@@ -1550,13 +1555,6 @@ writezone(const char *const name, const
|
||||
--timecnt32;
|
||||
++timei32;
|
||||
}
|
||||
- /*
|
||||
- ** Output an INT32_MIN "transition" if appropriate--see below.
|
||||
- */
|
||||
- if (timei32 > 0 && ats[timei32] > INT32_MIN) {
|
||||
- --timei32;
|
||||
- ++timecnt32;
|
||||
- }
|
||||
while (leapcnt32 > 0 && !is32(trans[leapcnt32 - 1]))
|
||||
--leapcnt32;
|
||||
while (leapcnt32 > 0 && !is32(trans[leapi32])) {
|
||||
@@ -1611,7 +1609,11 @@ writezone(const char *const name, const
|
||||
}
|
||||
thistimelim = thistimei + thistimecnt;
|
||||
thisleaplim = thisleapi + thisleapcnt;
|
||||
- for (i = 0; i < typecnt; ++i)
|
||||
+ /*
|
||||
+ ** Remember that type 0 is reserved.
|
||||
+ */
|
||||
+ writetype[0] = FALSE;
|
||||
+ for (i = 1; i < typecnt; ++i)
|
||||
writetype[i] = thistimecnt == timecnt;
|
||||
if (thistimecnt == 0) {
|
||||
/*
|
||||
@@ -1627,8 +1629,11 @@ writezone(const char *const name, const
|
||||
/*
|
||||
** For America/Godthab and Antarctica/Palmer
|
||||
*/
|
||||
+ /*
|
||||
+ ** Remember that type 0 is reserved.
|
||||
+ */
|
||||
if (thistimei == 0)
|
||||
- writetype[0] = TRUE;
|
||||
+ writetype[1] = TRUE;
|
||||
}
|
||||
#ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
|
||||
/*
|
||||
@@ -1678,8 +1683,26 @@ writezone(const char *const name, const
|
||||
}
|
||||
#endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */
|
||||
thistypecnt = 0;
|
||||
+ /*
|
||||
+ ** Potentially, set type 0 to that of lowest-valued time.
|
||||
+ */
|
||||
+ if (thistimei > 0) {
|
||||
+ for (i = 1; i < typecnt; ++i)
|
||||
+ if (writetype[i] && !isdsts[i])
|
||||
+ break;
|
||||
+ if (i != types[thistimei - 1]) {
|
||||
+ i = types[thistimei - 1];
|
||||
+ gmtoffs[0] = gmtoffs[i];
|
||||
+ isdsts[0] = isdsts[i];
|
||||
+ ttisstds[0] = ttisstds[i];
|
||||
+ ttisgmts[0] = ttisgmts[i];
|
||||
+ abbrinds[0] = abbrinds[i];
|
||||
+ writetype[0] = TRUE;
|
||||
+ writetype[i] = FALSE;
|
||||
+ }
|
||||
+ }
|
||||
for (i = 0; i < typecnt; ++i)
|
||||
- typemap[i] = writetype[i] ? thistypecnt++ : -1;
|
||||
+ typemap[i] = writetype[i] ? thistypecnt++ : 0;
|
||||
for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i)
|
||||
indmap[i] = -1;
|
||||
thischarcnt = 0;
|
||||
@@ -1723,12 +1746,7 @@ writezone(const char *const name, const
|
||||
#undef DO
|
||||
for (i = thistimei; i < thistimelim; ++i)
|
||||
if (pass == 1)
|
||||
- /*
|
||||
- ** Output an INT32_MIN "transition"
|
||||
- ** if appropriate--see above.
|
||||
- */
|
||||
- puttzcode(((ats[i] < INT32_MIN) ?
|
||||
- INT32_MIN : ats[i]), fp);
|
||||
+ puttzcode(ats[i], fp);
|
||||
else puttzcode64(ats[i], fp);
|
||||
for (i = thistimei; i < thistimelim; ++i) {
|
||||
unsigned char uc;
|
||||
@@ -2107,6 +2125,11 @@ outzone(const struct zone * const zpfirs
|
||||
updateminmax(leapminyear);
|
||||
updateminmax(leapmaxyear + (leapmaxyear < ZIC_MAX));
|
||||
}
|
||||
+ /*
|
||||
+ ** Reserve type 0.
|
||||
+ */
|
||||
+ gmtoffs[0] = isdsts[0] = ttisstds[0] = ttisgmts[0] = abbrinds[0] = -1;
|
||||
+ typecnt = 1;
|
||||
for (i = 0; i < zonecount; ++i) {
|
||||
zp = &zpfirst[i];
|
||||
if (i < zonecount - 1)
|
||||
@@ -2206,7 +2229,8 @@ outzone(const struct zone * const zpfirs
|
||||
if (usestart) {
|
||||
addtt(starttime, type);
|
||||
usestart = FALSE;
|
||||
- } else addtt(min_time, type);
|
||||
+ } else if (stdoff != 0)
|
||||
+ addtt(min_time, type);
|
||||
} else for (year = min_year; year <= max_year; ++year) {
|
||||
if (useuntil && year > zp->z_untilrule.r_hiyear)
|
||||
break;
|
||||
Index: timezone-2014c/NEWS
|
||||
===================================================================
|
||||
--- timezone-2014c.orig/NEWS
|
||||
+++ timezone-2014c/NEWS
|
||||
@@ -15,9 +15,6 @@ Release 2014c - 2014-05-13 07:44:13 -070
|
||||
|
||||
Changes affecting code
|
||||
|
||||
- zic now generates transitions for minimum time values, eliminating guesswork
|
||||
- when handling low-valued time stamps. (Thanks to Arthur David Olson.)
|
||||
-
|
||||
Port to Cygwin sans glibc. (Thanks to Arthur David Olson.)
|
||||
|
||||
Changes affecting commentary and documentation
|
Loading…
Reference in New Issue
Block a user