Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/time Sync with 2016b



details:   https://anonhg.NetBSD.org/src/rev/d5568fc3d209
branches:  trunk
changeset: 814280:d5568fc3d209
user:      christos <christos%NetBSD.org@localhost>
date:      Tue Mar 15 15:16:01 2016 +0000

description:
Sync with 2016b

diffstat:

 lib/libc/time/CONTRIBUTING |   69 ++++++++++++++++
 lib/libc/time/Makefile     |   96 ++++++++++++++-------
 lib/libc/time/NEWS         |  117 +++++++++++++++++++++++++++
 lib/libc/time/README       |   10 +-
 lib/libc/time/Theory       |   33 ++++---
 lib/libc/time/localtime.c  |   39 ++++----
 lib/libc/time/private.h    |   35 ++++---
 lib/libc/time/strftime.c   |   71 +++++++--------
 lib/libc/time/tz-art.htm   |   32 ++++++-
 lib/libc/time/tz-link.htm  |   52 +++++++++--
 lib/libc/time/tzselect.ksh |   19 ++-
 lib/libc/time/zdump.c      |    7 +-
 lib/libc/time/zic.c        |  192 +++++++++++++++++++++++---------------------
 13 files changed, 538 insertions(+), 234 deletions(-)

diffs (truncated from 1479 to 300 lines):

diff -r 171e7836df6c -r d5568fc3d209 lib/libc/time/CONTRIBUTING
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/time/CONTRIBUTING        Tue Mar 15 15:16:01 2016 +0000
@@ -0,0 +1,69 @@
+Contributing to the tz code and data
+
+The time zone database is by no means authoritative: governments
+change timekeeping rules erratically and sometimes with little
+warning, the data entries do not cover all of civil time before
+1970, and undoubtedly errors remain in the code and data.  Feel
+free to fill gaps or fix mistakes, and please email improvements
+to tz%iana.org@localhost for use in the future.
+
+To email small changes, please run a POSIX shell command like
+'diff -u old/europe new/europe >myfix.patch', and attach
+myfix.patch to the email.
+
+For more-elaborate changes, please read the Theory file and browse
+the mailing list archives <http://mm.icann.org/pipermail/tz/> for
+examples of patches that tend to work well.  Ideally, additions to
+data should contain commentary citing reliable sources as
+justification.
+
+Please submit changes against either the latest release in
+<ftp://ftp.iana.org/tz/> or the master branch of the experimental
+Git repository.  If you use Git the following workflow may be helpful:
+
+  * Copy the experimental repository.
+
+      git clone https://github.com/eggert/tz.git
+      cd tz
+
+  * Get current with the master branch.
+
+      git checkout master
+      git pull
+
+  * Switch to a new branch for the changes.  Choose a different
+    branch name for each change set.
+
+      git checkout -b mybranch
+
+  * Edit source files.  Include commentary that justifies the
+    changes by citing reliable sources.
+
+  * Debug the changes, e.g.:
+
+      make check
+      make install
+      ./zdump -v America/Los_Angeles
+
+  * For each separable change, commit it in the new branch, e.g.:
+
+      git add northamerica
+      git commit
+
+    See recent 'git log' output for the commit-message style.
+
+  * Create patch files 0001-*, 0002-*, ...
+
+      git format-patch master
+
+  * After reviewing the patch files, send the patches to tz%iana.org@localhost
+    for others to review.
+
+      git send-email master
+
+  * Start anew by getting current with the master branch again
+    (the second step above).
+
+Please do not create issues or pull requests on GitHub, as the
+proper procedure for proposing and distributing patches is via
+email as illustrated above.
diff -r 171e7836df6c -r d5568fc3d209 lib/libc/time/Makefile
--- a/lib/libc/time/Makefile    Tue Mar 15 06:25:14 2016 +0000
+++ b/lib/libc/time/Makefile    Tue Mar 15 15:16:01 2016 +0000
@@ -5,7 +5,7 @@
 PACKAGE=       tzcode
 
 # Version numbers of the code and data distributions.
