diff --git a/lib/libc/time/Makefile b/lib/libc/time/Makefile
index c92edc064084..4f448d2b49c6 100644
--- a/lib/libc/time/Makefile
+++ b/lib/libc/time/Makefile
@@ -42,36 +42,63 @@ POSIXRULES= America/New_York
# Also see TZDEFRULESTRING below, which takes effect only
# if the time zone files cannot be accessed.
-# Everything gets put in subdirectories of. . .
-TOPDIR= /usr/local
+# Installation locations.
+#
+# The defaults are suitable for Debian, except that if REDO is
+# posix_right or right_posix then files that Debian puts under
+# /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead
+# put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps,
+# respectively. Problems with the Debian approach are discussed in
+# the commentary for the right_posix rule (below).
+
+# Destination directory, which can be used for staging.
+# 'make DESTDIR=/stage install' installs under /stage (e.g., to
+# /stage/etc/localtime instead of to /etc/localtime). Files under
+# /stage are not intended to work as-is, but can be copied by hand to
+# the root directory later. If DESTDIR is empty, 'make install' does
+# not stage, but installs directly into production locations.
+DESTDIR =
+
+# Everything is installed into subdirectories of TOPDIR, and used there.
+# TOPDIR should be empty (meaning the root directory),
+# or a directory name that does not end in "/".
+# TOPDIR should be empty or an absolute name unless you're just testing.
+TOPDIR =
+
+# The default local time zone is taken from the file TZDEFAULT.
+TZDEFAULT = $(TOPDIR)/etc/localtime
+
+# The subdirectory containing installed program and data files, and
+# likewise for installed files that can be shared among architectures.
+# These should be relative file names.
+USRDIR = usr
+USRSHAREDIR = $(USRDIR)/share
# "Compiled" time zone information is placed in the "TZDIR" directory
# (and subdirectories).
-# Use an absolute path name for TZDIR unless you're just testing the software.
# TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty.
-
TZDIR_BASENAME= zoneinfo
-TZDIR= $(TOPDIR)/etc/$(TZDIR_BASENAME)
+TZDIR = $(TOPDIR)/$(USRSHAREDIR)/$(TZDIR_BASENAME)
-# Types to try, as an alternative to time_t. int64_t should be first.
-TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t
+# The "tzselect" and (if you do "make INSTALL") "date" commands go in:
+BINDIR = $(TOPDIR)/$(USRDIR)/bin
-# The "tzselect", "zic", and "zdump" commands get installed in. . .
+# The "zdump" command goes in:
+ZDUMPDIR = $(BINDIR)
-ETCDIR= $(TOPDIR)/etc
-
-# If you "make INSTALL", the "date" command gets installed in. . .
-
-BINDIR= $(TOPDIR)/bin
+# The "zic" command goes in:
+ZICDIR = $(TOPDIR)/$(USRDIR)/sbin
# Manual pages go in subdirectories of. . .
-
-MANDIR= $(TOPDIR)/man
+MANDIR = $(TOPDIR)/$(USRSHAREDIR)/man
# Library functions are put in an archive in LIBDIR.
+LIBDIR = $(TOPDIR)/$(USRDIR)/lib
-LIBDIR= $(TOPDIR)/lib
+
+# Types to try, as an alternative to time_t. int64_t should be first.
+TIME_T_ALTERNATIVES = int64_t int32_t uint32_t uint64_t
# If you want only POSIX time, with time values interpreted as
# seconds since the epoch (not counting leap seconds), use
@@ -105,11 +132,14 @@ REDO= posix_right
TZDATA_TEXT= leapseconds tzdata.zi
# For backward-compatibility links for old zone names, use
+# BACKWARD= backward
+# If you also want the link US/Pacific-New, even though it is confusing
+# and is planned to be removed from the database eventually, use
# BACKWARD= backward pacificnew
# To omit these links, use
# BACKWARD=
-BACKWARD= backward pacificnew
+BACKWARD= backward
# If you want out-of-scope and often-wrong data from the file 'backzone', use
# PACKRATDATA= backzone
@@ -313,7 +343,7 @@ ZFLAGS=
# How to use zic to install tz binary files.
-ZIC_INSTALL= $(ZIC) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS)
+ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS)
# The name of a Posix-compliant 'awk' on your system.
AWK= awk
@@ -341,8 +371,8 @@ SGML_CATALOG_FILES= \
VALIDATE = nsgmls
VALIDATE_FLAGS = -s -B -wall -wno-unused-param
VALIDATE_ENV = \
- SGML_CATALOG_FILES=$(SGML_CATALOG_FILES) \
- SGML_SEARCH_PATH=$(SGML_SEARCH_PATH) \
+ SGML_CATALOG_FILES='$(SGML_CATALOG_FILES)' \
+ SGML_SEARCH_PATH='$(SGML_SEARCH_PATH)' \
SP_CHARSET_FIXED=YES \
SP_ENCODING=UTF-8
@@ -396,7 +426,7 @@ GZIPFLAGS= -9n
#MAKE= make
cc= cc
-CC= $(cc) -DTZDIR=\"$(TZDIR)\"
+CC= $(cc) -DTZDIR='"$(TZDIR)"'
AR= ar
@@ -421,18 +451,19 @@ MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \
date.1.txt
COMMON= calendars CONTRIBUTING LICENSE Makefile \
NEWS README theory.html version
-WEB_PAGES= tz-art.htm tz-how-to.html tz-link.htm
+WEB_PAGES= tz-art.html tz-how-to.html tz-link.html
DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
PRIMARY_YDATA= africa antarctica asia australasia \
europe northamerica southamerica
-YDATA= $(PRIMARY_YDATA) etcetera $(BACKWARD)
+YDATA= $(PRIMARY_YDATA) etcetera
NDATA= systemv factory
-TDATA= $(YDATA) $(NDATA)
+TDATA_TO_CHECK= $(YDATA) $(NDATA) backward pacificnew
+TDATA= $(YDATA) $(NDATA) $(BACKWARD)
ZONETABLES= zone1970.tab zone.tab
TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
LEAP_DEPS= leapseconds.awk leap-seconds.list
-TZDATA_ZI_DEPS= zishrink.awk $(TDATA) $(PACKRATDATA)
-DATA= $(YDATA) $(NDATA) backzone iso3166.tab leap-seconds.list \
+TZDATA_ZI_DEPS= zishrink.awk version $(TDATA) $(PACKRATDATA)
+DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
leapseconds yearistype.sh $(ZONETABLES)
AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk zishrink.awk
MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl
@@ -457,7 +488,7 @@ VERSION_DEPS= \
newctime.3 newstrftime.3 newtzset.3 northamerica \
pacificnew private.h \
southamerica strftime.c systemv theory.html \
- time2posix.3 tz-art.htm tz-how-to.html tz-link.htm \
+ time2posix.3 tz-art.html tz-how-to.html tz-link.html \
tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
workman.sh yearistype.sh \
zdump.8 zdump.c zic.8 zic.c \
@@ -473,35 +504,41 @@ all: tzselect yearistype zic zdump libtz.a $(TABDATA)
ALL: all date $(ENCHILADA)
install: all $(DATA) $(REDO) $(MANS)
- mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
- $(DESTDIR)$(LIBDIR) \
- $(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \
- $(DESTDIR)$(MANDIR)/man8
- $(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES)
- cp -f $(TABDATA) $(DESTDIR)$(TZDIR)/.
- cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/.
- cp libtz.a $(DESTDIR)$(LIBDIR)/.
- $(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a
- cp -f newctime.3 newtzset.3 $(DESTDIR)$(MANDIR)/man3/.
- cp -f tzfile.5 $(DESTDIR)$(MANDIR)/man5/.
- cp -f tzselect.8 zdump.8 zic.8 $(DESTDIR)$(MANDIR)/man8/.
+ mkdir -p '$(DESTDIR)$(BINDIR)' \
+ '$(DESTDIR)$(ZDUMPDIR)' '$(DESTDIR)$(ZICDIR)' \
+ '$(DESTDIR)$(LIBDIR)' \
+ '$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \
+ '$(DESTDIR)$(MANDIR)/man8'
+ $(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES) \
+ -t '$(DESTDIR)$(TZDEFAULT)'
+ cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.'
+ cp tzselect '$(DESTDIR)$(BINDIR)/.'
+ cp zdump '$(DESTDIR)$(ZDUMPDIR)/.'
+ cp zic '$(DESTDIR)$(ZICDIR)/.'
+ cp libtz.a '$(DESTDIR)$(LIBDIR)/.'
+ $(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a'
+ cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.'
+ cp -f tzfile.5 '$(DESTDIR)$(MANDIR)/man5/.'
+ cp -f tzselect.8 zdump.8 zic.8 '$(DESTDIR)$(MANDIR)/man8/.'
INSTALL: ALL install date.1
- mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1
- cp date $(DESTDIR)$(BINDIR)/.
- cp -f date.1 $(DESTDIR)$(MANDIR)/man1/.
+ mkdir -p '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1'
+ cp date '$(DESTDIR)$(BINDIR)/.'
+ cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.'
version: $(VERSION_DEPS)
{ (type git) >/dev/null 2>&1 && \
V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
--abbrev=7 --dirty` || \
- V=$(VERSION); } && \
+ V='$(VERSION)'; } && \
printf '%s\n' "$$V" >$@.out
mv $@.out $@
# This file can be tailored by setting BACKWARD, PACKRATDATA, etc.
tzdata.zi: $(TZDATA_ZI_DEPS)
- LC_ALL=C $(AWK) -f zishrink.awk $(TDATA) $(PACKRATDATA) >$@.out
+ version=`sed 1q version` && \
+ LC_ALL=C $(AWK) -v version="$$version" -f zishrink.awk \
+ $(TDATA) $(PACKRATDATA) >$@.out
mv $@.out $@
version.h: version
@@ -529,12 +566,13 @@ leapseconds: $(LEAP_DEPS)
# Arguments to pass to submakes of install_data.
# They can be overridden by later submake arguments.
INSTALLARGS = \
- BACKWARD=$(BACKWARD) \
- DESTDIR=$(DESTDIR) \
+ BACKWARD='$(BACKWARD)' \
+ DESTDIR='$(DESTDIR)' \
LEAPSECONDS='$(LEAPSECONDS)' \
PACKRATDATA='$(PACKRATDATA)' \
- TZDIR=$(TZDIR) \
- YEARISTYPE=$(YEARISTYPE) \
+ TZDEFAULT='$(TZDEFAULT)' \
+ TZDIR='$(TZDIR)' \
+ YEARISTYPE='$(YEARISTYPE)' \
ZIC='$(ZIC)'
# 'make install_data' installs one set of tz binary files.
@@ -558,16 +596,16 @@ right_only:
# You must replace all of $(TZDIR) to switch from not using leap seconds
# to using them, or vice versa.
right_posix: right_only
- rm -fr $(DESTDIR)$(TZDIR)-leaps
- ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-leaps || \
- $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only
- $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only
+ rm -fr '$(DESTDIR)$(TZDIR)-leaps'
+ ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-leaps' || \
+ $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
+ $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
posix_right: posix_only
- rm -fr $(DESTDIR)$(TZDIR)-posix
- ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-posix || \
- $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only
- $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only
+ rm -fr '$(DESTDIR)$(TZDIR)-posix'
+ ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-posix' || \
+ $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
+ $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
# This obsolescent rule is present for backwards compatibility with
# tz releases 2014g through 2015g. It should go away eventually.
@@ -633,7 +671,7 @@ check_character_set: $(ENCHILADA)
$(MISC) $(SOURCES) $(WEB_PAGES) \
CONTRIBUTING LICENSE Makefile README \
version tzdata.zi && \
- ! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
+ ! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \
leapseconds yearistype.sh zone.tab && \
! grep -Env $(OK_LINE) $(ENCHILADA); \
}
@@ -641,14 +679,16 @@ check_character_set: $(ENCHILADA)
check_white_space: $(ENCHILADA)
patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \
! grep -En "$$pat" $(ENCHILADA)
- ! grep -n '[[:space:]]$$' $(ENCHILADA)
+ ! grep -n '[[:space:]]$$' \
+ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list)
PRECEDES_FILE_NAME = ^(Zone|Link[[:space:]]+[^[:space:]]+)[[:space:]]+
FILE_NAME_COMPONENT_TOO_LONG = \
$(PRECEDES_FILE_NAME)[^[:space:]]*[^/[:space:]]{15}
-check_name_lengths: $(TDATA) backzone
- ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' $(TDATA) backzone
+check_name_lengths: $(TDATA_TO_CHECK) backzone
+ ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \
+ $(TDATA_TO_CHECK) backzone
CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
@@ -662,8 +702,8 @@ check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
$(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \
LC_ALL=C sort -cu
-check_links: checklinks.awk $(TDATA)
- $(AWK) -f checklinks.awk $(TDATA)
+check_links: checklinks.awk $(TDATA_TO_CHECK)
+ $(AWK) -f checklinks.awk $(TDATA_TO_CHECK)
$(AWK) -f checklinks.awk tzdata.zi
check_tables: checktab.awk $(PRIMARY_YDATA) $(ZONETABLES)
@@ -764,12 +804,12 @@ set-timestamps.out: $(ENCHILADA)
check_public:
$(MAKE) maintainer-clean
- $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
+ $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' ALL
mkdir -p public.dir
- for i in $(TDATA) tzdata.zi; do \
+ for i in $(TDATA_TO_CHECK) tzdata.zi; do \
$(zic) -v -d public.dir $$i 2>&1 || exit; \
done
- $(zic) -v -d public.dir $(TDATA)
+ $(zic) -v -d public.dir $(TDATA_TO_CHECK)
rm -fr public.dir
# Check that the code works under various alternative
@@ -790,8 +830,11 @@ check_time_t_alternatives:
REDO='$(REDO)' \
install && \
diff $$quiet_option -r \
- time_t.dir/int64_t/etc/zoneinfo \
- time_t.dir/$$type/etc/zoneinfo && \
+ time_t.dir/int64_t/etc \
+ time_t.dir/$$type/etc && \
+ diff $$quiet_option -r \
+ time_t.dir/int64_t/usr/share \
+ time_t.dir/$$type/usr/share && \
case $$type in \
int32_t) range=-2147483648,2147483647;; \
uint32_t) range=0,4294967296;; \
@@ -800,9 +843,9 @@ check_time_t_alternatives:
*) range=-10000000000,10000000000;; \
esac && \
echo checking $$type zones ... && \
- time_t.dir/int64_t/etc/zdump -V -t $$range $$zones \
+ time_t.dir/int64_t/usr/bin/zdump -V -t $$range $$zones \
>time_t.dir/int64_t.out && \
- time_t.dir/$$type/etc/zdump -V -t $$range $$zones \
+ time_t.dir/$$type/usr/bin/zdump -V -t $$range $$zones \
>time_t.dir/$$type.out && \
diff -u time_t.dir/int64_t.out time_t.dir/$$type.out \
|| exit; \
diff --git a/lib/libc/time/NEWS b/lib/libc/time/NEWS
index bd2bec223a0b..2bd0aa84143f 100644
--- a/lib/libc/time/NEWS
+++ b/lib/libc/time/NEWS
@@ -1,5 +1,147 @@
News for the tz database
+Release 2018c - 2018-01-22 23:00:44 -0800
+
+ Briefly:
+ Revert Irish changes that relied on negative DST offsets.
+
+ Changes to tm_isdst
+
+ Revert the 2018a change to Europe/Dublin. As before, this change
+ does not affect UT offsets or abbreviations; it affects only
+ whether timestamps are considered to be standard time or
+ daylight-saving time, as expressed in the tm_isdst flag of C's
+ struct tm type. This reversion is intended to be a temporary
+ workaround for problems discovered with downstream uses of
+ releases 2018a and 2018b, which implemented Irish time by using
+ negative DST offsets in the Eire rules of the 'europe' file.
+ Although negative DST offsets have been part of tzcode for many
+ years and are supported by many platforms, they were not
+ documented before 2018a and ICU and OpenJDK do not currently
+ support them. A mechanism to export data to platforms lacking
+ support for negative DST is planned to be developed before the
+ change is reapplied. (Problems reported by Deborah Goldsmith and
+ Stephen Colebourne.)
+
+ Changes to past time stamps
+
+ Japanese DST transitions (1948-1951) were Sundays at 00:00, not
+ Saturdays or Sundays at 02:00. (Thanks to Takayuki Nikai.)
+
+ Changes to build procedure
+
+ The build procedure now works around mawk 1.3.3's lack of support
+ for character class expressions. (Problem reported by Ohyama.)
+
+
+Release 2018b - 2018-01-17 23:24:48 -0800
+
+ Briefly:
+ Fix a packaging problem in tz2018a, which was missing 'pacificnew'.
+
+ Changes to build procedure
+
+ The distribution now contains the file 'pacificnew' again.
+ This file was inadvertantly omitted in the 2018a distribution.
+ (Problem reported by Matias Fonzo.)
+
+
+Release 2018a - 2018-01-12 22:29:21 -0800
+
+ Briefly:
+ São Tomé and Príncipe switched from +00 to +01.
+ Brazil's DST will now start on November's first Sunday.
+ Ireland's standard time is now in the summer, not the winter.
+ Use Debian-style installation locations, instead of 4.3BSD-style.
+ New zic option -t.
+
+ Changes to past and future time stamps
+
+ São Tomé and Príncipe switched from +00 to +01 on 2018-01-01 at
+ 01:00. (Thanks to Steffen Thorsen and Michael Deckers.)
+
+ Changes to future time stamps
+
+ Starting in 2018 southern Brazil will begin DST on November's
+ first Sunday instead of October's third Sunday. (Thanks to
+ Steffen Thorsen.)
+
+ Changes to past time stamps
+
+ A discrepancy of 4 s in timestamps before 1931 in South Sudan has
+ been corrected. The 'backzone' and 'zone.tab' files did not agree
+ with the 'africa' and 'zone1970.tab' files. (Problem reported by
+ Michael Deckers.)
+
+ The abbreviation invented for Bolivia Summer Time (1931-2) is now
+ BST instead of BOST, to be more consistent with the convention
+ used for Latvian Summer Time (1918-9) and for British Summer Time.
+
+ Changes to tm_isdst
+
+ Change Europe/Dublin so that it observes Irish Standard Time (UT
+ +01) in summer and GMT (as negative daylight-saving) in winter,
+ instead of observing standard time (GMT) in winter and Irish
+ Summer Time (UT +01) in summer. This change does not affect UT
+ offsets or abbreviations; it affects only whether timestamps are
+ considered to be standard time or daylight-saving time, as
+ expressed in the tm_isdst flag of C's struct tm type.
+ (Discrepancy noted by Derick Rethans.)
+
+ Changes to build procedure
+
+ The default installation locations have been changed to mostly
+ match Debian circa 2017, instead of being designed as an add-on to
+ 4.3BSD circa 1986. This affects the Makefile macros TOPDIR,
+ TZDIR, MANDIR, and LIBDIR. New Makefile macros TZDEFAULT, USRDIR,
+ USRSHAREDIR, BINDIR, ZDUMPDIR, and ZICDIR let installers tailor
+ locations more precisely. (This responds to suggestions from
+ Brian Inglis and from Steve Summit.)
+
+ The default installation procedure no longer creates the
+ backward-compatibility link US/Pacific-New, which causes
+ confusion during user setup (e.g., see Debian bug 815200).
+ Use 'make BACKWARD="backward pacificnew"' to create the link
+ anyway, for now. Eventually we plan to remove the link entirely.
+
+ tzdata.zi now contains a version-number comment.
+ (Suggested by Tom Lane.)
+
+ The Makefile now quotes values like BACKWARD more carefully when
+ passing them to the shell. (Problem reported by Zefram.)
+
+ Builders no longer need to specify -DHAVE_SNPRINTF on platforms
+ that have snprintf and use pre-C99 compilers. (Problem reported
+ by Jon Skeet.)
+
+ Changes to code
+
+ zic has a new option -t FILE that specifies the location of the
+ file that determines local time when TZ is unset. The default for
+ this location can be configured via the new TZDEFAULT makefile
+ macro, which defaults to /etc/localtime.
+
+ Diagnostics and commentary now distinguish UT from UTC more
+ carefully; see theory.html for more information about UT vs UTC.
+
+ zic has been ported to GCC 8's -Wstringop-truncation option.
+ (Problem reported by Martin Sebor.)
+
+ Changes to documentation and commentary
+
+ The zic man page now documents the longstanding behavior that
+ times and years can be out of the usual range, with negative times
+ counting backwards from midnight and with year 0 preceding year 1.
+ (Problem reported by Michael Deckers.)
+
+ The theory.html file now mentions the POSIX limit of six chars
+ per abbreviation, and lists alphabetic abbreviations used.
+
+ The files tz-art.htm and tz-link.htm have been renamed to
+ tz-art.html and tz-link.html, respectively, for consistency with
+ other file names and to simplify web server configuration.
+
+
Release 2017c - 2017-10-20 14:49:34 -0700
Briefly:
@@ -895,8 +1037,8 @@ Release 2015f - 2015-08-10 18:06:56 -0700
(Thanks to Jon Skeet and Arthur David Olson.) Constraints on
simultaneity are now documented.
- The two characters '%z' in a zone format now stand for the UTC
- offset, e.g., '-07' for seven hours behind UTC and '+0530' for
+ The two characters '%z' in a zone format now stand for the UT
+ offset, e.g., '-07' for seven hours behind UT and '+0530' for
five hours and thirty minutes ahead. This better supports time
zone abbreviations conforming to POSIX.1-2001 and later.
@@ -1019,13 +1161,13 @@ Release 2015c - 2015-04-11 08:55:55 -0700
The spring 1988 transition was 1988-10-09, not 1988-10-02.
The fall 1990 transition was 1990-03-11, not 1990-03-18.
- Assume no UTC offset change for Pacific/Easter on 1890-01-01,
+ Assume no UT offset change for Pacific/Easter on 1890-01-01,
and omit all transitions on Pacific/Easter from 1942 through 1946
since we have no data suggesting that they existed.
One more zone has been turned into a link, as it differed
from an existing zone only for older time stamps. As usual,
- this change affects UTC offsets in pre-1970 time stamps only.
+ this change affects UT offsets in pre-1970 time stamps only.
The zone's old contents have been moved to the 'backzone' file.
The affected zone is America/Montreal.
@@ -1055,7 +1197,7 @@ Release 2015b - 2015-03-19 23:28:11 -0700
Some more zones have been turned into links, when they differed
from existing zones only for older time stamps. As usual,
- these changes affect UTC offsets in pre-1970 time stamps only.
+ these changes affect UT offsets in pre-1970 time stamps only.
Their old contents have been moved to the 'backzone' file.
The affected zones are: America/Antigua, America/Cayman,
Pacific/Midway, and Pacific/Saipan.
@@ -1107,7 +1249,7 @@ Release 2015a - 2015-01-29 22:35:20 -0800
Some more zones have been turned into links, when they differed
from existing zones only for older time stamps. As usual,
- these changes affect UTC offsets in pre-1970 time stamps only.
+ these changes affect UT offsets in pre-1970 time stamps only.
Their old contents have been moved to the 'backzone' file.
The affected zones are: Asia/Aden, Asia/Bahrain, Asia/Kuwait,
and Asia/Muscat.
@@ -1154,7 +1296,7 @@ Release 2014j - 2014-11-10 17:37:11 -0800
Some more zones have been turned into links, when they differed
from existing zones only for older time stamps. As usual,
- these changes affect UTC offsets in pre-1970 time stamps only.
+ these changes affect UT offsets in pre-1970 time stamps only.
Their old contents have been moved to the 'backzone' file.
The affected zones are: Africa/Addis_Ababa, Africa/Asmara,
Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Kampala,
@@ -1244,7 +1386,7 @@ Release 2014h - 2014-09-25 18:59:03 -0700
Some more zones have been turned into links, when they differed
from existing zones only for older timestamps. As usual,
- these changes affect UTC offsets in pre-1970 timestamps only.
+ these changes affect UT offsets in pre-1970 timestamps only.
Their old contents have been moved to the 'backzone' file.
The affected zones are: Africa/Blantyre, Africa/Bujumbura,
Africa/Gaborone, Africa/Harare, Africa/Kigali, Africa/Lubumbashi,
@@ -1329,7 +1471,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700
Some more zones have been turned into links, when they differed
from existing zones only for older timestamps. As usual,
- these changes affect UTC offsets in pre-1970 timestamps only.
+ these changes affect UT offsets in pre-1970 timestamps only.
Their old contents have been moved to the 'backzone' file.
The affected zones are: Africa/Bangui, Africa/Brazzaville,
Africa/Douala, Africa/Kinshasa, Africa/Libreville, Africa/Luanda,
@@ -1479,7 +1621,7 @@ Release 2014f - 2014-08-05 17:42:36 -0700
standard and daylight saving time the abbreviations are AEST and AEDT
instead of the former EST for both; similarly, ACST/ACDT, ACWST/ACWDT,
and AWST/AWDT are now used instead of the former CST, CWST, and WST.
- This change does not affect UTC offsets, only time zone abbreviations.
+ This change does not affect UT offsets, only time zone abbreviations.
(Thanks to Rich Tibbett and many others.)
Asia/Novokuznetsk shifts from NOVT to KRAT (remaining on UT +07)
@@ -1516,8 +1658,8 @@ Release 2014f - 2014-08-05 17:42:36 -0700
Treindl sent helpful translations of two papers by Guo Qingsheng.)
Some zones have been turned into links, when they differed from existing
- zones only for older UTC offsets where data entries were likely invented.
- These changes affect UTC offsets in pre-1970 timestamps only. This is
+ zones only for older UT offsets where data entries were likely invented.
+ These changes affect UT offsets in pre-1970 timestamps only. This is
similar to the change in release 2013e, except this time for western
Africa. The affected zones are: Africa/Bamako, Africa/Banjul,
Africa/Conakry, Africa/Dakar, Africa/Freetown, Africa/Lome,
diff --git a/lib/libc/time/README b/lib/libc/time/README
index 471fdf90eaad..ab8e47b63efb 100644
--- a/lib/libc/time/README
+++ b/lib/libc/time/README
@@ -11,14 +11,14 @@ changes made by political bodies to time zone boundaries, UTC offsets,
and daylight-saving rules.
See backzone
that is distributed along
+with the database proper, this file is less reliable and does not
+necessarily follow database guidelines.
@@ -240,7 +244,7 @@ to name time
zone rules. It is intended to be an exhaustive list of names for
geographic regions as described above; this is a subset of the names
in the data. Although a 'zone1970.tab
' location's longitude
-corresponds to its LMT offset with one hour for every 15 degrees east
+corresponds to its LMT offset with one hour for every 15° east
longitude, this relationship is not exact.
+
' or '-
'.
Previous editions of this database also used characters like
'
' and '?
', but these
@@ -297,7 +301,7 @@ in decreasing order of importance:
'+
' and '-
' are safe in all locales.
In other words, in the C locale the POSIX extended regular
- expression [-+[:alnum:]]{3,}
should match
+ expression [-+[:alnum:]]{3,6}
should match
the abbreviation.
This guarantees that all abbreviations could have been
specified by a POSIX TZ string.
@@ -308,12 +312,96 @@ in decreasing order of importance:
We assume that applications translate them to other languages
as part of the normal localization process; for example,
a French application might translate 'EST' to 'HNE'.
+
+These abbreviations (for standard/daylight/etc. time) are: +ACST/ACDT Australian Central, +AST/ADT/APT/AWT/ADDT Atlantic, +AEST/AEDT Australian Eastern, +AHST/AHDT Alaska-Hawaii, +AKST/AKDT Alaska, +AWST/AWDT Australian Western, +BST/BDT Bering, +CAT/CAST Central Africa, +CET/CEST/CEMT Central European, +ChST Chamorro, +CST/CDT/CWT/CPT/CDDT Central [North America], +CST/CDT China, +GMT/BST/IST/BDST Greenwich, +EAT East Africa, +EST/EDT/EWT/EPT/EDDT Eastern [North America], +EET/EEST Eastern European, +GST Guam, +HST/HDT Hawaii, +HKT/HKST Hong Kong, +IST India, +IST/GMT Irish, +IST/IDT/IDDT Israel, +JST/JDT Japan, +KST/KDT Korea, +MET/MEST Middle European (a backward-compatibility alias for Central European), +MSK/MSD Moscow, +MST/MDT/MWT/MPT/MDDT Mountain, +NST/NDT/NWT/NPT/NDDT Newfoundland, +NST/NDT/NWT/NPT Nome, +NZMT/NZST New Zealand through 1945, +NZST/NZDT New Zealand 1946–present, +PKT/PKST Pakistan, +PST/PDT/PWT/PPT/PDDT Pacific, +SAST South Africa, +SST Samoa, +WAT/WAST West Africa, +WET/WEST/WEMT Western European, +WIB Waktu Indonesia Barat, +WIT Waktu Indonesia Timur, +WITA Waktu Indonesia Tengah, +YST/YDT/YWT/YPT/YDDT Yukon.
-
004430' for MMT) would
+cause trouble here, as the numeric strings would exceed the POSIX length limit.
+
+These abbreviations are: +AMT Amsterdam, Asunción, Athens; +BMT Baghdad, Bangkok, Batavia, Bern, Bogotá, Bridgetown, Brussels, Bucharest; +CMT Calamarca, Caracas, Chisinau, Colón, Copenhagen, Córdoba; +DMT Dublin/Dunsink; +EMT Easter; +FFMT Fort-de-France; +FMT Funchal; +GMT Greenwich; +HMT Havana, Helsinki, Horta, Howrah; +IMT Irkutsk, Istanbul; +JMT Jerusalem; +KMT Kaunas, Kiev, Kingston; +LMT Lima, Lisbon, local, Luanda; +MMT Macassar, Madras, Malé, Managua, Minsk, Monrovia, Montevideo, Moratuwa, + Moscow; +PLMT Phù Liễn; +PMT Paramaribo, Paris, Perm, Pontianak, Prague; +PMMT Port Moresby; +QMT Quito; +RMT Rangoon, Riga, Rome; +SDMT Santo Domingo; +SJMT San José; +SMT Santiago, Simferopol, Singapore, Stanley; +TBMT Tbilisi; +TMT Tallinn, Tehran; +WMT Warsaw.
+ +A few abbreviations also follow the pattern that +GMT/BST established for time in the UK. They are: + +CMT/BST for Calamarca Mean Time and Bolivian Summer Time +1890–1932, DMT/IST for Dublin/Dunsink Mean Time and Irish Summer Time +1880–1916, MMT/MST/MDST for Moscow 1880–1919, and RMT/LST +for Riga Mean Time and Latvian Summer time 1880–1926. +An extra-special case is SET for Swedish Time (svensk +normaltid) 1879–1899, 3° west of the Stockholm +Observatory.
%z
.
- They are problematic as they mean tz data entries invent
- notation rather than record it. These guidelines are now
- deprecated and the plan is to gradually move to %z
for
- inhabited locations and to "-
00" for uninhabited locations.]
--
00') for
locations while uninhabited. The leading
@@ -376,10 +438,10 @@ in decreasing order of importance:
Application writers should note that these abbreviations are ambiguous
-in practice: e.g. 'CST' has a different meaning in China than
-it does in the United States. In new applications, it's often better
-to use numeric UT offsets like '-
0600' instead of time zone
-abbreviations like 'CST'; this avoids the ambiguity.
+in practice: e.g., 'CST' means one thing in China and something else
+in North America, and 'IST' can refer to time in India, Ireland or
+Israel. To avoid ambiguity, use numeric UT offsets like
+'-
0600' instead of time zone abbreviations like 'CST'.
The tz database is not authoritative, and it surely has errors.
-Corrections are welcome and encouraged; see the file CONTRIBUTING.
+Corrections are welcome and encouraged; see the file CONTRIBUTING
.
Users requiring authoritative data should consult national standards
bodies and the references cited in the database's comments.
<UTC+10>
'; this allows
+ in a quoted form like '<+09>
'; this allows
"+
" and "-
" in the names.
zic
features, so that users can run
older zic
versions to process newer data
-files. Sources for time zone and daylight
+files. Sources for time zone and daylight
saving time data describes how
releases are tagged and distributed.
@@ -1003,7 +1065,7 @@ Sources:
Michael Allison and Robert Schmunk,
"Technical
Notes on Mars Solar Time as Adopted by the Mars24 Sunclock"
-(2012-08-08).
+(2015-06-30).
This page uses the America/Chicago
and
Pacific/Honolulu
zones as examples of how to infer
-times of day from the tz database
+times of day from the tz database
source files. It might be helpful, but not absolutely necessary,
for the reader to have already downloaded the
latest release of the database and become familiar with the basic layout
diff --git a/lib/libc/time/tzselect.8 b/lib/libc/time/tzselect.8
index 274a01eb2463..c1020cad2e16 100644
--- a/lib/libc/time/tzselect.8
+++ b/lib/libc/time/tzselect.8
@@ -1,4 +1,4 @@
-.\" $NetBSD: tzselect.8,v 1.6 2014/08/15 11:04:07 christos Exp $
+.\" $NetBSD: tzselect.8,v 1.7 2018/01/25 22:48:42 christos Exp $
.\"
.TH TZSELECT 8
.SH NAME
@@ -90,7 +90,7 @@ program (default:
.TP
\f3TZDIR\fP
Name of the directory containing time zone data files (default:
-.BR /usr/local/etc/zoneinfo ).
+.BR /usr/share/zoneinfo ).
.SH FILES
.TP
\f2TZDIR\fP\f3/iso3166.tab\fP
diff --git a/lib/libc/time/tzselect.ksh b/lib/libc/time/tzselect.ksh
index d234a3c0f982..8ace3b8b65c4 100644
--- a/lib/libc/time/tzselect.ksh
+++ b/lib/libc/time/tzselect.ksh
@@ -1,6 +1,6 @@
#! /bin/bash
#
-# $NetBSD: tzselect.ksh,v 1.16 2017/10/24 17:38:17 christos Exp $
+# $NetBSD: tzselect.ksh,v 1.17 2018/01/25 22:48:42 christos Exp $
#
PKGVERSION='(tzcode) '
TZVERSION=see_Makefile
@@ -344,8 +344,10 @@ while
while
echo >&2 'Please enter the desired value' \
'of the TZ environment variable.'
- echo >&2 'For example, GST-10 is a zone named GST' \
- 'that is 10 hours ahead (east) of UTC.'
+ echo >&2 'For example, AEST-10 is a zone named AEST' \
+ 'that is 10 hours'
+ echo >&2 'ahead (east) of Greenwich,' \
+ 'with no daylight saving time.'
read TZ
$AWK -v TZ="$TZ" 'BEGIN {
tzname = "(<[[:alnum:]+-]{3,}>|[[:alpha:]]{3,})"
diff --git a/lib/libc/time/tzset.3 b/lib/libc/time/tzset.3
index 999dfdaec648..aa6a45e85485 100644
--- a/lib/libc/time/tzset.3
+++ b/lib/libc/time/tzset.3
@@ -1,5 +1,5 @@
-.\" $NetBSD: tzset.3,v 1.36 2017/07/03 21:32:50 wiz Exp $
-.Dd October 6, 2016
+.\" $NetBSD: tzset.3,v 1.37 2018/01/25 22:48:42 christos Exp $
+.Dd January 25, 2018
.Dt TZSET 3
.Os
.Sh NAME
@@ -116,7 +116,7 @@ If the implied call to
.Fn tzalloc
fails,
.Fn tzset
-falls back on UTC.
+falls back on Universal Time (UT).
If
.Ev TZ
is
@@ -131,7 +131,7 @@ is used by
If
.Ev TZ
appears in the environment but its value is the empty string,
-Universal Time (UT) is used, with the abbreviation
+UT is used, with the abbreviation
.Dq UTC
and without leap second correction; please see
.Xr ctime 3 .
@@ -335,19 +335,19 @@ extensions to POSIX.
.Bl -tag
.It EST5
stands for US Eastern Standard
-Time (EST), 5 hours behind UTC, without daylight saving.
+Time (EST), 5 hours behind UT, without daylight saving.
.It FJT\-12FJST,M11.1.0,M1.3.4/75
stands for Fiji Time (FJT) and Fiji Summer Time (FJST), 12 hours ahead
-of UTC, springing forward on November's first Sunday at 02:00, and
+of UT, springing forward on November's first Sunday at 02:00, and
falling back on January's third Thursday at 75:00 (i.e., 03:00 on the
first Sunday on or after January 18).
.It IST\-2IDT,M3.4.4/26,M10.5.0
stands for Israel Standard Time (IST) and Israel Daylight Time (IDT),
-2 hours ahead of UTC, springing forward on March's fourth
+2 hours ahead of UT, springing forward on March's fourth
Thursday at 26:00 (i.e., 02:00 on the first Friday on or after March
23), and falling back on October's last Sunday at 02:00.
.It WART4WARST,J1/0,J365/25
-stands for Western Argentina Summer Time (WARST), 3 hours behind UTC.
+stands for Western Argentina Summer Time (WARST), 3 hours behind UT.
There is a dummy fall-back transition on December 31 at 25:00 daylight
saving time (i.e., 24:00 standard time, equivalent to January 1 at
00:00 standard time), and a simultaneous spring-forward transition on
@@ -357,9 +357,9 @@ all year and the initial
is a placeholder.
.It WGT3WGST,M3.5.0/\-2,M10.5.0/\-1
stands for Western Greenland Time (WGT) and Western Greenland Summer
-Time (WGST), 3 hours behind UTC, where clocks follow the EU rules of
-springing forward on March's last Sunday at 01:00 UTC (\-02:00 local
-time) and falling back on October's last Sunday at 01:00 UTC
+Time (WGST), 3 hours behind UT, where clocks follow the EU rules of
+springing forward on March's last Sunday at 01:00 UT (\-02:00 local
+time) and falling back on October's last Sunday at 01:00 UT
(\-01:00 local time).
.El
.Pp
@@ -373,7 +373,7 @@ format file
.Pa posixrules
in
.Pa /usr/share/zoneinfo
-are used, with the standard and summer time offsets from UTC replaced
+are used, with the standard and summer time offsets from UT replaced
by those specified by the
.Cm offset
values in
@@ -389,6 +389,8 @@ from the rest of the specification.
local time zone file
.It Pa /usr/share/zoneinfo
time zone information directory
+\" .It Pa /usr/share/zoneinfo/localtime
+\" local time zone file
.It Pa /usr/share/zoneinfo/posixrules
used with POSIX-style TZ's
.It Pa /usr/share/zoneinfo/GMT
diff --git a/lib/libc/time/version b/lib/libc/time/version
index 198e36de73e0..f6a71fe2f67f 100644
--- a/lib/libc/time/version
+++ b/lib/libc/time/version
@@ -1 +1 @@
-2017c
+2018c
diff --git a/lib/libc/time/zdump.c b/lib/libc/time/zdump.c
index 9a875242ec24..20a1216ddf1b 100644
--- a/lib/libc/time/zdump.c
+++ b/lib/libc/time/zdump.c
@@ -1,4 +1,4 @@
-/* $NetBSD: zdump.c,v 1.47 2017/10/24 17:38:17 christos Exp $ */
+/* $NetBSD: zdump.c,v 1.48 2018/01/25 22:48:42 christos Exp $ */
/*
** This file is in the public domain, so clarified as of
** 2009-05-17 by Arthur David Olson.
@@ -6,7 +6,7 @@
#include