diff --git a/iso3166-uk.diff b/iso3166-uk.diff index 5d56268..e7059a0 100644 --- a/iso3166-uk.diff +++ b/iso3166-uk.diff @@ -1,8 +1,8 @@ -Index: timezone-2014i/iso3166.tab +Index: timezone-2016b/iso3166.tab =================================================================== ---- timezone-2014i.orig/iso3166.tab -+++ timezone-2014i/iso3166.tab -@@ -100,7 +100,7 @@ FM Micronesia +--- timezone-2016b.orig/iso3166.tab ++++ timezone-2016b/iso3166.tab +@@ -99,7 +99,7 @@ FM Micronesia FO Faroe Islands FR France GA Gabon diff --git a/timezone-java.changes b/timezone-java.changes index 36c4c7a..0b995ee 100644 --- a/timezone-java.changes +++ b/timezone-java.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Mar 17 06:52:00 UTC 2016 - lchiquitto@suse.com + +- timezone update 2016b [boo#971377] + * New zones Europe/Astrakhan and Europe/Ulyanovsk for Astrakhan + and Ulyanovsk Oblasts, Russia, both of which will switch from + +03 to +04 on 2016-03-27 at 02:00 local time. + * New zone Asia/Barnaul for Altai Krai and Altai Republic, Russia, + which will switch from +06 to +07 on the same date and local time. + * Asia/Sakhalin moves from +10 to +11 on 2016-03-27 at 02:00. + * As a trial of a new system that needs less information to be made + up, the new zones use numeric time zone abbreviations like "+04" + instead of invented abbreviations like "ASTT". + * Haiti will not observe DST in 2016. + * Palestine's spring-forward transition on 2016-03-26 is at 01:00, + not 00:00. + * tzselect's diagnostics and checking, and checktab.awk's checking, + have been improved. + * tzselect now tests Julian-date TZ settings more accurately. + (Thanks to J William Piggott.) +- tzcode-revert-01-8c9cb9580.patch, tzcode-revert-02-301f794f3.patch, + tzcode-revert-03-39fd078a6.patch: Revert some porting fixes specific + to MS-Windows that rewrites parts of zic touched by our patches. + ------------------------------------------------------------------- Thu Jan 28 07:37:16 UTC 2016 - astieger@suse.com diff --git a/timezone-java.spec b/timezone-java.spec index 935fb6a..8f39afa 100644 --- a/timezone-java.spec +++ b/timezone-java.spec @@ -25,7 +25,7 @@ License: BSD-3-Clause and SUSE-Public-Domain Group: System/Base # COMMON-BEGIN # COMMON-BEGIN -Version: 2016a +Version: 2016b Release: 0 Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz @@ -33,6 +33,9 @@ Source2: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz.asc Source3: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz.asc # http://sks.mrball.net/pks/lookup?op=get&search=0xED97E90E62AA7E34 Source4: timezone.keyring +Patch100: tzcode-revert-01-8c9cb9580.patch +Patch101: tzcode-revert-02-301f794f3.patch +Patch102: tzcode-revert-03-39fd078a6.patch Patch0: tzdata-china.diff Patch1: tzcode-zic.diff # PATCH-FIX-OPENSUSE bnc#845530 @@ -59,6 +62,9 @@ package is intended for Java Virtual Machine based on OpenJDK. %setup -c -a 1 # COMMON-PREP-BEGIN # COMMON-PREP-BEGIN +%patch100 -p1 -R +%patch101 -p1 -R +%patch102 -p1 -R %patch0 -p1 %patch1 -p1 %patch2 -p1 diff --git a/timezone-java.spec.in b/timezone-java.spec.in index 0af5e1e..213d43d 100644 --- a/timezone-java.spec.in +++ b/timezone-java.spec.in @@ -1,7 +1,7 @@ # # spec file for package timezone-java # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/timezone.changes b/timezone.changes index 36c4c7a..0b995ee 100644 --- a/timezone.changes +++ b/timezone.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Mar 17 06:52:00 UTC 2016 - lchiquitto@suse.com + +- timezone update 2016b [boo#971377] + * New zones Europe/Astrakhan and Europe/Ulyanovsk for Astrakhan + and Ulyanovsk Oblasts, Russia, both of which will switch from + +03 to +04 on 2016-03-27 at 02:00 local time. + * New zone Asia/Barnaul for Altai Krai and Altai Republic, Russia, + which will switch from +06 to +07 on the same date and local time. + * Asia/Sakhalin moves from +10 to +11 on 2016-03-27 at 02:00. + * As a trial of a new system that needs less information to be made + up, the new zones use numeric time zone abbreviations like "+04" + instead of invented abbreviations like "ASTT". + * Haiti will not observe DST in 2016. + * Palestine's spring-forward transition on 2016-03-26 is at 01:00, + not 00:00. + * tzselect's diagnostics and checking, and checktab.awk's checking, + have been improved. + * tzselect now tests Julian-date TZ settings more accurately. + (Thanks to J William Piggott.) +- tzcode-revert-01-8c9cb9580.patch, tzcode-revert-02-301f794f3.patch, + tzcode-revert-03-39fd078a6.patch: Revert some porting fixes specific + to MS-Windows that rewrites parts of zic touched by our patches. + ------------------------------------------------------------------- Thu Jan 28 07:37:16 UTC 2016 - astieger@suse.com diff --git a/timezone.spec b/timezone.spec index 9c58546..7fe2139 100644 --- a/timezone.spec +++ b/timezone.spec @@ -23,7 +23,7 @@ Group: System/Base Url: http://www.iana.org/time-zones PreReq: filesystem, coreutils # COMMON-BEGIN -Version: 2016a +Version: 2016b Release: 0 Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz @@ -31,6 +31,9 @@ Source2: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz.asc Source3: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz.asc # http://sks.mrball.net/pks/lookup?op=get&search=0xED97E90E62AA7E34 Source4: timezone.keyring +Patch100: tzcode-revert-01-8c9cb9580.patch +Patch101: tzcode-revert-02-301f794f3.patch +Patch102: tzcode-revert-03-39fd078a6.patch Patch0: tzdata-china.diff Patch1: tzcode-zic.diff # PATCH-FIX-OPENSUSE bnc#845530 @@ -53,6 +56,9 @@ can select an appropriate time zone for your system with YaST. %prep %setup -q -c -a 1 # COMMON-PREP-BEGIN +%patch100 -p1 -R +%patch101 -p1 -R +%patch102 -p1 -R %patch0 -p1 %patch1 -p1 %patch2 -p1 diff --git a/tzcode-fromname.patch b/tzcode-fromname.patch index 5b350fc..f9d913d 100644 --- a/tzcode-fromname.patch +++ b/tzcode-fromname.patch @@ -1,8 +1,8 @@ -Index: timezone-2015d/zic.c +Index: timezone-2016b/zic.c =================================================================== ---- timezone-2015d.orig/zic.c -+++ timezone-2015d/zic.c -@@ -757,7 +757,7 @@ dolink(const char *const fromfield, cons +--- timezone-2016b.orig/zic.c ++++ timezone-2016b/zic.c +@@ -768,7 +768,7 @@ dolink(char const *fromfield, char const result = link(fromname, toname); if (result != 0) { @@ -11,7 +11,7 @@ Index: timezone-2015d/zic.c const char *t; char *p; size_t dotdots = 0; -@@ -766,10 +766,10 @@ dolink(const char *const fromfield, cons +@@ -777,10 +777,10 @@ dolink(char const *fromfield, char const do t = s; while ((s = strchr(s, '/')) diff --git a/tzcode-revert-01-8c9cb9580.patch b/tzcode-revert-01-8c9cb9580.patch new file mode 100644 index 0000000..809499b --- /dev/null +++ b/tzcode-revert-01-8c9cb9580.patch @@ -0,0 +1,60 @@ +commit 8c9cb958078b470e352a58f7f2d756544051e59b +Author: Paul Eggert +Date: Fri Feb 26 12:36:17 2016 -0800 + + Fix asctime_r warning with MS-Windows + + Problem reported by Ian Abbott in: + http://mm.icann.org/pipermail/tz/2016-February/023291.html + * Makefile (CFLAGS): Add comment about new -D option. + * private.h (HAVE_DECL_ASCTIME_R): New macro. + (asctime_r): Depend on this, not on HAVE_POSIX_DECLS. + +diff --git a/Makefile b/Makefile +index 20c2c98..5e2fb52 100644 +--- a/Makefile ++++ b/Makefile +@@ -106,6 +106,7 @@ LDLIBS= + + # Add the following to the end of the "CFLAGS=" line as needed. + # -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c) ++# -DHAVE_DECL_ASCTIME_R=0 if does not declare asctime_r + # -DHAVE_DIRECT_H if mkdir needs (MS-Windows) + # -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS) + # -DHAVE_GETTEXT=1 if 'gettext' works (GNU, Linux, Solaris); also see LDLIBS +diff --git a/private.h b/private.h +index e23764d..941e91b 100644 +--- a/private.h ++++ b/private.h +@@ -22,6 +22,10 @@ + ** You can override these in your C compiler options, e.g. '-DHAVE_GETTEXT=1'. + */ + ++#ifndef HAVE_DECL_ASCTIME_R ++#define HAVE_DECL_ASCTIME_R 1 ++#endif ++ + #ifndef HAVE_GETTEXT + #define HAVE_GETTEXT 0 + #endif /* !defined HAVE_GETTEXT */ +@@ -386,17 +390,11 @@ time_t time(time_t *); + void tzset(void); + #endif + +-/* +-** Some time.h implementations don't declare asctime_r. +-** Others might define it as a macro. +-** Fix the former without affecting the latter. +-** Similarly for timezone, daylight, and altzone. +-*/ ++#if !HAVE_DECL_ASCTIME_R && !defined asctime_r ++extern char *asctime_r(struct tm const *restrict, char *restrict); ++#endif + + #if !HAVE_POSIX_DECLS +-# ifndef asctime_r +-extern char * asctime_r(struct tm const *restrict, char *restrict); +-# endif + # ifdef USG_COMPAT + # ifndef timezone + extern long timezone; diff --git a/tzcode-revert-02-301f794f3.patch b/tzcode-revert-02-301f794f3.patch new file mode 100644 index 0000000..b621070 --- /dev/null +++ b/tzcode-revert-02-301f794f3.patch @@ -0,0 +1,96 @@ +commit 301f794f33d145b08fbf7f5247c8663d404fabb5 +Author: Paul Eggert +Date: Fri Feb 26 08:58:45 2016 -0800 + + Fix tzname redefinition in MS-Windows + + Problem reported by Ian Abbott in: + http://mm.icann.org/pipermail/tz/2016-February/023289.html + * localtime.c (tzname): Don’t define if HAVE_POSIX_DECLS, + as causes the Microsoft compiler to complain that tzname + is redeclared without dllimport. + * localtime.c, private.h (altzone): Do define even if + HAVE_POSIX_DECLS, since this is not a POSIX-specified variable. + +diff --git a/localtime.c b/localtime.c +index e3bc763..276ce34 100644 +--- a/localtime.c ++++ b/localtime.c +@@ -178,11 +178,6 @@ static struct state gmtmem; + static char lcl_TZname[TZ_STRLEN_MAX + 1]; + static int lcl_is_set; + +-char * tzname[2] = { +- (char *) wildabbr, +- (char *) wildabbr +-}; +- + /* + ** Section 4.12.3 of X3.159-1989 requires that + ** Except for the strftime function, these functions [asctime, +@@ -193,10 +188,16 @@ char * tzname[2] = { + + static struct tm tm; + +-#ifdef USG_COMPAT ++#if !HAVE_POSIX_DECLS ++char * tzname[2] = { ++ (char *) wildabbr, ++ (char *) wildabbr ++}; ++# ifdef USG_COMPAT + long timezone; + int daylight; +-#endif /* defined USG_COMPAT */ ++# endif ++#endif + + #ifdef ALTZONE + long altzone; +diff --git a/private.h b/private.h +index 6080e71..e23764d 100644 +--- a/private.h ++++ b/private.h +@@ -386,8 +386,6 @@ time_t time(time_t *); + void tzset(void); + #endif + +-#if !HAVE_POSIX_DECLS +- + /* + ** Some time.h implementations don't declare asctime_r. + ** Others might define it as a macro. +@@ -395,24 +393,24 @@ void tzset(void); + ** Similarly for timezone, daylight, and altzone. + */ + +-#ifndef asctime_r ++#if !HAVE_POSIX_DECLS ++# ifndef asctime_r + extern char * asctime_r(struct tm const *restrict, char *restrict); +-#endif +- +-#ifdef USG_COMPAT +-# ifndef timezone +-extern long timezone; + # endif +-# ifndef daylight ++# ifdef USG_COMPAT ++# ifndef timezone ++extern long timezone; ++# endif ++# ifndef daylight + extern int daylight; ++# endif + # endif + #endif ++ + #if defined ALTZONE && !defined altzone + extern long altzone; + #endif + +-#endif +- + /* + ** The STD_INSPIRED functions are similar, but most also need + ** declarations if time_tz is defined. diff --git a/tzcode-revert-03-39fd078a6.patch b/tzcode-revert-03-39fd078a6.patch new file mode 100644 index 0000000..0cccaa2 --- /dev/null +++ b/tzcode-revert-03-39fd078a6.patch @@ -0,0 +1,319 @@ +commit 39fd078a694fa762de5ae7efceca1dbfb7be94b3 +Author: Paul Eggert +Date: Fri Feb 26 03:33:54 2016 -0800 + + Port better to MS-Windows + + Problems reported by Ian Abbott in: + http://mm.icann.org/pipermail/tz/2016-February/023286.html + http://mm.icann.org/pipermail/tz/2016-February/023287.html + * Makefile (CFLAGS): Add comment about new -D options. + * date.c (environ, optarg, optind, tzname): + * private.h (asctime_r, timezone, daylight, altzone): + * strftime.c (tzname): + * zdump.c (environ, getopt, optarg, optind, tzname): + * zic.c (getopt, link, optarg, optind): + Do not declare if HAVE_POSIX_DECLS, to avoid collisions with + system declarations, which is a problem with MS-Windows + and tzname and the dllimport attribute. + * date.c, zdump.c (tzname): Do not specify size, as POSIX doesn’t. + * private.h (HAVE_POSIX_DECLS): Default to 1. + (ENOTSUP): Default to EINVAL. + * zic.c: If HAVE_DIRECT_H, include direct.h and io.h and + define a mkdir macro, for MS-Windows. + (link, symlink): Set errno to ENOTSUP in the substitutes. + (dolink): Don’t complain merely because link and/or + symlink is not supported. Be a bit more economical and robust + about checking for directories and existing destinations. + Report errno-related string on link failures. + (itsdir): Work correctly even if a directory has a timestamp that + is out of time_t range, so that stat fails with errno == + EOVERFLOW. + (writezone): Don’t remove files we can’t stat. + +diff --git a/Makefile b/Makefile +index 568f7f6..20c2c98 100644 +--- a/Makefile ++++ b/Makefile +@@ -106,6 +106,7 @@ LDLIBS= + + # Add the following to the end of the "CFLAGS=" line as needed. + # -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c) ++# -DHAVE_DIRECT_H if mkdir needs (MS-Windows) + # -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS) + # -DHAVE_GETTEXT=1 if 'gettext' works (GNU, Linux, Solaris); also see LDLIBS + # -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares +@@ -116,6 +117,8 @@ LDLIBS= + # -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz + # This defaults to 1 if a working localtime_rz seems to be available. + # localtime_rz can make zdump significantly faster, but is nonstandard. ++# -DHAVE_POSIX_DECLS=0 if your system's include files do not declare ++# functions like 'link' or variables like 'tzname' required by POSIX + # -DHAVE_STDINT_H=1 if you have a pre-C99 compiler with "stdint.h" + # -DHAVE_STRFTIME_L=1 if declares locale_t and strftime_l + # This defaults to 0 if _POSIX_VERSION < 200809, 1 otherwise. +diff --git a/date.c b/date.c +index 824e57d..4c11f61 100644 +--- a/date.c ++++ b/date.c +@@ -42,10 +42,12 @@ + #define SECSPERMIN 60 + #endif /* !defined SECSPERMIN */ + ++#if !HAVE_POSIX_DECLS + extern char ** environ; + extern char * optarg; + extern int optind; +-extern char * tzname[2]; ++extern char * tzname[]; ++#endif + + static int retval = EXIT_SUCCESS; + +diff --git a/private.h b/private.h +index 1c176e6..6080e71 100644 +--- a/private.h ++++ b/private.h +@@ -34,6 +34,10 @@ + #define HAVE_LINK 1 + #endif /* !defined HAVE_LINK */ + ++#ifndef HAVE_POSIX_DECLS ++#define HAVE_POSIX_DECLS 1 ++#endif ++ + #ifndef HAVE_STRDUP + #define HAVE_STRDUP 1 + #endif +@@ -106,6 +110,9 @@ + #ifndef ENAMETOOLONG + # define ENAMETOOLONG EINVAL + #endif ++#ifndef ENOTSUP ++# define ENOTSUP EINVAL ++#endif + #ifndef EOVERFLOW + # define EOVERFLOW EINVAL + #endif +@@ -379,6 +386,8 @@ time_t time(time_t *); + void tzset(void); + #endif + ++#if !HAVE_POSIX_DECLS ++ + /* + ** Some time.h implementations don't declare asctime_r. + ** Others might define it as a macro. +@@ -402,6 +411,8 @@ extern int daylight; + extern long altzone; + #endif + ++#endif ++ + /* + ** The STD_INSPIRED functions are similar, but most also need + ** declarations if time_tz is defined. +diff --git a/strftime.c b/strftime.c +index 7a139bd..f75f9fd 100644 +--- a/strftime.c ++++ b/strftime.c +@@ -106,7 +106,9 @@ static char * _fmt(const char *, const struct tm *, char *, const char *, + int *); + static char * _yconv(int, int, bool, bool, char *, char const *); + ++#if !HAVE_POSIX_DECLS + extern char * tzname[]; ++#endif + + #ifndef YEAR_2000_NAME + #define YEAR_2000_NAME "CHECK_STRFTIME_FORMATS_FOR_TWO_DIGIT_YEARS" +diff --git a/zdump.c b/zdump.c +index 063a263..64d90f6 100644 +--- a/zdump.c ++++ b/zdump.c +@@ -238,12 +238,14 @@ enum { SECSPER400YEARS_FITS = SECSPERLYEAR <= INTMAX_MAX / 400 }; + # define timezone_t char ** + #endif + ++#if !HAVE_POSIX_DECLS + extern char ** environ; + extern int getopt(int argc, char * const argv[], + const char * options); + extern char * optarg; + extern int optind; +-extern char * tzname[2]; ++extern char * tzname[]; ++#endif + + /* The minimum and maximum finite time values. */ + enum { atime_shift = CHAR_BIT * sizeof (time_t) - 2 }; +diff --git a/zic.c b/zic.c +index 78ab870..0ec3359 100644 +--- a/zic.c ++++ b/zic.c +@@ -22,6 +22,13 @@ typedef int_fast64_t zic_t; + #define ZIC_MAX_ABBR_LEN_WO_WARN 6 + #endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */ + ++#ifdef HAVE_DIRECT_H ++# include ++# include ++# undef mkdir ++# define mkdir(name, mode) _mkdir(name) ++#endif ++ + #if HAVE_SYS_STAT_H + #include + #endif +@@ -87,17 +94,19 @@ struct zone { + zic_t z_untiltime; + }; + ++#if !HAVE_POSIX_DECLS + extern int getopt(int argc, char * const argv[], + const char * options); + extern int link(const char * fromname, const char * toname); + extern char * optarg; + extern int optind; ++#endif + + #if ! HAVE_LINK +-# define link(from, to) (-1) ++# define link(from, to) (errno = ENOTSUP, -1) + #endif + #if ! HAVE_SYMLINK +-# define symlink(from, to) (-1) ++# define symlink(from, to) (errno = ENOTSUP, -1) + #endif + + static void addtt(zic_t starttime, int type); +@@ -758,41 +767,47 @@ dolink(char const *fromfield, char const *tofield) + progname, fromname, e); + exit(EXIT_FAILURE); + } +- if (itsdir(toname) <= 0) +- remove(toname); + if (link(fromname, toname) != 0) { +- int result; ++ int link_errno = errno; ++ bool retry_if_link_supported = false; + +- if (! mkdirs(toname)) +- exit(EXIT_FAILURE); +- +- result = link(fromname, toname); +- if (result != 0) { +- const char *s = fromfield; +- const char *t; +- char *p; +- size_t dotdots = 0; +- register char * symlinkcontents = NULL; +- +- do +- t = s; +- while ((s = strchr(s, '/')) +- && ! strncmp (fromfield, tofield, +- ++s - fromfield)); +- +- for (s = tofield + (t - fromfield); *s; s++) +- dotdots += *s == '/'; +- symlinkcontents +- = emalloc(3 * dotdots + strlen(t) + 1); +- for (p = symlinkcontents; dotdots-- != 0; p += 3) +- memcpy(p, "../", 3); +- strcpy(p, t); +- result = symlink(symlinkcontents, toname); +- if (result == 0) +-warning(_("hard link failed, symbolic link used")); +- free(symlinkcontents); +- } +- if (result != 0) { ++ if (link_errno == ENOENT || link_errno == ENOTSUP) { ++ if (! mkdirs(toname)) ++ exit(EXIT_FAILURE); ++ retry_if_link_supported = true; ++ } ++ if ((link_errno == EEXIST || link_errno == ENOTSUP) ++ && itsdir(toname) == 0 ++ && (remove(toname) == 0 || errno == ENOENT)) ++ retry_if_link_supported = true; ++ if (retry_if_link_supported && link_errno != ENOTSUP) ++ link_errno = link(fromname, toname) == 0 ? 0 : errno; ++ if (link_errno != 0) { ++ const char *s = fromfield; ++ const char *t; ++ char *p; ++ size_t dotdots = 0; ++ char *symlinkcontents; ++ int symlink_result; ++ ++ do ++ t = s; ++ while ((s = strchr(s, '/')) ++ && strncmp(fromfield, tofield, ++s - fromfield) == 0); ++ ++ for (s = tofield + (t - fromfield); *s; s++) ++ dotdots += *s == '/'; ++ symlinkcontents = emalloc(3 * dotdots + strlen(t) + 1); ++ for (p = symlinkcontents; dotdots-- != 0; p += 3) ++ memcpy(p, "../", 3); ++ strcpy(p, t); ++ symlink_result = symlink(symlinkcontents, toname); ++ free(symlinkcontents); ++ if (symlink_result == 0) { ++ if (link_errno != ENOTSUP) ++ warning(_("symbolic link used because hard link failed: %s"), ++ strerror (link_errno)); ++ } else { + FILE *fp, *tp; + int c; + fp = fopen(fromname, "rb"); +@@ -815,8 +830,11 @@ warning(_("hard link failed, symbolic link used")); + putc(c, tp); + close_file(fp, fromname); + close_file(tp, toname); +- warning(_("link failed, copy used")); +- } ++ if (link_errno != ENOTSUP) ++ warning(_("copy used because hard link failed: %s"), ++ strerror (link_errno)); ++ } ++ } + } + free(fromname); + free(toname); +@@ -863,18 +881,17 @@ itsdir(char const *name) + { + struct stat st; + int res = stat(name, &st); +- if (res != 0) +- return res; + #ifdef S_ISDIR +- return S_ISDIR(st.st_mode) != 0; +-#else +- { ++ if (res == 0) ++ return S_ISDIR(st.st_mode) != 0; ++#endif ++ if (res == 0 || errno == EOVERFLOW) { + char *nameslashdot = relname(name, "."); +- res = stat(nameslashdot, &st); ++ bool dir = stat(nameslashdot, &st) == 0 || errno == EOVERFLOW; + free(nameslashdot); +- return res == 0; ++ return dir; + } +-#endif ++ return -1; + } + + /* +@@ -1685,7 +1702,7 @@ writezone(const char *const name, const char *const string, char version) + /* + ** Remove old file, if any, to snap links. + */ +- if (itsdir(fullname) <= 0 && remove(fullname) != 0 && errno != ENOENT) { ++ if (itsdir(fullname) == 0 && remove(fullname) != 0 && errno != ENOENT) { + const char *e = strerror(errno); + + fprintf(stderr, _("%s: Can't remove %s: %s\n"), diff --git a/tzcode-zic.diff b/tzcode-zic.diff index 35b3615..625cef2 100644 --- a/tzcode-zic.diff +++ b/tzcode-zic.diff @@ -1,8 +1,8 @@ -Index: timezone-2015d/zic.c +Index: timezone-2016b/zic.c =================================================================== ---- timezone-2015d.orig/zic.c -+++ timezone-2015d/zic.c -@@ -777,8 +777,10 @@ dolink(const char *const fromfield, cons +--- timezone-2016b.orig/zic.c ++++ timezone-2016b/zic.c +@@ -788,8 +788,10 @@ dolink(char const *fromfield, char const memcpy(p, "../", 3); strcpy(p, t); result = symlink(symlinkcontents, toname); diff --git a/tzcode2016a.tar.gz b/tzcode2016a.tar.gz deleted file mode 100644 index f404832..0000000 --- a/tzcode2016a.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11ae66d59b844e8c6c81914c9dd73b666627bd7792855ba9de195eee4520c28d -size 184047 diff --git a/tzcode2016a.tar.gz.asc b/tzcode2016a.tar.gz.asc deleted file mode 100644 index c774320..0000000 --- a/tzcode2016a.tar.gz.asc +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJWqHJCAAoJEO2X6Q5iqn40vggP/iUDh0UDG3g9lQfV41yXx+Dg -4Ln+RVSEkfKE82ffPSJzvyRQzp1l/U2alopcI+Ernou7hmcrYYcJC827QZ+boiLv -uK5/LIDqI/uBb6j3bxt2aiymsbL1+q4C3RDypujKa4lh0kuinO6MUTpnIEGmNdAl -l0q6pWyJfH4UYxT8UCjCvJrNQwMxCD+31oz4blUMUr3h/TdAfd/uRs0xm06Fi6ss -HSzJ1P2gej4uTdGzuWczbZrCdkpLvZXhYt/kIQ3tOl+9bAJOJa0/3zVuIxUO6DNL -w4RRaHbdtvtDUw7vqGcIe2nZHZ4GdRfHINi2sflHfH6auq53x6mWiOGbDqAMQkk4 -2HFnHr8sawB+6TA8vSgayOKg+Ja2eX/4IXBqrGBzt96a0AfJDgWlulgA5oc6lQvy -BAYtgXYfUTg05EEZOIvL1kDR3CZJB2v6U72DVT8y6Bs52w1ue1/7HfhY9N5hHor5 -nCeaeqoQLopMdfpMn3pATqRXvTFsxmlDaN8Y2S6IZyvQgPqpPGBdaH0i+Ran5bXf -vKCRpxS6rsSvOdliNCnr2hytk5UrRdxuLJ6yWiUjhVBszGISUR15w2iwK26NifIR -ZbMV4e2bcZl7kGcq+dIeTtjAoXeP+Bh3Y3NfIq37O1NK8gsx31GfGMVifJYxE4ti -qtlircuZtjdkQR0GmACZ -=cUhj ------END PGP SIGNATURE----- diff --git a/tzcode2016b.tar.gz b/tzcode2016b.tar.gz new file mode 100644 index 0000000..b9b3758 --- /dev/null +++ b/tzcode2016b.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e935c4fe78b5c5da3791f58f3ab7f07fb059a7c71d6b62b69ef345211ae5dfa7 +size 192043 diff --git a/tzcode2016b.tar.gz.asc b/tzcode2016b.tar.gz.asc new file mode 100644 index 0000000..3afee88 --- /dev/null +++ b/tzcode2016b.tar.gz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJW5MM9AAoJEO2X6Q5iqn40ptQP/2aU2c7blSof/PppmYUs/+Vg +X+96FtZyN2JeUSdn5MjhquLlIaib8fg/vqLQJrcrBtansAwXzhpQ8bfSxv4wxFGS +kij7H+37ym/KKW8pLPQFLORaNqGYKIpbBYq+aXYLvIycUgmNVX9hTIbvhbFWp8Vb +n1GxzZX+p/b6Iyi7j+yEUmI+cGkNoZsHpBIqpG3mZbVc63bzPCvzOujBq3zQ4IG8 +Mho/UWoqEIrCeBllFkdqPQ3i63MdE87OdtF2jXDgcDdrw/rBpuT84fp4a2rPkvIM +TJf6NjIzY5D9jehkUoC0pKO5iVVvRTGAExpYr9R+jsddo1mp37V29NKLXOfnEFXK +rTfXvvVDddF57rXZhV9oo0mMBCjT+5+5ZTnx2d1s+4zhZ9lrlMm/PfNWwf6d7/q9 +Q68pqYrcLgc07vKm7wiLnNxSUL8aK5QvN5iGIFR4Qwxv/2Jl7tdHc+yRWtleOazg +VLdagXMCtLB01pLatuc08yrXqLVwysUyLxhwiQ4S9dURh82KHzwQnaHFRUsT8T8v +8Gu3IKkGSHZofVE3hkwLJTmP9q+QAWyd71ealTKbpnAVeGPpmSAxUfi8tk1xRolA +VZ+axKVRap4kdYVZqfwXBCPR1ImCLGBYf5umEfokUwKeWxvek5ff0rtEziYCKmjO +iNm3Lnij0Iefpj1wUQfV +=nUaG +-----END PGP SIGNATURE----- diff --git a/tzdata-china.diff b/tzdata-china.diff index 2d5dd66..e80b7b6 100644 --- a/tzdata-china.diff +++ b/tzdata-china.diff @@ -1,8 +1,8 @@ -Index: timezone-2015d/asia +Index: timezone-2016b/asia =================================================================== ---- timezone-2015d.orig/asia -+++ timezone-2015d/asia -@@ -516,6 +516,10 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1: +--- timezone-2016b.orig/asia ++++ timezone-2016b/asia +@@ -518,6 +518,10 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1: Zone Asia/Shanghai 8:05:43 - LMT 1901 8:00 Shang C%sT 1949 8:00 PRC C%sT @@ -13,11 +13,11 @@ Index: timezone-2015d/asia # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) Zone Asia/Urumqi 5:50:20 - LMT 1928 -Index: timezone-2015d/backward +Index: timezone-2016b/backward =================================================================== ---- timezone-2015d.orig/backward -+++ timezone-2015d/backward -@@ -93,7 +93,7 @@ Link America/Mexico_City Mexico/General +--- timezone-2016b.orig/backward ++++ timezone-2016b/backward +@@ -94,7 +94,7 @@ Link America/Mexico_City Mexico/General Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT Link America/Denver Navajo @@ -26,12 +26,12 @@ Index: timezone-2015d/backward Link Pacific/Pohnpei Pacific/Ponape Link Pacific/Pago_Pago Pacific/Samoa Link Pacific/Chuuk Pacific/Truk -Index: timezone-2015d/zone.tab +Index: timezone-2016b/zone.tab =================================================================== ---- timezone-2015d.orig/zone.tab -+++ timezone-2015d/zone.tab -@@ -143,6 +143,7 @@ CK -2114-15946 Pacific/Rarotonga - CL -3327-07040 America/Santiago most locations +--- timezone-2016b.orig/zone.tab ++++ timezone-2016b/zone.tab +@@ -144,6 +144,7 @@ CK -2114-15946 Pacific/Rarotonga + CL -3327-07040 America/Santiago Chile (most areas) CL -2709-10926 Pacific/Easter Easter Island CM +0403+00942 Africa/Douala +CN +3955+11626 Asia/Beijing China Standard Time diff --git a/tzdata2016a.tar.gz b/tzdata2016a.tar.gz deleted file mode 100644 index f3643d6..0000000 --- a/tzdata2016a.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5efa6b324e64ef921ef700ac3273a51895f672684a30e342f68e47871c6a8cd1 -size 302817 diff --git a/tzdata2016a.tar.gz.asc b/tzdata2016a.tar.gz.asc deleted file mode 100644 index 33c1e0e..0000000 --- a/tzdata2016a.tar.gz.asc +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJWqHJHAAoJEO2X6Q5iqn40O/QP/0dWxkvnViAXibpFmZeQF9qC -18S3oL35D9CwWdIo60zmQ1K4lzq7k3K4fCs+VAZnlp8DeqxbnX/utfFsxRGBZu9F -fHYeIyxPB+Gm45SE3USefZgD38LDDmEIkeQ+SE3geDSVKMO/gHGk55jl/8vylm1d -bIdU/1PNSr5EZt2LlXuRRO1lnQ6cW1G5vDtGj4nyB++/FDIi4qsBMQy21qqRs2K3 -vcw3yRQbqz7rEUxG/k0d9KU/dRUY980f4pHx2kkYpRKL2nhLeYqH3jfRUhOgwupS -Yp4fVFF1gZWbxjcf8Xb97jpCW0q4TL4wPYFQNOsLJJGtNeRP1Pgz7FsjH1qwSUy2 -blX1UWhtFAjUnHF+XO7Z5DUexoq1+14OFWSGwxuGpwUNxgtMmRr4KZVuKg9ag7jC -hKoegozcf90lZ+PmuAXNbz1S9DcILRFG7qnV+E3oKPjyOQBnU1z7Mx0rtleT14iQ -Pdi0ygv4/9cs07dOsF3oqRfwqldYogYF0/O3559eQzGfKdxOIu0eLZV9PLaCnAoM -2zpnPOBqBIwUHRynd6EBJyeu1WCRoC/oIvEs8A8QINf6EN/Fu/Xxgmf8HwwRIOE+ -xgJeNE4Z4xjWiCmu7dvBZJIZZi7dmWaHwste+WxUMZ0boDsYOmnkGCclpSb+MzpX -49a9DUdrNMurifgNd4vy -=WafQ ------END PGP SIGNATURE----- diff --git a/tzdata2016b.tar.gz b/tzdata2016b.tar.gz new file mode 100644 index 0000000..8c97d0d --- /dev/null +++ b/tzdata2016b.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6392091d92556a32de488ea06a055c51bc46b7d8046c8a677f0ccfe286b3dbdc +size 305437 diff --git a/tzdata2016b.tar.gz.asc b/tzdata2016b.tar.gz.asc new file mode 100644 index 0000000..d8f4748 --- /dev/null +++ b/tzdata2016b.tar.gz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJW5MNIAAoJEO2X6Q5iqn40GOIP/3nMNTy9HANyUl+iIlRRHeDB +2S8/VCOulJO6rWwLysuqAoKlHr2Ibrvr78N2v0H64KUGsnncVV4DJdy4l3u2r+Os +Mf4RumPxdeVoLBWejlN2ASPwc2AujlTUrelscW4TVB3fRkjPu6uPqyhpNEYaryM3 +UEvcib7KQvdGzK5jONIpUqqn4khrB7j/ccJ3ma7IlUIOSRku8fTneF4kYwpuqonI +ewwJ34zJAevzKSvUpRbbg7m9ODl//5zA7vvCoF9/Mk1mnmcYXAQ2dZHwp+tRtNAw +NtVwiQ4ATYgnQpiwUr8SzRST3o2KiSOQl+q5nAJhNAu4uYDYcYd2BkFZboVb1JMo +ZRrrxaYEt7ruPNsQMrLiDtt/T7526QrGZ566TNFkeqE+b7jYhM6eB1yTyMmNt54c +EKoRDmK6BsrK4v/UWvDZVBbLD3USo9E8rRKem/mbu6/1LgPKlRBSHG8y4OUAZ+LL ++86nSiPm8vujj4oKHBLCr7mbaCKn0eEjKOVCZ/kFa5/5XoHyfU2nSeX71SP2frvy +vnpFwCRMnaphhjQpetVj1vFTOpnUjVFGNAgHlEDqYH82B5KONLnzSE6uLX5+tVPh +sQ6ZsH6Nvkg5gCsDidtYuL6barDn1+EJD7ekYIxty+triARc7vB6AQdXWJRT2lmF +Z1yJqqtod0FsXF5DAiSx +=kNEq +-----END PGP SIGNATURE-----