-VERSION=       2015g
+VERSION=       2016b
 
 # Email address for bug reports.
 BUGEMAIL=      tz%iana.org@localhost
@@ -84,14 +84,18 @@
 # below.  If you want both sets of data available, with leap seconds counted
 # normally, use
 #      REDO=           right_posix
-# below.  If you want just POSIX-compatible time values, but with
-# out-of-scope and often-wrong data from the file 'backzone', use
-#      REDO=           posix_packrat
-# POSIX mandates that leap seconds not be counted; for compatibility with it,
-# use "posix_only", "posix_right", or "posix_packrat".
+# below.  POSIX mandates that leap seconds not be counted; for compatibility
+# with it, use "posix_only" or "posix_right".
 
 REDO=          posix_right
 
+# If you want out-of-scope and often-wrong data from the file 'backzone', use
+#      PACKRATDATA=    backzone
+# To omit this data, use
+#      PACKRATDATA=
+
+PACKRATDATA=
+
 # Since "." may not be in PATH...
 
 YEARISTYPE=    ./yearistype
@@ -102,6 +106,8 @@
 
 # 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 <time.h> does not declare asctime_r
+#  -DHAVE_DIRECT_H if mkdir needs <direct.h> (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
@@ -112,6 +118,8 @@
 #  -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 <time.h> declares locale_t and strftime_l
 #      This defaults to 0 if _POSIX_VERSION < 200809, 1 otherwise.
@@ -237,11 +245,22 @@
 
 LDFLAGS=       $(LFLAGS)
 
+# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in
+# submake command lines.  The default is no leap seconds.
+
+LEAPSECONDS=
+
+# The zic command and its arguments.
+
 zic=           ./zic
 ZIC=           $(zic) $(ZFLAGS)
 
 ZFLAGS=
 
+# How to use zic to install tzdata binary files.
+
+ZIC_INSTALL=   $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS)
+
 # The name of a Posix-compliant 'awk' on your system.
 AWK=           awk
 
@@ -345,8 +364,8 @@
                        time2posix.3.txt \
                        tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
                        date.1.txt
