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/81d803cdbcdc
branches: trunk
changeset: 344138:81d803cdbcdc
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 34f280d95392 -r 81d803cdbcdc 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 34f280d95392 -r 81d803cdbcdc 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 34f280d95392 -r 81d803cdbcdc 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