Hello community,
here is the log from the commit of package timezone for openSUSE:Factory checked in at 2015-07-05 17:50:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/timezone (Old)
and /work/SRC/openSUSE:Factory/.timezone.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "timezone"
Changes:
--------
--- /work/SRC/openSUSE:Factory/timezone/timezone-java.changes 2015-05-22 16:26:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.timezone.new/timezone-java.changes 2015-07-05 17:50:01.000000000 +0200
@@ -1,0 +2,10 @@
+Sun Jun 14 15:22:29 UTC 2015 - astieger@suse.com
+
+- timezone update 2015e [boo#934654]
+ * Morocco will suspend DST from 2015-06-14 03:00 through
+ 2015-07-19 02:00, not 06-13 and 07-18 as guessed.
+ * Assume Cayman Islands will observe DST starting next year,
+ using US rules.
+ * The file 'iso3166.tab' now uses UTF-8
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/timezone/timezone.changes 2015-05-22 16:26:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.timezone.new/timezone.changes 2015-07-05 17:50:02.000000000 +0200
@@ -1,0 +2,17 @@
+Sun Jun 14 15:32:39 UTC 2015 - astieger@suse.com
+
+- timezone update 2015e [boo#934654]
+ * Morocco will suspend DST from 2015-06-14 03:00 through
+ 2015-07-19 02:00, not 06-13 and 07-18 as guessed.
+ * Assume Cayman Islands will observe DST starting next year,
+ using US rules.
+ * The file 'iso3166.tab' now uses UTF-8
+ * When displaying data, tzselect converts it to the current
+ locale's encoding if the iconv command works.
+ * tzselect no longer mishandles Dominica, fixing a bug introduced
+ in Release 2014f.
+ * zic -l no longer fails when compiled with
+ -DTZDEFAULT=\"/etc/localtime\", regression from 2014f.
+ Dropping upstreamed tzcode-zic-empty-comp.diff
+
+-------------------------------------------------------------------
Old:
----
tzcode-zic-empty-comp.diff
tzcode2015d.tar.gz
tzcode2015d.tar.gz.asc
tzdata2015d.tar.gz
tzdata2015d.tar.gz.asc
New:
----
tzcode2015e.tar.gz
tzcode2015e.tar.gz.asc
tzdata2015e.tar.gz
tzdata2015e.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ timezone-java.spec ++++++
--- /var/tmp/diff_new_pack.TIpkdZ/_old 2015-07-05 17:50:03.000000000 +0200
+++ /var/tmp/diff_new_pack.TIpkdZ/_new 2015-07-05 17:50:03.000000000 +0200
@@ -25,7 +25,7 @@
Group: System/Base
# COMMON-BEGIN
# COMMON-BEGIN
-Version: 2015d
+Version: 2015e
Release: 0
Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
@@ -40,7 +40,6 @@
Patch3: iso3166-uk.diff
Patch4: tzcode-link.diff
Patch5: tzcode-symlink.patch
-Patch6: tzcode-zic-empty-comp.diff
# COMMON-END
# COMMON-END
Url: http://www.gnu.org/software/libc/libc.html
@@ -64,7 +63,6 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch6 -p1
%if 0%{?suse_version} < 1220
%patch4 -p1
%else
++++++ timezone.spec ++++++
--- /var/tmp/diff_new_pack.TIpkdZ/_old 2015-07-05 17:50:03.000000000 +0200
+++ /var/tmp/diff_new_pack.TIpkdZ/_new 2015-07-05 17:50:03.000000000 +0200
@@ -23,7 +23,7 @@
Url: http://www.iana.org/time-zones
PreReq: filesystem, coreutils
# COMMON-BEGIN
-Version: 2015d
+Version: 2015e
Release: 0
Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
@@ -38,7 +38,6 @@
Patch3: iso3166-uk.diff
Patch4: tzcode-link.diff
Patch5: tzcode-symlink.patch
-Patch6: tzcode-zic-empty-comp.diff
# COMMON-END
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -58,7 +57,6 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch6 -p1
%if 0%{?suse_version} < 1220
%patch4 -p1
%else
++++++ tzcode2015d.tar.gz -> tzcode2015e.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Makefile new/Makefile
--- old/Makefile 2015-04-24 17:11:35.000000000 +0200
+++ new/Makefile 2015-06-13 19:57:13.000000000 +0200
@@ -5,7 +5,7 @@
PACKAGE= tzcode
# Version numbers of the code and data distributions.
-VERSION= 2015d
+VERSION= 2015e
# Email address for bug reports.
BUGEMAIL= tz@iana.org
@@ -292,23 +292,24 @@
SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
-SAFE_CHARSET= ]$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)-
-SAFE_CHAR= '['$(SAFE_CHARSET)']'
-# NONSYM_CHAR is a regular expression that matches any character
-# except for a small number of symbols, where we prefer to stick with
+SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
+SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]'
+
+# OK_CHAR matches any character allowed in the distributed files.
+# This is the same as SAFE_CHAR, except that multibyte letters are
+# also allowed so that commentary can contain people's names and quote
+# non-English sources. For non-letters the sources are limited to
# ASCII renderings for the convenience of maintainers whose text editors
# mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
-NONSYM_CHAR= '[^–—°′″≈≠≤≥±−×÷∞←→↔·•§¶«»‘’‚‛“”„‟‹›「」『』〝〞〟]'
+OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]'
# SAFE_LINE matches a line of safe characters.
-# SAFE_SHARP_LINE is similar, except any character can follow '#';
+# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
# this is so that comments can contain non-ASCII characters.
-# NONSYM_LINE matches a line of non-symbols.
-# VALID_LINE matches a line of any validly-encoded characters.
+# OK_LINE matches a line of OK characters.
SAFE_LINE= '^'$(SAFE_CHAR)'*$$'
-SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(NONSYM_CHAR)'*)?$$'
-NONSYM_LINE= '^'$(NONSYM_CHAR)'*$$'
-VALID_LINE= '^.*$$'
+SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$'
+OK_LINE= '^'$(OK_CHAR)'*$$'
# Flags to give 'tar' when making a distribution.
# Try to use flags appropriate for GNU tar.
@@ -323,6 +324,8 @@
###############################################################################
+#MAKE= make
+
cc= cc
CC= $(cc) -DTZDIR=\"$(TZDIR)\"
@@ -371,7 +374,7 @@
all: tzselect zic zdump libtz.a $(TABDATA)
-ALL: all date
+ALL: all date $(ENCHILADA)
install: all $(DATA) $(REDO) $(MANS)
mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
@@ -475,14 +478,11 @@
check_character_set: $(ENCHILADA)
LC_ALL=en_US.utf8 && export LC_ALL && \
sharp='#' && \
- ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+ ! grep -Env $(SAFE_LINE) Makefile $(MANS) date.1 $(MANTXTS) \
$(MISC) $(SOURCES) $(WEB_PAGES) && \
! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
- iso3166.tab leapseconds yearistype.sh zone.tab && \
- test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \
- ! grep -Env $(NONSYM_LINE) CONTRIBUTING NEWS README Theory \
- $(MANS) date.1 zone1970.tab && \
- ! grep -Env $(VALID_LINE) $(ENCHILADA)
+ leapseconds yearistype.sh zone.tab && \
+ ! grep -Env $(OK_LINE) $(ENCHILADA)
check_white_space: $(ENCHILADA)
! grep -En ' '$(TAB_CHAR)"|$$(printf '[\f\r\v]')" $(ENCHILADA)
@@ -573,9 +573,9 @@
# The zics below ensure that each data file can stand on its own.
# We also do an all-files run to catch links to links.
-check_public: $(ENCHILADA)
- make maintainer-clean
- make "CFLAGS=$(GCC_DEBUG_FLAGS)" $(ENCHILADA) all
+check_public:
+ $(MAKE) maintainer-clean
+ $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
mkdir tzpublic
for i in $(TDATA) ; do \
$(zic) -v -d tzpublic $$i 2>&1 || exit; \
@@ -594,8 +594,8 @@
zones=`$(AWK) '/^[^#]/ { print $$3 }' /dev/null 2>&1
[ $? = 123 ] || {
- echo >&2 "$0: Sorry, your '$AWK' program is not Posix compatible."
+ say >&2 "$0: Sorry, your '$AWK' program is not Posix compatible."
exit 1
}
@@ -154,16 +160,16 @@
-version)
exec echo "tzselect $PKGVERSION$TZVERSION" ;;
-*)
- echo >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;;
+ say >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;;
*)
- echo >&2 "$0: try '$0 --help'"; exit 1 ;;
+ say >&2 "$0: try '$0 --help'"; exit 1 ;;
esac
done
shift `expr $OPTIND - 1`
case $# in
0) ;;
-*) echo >&2 "$0: $1: unknown argument"; exit 1 ;;
+*) say >&2 "$0: $1: unknown argument"; exit 1 ;;
esac
# Make sure the tables are readable.
@@ -172,11 +178,26 @@
for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE
do
<"$f" || {
- echo >&2 "$0: time zone files are not set up correctly"
+ say >&2 "$0: time zone files are not set up correctly"
exit 1
}
done
+# If the current locale does not support UTF-8, convert data to current
+# locale's format if possible, as the shell aligns columns better that way.
+# Check the UTF-8 of U+12345 CUNEIFORM SIGN URU TIMES KI.
+! $AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) != 1 }' &&
+ { tmp=`(mktemp -d) 2>/dev/null` || {
+ tmp=${TMPDIR-/tmp}/tzselect.$$ &&
+ (umask 77 && mkdir -- "$tmp")
+ };} &&
+ trap 'status=$?; rm -fr -- "$tmp"; exit $status' 0 HUP INT PIPE TERM &&
+ (iconv -f UTF-8 -t //TRANSLIT <"$TZ_COUNTRY_TABLE" >$tmp/iso3166.tab) \
+ 2>/dev/null &&
+ TZ_COUNTRY_TABLE=$tmp/iso3166.tab &&
+ iconv -f UTF-8 -t //TRANSLIT <"$TZ_ZONE_TABLE" >$tmp/$zonetabtype.tab &&
+ TZ_ZONE_TABLE=$tmp/$zonetabtype.tab
+
newline='
'
IFS=$newline
@@ -336,8 +357,7 @@
exit 0
}'
do
- echo >&2 "'$TZ' is not a conforming" \
- 'Posix time zone string.'
+ say >&2 "'$TZ' is not a conforming Posix time zone string."
done
TZ_for_date=$TZ;;
*)
@@ -359,7 +379,7 @@
sort -n |
sed "${location_limit}q"
`
- regions=`echo "$distance_table" | $AWK '
+ regions=`say "$distance_table" | $AWK '
BEGIN { FS = "\t" }
{ print $NF }
'`
@@ -369,7 +389,7 @@
"of distance from $coord".
doselect $regions
region=$select_result
- TZ=`echo "$distance_table" | $AWK -v region="$region" '
+ TZ=`say "$distance_table" | $AWK -v region="$region" '
BEGIN { FS="\t" }
$NF == region { print $4 }
'`
@@ -429,6 +449,7 @@
}
}
}
+ /^#/ { next }
$1 ~ cc { print $4 }
' <"$TZ_ZONE_TABLE"`
@@ -460,6 +481,7 @@
}
}
}
+ /^#/ { next }
$1 ~ cc && $4 == region { print $3 }
' <"$TZ_ZONE_TABLE"`
esac
@@ -467,7 +489,7 @@
# Make sure the corresponding zoneinfo file exists.
TZ_for_date=$TZDIR/$TZ
<"$TZ_for_date" || {
- echo >&2 "$0: time zone files are not set up correctly"
+ say >&2 "$0: time zone files are not set up correctly"
exit 1
}
esac
@@ -500,15 +522,15 @@
echo >&2 "The following information has been given:"
echo >&2 ""
case $country%$region%$coord in
- ?*%?*%) echo >&2 " $country$newline $region";;
- ?*%%) echo >&2 " $country";;
- %?*%?*) echo >&2 " coord $coord$newline $region";;
- %%?*) echo >&2 " coord $coord";;
- *) echo >&2 " TZ='$TZ'"
+ ?*%?*%) say >&2 " $country$newline $region";;
+ ?*%%) say >&2 " $country";;
+ %?*%?*) say >&2 " coord $coord$newline $region";;
+ %%?*) say >&2 " coord $coord";;
+ *) say >&2 " TZ='$TZ'"
esac
- echo >&2 ""
- echo >&2 "Therefore TZ='$TZ' will be used.$extra_info"
- echo >&2 "Is the above information OK?"
+ say >&2 ""
+ say >&2 "Therefore TZ='$TZ' will be used.$extra_info"
+ say >&2 "Is the above information OK?"
doselect Yes No
ok=$select_result
@@ -523,7 +545,7 @@
*) file=.profile line="TZ='$TZ'; export TZ"
esac
-echo >&2 "
+say >&2 "
You can make this change permanent for yourself by appending the line
$line
to the file '$file' in your home directory; then log out and log in again.
@@ -531,4 +553,4 @@
Here is that TZ value again, this time on standard output so that you
can use the $0 command in shell scripts:"
-echo "$TZ"
+say "$TZ"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zdump.c new/zdump.c
--- old/zdump.c 2014-10-05 02:38:05.000000000 +0200
+++ new/zdump.c 2015-05-08 23:47:40.000000000 +0200
@@ -246,13 +246,15 @@
extern char * tzname[2];
/* The minimum and maximum finite time values. */
+enum { atime_shift = CHAR_BIT * sizeof (time_t) - 2 };
static time_t const absolute_min_time =
((time_t) -1 < 0
- ? (time_t) -1 << (CHAR_BIT * sizeof (time_t) - 1)
+ ? (- ((time_t) ~ (time_t) 0 < 0)
+ - (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift)))
: 0);
static time_t const absolute_max_time =
((time_t) -1 < 0
- ? - (~ 0 < 0) - ((time_t) -1 << (CHAR_BIT * sizeof (time_t) - 1))
+ ? (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift))
: -1);
static int longest;
static char * progname;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zic.8 new/zic.8
--- old/zic.8 2014-09-11 09:29:22.000000000 +0200
+++ new/zic.8 2015-06-07 04:02:37.000000000 +0200
@@ -374,7 +374,8 @@
It is specified as a year, a month, a day, and a time of day.
If this is specified,
the time zone information is generated from the given UT offset
-and rule change until the time specified.
+and rule change until the time specified, which is interpreted using
+the rules in effect just before the transition.
The month, day, and time of day have the same format as the IN, ON, and AT
fields of a rule; trailing fields can be omitted, and default to the
earliest possible value for the missing fields.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zic.8.txt new/zic.8.txt
--- old/zic.8.txt 2014-09-11 09:29:22.000000000 +0200
+++ new/zic.8.txt 2015-06-07 04:02:37.000000000 +0200
@@ -225,10 +225,11 @@
location. It is specified as a year, a month, a day, and a time
of day. If this is specified, the time zone information is
generated from the given UT offset and rule change until the time
- specified. The month, day, and time of day have the same format
- as the IN, ON, and AT fields of a rule; trailing fields can be
- omitted, and default to the earliest possible value for the
- missing fields.
+ specified, which is interpreted using the rules in effect just
+ before the transition. The month, day, and time of day have the
+ same format as the IN, ON, and AT fields of a rule; trailing
+ fields can be omitted, and default to the earliest possible value
+ for the missing fields.
The next line must be a "continuation" line; this has the same
form as a zone line except that the string "Zone" and the name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zic.c new/zic.c
--- old/zic.c 2015-04-20 08:12:58.000000000 +0200
+++ new/zic.c 2015-05-19 10:24:30.000000000 +0200
@@ -443,7 +443,8 @@
** zic ... 2>&1 | error -t "*" -v
** on BSD systems.
*/
- fprintf(stderr, _("\"%s\", line %d: "), filename, linenum);
+ if (filename)
+ fprintf(stderr, _("\"%s\", line %d: "), filename, linenum);
vfprintf(stderr, string, args);
if (rfilename != NULL)
fprintf(stderr, _(" (rule from \"%s\", line %d)"),
@@ -595,7 +596,7 @@
noise = true;
break;
case 's':
- warning(_("-s ignored\n"));
+ warning(_("-s ignored"));
break;
}
if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
@@ -648,36 +649,43 @@
return errors ? EXIT_FAILURE : EXIT_SUCCESS;
}
-static void
+static bool
componentcheck(char const *name, char const *component,
char const *component_end)
{
enum { component_len_max = 14 };
size_t component_len = component_end - component;
if (component_len == 0) {
- fprintf(stderr, _("%s: file name '%s' contains empty component"),
- progname, name);
- exit(EXIT_FAILURE);
+ if (!*name)
+ error (_("empty file name"));
+ else
+ error (_(component == name
+ ? "file name '%s' begins with '/'"
+ : *component_end
+ ? "file name '%s' contains '//'"
+ : "file name '%s' ends with '/'"),
+ name);
+ return false;
}
if (0 < component_len && component_len <= 2
&& component[0] == '.' && component_end[-1] == '.') {
- fprintf(stderr, _("%s: file name '%s' contains"
- " '%.*s' component"),
- progname, name, (int) component_len, component);
- exit(EXIT_FAILURE);
+ error(_("file name '%s' contains '%.*s' component"),
+ name, (int) component_len, component);
+ return false;
}
- if (!noise)
- return;
- if (0 < component_len && component[0] == '-')
- warning(_("file name '%s' component contains leading '-'"),
- name);
- if (component_len_max < component_len)
- warning(_("file name '%s' contains overlength component"
- " '%.*s...'"),
- name, component_len_max, component);
+ if (noise) {
+ if (0 < component_len && component[0] == '-')
+ warning(_("file name '%s' component contains leading '-'"),
+ name);
+ if (component_len_max < component_len)
+ warning(_("file name '%s' contains overlength component"
+ " '%.*s...'"),
+ name, component_len_max, component);
+ }
+ return true;
}
-static void
+static bool
namecheck(const char *name)
{
register char const *cp;
@@ -701,14 +709,14 @@
? _("file name '%s' contains byte '%c'")
: _("file name '%s' contains byte '\\%o'")),
name, c);
- return;
}
if (c == '/') {
- componentcheck(name, component, cp);
+ if (!componentcheck(name, component, cp))
+ return false;
component = cp + 1;
}
}
- componentcheck(name, component, cp);
+ return componentcheck(name, component, cp);
}
static char *
@@ -733,7 +741,6 @@
register char * toname;
register int fromisdir;
- namecheck(tofield);
fromname = relname(directory, fromfield);
toname = relname(directory, tofield);
/*
@@ -813,8 +820,8 @@
#define TIME_T_BITS_IN_FILE 64
-static const zic_t min_time = (zic_t) -1 << (TIME_T_BITS_IN_FILE - 1);
-static const zic_t max_time = -1 - ((zic_t) -1 << (TIME_T_BITS_IN_FILE - 1));
+static zic_t const min_time = MINVAL (zic_t, TIME_T_BITS_IN_FILE);
+static zic_t const max_time = MAXVAL (zic_t, TIME_T_BITS_IN_FILE);
/* Estimated time of the Big Bang, in seconds since the POSIX epoch.
rounded downward to the negation of a power of two that is
@@ -1020,9 +1027,9 @@
break;
case LC_LEAP:
if (name != leapsec)
- warning(
-_("%s: Leap line in non leap seconds file %s\n"),
- progname, name);
+ warning(_("%s: Leap line in non leap"
+ " seconds file %s"),
+ progname, name);
else inleap(fields, nfields);
wantcont = false;
break;
@@ -1178,7 +1185,9 @@
i_untilday = ZFC_TILDAY;
i_untiltime = ZFC_TILTIME;
z.z_name = NULL;
- } else {
+ } else if (!namecheck(fields[ZF_NAME]))
+ return false;
+ else {
i_gmtoff = ZF_GMTOFF;
i_rule = ZF_RULE;
i_format = ZF_FORMAT;
@@ -1354,10 +1363,8 @@
error(_("blank FROM field on Link line"));
return;
}
- if (*fields[LF_TO] == '\0') {
- error(_("blank TO field on Link line"));
- return;
- }
+ if (! namecheck(fields[LF_TO]))
+ return;
l.l_filename = filename;
l.l_linenum = linenum;
l.l_from = ecpyalloc(fields[LF_FROM]);
@@ -1587,7 +1594,6 @@
void *typesptr = ats + timecnt;
unsigned char *types = typesptr;
- namecheck(name);
/*
** Sort.
*/
@@ -2952,7 +2958,7 @@
if (itsdir(name) <= 0) {
char const *e = strerror(err);
warning(_("%s: Can't create directory"
- " %s: %s\n"),
+ " %s: %s"),
progname, name, e);
free(name);
return false;
++++++ tzdata2015d.tar.gz -> tzdata2015e.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Makefile new/Makefile
--- old/Makefile 2015-04-24 17:11:35.000000000 +0200
+++ new/Makefile 2015-06-13 19:57:13.000000000 +0200
@@ -5,7 +5,7 @@
PACKAGE= tzcode
# Version numbers of the code and data distributions.
-VERSION= 2015d
+VERSION= 2015e
# Email address for bug reports.
BUGEMAIL= tz@iana.org
@@ -292,23 +292,24 @@
SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
-SAFE_CHARSET= ]$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)-
-SAFE_CHAR= '['$(SAFE_CHARSET)']'
-# NONSYM_CHAR is a regular expression that matches any character
-# except for a small number of symbols, where we prefer to stick with
+SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
+SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]'
+
+# OK_CHAR matches any character allowed in the distributed files.
+# This is the same as SAFE_CHAR, except that multibyte letters are
+# also allowed so that commentary can contain people's names and quote
+# non-English sources. For non-letters the sources are limited to
# ASCII renderings for the convenience of maintainers whose text editors
# mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
-NONSYM_CHAR= '[^–—°′″≈≠≤≥±−×÷∞←→↔·•§¶«»‘’‚‛“”„‟‹›「」『』〝〞〟]'
+OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]'
# SAFE_LINE matches a line of safe characters.
-# SAFE_SHARP_LINE is similar, except any character can follow '#';
+# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
# this is so that comments can contain non-ASCII characters.
-# NONSYM_LINE matches a line of non-symbols.
-# VALID_LINE matches a line of any validly-encoded characters.
+# OK_LINE matches a line of OK characters.
SAFE_LINE= '^'$(SAFE_CHAR)'*$$'
-SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(NONSYM_CHAR)'*)?$$'
-NONSYM_LINE= '^'$(NONSYM_CHAR)'*$$'
-VALID_LINE= '^.*$$'
+SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$'
+OK_LINE= '^'$(OK_CHAR)'*$$'
# Flags to give 'tar' when making a distribution.
# Try to use flags appropriate for GNU tar.
@@ -323,6 +324,8 @@
###############################################################################
+#MAKE= make
+
cc= cc
CC= $(cc) -DTZDIR=\"$(TZDIR)\"
@@ -371,7 +374,7 @@
all: tzselect zic zdump libtz.a $(TABDATA)
-ALL: all date
+ALL: all date $(ENCHILADA)
install: all $(DATA) $(REDO) $(MANS)
mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
@@ -475,14 +478,11 @@
check_character_set: $(ENCHILADA)
LC_ALL=en_US.utf8 && export LC_ALL && \
sharp='#' && \
- ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+ ! grep -Env $(SAFE_LINE) Makefile $(MANS) date.1 $(MANTXTS) \
$(MISC) $(SOURCES) $(WEB_PAGES) && \
! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
- iso3166.tab leapseconds yearistype.sh zone.tab && \
- test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \
- ! grep -Env $(NONSYM_LINE) CONTRIBUTING NEWS README Theory \
- $(MANS) date.1 zone1970.tab && \
- ! grep -Env $(VALID_LINE) $(ENCHILADA)
+ leapseconds yearistype.sh zone.tab && \
+ ! grep -Env $(OK_LINE) $(ENCHILADA)
check_white_space: $(ENCHILADA)
! grep -En ' '$(TAB_CHAR)"|$$(printf '[\f\r\v]')" $(ENCHILADA)
@@ -573,9 +573,9 @@
# The zics below ensure that each data file can stand on its own.
# We also do an all-files run to catch links to links.
-check_public: $(ENCHILADA)
- make maintainer-clean
- make "CFLAGS=$(GCC_DEBUG_FLAGS)" $(ENCHILADA) all
+check_public:
+ $(MAKE) maintainer-clean
+ $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
mkdir tzpublic
for i in $(TDATA) ; do \
$(zic) -v -d tzpublic $$i 2>&1 || exit; \
@@ -594,8 +594,8 @@
zones=`$(AWK) '/^[^#]/ { print $$3 }' http://english.ahram.org.eg/NewsContent/1/64/128509/Egypt/Politics-/Sisi-can...
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
Rule Egypt 2009 only - Aug 20 24:00 0 -
@@ -787,20 +788,41 @@
# will resume again at 02:00 on Saturday, August 2, 2014....
# http://www.mmsp.gov.ma/fr/actualites.aspx?id=586
-# From Paul Eggert (2014-06-05):
-# For now, guess that later spring and fall transitions will use 2014's rules,
+# From Milamber (2015-06-08):
+# (Google Translation) The hour will thus be delayed 60 minutes
+# Sunday, June 14 at 3:00, the ministry said in a statement, adding
+# that the time will be advanced again 60 minutes Sunday, July 19,
+# 2015 at 2:00. The move comes under 2.12.126 Decree of 26 Jumada I
+# 1433 (18 April 2012) and the decision of the Head of Government of
+# 16 N. 3-29-15 Chaaban 1435 (4 June 2015).
+# Source (french):
+# http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/
+#
+# From Milamber (2015-06-09):
+# http://www.mmsp.gov.ma/fr/actualites.aspx?id=863
+#
+# From Michael Deckers (2015-06-09):
+# [The gov.ma announcement] would (probably) make the switch on 2015-07-19 go
+# from 03:00 to 04:00 rather than from 02:00 to 03:00, as in the patch....
+# I think the patch is correct and the quoted text is wrong; the text in
+# http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/ agrees
+# with the patch.
+
+# From Paul Eggert (2015-06-08):
+# For now, guess that later spring and fall transitions will use 2015's rules,
# and guess that Morocco will switch to standard time at 03:00 the last
-# Saturday before Ramadan, and back to DST at 02:00 the first Saturday after
-# Ramadan. To implement this, transition dates for 2015 through 2037 were
+# Sunday before Ramadan, and back to DST at 02:00 the first Sunday after
+# Ramadan. To implement this, transition dates for 2016 through 2037 were
# determined by running the following program under GNU Emacs 24.3, with the
# results integrated by hand into the table below.
-# (let ((islamic-year 1436))
+# (let ((islamic-year 1437))
+# (require 'cal-islam)
# (while (< islamic-year 1460)
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
# (b (calendar-islamic-to-absolute (list 10 1 islamic-year)))
-# (saturday 6))
-# (while (/= saturday (mod (setq a (1- a)) 7)))
-# (while (/= saturday (mod b 7))
+# (sunday 0))
+# (while (/= sunday (mod (setq a (1- a)) 7)))
+# (while (/= sunday (mod b 7))
# (setq b (1+ b)))
# (setq a (calendar-gregorian-from-absolute a))
# (setq b (calendar-gregorian-from-absolute b))
@@ -844,32 +866,30 @@
Rule Morocco 2013 only - Jul 7 3:00 0 -
Rule Morocco 2013 only - Aug 10 2:00 1:00 S
Rule Morocco 2013 max - Oct lastSun 3:00 0 -
-Rule Morocco 2014 2022 - Mar lastSun 2:00 1:00 S
+Rule Morocco 2014 2021 - Mar lastSun 2:00 1:00 S
Rule Morocco 2014 only - Jun 28 3:00 0 -
Rule Morocco 2014 only - Aug 2 2:00 1:00 S
-Rule Morocco 2015 only - Jun 13 3:00 0 -
-Rule Morocco 2015 only - Jul 18 2:00 1:00 S
-Rule Morocco 2016 only - Jun 4 3:00 0 -
-Rule Morocco 2016 only - Jul 9 2:00 1:00 S
-Rule Morocco 2017 only - May 20 3:00 0 -
-Rule Morocco 2017 only - Jul 1 2:00 1:00 S
-Rule Morocco 2018 only - May 12 3:00 0 -
-Rule Morocco 2018 only - Jun 16 2:00 1:00 S
-Rule Morocco 2019 only - May 4 3:00 0 -
-Rule Morocco 2019 only - Jun 8 2:00 1:00 S
-Rule Morocco 2020 only - Apr 18 3:00 0 -
-Rule Morocco 2020 only - May 30 2:00 1:00 S
-Rule Morocco 2021 only - Apr 10 3:00 0 -
-Rule Morocco 2021 only - May 15 2:00 1:00 S
-Rule Morocco 2022 only - Apr 2 3:00 0 -
-Rule Morocco 2022 only - May 7 2:00 1:00 S
-Rule Morocco 2023 only - Apr 22 2:00 1:00 S
-Rule Morocco 2024 only - Apr 13 2:00 1:00 S
-Rule Morocco 2025 only - Apr 5 2:00 1:00 S
+Rule Morocco 2015 only - Jun 14 3:00 0 -
+Rule Morocco 2015 only - Jul 19 2:00 1:00 S
+Rule Morocco 2016 only - Jun 5 3:00 0 -
+Rule Morocco 2016 only - Jul 10 2:00 1:00 S
+Rule Morocco 2017 only - May 21 3:00 0 -
+Rule Morocco 2017 only - Jul 2 2:00 1:00 S
+Rule Morocco 2018 only - May 13 3:00 0 -
+Rule Morocco 2018 only - Jun 17 2:00 1:00 S
+Rule Morocco 2019 only - May 5 3:00 0 -
+Rule Morocco 2019 only - Jun 9 2:00 1:00 S
+Rule Morocco 2020 only - Apr 19 3:00 0 -
+Rule Morocco 2020 only - May 24 2:00 1:00 S
+Rule Morocco 2021 only - Apr 11 3:00 0 -
+Rule Morocco 2021 only - May 16 2:00 1:00 S
+Rule Morocco 2022 only - May 8 2:00 1:00 S
+Rule Morocco 2023 only - Apr 23 2:00 1:00 S
+Rule Morocco 2024 only - Apr 14 2:00 1:00 S
+Rule Morocco 2025 only - Apr 6 2:00 1:00 S
Rule Morocco 2026 max - Mar lastSun 2:00 1:00 S
-Rule Morocco 2035 only - Oct 27 3:00 0 -
-Rule Morocco 2036 only - Oct 18 3:00 0 -
-Rule Morocco 2037 only - Oct 10 3:00 0 -
+Rule Morocco 2036 only - Oct 19 3:00 0 -
+Rule Morocco 2037 only - Oct 4 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/backzone new/backzone
--- old/backzone 2015-03-24 20:36:37.000000000 +0100
+++ new/backzone 2015-05-15 23:33:01.000000000 +0200
@@ -279,11 +279,6 @@
-4:30 - ANT 1965 # Netherlands Antilles Time
-4:00 - AST
-# Cayman Is
-Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
- -5:07:11 - KMT 1912 Feb # Kingston Mean Time
- -5:00 - EST
-
# Canada
Zone America/Coral_Harbour -5:32:40 - LMT 1884
-5:00 NT_YK E%sT 1946
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iso3166.tab new/iso3166.tab
--- old/iso3166.tab 2014-07-18 22:31:54.000000000 +0200
+++ new/iso3166.tab 2015-05-03 03:00:13.000000000 +0200
@@ -3,11 +3,10 @@
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
#
-# From Paul Eggert (2014-07-18):
+# From Paul Eggert (2015-05-02):
# This file contains a table of two-letter country codes. Columns are
# separated by a single tab. Lines beginning with '#' are comments.
-# Although all text currently uses ASCII encoding, this is planned to
-# change to UTF-8 soon. The columns of the table are as follows:
+# All text uses UTF-8 encoding. The columns of the table are as follows:
#
# 1. ISO 3166-1 alpha-2 country code, current as of
# ISO 3166-1 Newsletter VI-16 (2013-07-11). See: Updates on ISO 3166
@@ -38,7 +37,7 @@
AT Austria
AU Australia
AW Aruba
-AX Aaland Islands
+AX Åland Islands
AZ Azerbaijan
BA Bosnia & Herzegovina
BB Barbados
@@ -67,7 +66,7 @@
CF Central African Rep.
CG Congo (Rep.)
CH Switzerland
-CI Cote d'Ivoire
+CI Côte d'Ivoire
CK Cook Islands
CL Chile
CM Cameroon
@@ -211,7 +210,7 @@
PW Palau
PY Paraguay
QA Qatar
-RE Reunion
+RE Réunion
RO Romania
RS Serbia
RU Russia
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/northamerica new/northamerica
--- old/northamerica 2015-04-18 04:10:32.000000000 +0200
+++ new/northamerica 2015-05-15 23:33:01.000000000 +0200
@@ -2661,7 +2661,17 @@
-4:00 US A%sT
# Cayman Is
-# See America/Panama.
+
+# From Paul Eggert (2015-05-15):
+# The Cayman government has decided to introduce DST in 2016, the idea being
+# to keep in sync with New York. The legislation hasn't passed but the change
+# seems quite likely. See: Meade B. Cayman 27.
+# http://www.cayman27.com.ky/2015/05/15/clock-ticks-toward-daylight-saving-tim...
+
+Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
+ -5:07:11 - KMT 1912 Feb # Kingston Mean Time
+ -5:00 - EST 2016
+ -5:00 US E%sT
# Costa Rica
@@ -3184,7 +3194,6 @@
Zone America/Panama -5:18:08 - LMT 1890
-5:19:36 - CMT 1908 Apr 22 # Colón Mean Time
-5:00 - EST
-Link America/Panama America/Cayman
# Puerto Rico
# There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/southamerica new/southamerica
--- old/southamerica 2015-04-06 06:06:42.000000000 +0200
+++ new/southamerica 2015-05-03 00:20:28.000000000 +0200
@@ -30,7 +30,7 @@
# I suggest the use of _Summer time_ instead of the more cumbersome
# _daylight-saving time_. _Summer time_ seems to be in general use
# in Europe and South America.
-# -- E O Cutler, _New York Times_ (1937-02-14), quoted in
+# -- E O Cutler, _New York Times_ (1937-02-14), quoted in
# H L Mencken, _The American Language: Supplement I_ (1960), p 466
#
# Earlier editions of these tables also used the North American style
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zone1970.tab new/zone1970.tab
--- old/zone1970.tab 2015-01-28 19:25:25.000000000 +0100
+++ new/zone1970.tab 2015-05-15 23:33:01.000000000 +0200
@@ -206,6 +206,7 @@
KI +0152-15720 Pacific/Kiritimati Line Islands
KP +3901+12545 Asia/Pyongyang
KR +3733+12658 Asia/Seoul
+KY +1918-08123 America/Cayman
KZ +4315+07657 Asia/Almaty most locations
KZ +4448+06528 Asia/Qyzylorda Qyzylorda (Kyzylorda, Kzyl-Orda)
KZ +5017+05710 Asia/Aqtobe Aqtobe (Aktobe)
@@ -259,7 +260,7 @@
NU -1901-16955 Pacific/Niue
NZ,AQ -3652+17446 Pacific/Auckland New Zealand time
NZ -4357-17633 Pacific/Chatham Chatham Islands
-PA,KY +0858-07932 America/Panama
+PA +0858-07932 America/Panama
PE -1203-07703 America/Lima
PF -1732-14934 Pacific/Tahiti Society Islands
PF -0900-13930 Pacific/Marquesas Marquesas Islands