-COMMON=                CONTRIBUTING Makefile NEWS README Theory
-WEB_PAGES=     tz-art.htm tz-link.htm
+COMMON=                CONTRIBUTING LICENSE Makefile NEWS README Theory
+WEB_PAGES=     tz-art.htm tz-how-to.html tz-link.htm
 DOCS=          $(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
 PRIMARY_YDATA= africa antarctica asia australasia \
                europe northamerica southamerica
@@ -367,7 +386,7 @@
 
 SHELL=         /bin/sh
 
-all:           tzselect zic zdump libtz.a $(TABDATA)
+all:           tzselect yearistype zic zdump libtz.a $(TABDATA)
 
 ALL:           all date $(ENCHILADA)
 
@@ -376,8 +395,7 @@
                        $(DESTDIR)$(LIBDIR) \
                        $(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \
                        $(DESTDIR)$(MANDIR)/man8
-               $(ZIC) -y $(YEARISTYPE) \
-                       -d $(DESTDIR)$(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES)
+               $(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES)
                cp -f iso3166.tab $(ZONETABLES) $(DESTDIR)$(TZDIR)/.
                cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/.
                cp libtz.a $(DESTDIR)$(LIBDIR)/.
@@ -399,7 +417,7 @@
 zdump:         $(TZDOBJS)
                $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
 
-zic:           $(TZCOBJS) yearistype
+zic:           $(TZCOBJS)
                $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
 
 yearistype:    yearistype.sh
@@ -409,13 +427,28 @@
 leapseconds:   $(LEAP_DEPS)
                $(AWK) -f leapseconds.awk leap-seconds.list >$@
 
-posix_only:    zic $(TDATA)
-               $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
-                       -L /dev/null $(TDATA)
+# Arguments to pass to submakes of install_data.
+# They can be overridden by later submake arguments.
+INSTALLARGS = \
+ DESTDIR=$(DESTDIR) \
+ LEAPSECONDS='$(LEAPSECONDS)' \
+ PACKRATDATA='$(PACKRATDATA)' \
+ TZDIR=$(TZDIR) \
+ YEARISTYPE=$(YEARISTYPE) \
+ ZIC='$(ZIC)'
 
-right_only:    zic leapseconds $(TDATA)
-               $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
-                       -L leapseconds $(TDATA)
+# 'make install_data' installs one set of tz binary files.
+# It can be tailored by setting LEAPSECONDS, PACKRATDATA, etc.
+install_data:  zic leapseconds yearistype $(PACKRATDATA) $(TDATA)
+               $(ZIC_INSTALL) $(TDATA)
+               $(AWK) '/^Rule/' $(TDATA) | $(ZIC_INSTALL) - $(PACKRATDATA)
+
+posix_only:
+               $(MAKE) $(INSTALLARGS) LEAPSECONDS= install_data
+
+right_only:
+               $(MAKE) $(INSTALLARGS) LEAPSECONDS='-L leapseconds' \
+                       install_data
 
 # In earlier versions of this makefile, the other two directories were
 # subdirectories of $(TZDIR).  However, this led to configuration errors.
@@ -426,26 +459,22 @@
 # Therefore, the other two directories are now siblings of $(TZDIR).
 # You must replace all of $(TZDIR) to switch from not using leap seconds
 # to using them, or vice versa.
-right_posix:   right_only leapseconds
+right_posix:   right_only
                rm -fr $(DESTDIR)$(TZDIR)-leaps
                ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-leaps || \
-                 $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-leaps \
-                       -L leapseconds $(TDATA)
-               $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-posix \
-                       -L /dev/null $(TDATA)
+                 $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only
+               $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only
 
-posix_right:   posix_only leapseconds
+posix_right:   posix_only
                rm -fr $(DESTDIR)$(TZDIR)-posix
                ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-posix || \
-                 $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-posix \
-                       -L /dev/null $(TDATA)
-               $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-leaps \
-                       -L leapseconds $(TDATA)
+                 $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only
+               $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only
 
-posix_packrat: posix_only backzone
-               $(AWK) '/^Rule/' $(TDATA) | \
-                 $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
-                       -L /dev/null - backzone
+# This obsolescent rule is present for backwards compatibility with
+# tz releases 2014g through 2015g.  It should go away eventually.
+posix_packrat:
+               $(MAKE) $(INSTALLARGS) PACKRATDATA=backzone posix_only
 
 zones:         $(REDO)
 
@@ -661,6 +690,7 @@
 .PHONY: check check_character_set check_links
 .PHONY: check_public check_sorted check_tables
 .PHONY: check_time_t_alternatives check_web check_white_space clean clean_misc
-.PHONY: install maintainer-clean names posix_packrat posix_only posix_right
+.PHONY: install install_data maintainer-clean names
+.PHONY: posix_only posix_packrat posix_right
 .PHONY: public right_only right_posix signatures tarballs typecheck
 .PHONY: zonenames zones
diff -r 171e7836df6c -r d5568fc3d209 lib/libc/time/NEWS
--- a/lib/libc/time/NEWS        Tue Mar 15 06:25:14 2016 +0000
+++ b/lib/libc/time/NEWS        Tue Mar 15 15:16:01 2016 +0000
@@ -1,5 +1,119 @@
 News for the tz database
 
+Release 2016b - 2016-03-12 17:30:14 -0800
+
+  Changes affecting future time stamps
+
+    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.  They need distinct zones since their
+    post-1970 histories disagree.  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.  The Astrakhan change is already official; the others have
+    passed the first reading in the State Duma and are extremely likely.
+    Also, Asia/Sakhalin moves from +10 to +11 on 2016-03-27 at 02:00.
+    (Thanks to Alexander Krivenyshev for the heads-up, and to Matt Johnson
+    and Stepan Golosunov for followup.)
+
+    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.  (Thanks to Jean Antoine via
+    Steffen Thorsen.)
+
+    Palestine's spring-forward transition on 2016-03-26 is at 01:00, not 00:00.
+    (Thanks to Hannah Kreitem.) Guess future transitions will be March's last



Home | Main Index | Thread Index | Old Index