From owner-svn-doc-all@freebsd.org Thu Nov 2 15:56:10 2017 Return-Path: Delivered-To: svn-doc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7517AE5D42A; Thu, 2 Nov 2017 15:56:10 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0695B83A4A; Thu, 2 Nov 2017 15:56:09 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vA2Fu8M0016856; Thu, 2 Nov 2017 15:56:08 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vA2Fu8e7016852; Thu, 2 Nov 2017 15:56:08 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201711021556.vA2Fu8e7016852@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Thu, 2 Nov 2017 15:56:08 +0000 (UTC) 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 X-SVN-Group: doc-head X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: in head/share: security/advisories security/patches/EN-17:09 xml X-SVN-Commit-Revision: 51167 X-SVN-Commit-Repository: doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Nov 2017 15:56:10 -0000 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 +. + +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 . + +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: + + + +VII. References + + + + + +The latest revision of this advisory is available at + +-----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 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 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 +- or the master branch of the experimental +-Git repository. If you use Git the following workflow may be helpful: ++ 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 does not declare asctime_r ++# -DHAVE_DECL_ENVIRON if declares 'environ' + # -DHAVE_DIRECT_H if mkdir needs (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 + # -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 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 ++# -DHAVE_STDINT_H if you have a non-C99 compiler with ++# -DHAVE_STRFTIME_L if 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 ++# -DHAVE_SYS_WAIT_H=0 if your compiler lacks a + # -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 ++# -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 for a validator, and + # 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 . ++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 ***