Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Nov 2017 15:56:08 +0000 (UTC)
From:      Gordon Tetlow <gordon@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r51167 - in head/share: security/advisories security/patches/EN-17:09 xml
Message-ID:  <201711021556.vA2Fu8e7016852@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gordon (src,ports committer)
Date: Thu Nov  2 15:56:08 2017
New Revision: 51167
URL: https://svnweb.freebsd.org/changeset/doc/51167

Log:
  Add EN-17:09.

Added:
  head/share/security/advisories/FreeBSD-EN-17:09.tzdata.asc   (contents, props changed)
  head/share/security/patches/EN-17:09/
  head/share/security/patches/EN-17:09/tzdata-10.3.patch   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-10.3.patch.asc   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-10.4.patch   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-10.4.patch.asc   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-11.0.patch   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-11.0.patch.asc   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-11.1.patch   (contents, props changed)
  head/share/security/patches/EN-17:09/tzdata-11.1.patch.asc   (contents, props changed)
Modified:
  head/share/xml/notices.xml

Added: head/share/security/advisories/FreeBSD-EN-17:09.tzdata.asc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/advisories/FreeBSD-EN-17:09.tzdata.asc	Thu Nov  2 15:56:08 2017	(r51167)
@@ -0,0 +1,175 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-17:09.tzdata                                         Errata Notice
+                                                          The FreeBSD Project
+
+Topic:          Timezone database information update
+
+Category:       contrib
+Module:         zoneinfo
+Announced:      2017-11-02
+Credits:        Philip Paeps
+Affects:        All supported versions of FreeBSD
+Corrected:      2017-10-30 15:56:17 UTC (stable/11, 11.1-STABLE)
+                2017-11-02 15:40:19 UTC (releng/11.1, 11.1-RELEASE-p3)
+                2017-11-02 15:39:49 UTC (releng/11.0, 11.0-RELEASE-p14)
+                2017-10-30 15:57:48 UTC (stable/10, 10.4-STABLE)
+                2017-11-02 15:38:54 UTC (releng/10.4, 10.4-RELEASE-p2)
+                2017-11-02 15:38:24 UTC (releng/10.3, 10.3-RELEASE-p23)
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+<URL:https://security.FreeBSD.org/>.
+
+I.   Background
+
+The tzsetup(8) program allows the user to specify the default local
+timezone.  Based on the selected timezone, tzsetup(8) copies one of the
+files from /usr/share/zoneinfo to /etc/localtime.  This file actually
+controls the conversion.
+
+II.  Problem Description
+
+Several changes in Daylight Savings Time happened after previous
+FreeBSD releases were released that would affect many people who
+live in different countries.  Because of these changes, the data in
+the zoneinfo files need to be updated, and if the local timezone on
+the running system is affected, tzsetup(8) needs to be run so the
+/etc/localtime is updated.
+
+III. Impact
+
+An incorrect time will be displayed on a system configured to use one
+of the affected timezones if the /usr/share/zoneinfo and /etc/localtime
+files are not updated, and all applications on the system that rely on
+the system time, such as cron(8) and syslog(8), will be affected.
+
+IV.  Workaround
+
+The system administrator can install an updated timezone database from
+the misc/zoneinfo port and run tzsetup(8) to get the timezone database
+corrected.
+
+Applications that store and display times in Coordinated Universal Time
+(UTC) are not affected.
+
+V.   Solution
+
+Please note that some third party software, for instance PHP, Ruby,
+Java and Perl, may be using different zoneinfo data source, in such
+cases these software has to be updated separately.  For software
+packages that is installed via package collection, they can be
+upgraded by doing a `pkg upgrade'.
+
+Following the instructions in this Errata Notice will update all of
+the zoneinfo files to be the same as what was released with FreeBSD
+release.
+
+Perform one of the following:
+
+1) Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date. Restart all the affected
+applications and daemons, or reboot the system.
+
+2) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+Restart all the affected applications and daemons, or reboot the system.
+
+3) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 11.1]
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-11.1.patch
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-11.1.patch.asc
+# gpg --verify tzdata-11.1.patch.asc
+
+[FreeBSD 11.0]
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-11.0.patch
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-11.0.patch.asc
+# gpg --verify tzdata-11.0.patch.asc
+
+[FreeBSD 10.4]
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-10.4.patch
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-10.4.patch.asc
+# gpg --verify tzdata-10.4.patch.asc
+
+[FreeBSD 10.3]
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-10.3.patch
+# fetch https://security.FreeBSD.org/patches/EN-17:09/tzdata-10.3.patch.asc
+# gpg --verify tzdata-10.3.patch.asc
+
+b) Apply the patch.  Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile the operating system using buildworld and installworld as
+described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>.
+
+Restart all the affected applications and daemons, or reboot the system.
+
+VI.  Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path                                                      Revision
+- -------------------------------------------------------------------------
+stable/10/                                                        r325160
+releng/10.3/                                                      r325322
+releng/10.4/                                                      r325323
+stable/11/                                                        r325159
+releng/11.0/                                                      r325324
+releng/11.1/                                                      r325325
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>;
+
+VII. References
+
+<other info on the problem>
+
+<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=XXXXXX>;
+
+The latest revision of this advisory is available at
+<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-17:09.tzdata.asc>;
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEEHPf/b631yp++G4yy7Wfs1l3PaucFAln7PU1fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDFD
+RjdGRjZGQURGNUNBOUZCRTFCOENCMkVENjdFQ0Q2NURDRjZBRTcACgkQ7Wfs1l3P
+aueuIBAA3RuatfFdMtCSZNQ4Dnzis2V7fNQxXDtBz6yKs71TBuNBTlN7I2HjhwSz
+/Xi81FZib24J9u95/dk3u5GsMy1YlMh7AX3ktwVkwU1PdbjkCsCSKyIg5VPmvKkP
+BS73ksLc82CoEMH74EUoSd0Bp8HRhzXugoO1K8cgtcuXiuOiEfAhrQ6/V8LHwxaX
+ISoQfZ2e7Nni0NmevF/18ftQm9xa8dW0957UGBd+W+mg3xsNWlpQa04pSBxoms5N
+OVuW5iii7bbtD8rH3jcsqYyeXWyJhd04WoW921EcSspel9tbXByZDqzepkz09skO
+xfCKoE7CoJY7DhJcvPjNnu8rTODofXZ8ac3mf60rgkMOwnupo/uR5JrXAry6PZHI
+VEv8SyJ2j/hAJ7A1L3Rgd6A9GJ2zbXBRKvDmcz8aodmQBZ34dxwqGpAEudMDX8tK
+rbTachnq5WNXKypm3XYql4wNbBvO0f5ooV962HKwflCFG/v5Lm3Zqx+FbpvIoSBq
+AwoEvssX4krcBF0buNd3TjKVKJ+6O3G4SKjWlrgGMqUEKFWDbuC41z7N5Cse6dWs
+3JVnPsP0EfucAPybiFOrSmJ29mfR9rtQjJeTm498Z3VeQ67pQt+VztKCIA1FU/NO
+8elPk05f+cbjRhQgSiFTPuE0M2/0qE9Bj70x2kN7wDOCynEnIek=
+=Ri9G
+-----END PGP SIGNATURE-----

Added: head/share/security/patches/EN-17:09/tzdata-10.3.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/patches/EN-17:09/tzdata-10.3.patch	Thu Nov  2 15:56:08 2017	(r51167)
@@ -0,0 +1,8914 @@
+--- contrib/tzdata/CONTRIBUTING.orig
++++ contrib/tzdata/CONTRIBUTING
+@@ -5,23 +5,29 @@
+ 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 for use in the future.
++to tz@iana.org for use in the future.  In your email, please give
++reliable sources that reviewers can check.
+ 
++-----
++
++Developers can contribute technical changes to the source code and
++data as follows.
++
+ 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
++For more-elaborate changes, please read the theory.html file and browse
++the mailing list archives <https://mm.icann.org/pipermail/tz/>; for
++examples of patches that tend to work well.  Additions to
+ data should contain commentary citing reliable sources as
+-justification.
++justification.  Citations should use https: URLs if available.
+ 
+ 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:
++<https://www.iana.org/time-zones>; or the master branch of the development
++repository.  If you use Git the following workflow may be helpful:
+ 
+-  * Copy the experimental repository.
++  * Copy the development repository.
+ 
+       git clone https://github.com/eggert/tz.git
+       cd tz
+--- contrib/tzdata/LICENSE.orig
++++ contrib/tzdata/LICENSE
+@@ -1,4 +1,5 @@
+-With a few exceptions, all files in the tz code and data (including
+-this one) are in the public domain.  The exceptions are date.c,
+-newstrftime.3, and strftime.c, which contain material derived from BSD
+-and which use the BSD 3-clause license.
++Unless specified below, all files in the tz code and data (including
++this LICENSE file) are in the public domain.
++
++If the files date.c, newstrftime.3, and strftime.c are present, they
++contain material derived from BSD and use the BSD 3-clause license.
+--- contrib/tzdata/Makefile.orig
++++ contrib/tzdata/Makefile
+@@ -49,6 +49,7 @@
+ # "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)
+@@ -72,11 +73,11 @@
+ 
+ LIBDIR=		$(TOPDIR)/lib
+ 
+-# If you always want time values interpreted as "seconds since the epoch
+-# (not counting leap seconds)", use
++# If you want only POSIX time, with time values interpreted as
++# seconds since the epoch (not counting leap seconds), use
+ #	REDO=		posix_only
+-# below.  If you always want right time values interpreted as "seconds since
+-# the epoch" (counting leap seconds)", use
++# below.  If you want only "right" time, with values interpreted
++# as seconds since the epoch (counting leap seconds), use
+ #	REDO=		right_only
+ # below.  If you want both sets of data available, with leap seconds not
+ # counted normally, use
+@@ -85,10 +86,31 @@
+ # normally, use
+ #	REDO=		right_posix
+ # below.  POSIX mandates that leap seconds not be counted; for compatibility
+-# with it, use "posix_only" or "posix_right".
++# with it, use "posix_only" or "posix_right".  Use POSIX time on systems with
++# leap smearing; this can work better than unsmeared "right" time with
++# applications that are not leap second aware, and is closer to unsmeared
++# "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error).
+ 
+ REDO=		posix_right
+ 
++# To install data in text form that has all the information of the binary data,
++# (optionally incorporating leap second information), use
++#	TZDATA_TEXT=	tzdata.zi leapseconds
++# To install text data without leap second information (e.g., because
++# REDO='posix_only'), use
++#	TZDATA_TEXT=	tzdata.zi
++# To avoid installing text data, use
++#	TZDATA_TEXT=
++
++TZDATA_TEXT=	leapseconds tzdata.zi
++
++# For backward-compatibility links for old zone names, use
++#	BACKWARD=	backward pacificnew
++# To omit these links, use
++#	BACKWARD=
++
++BACKWARD=	backward pacificnew
++
+ # If you want out-of-scope and often-wrong data from the file 'backzone', use
+ #	PACKRATDATA=	backzone
+ # To omit this data, use
+@@ -96,6 +118,11 @@
+ 
+ PACKRATDATA=
+ 
++# The name of a locale using the UTF-8 encoding, used during self-tests.
++# The tests are skipped if the name does not appear to work on this system.
++
++UTF8_LOCALE=	en_US.utf8
++
+ # Since "." may not be in PATH...
+ 
+ YEARISTYPE=	./yearistype
+@@ -103,50 +130,53 @@
+ # Non-default libraries needed to link.
+ LDLIBS=
+ 
+-# Add the following to the end of the "CFLAGS=" line as needed.
++# Add the following to the end of the "CFLAGS=" line as needed to override
++# defaults specified in the source code.  "-DFOO" is equivalent to "-DFOO=1".
+ #  -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c)
++#  -DDEPRECATE_TWO_DIGIT_YEARS for optional runtime warnings about strftime
++#	formats that generate only the last two digits of year numbers
++#  -DEPOCH_LOCAL if the 'time' function returns local time not UT
++#  -DEPOCH_OFFSET=N if the 'time' function returns a value N greater
++#	than what POSIX specifies, assuming local time is UT.
++#	For example, N is 252460800 on AmigaOS.
+ #  -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
++#  -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ'
+ #  -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 (e.g., GNU/Linux, FreeBSD, Solaris)
+-#  -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares
++#  -DHAVE_GENERIC=0 if _Generic does not work
++#  -DHAVE_GETTEXT if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris)
++#  -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
+ #	ctime_r and asctime_r incompatibly with the POSIX standard
+ #	(Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
+-#  -DHAVE_INTTYPES_H=1 if you have a pre-C99 compiler with "inttypes.h"
++#  -DHAVE_INTTYPES_H if you have a non-C99 compiler with <inttypes.h>
+ #  -DHAVE_LINK=0 if your system lacks a link function
+ #  -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
+ #  -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.
++#  -DHAVE_SNPRINTF=0 if your system lacks the snprintf function
++#  -DHAVE_STDBOOL_H if you have a non-C99 compiler with <stdbool.h>
++#  -DHAVE_STDINT_H if you have a non-C99 compiler with <stdint.h>
++#  -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
+ #  -DHAVE_STRDUP=0 if your system lacks the strdup function
+ #  -DHAVE_SYMLINK=0 if your system lacks the symlink function
+-#  -DHAVE_SYS_STAT_H=0 if your compiler lacks a "sys/stat.h"
+-#  -DHAVE_SYS_WAIT_H=0 if your compiler lacks a "sys/wait.h"
++#  -DHAVE_SYS_STAT_H=0 if your compiler lacks a <sys/stat.h>
++#  -DHAVE_SYS_WAIT_H=0 if your compiler lacks a <sys/wait.h>
+ #  -DHAVE_TZSET=0 if your system lacks a tzset function
+-#  -DHAVE_UNISTD_H=0 if your compiler lacks a "unistd.h" (Microsoft C++ 7?)
+-#  -DEPOCH_LOCAL=1 if the 'time' function returns local time not UT
+-#  -DEPOCH_OFFSET=N if the 'time' function returns a value N greater
+-#	than what POSIX specifies, assuming local time is UT.
+-#	For example, N is 252460800 on AmigaOS.
+-#  -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU=1
+-#	if you do not want run time warnings about formats that may cause
+-#	year 2000 grief
+-#  -Dssize_t=long on ancient hosts that lack ssize_t
+-#  -DTHREAD_SAFE=1 to make localtime.c thread-safe, as POSIX requires;
++#  -DHAVE_UNISTD_H=0 if your compiler lacks a <unistd.h>
++#  -Dlocale_t=XXX if your system uses XXX instead of locale_t
++#  -Dssize_t=long on hosts like MS-Windows that lack ssize_t
++#  -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
+ #	not needed by the main-program tz code, which is single-threaded.
+ #	Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
+ #  -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t
++#	This is intended for internal use only; it mangles external names.
+ #  -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz"
+ #  -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
+ #	the default is system-supplied, typically "/usr/lib/locale"
+ #  -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
+ #	DST transitions if the time zone files cannot be accessed
+-#  -DUNINIT_TRAP=1 if reading uninitialized storage can cause problems
++#  -DUNINIT_TRAP if reading uninitialized storage can cause problems
+ #	other than simply getting garbage data
+ #  -DUSE_LTZ=0 to build zdump with the system time zone library
+ #	Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below.
+@@ -154,27 +184,28 @@
+ #	(or some other number) to set the maximum time zone abbreviation length
+ #	that zic will accept without a warning (the default is 6)
+ #  $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking
+-GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \
+-	-Wall -Wextra \
+-	-Wbad-function-cast -Wcast-align -Wdate-time \
+-	-Wdeclaration-after-statement \
+-	-Wdouble-promotion \
+-	-Wformat=2 -Winit-self -Wjump-misses-init \
+-	-Wlogical-op -Wmissing-prototypes -Wnested-externs \
+-	-Wold-style-definition -Woverlength-strings -Wpointer-arith \
+-	-Wshadow -Wstrict-prototypes -Wsuggest-attribute=const \
+-	-Wsuggest-attribute=format -Wsuggest-attribute=noreturn \
+-	-Wsuggest-attribute=pure -Wtrampolines \
+-	-Wunused -Wwrite-strings \
+-	-Wno-address -Wno-format-nonliteral -Wno-sign-compare \
+-	-Wno-type-limits -Wno-unused-parameter
++# Select instrumentation via "make GCC_INSTRUMENT='whatever'".
++GCC_INSTRUMENT = \
++  -fsanitize=undefined -fsanitize-address-use-after-scope \
++  -fsanitize-undefined-trap-on-error -fstack-protector
++GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
++  $(GCC_INSTRUMENT) \
++  -Wall -Wextra \
++  -Walloc-size-larger-than=100000 -Warray-bounds=2 \
++  -Wbad-function-cast -Wcast-align -Wdate-time \
++  -Wdeclaration-after-statement -Wdouble-promotion \
++  -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
++  -Winit-self -Wjump-misses-init -Wlogical-op \
++  -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
++  -Wold-style-definition -Woverlength-strings -Wpointer-arith \
++  -Wshadow -Wshift-overflow=2 -Wstrict-prototypes -Wstringop-overflow=5 \
++  -Wsuggest-attribute=const -Wsuggest-attribute=format \
++  -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
++  -Wtrampolines -Wundef -Wuninitialized -Wunused \
++  -Wvariadic-macros -Wvla -Wwrite-strings \
++  -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
++  -Wno-type-limits -Wno-unused-parameter
+ #
+-# If you want to use System V compatibility code, add
+-#	-DUSG_COMPAT
+-# to the end of the "CFLAGS=" line.  This arrange for "timezone" and "daylight"
+-# variables to be kept up-to-date by the time conversion functions.  Neither
+-# "timezone" nor "daylight" is described in X3J11's work.
+-#
+ # If your system has a "GMT offset" field in its "struct tm"s
+ # (or if you decide to add such a field in your system's "time.h" file),
+ # add the name to a define such as
+@@ -186,6 +217,31 @@
+ # and define NO_TM_ZONE to suppress any guessing.  These two fields are not
+ # required by POSIX, but are widely available on GNU/Linux and BSD systems.
+ #
++# The next batch of options control support for external variables
++# exported by tzcode.  In practice these variables are less useful
++# than TM_GMTOFF and TM_ZONE.  However, most of them are standardized.
++# #
++# # To omit or support the external variable "tzname", add one of:
++# #	-DHAVE_TZNAME=0
++# #	-DHAVE_TZNAME=1
++# # to the "CFLAGS=" line.  "tzname" is required by POSIX 1988 and later.
++# # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
++# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
++# # crashes when combined with some platforms' standard libraries,
++# # presumably due to memory allocation issues.
++# #
++# # To omit or support the external variables "timezone" and "daylight", add
++# #	-DUSG_COMPAT=0
++# #	-DUSG_COMPAT=1
++# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by
++# # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later.
++# # If not defined, the code attempts to guess USG_COMPAT from other macros.
++# #
++# # To support the external variable "altzone", add
++# #	-DALTZONE
++# # to the end of the "CFLAGS=" line; although "altzone" appeared in
++# # System V Release 3.1 it has not been standardized.
++#
+ # If you want functions that were inspired by early versions of X3J11's work,
+ # add
+ #	-DSTD_INSPIRED
+@@ -223,11 +279,6 @@
+ #	-DALL_STATE
+ # to the end of the "CFLAGS=" line.  Storage is obtained by calling malloc.
+ #
+-# If you want an "altzone" variable (a la System V Release 3.1), add
+-#	-DALTZONE
+-# to the end of the "CFLAGS=" line.
+-# This variable is not described in X3J11's work.
+-#
+ # NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put
+ # out by the National Institute of Standards and Technology
+ # which claims to test C and Posix conformance.  If you want to pass PCTS, add
+@@ -237,8 +288,8 @@
+ # If you want strict compliance with XPG4 as of 1994-04-09, add
+ #	-DXPG4_1994_04_09
+ # to the end of the "CFLAGS=" line.  This causes "strftime" to always return
+-# 53 as a week number (rather than 52 or 53) for those days in January that
+-# before the first Monday in January when a "%V" format is used and January 1
++# 53 as a week number (rather than 52 or 53) for January days before
++# January's first Monday when a "%V" format is used and January 1
+ # falls on a Friday, Saturday, or Sunday.
+ 
+ CFLAGS=
+@@ -262,7 +313,7 @@
+ 
+ # How to use zic to install tz binary files.
+ 
+-ZIC_INSTALL=	$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS)
++ZIC_INSTALL=	$(ZIC) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS)
+ 
+ # The name of a Posix-compliant 'awk' on your system.
+ AWK=		awk
+@@ -286,6 +337,7 @@
+ # The name, arguments and environment of a program to validate your web pages.
+ # See <http://openjade.sourceforge.net/doc/>; for a validator, and
+ # <https://validator.w3.org/source/>; for a validation library.
++# Set VALIDATE=':' if you do not have such a program.
+ VALIDATE = nsgmls
+ VALIDATE_FLAGS = -s -B -wall -wno-unused-param
+ VALIDATE_ENV = \
+@@ -352,7 +404,7 @@
+ RANLIB=		:
+ 
+ TZCOBJS=	zic.o
+-TZDOBJS=	zdump.o localtime.o asctime.o
++TZDOBJS=	zdump.o localtime.o asctime.o strftime.o
+ DATEOBJS=	date.o localtime.o strftime.o asctime.o
+ LIBSRCS=	localtime.c asctime.c difftime.c
+ LIBOBJS=	localtime.o asctime.o difftime.o
+@@ -367,20 +419,22 @@
+ 			time2posix.3.txt \
+ 			tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
+ 			date.1.txt
+-COMMON=		CONTRIBUTING LICENSE Makefile NEWS README Theory version
++COMMON=		calendars CONTRIBUTING LICENSE Makefile \
++			NEWS README theory.html version
+ 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
+-YDATA=		$(PRIMARY_YDATA) pacificnew etcetera backward
++YDATA=		$(PRIMARY_YDATA) etcetera $(BACKWARD)
+ NDATA=		systemv factory
+ TDATA=		$(YDATA) $(NDATA)
+ ZONETABLES=	zone1970.tab zone.tab
+-TABDATA=	iso3166.tab leapseconds $(ZONETABLES)
++TABDATA=	iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
+ LEAP_DEPS=	leapseconds.awk leap-seconds.list
+-DATA=		$(YDATA) $(NDATA) backzone $(TABDATA) \
+-			leap-seconds.list yearistype.sh
+-AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk
++TZDATA_ZI_DEPS=	zishrink.awk $(TDATA) $(PACKRATDATA)
++DATA=		$(YDATA) $(NDATA) 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
+ TZS_YEAR=	2050
+ TZS=		to$(TZS_YEAR).tzs
+@@ -387,13 +441,13 @@
+ TZS_NEW=	to$(TZS_YEAR)new.tzs
+ TZS_DEPS=	$(PRIMARY_YDATA) asctime.c localtime.c \
+ 			private.h tzfile.h zdump.c zic.c
+-ENCHILADA=	$(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) $(TZS)
++ENCHILADA=	$(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) $(TZS) tzdata.zi
+ 
+ # Consult these files when deciding whether to rebuild the 'version' file.
+ # This list is not the same as the output of 'git ls-files', since
+ # .gitignore is not distributed.
+ VERSION_DEPS= \
+-		CONTRIBUTING LICENSE Makefile NEWS README Theory \
++		calendars CONTRIBUTING LICENSE Makefile NEWS README \
+ 		africa antarctica asctime.c asia australasia \
+ 		backward backzone \
+ 		checklinks.awk checktab.awk \
+@@ -402,7 +456,7 @@
+ 		leap-seconds.list leapseconds.awk localtime.c \
+ 		newctime.3 newstrftime.3 newtzset.3 northamerica \
+ 		pacificnew private.h \
+-		southamerica strftime.c systemv \
++		southamerica strftime.c systemv theory.html \
+ 		time2posix.3 tz-art.htm tz-how-to.html tz-link.htm \
+ 		tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
+ 		workman.sh yearistype.sh \
+@@ -424,7 +478,7 @@
+ 			$(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \
+ 			$(DESTDIR)$(MANDIR)/man8
+ 		$(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES)
+-		cp -f iso3166.tab $(ZONETABLES) $(DESTDIR)$(TZDIR)/.
++		cp -f $(TABDATA) $(DESTDIR)$(TZDIR)/.
+ 		cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/.
+ 		cp libtz.a $(DESTDIR)$(LIBDIR)/.
+ 		$(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a
+@@ -445,6 +499,11 @@
+ 		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
++		mv $@.out $@
++
+ version.h:	version
+ 		VERSION=`cat version` && printf '%s\n' \
+ 		  'static char const PKGVERSION[]="($(PACKAGE)) ";' \
+@@ -470,6 +529,7 @@
+ # Arguments to pass to submakes of install_data.
+ # They can be overridden by later submake arguments.
+ INSTALLARGS = \
++ BACKWARD=$(BACKWARD) \
+  DESTDIR=$(DESTDIR) \
+  LEAPSECONDS='$(LEAPSECONDS)' \
+  PACKRATDATA='$(PACKRATDATA)' \
+@@ -478,10 +538,8 @@
+  ZIC='$(ZIC)'
+ 
+ # '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)
++install_data:	zic leapseconds yearistype tzdata.zi
++		$(ZIC_INSTALL) tzdata.zi
+ 
+ posix_only:
+ 		$(MAKE) $(INSTALLARGS) LEAPSECONDS= install_data
+@@ -518,14 +576,14 @@
+ 
+ zones:		$(REDO)
+ 
+-$(TZS_NEW):	$(TDATA) zdump zic
++$(TZS_NEW):	tzdata.zi zdump zic
+ 		mkdir -p tzs.dir
+-		$(zic) -d tzs.dir $(TDATA)
+-		$(AWK) '/^Link/{print $$1 "\t" $$2 "\t" $$3}' \
+-		   $(TDATA) | LC_ALL=C sort >$@.out
++		$(zic) -d tzs.dir tzdata.zi
++		$(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
++		   tzdata.zi | LC_ALL=C sort >$@.out
+ 		wd=`pwd` && \
+ 		zones=`$(AWK) -v wd="$$wd" \
+-				'/^Zone/{print wd "/tzs.dir/" $$2}' $(TDATA) \
++				'/^Z/{print wd "/tzs.dir/" $$2}' tzdata.zi \
+ 			 | LC_ALL=C sort` && \
+ 		./zdump -i -c $(TZS_YEAR) $$zones >>$@.out
+ 		sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out
+@@ -542,7 +600,8 @@
+ 		cp $(TZS_NEW) $(TZS)
+ 
+ libtz.a:	$(LIBOBJS)
+-		$(AR) ru $@ $(LIBOBJS)
++		rm -f $@
++		$(AR) -rc $@ $(LIBOBJS)
+ 		$(RANLIB) $@
+ 
+ date:		$(DATEOBJS)
+@@ -560,18 +619,24 @@
+ 		chmod +x $@.out
+ 		mv $@.out $@
+ 
+-check:		check_character_set check_white_space check_links check_sorted \
+-		  check_tables check_tzs check_web
++check:		check_character_set check_white_space check_links \
++		  check_name_lengths check_sorted \
++		  check_tables check_web check_zishrink check_tzs
+ 
+ check_character_set: $(ENCHILADA)
+-		LC_ALL=en_US.utf8 && export LC_ALL && \
++	test ! '$(UTF8_LOCALE)' || \
++	! printf 'A\304\200B\n' | \
++	  LC_ALL='$(UTF8_LOCALE)' grep -q '^A.B$$' >/dev/null 2>&1 || { \
++		LC_ALL='$(UTF8_LOCALE)' && export LC_ALL && \
+ 		sharp='#' && \
+ 		! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+ 			$(MISC) $(SOURCES) $(WEB_PAGES) \
+-			CONTRIBUTING LICENSE Makefile README version && \
++			CONTRIBUTING LICENSE Makefile README \
++			version tzdata.zi && \
+ 		! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
+ 			leapseconds yearistype.sh zone.tab && \
+-		! grep -Env $(OK_LINE) $(ENCHILADA)
++		! grep -Env $(OK_LINE) $(ENCHILADA); \
++	}
+ 
+ check_white_space: $(ENCHILADA)
+ 		patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \
+@@ -578,6 +643,13 @@
+ 		! grep -En "$$pat" $(ENCHILADA)
+ 		! grep -n '[[:space:]]$$' $(ENCHILADA)
+ 
++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_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
+ 
+ check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
+@@ -592,6 +664,7 @@
+ 
+ check_links:	checklinks.awk $(TDATA)
+ 		$(AWK) -f checklinks.awk $(TDATA)
++		$(AWK) -f checklinks.awk tzdata.zi
+ 
+ check_tables:	checktab.awk $(PRIMARY_YDATA) $(ZONETABLES)
+ 		for tab in $(ZONETABLES); do \
+@@ -602,14 +675,32 @@
+ check_tzs:	$(TZS) $(TZS_NEW)
+ 		diff -u $(TZS) $(TZS_NEW)
+ 
+-check_web:	$(WEB_PAGES)
+-		$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) $(WEB_PAGES)
++# This checks only the HTML 4.01 strict page.
++# To check the the other pages, use <https://validator.w3.org/>.
++check_web:	tz-how-to.html
++		$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html
+ 
++# Check that tzdata.zi generates the same binary data that its sources do.
++check_zishrink: tzdata.zi zic leapseconds $(PACKRATDATA) $(TDATA)
++		for type in posix right; do \
++		  mkdir -p time_t.dir/$$type time_t.dir/$$type-shrunk && \
++		  case $$type in \
++		    right) leap='-L leapseconds';; \
++	            *) leap=;; \
++		  esac && \
++		  $(ZIC) $$leap -d time_t.dir/$$type $(TDATA) && \
++		  $(AWK) '/^Rule/' $(TDATA) | \
++		    $(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \
++		  $(ZIC) $$leap -d time_t.dir/$$type-shrunk tzdata.zi && \
++		  diff -r time_t.dir/$$type time_t.dir/$$type-shrunk || exit; \
++		done
++		rm -fr time_t.dir
++
+ clean_misc:
+ 		rm -f core *.o *.out \
+ 		  date tzselect version.h zdump zic yearistype libtz.a
+ clean:		clean_misc
+-		rm -fr *.dir tzdb-*/ $(TZS_NEW)
++		rm -fr *.dir tzdata.zi tzdb-*/ $(TZS_NEW)
+ 
+ maintainer-clean: clean
+ 		@echo 'This command is intended for maintainers to use; it'
+@@ -663,6 +754,7 @@
+ 		  touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \
+ 		    exit; \
+ 		done
++		touch -cmr `ls -t $(TZDATA_ZI_DEPS) | sed 1q` tzdata.zi
+ 		touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS)
+ 		touch -cmr `ls -t $(VERSION_DEPS) | sed 1q` version
+ 		touch $@
+@@ -674,7 +766,7 @@
+ 		$(MAKE) maintainer-clean
+ 		$(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
+ 		mkdir -p public.dir
+-		for i in $(TDATA) ; do \
++		for i in $(TDATA) tzdata.zi; do \
+ 		  $(zic) -v -d public.dir $$i 2>&1 || exit; \
+ 		done
+ 		$(zic) -v -d public.dir $(TDATA)
+@@ -768,8 +860,8 @@
+ 			$(MAKE) clean ; \
+ 		done
+ 
+-zonenames:	$(TDATA)
+-		@$(AWK) '/^Zone/ { print $$2 } /^Link/ { print $$3 }' $(TDATA)
++zonenames:	tzdata.zi
++		@$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
+ 
+ asctime.o:	private.h tzfile.h
+ date.o:		private.h
+@@ -785,6 +877,7 @@
+ .PHONY: check check_character_set check_links
+ .PHONY: check_public check_sorted check_tables
+ .PHONY: check_time_t_alternatives check_tzs check_web check_white_space
++.PHONY: check_zishrink
+ .PHONY: clean clean_misc force_tzs
+ .PHONY: install install_data maintainer-clean names
+ .PHONY: posix_only posix_packrat posix_right
+--- contrib/tzdata/NEWS.orig
++++ contrib/tzdata/NEWS
+@@ -1,5 +1,344 @@
+ News for the tz database
+ 
++Release 2017c - 2017-10-20 14:49:34 -0700
++
++  Briefly:
++  Northern Cyprus switches from +03 to +02/+03 on 2017-10-29.
++  Fiji ends DST 2018-01-14, not 2018-01-21.
++  Namibia switches from +01/+02 to +02 on 2018-04-01.
++  Sudan switches from +03 to +02 on 2017-11-01.
++  Tonga likely switches from +13/+14 to +13 on 2017-11-05.
++  Turks & Caicos switches from -04 to -05/-04 on 2018-11-04.
++  A new file tzdata.zi now holds a small text copy of all data.
++  The zic input format has been regularized slightly.
++
++  Changes to future time stamps
++
++    Northern Cyprus has decided to resume EU rules starting
++    2017-10-29, thus reinstituting winter time.
++
++    Fiji ends DST 2018-01-14 instead of the 2018-01-21 previously
++    predicted.  (Thanks to Dominic Fok.)  Adjust future predictions
++    accordingly.
++
++    Namibia will switch from +01 with DST to +02 all year on
++    2017-09-03 at 02:00.  This affects UT offsets starting 2018-04-01
++    at 02:00.  (Thanks to Steffen Thorsen.)
++
++    Sudan will switch from +03 to +02 on 2017-11-01.  (Thanks to Ahmed
++    Atyya and Yahia Abdalla.)  South Sudan is not switching, so
++    Africa/Juba is no longer a link to Africa/Khartoum.
++
++    Tonga has likely ended its experiment with DST, and will not
++    adjust its clocks on 2017-11-05.  Although Tonga has not announced
++    whether it will continue to observe DST, the IATA is assuming that
++    it will not.  (Thanks to David Wade.)
++
++    Turks & Caicos will switch from -04 all year to -05 with US DST on
++    2018-03-11 at 03:00.  This affects UT offsets starting 2018-11-04
++    at 02:00.  (Thanks to Steffen Thorsen.)
++
++  Changes to past time stamps
++
++    Namibia switched from +02 to +01 on 1994-03-21, not 1994-04-03.
++    (Thanks to Arthur David Olson.)
++
++    Detroit did not observe DST in 1967.
++
++    Use railway time for Asia/Kolkata before 1941, by switching to
++    Madras local time (UT +052110) in 1870, then to IST (UT +0530) in
++    1906.  Also, treat 1941-2's +0630 as DST, like 1942-5.
++
++    Europe/Dublin's 1946 and 1947 fallback transitions occurred at
++    02:00 standard time, not 02:00 DST.  (Thanks to Michael Deckers.)
++
++    Pacific/Apia and Pacific/Pago_Pago switched from Antipodean to
++    American time in 1892, not 1879.  (Thanks to Michael Deckers.)
++
++    Adjust the 1867 transition in Alaska to better reflect the
++    historical record, by changing it to occur on 1867-10-18 at 15:30
++    Sitka time rather than at the start of 1867-10-17 local time.
++    Although strictly speaking this is accurate only for Sitka,
++    the rest of Alaska's blanks need to be filled in somehow.
++
++    Fix off-by-one errors in UT offsets for Adak and Nome before 1867.
++    (Thanks to Michael Deckers.)
++
++    Add 7 s to the UT offset in Asia/Yangon before 1920.
++
++  Changes to zone names
++
++    Remove Canada/East-Saskatchewan from the 'backward' file, as it
++    exceeded the 14-character limit and was an unused misnomer anyway.
++
++  Changes to build procedure
++
++    To support applications that prefer to read time zone data in text
++    form, two zic input files tzdata.zi and leapseconds are now
++    installed by default.  The commands 'zic tzdata.zi' and 'zic -L
++    leapseconds tzdata.zi' can reproduce the tzdata binary files
++    without and with leap seconds, respectively.  To prevent these two
++    new files from being installed, use 'make TZDATA_TEXT=', and to
++    suppress leap seconds from the tzdata text installation, use 'make
++    TZDATA_TEXT=tzdata.zi'.
++
++    'make BACKWARD=' now suppresses backward-compatibility names
++    like 'US/Pacific' that are defined in the 'backward' and
++    'pacificnew' files.
++
++    'make check' now works on systems that lack a UTF-8 locale,
++    or that lack the nsgmls program.  Set UTF8_LOCALE to configure
++    the name of a UTF-8 locale, if you have one.
++
++    Y2K runtime checks are no longer enabled by default.  Add
++    -DDEPRECATE_TWO_DIGIT_YEARS to CFLAGS to enable them, instead of
++    adding -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU
++    to disable them.  (New name suggested by Brian Inglis.)
++
++    The build procedure for zdump now works on AIX 7.1.
++    (Problem reported by Kees Dekker.)
++
++  Changes to code
++
++    zic and the reference runtime now reject multiple leap seconds
++    within 28 days of each other, or leap seconds before the Epoch.
++    As a result, support for double leap seconds, which was
++    obsolescent and undocumented, has been removed.  Double leap
++    seconds were an error in the C89 standard; they have never existed
++    in civil timekeeping.  (Thanks to Robert Elz and Bradley White for
++    noticing glitches in the code that uncovered this problem.)
++
++    zic now warns about use of the obsolescent and undocumented -y
++    option, and about use of the obsolescent TYPE field of Rule lines.
++
++    zic now allows unambiguous abbreviations like "Sa" and "Su" for
++    weekdays; formerly it rejected them due to a bug.  Conversely, zic
++    no longer considers non-prefixes to be abbreviations; for example,
++    it no longer accepts "lF" as an abbreviation for "lastFriday".
++    Also, zic warns about the undocumented usage with a "last-"
++    prefix, e.g., "last-Fri".
++
++    Similarly, zic now accepts the unambiguous abbreviation "L" for
++    "Link" in ordinary context and for "Leap" in leap-second context.
++    Conversely, zic no longer accepts non-prefixes such as "La" as
++    abbreviations for words like "Leap".
++
++    zic no longer accepts leap second lines in ordinary input, or
++    ordinary lines in leap second input.  Formerly, zic sometimes
++    warned about this undocumented usage and handled it incorrectly.
++
++    The new macro HAVE_TZNAME governs whether the tzname external
++    variable is exported, instead of USG_COMPAT.  USG_COMPAT now
++    governs only the external variables "timezone" and "daylight".
++    This change is needed because the three variables are not in the
++    same category: although POSIX requires tzname, it specifies the
++    other two variables as optional.  Also, USG_COMPAT is now 1 or 0:
++    if not defined, the code attempts to guess it from other macros.
++
++    localtime.c and difftime.c no longer require stdio.h, and .c files
++    other than zic.c no longer require sys/wait.h.
++
++    zdump.c no longer assumes snprintf.  (Reported by Jonathan Leffler.)
++
++    Calculation of time_t extrema works around a bug in GCC 4.8.4
++    (Reported by Stan Shebs and Joseph Myers.)
++
++    zic.c no longer mistranslates formats of line numbers in non-English
++    locales.  (Problem reported by Benno Schulenberg.)
++
++    Several minor changes have been made to the code to make it a
++    bit easier to port to MS-Windows and Solaris.  (Thanks to Kees
++    Dekker for reporting the problems.)
++
++  Changes to documentation and commentary
++
++    The two new files 'theory.html' and 'calendars' contain the
++    contents of the removed file 'Theory'.  The goal is to document
++    tzdb theory more accessibly.
++
++    The zic man page now documents abbreviation rules.
++
++    tz-link.htm now covers how to apply tzdata changes to clients.
++    (Thanks to Jorge Fábregas for the AIX link.)  It also mentions MySQL.
++
++    The leap-seconds.list URL has been updated to something that is
++    more reliable for tzdb.  (Thanks to Tim Parenti and Brian Inglis.)
++
++Release 2017b - 2017-03-17 07:30:38 -0700
++
++  Briefly: Haiti has resumed DST.
++
++  Changes to past and future time stamps
++
++    Haiti resumed observance of DST in 2017.  (Thanks to Steffen Thorsen.)
++
++  Changes to past time stamps
++
++    Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01.
++
++    Use "MMT" to abbreviate Liberia's time zone before 1972, as "-004430"
++    is one byte over the POSIX limit.  (Problem reported by Derick Rethans.)
++
++  Changes to code
++
++    The reference localtime implementation now falls back on the
++    current US daylight-saving transition rules rather than the
++    1987-2006 rules.  This fallback occurs only when (1) the TZ
++    environment variable's value has a name like "AST4ADT" that asks
++    for daylight saving time but does not specify the rules, (2) there
++    is no file by that name, and (3) the TZDEFRULES file cannot be
++    loaded.  (Thanks to Tom Lane.)
++
++
++Release 2017a - 2017-02-28 00:05:36 -0800
++
++  Briefly: Southern Chile moves from -04/-03 to -03, and Mongolia
++  discontinues DST.
++
++  Changes to future time stamps
++
++    Mongolia no longer observes DST.  (Thanks to Ganbold Tsagaankhuu.)
++
++    Chile's Region of Magallanes moves from -04/-03 to -03 year-round.
++    Its clocks diverge from America/Santiago starting 2017-05-13 at
++    23:00, hiving off a new zone America/Punta_Arenas.  Although the
++    Chilean government says this change expires in May 2019, for now
++    assume it's permanent.  (Thanks to Juan Correa and Deborah
++    Goldsmith.)  This also affects Antarctica/Palmer.
++
++  Changes to past time stamps
++
++    Fix many entries for historical time stamps for Europe/Madrid
++    before 1979, to agree with tables compiled by Pere Planesas of the
++    National Astronomical Observatory of Spain.  As a side effect,
++    this changes some time stamps for Africa/Ceuta before 1929, which
++    are probably guesswork anyway.  (Thanks to Steve Allen and
++    Pierpaolo Bernardi for the heads-ups, and to Michael Deckers for
++    correcting the 1901 transition.)
++
++    Ecuador observed DST from 1992-11-28 to 1993-02-05.
++    (Thanks to Alois Treindl.)
++
++    Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21.
++    (Thanks to Stepan Golosunov.)
++
++  Changes to past and future time zone abbreviations
++
++    Switch to numeric time zone abbreviations for South America, as
++    part of the ongoing project of removing invented abbreviations.
++    This avoids the need to invent an abbreviation for the new Chilean
++    new zone.  Similarly, switch from invented to numeric time zone
++    abbreviations for Afghanistan, American Samoa, the Azores,
++    Bangladesh, Bhutan, the British Indian Ocean Territory, Brunei,
++    Cape Verde, Chatham Is, Christmas I, Cocos (Keeling) Is, Cook Is,
++    Dubai, East Timor, Eucla, Fiji, French Polynesia, Greenland,
++    Indochina, Iran, Iraq, Kiribati, Lord Howe, Macquarie, Malaysia,
++    the Maldives, Marshall Is, Mauritius, Micronesia, Mongolia,
++    Myanmar, Nauru, Nepal, New Caledonia, Niue, Norfolk I, Palau,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711021556.vA2Fu8e7016852>