Date: Wed, 23 Oct 2019 03:36:39 +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: r53502 - in head/share: security/advisories security/patches/EN-19:18 xml Message-ID: <201910230336.x9N3adA0063839@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gordon (src committer) Date: Wed Oct 23 03:36:38 2019 New Revision: 53502 URL: https://svnweb.freebsd.org/changeset/doc/53502 Log: Add FreeBSD-EN-19:18.tzdata. Approved by: so Added: head/share/security/advisories/FreeBSD-EN-19:18.tzdata.asc (contents, props changed) head/share/security/patches/EN-19:18/ head/share/security/patches/EN-19:18/tzdata-2019c.patch (contents, props changed) head/share/security/patches/EN-19:18/tzdata-2019c.patch.asc (contents, props changed) Modified: head/share/xml/notices.xml Added: head/share/security/advisories/FreeBSD-EN-19:18.tzdata.asc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/security/advisories/FreeBSD-EN-19:18.tzdata.asc Wed Oct 23 03:36:38 2019 (r53502) @@ -0,0 +1,152 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-19:18.tzdata Errata Notice + The FreeBSD Project + +Topic: Timezone database information update + +Category: contrib +Module: zoneinfo +Announced: 2019-10-23 +Affects: All supported versions of FreeBSD. +Corrected: 2019-09-15 10:54:18 UTC (stable/12, 12.1-STABLE) + 2019-10-23 03:25:32 UTC (releng/12.0, 12.0-RELEASE-p11) + 2019-09-15 10:54:33 UTC (stable/11, 11.3-STABLE) + 2019-10-23 03:25:32 UTC (releng/11.3, 11.3-RELEASE-p4) + 2019-10-23 03:25:32 UTC (releng/11.2, 11.2-RELEASE-p15) + +Note: The upcoming release of FreeBSD 12.1 was branched after the original +commit to the stable branch and already includes the updated timezone +information. + +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 this +software must be updated separately. For software packages that is installed +via binary packages, they can be upgraded by executing `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. + +# fetch https://security.FreeBSD.org/patches/EN-19:18/tzdata-2019c.patch +# fetch https://security.FreeBSD.org/patches/EN-19:18/tzdata-2019c.patch.asc +# gpg --verify tzdata-2019c.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/12/ r352353 +releng/12.0/ r353915 +stable/11/ r352354 +releng/11.3/ r353915 +releng/11.2/ r353915 +- ------------------------------------------------------------------------- + +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 + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-19:18.tzdata.asc> +-----BEGIN PGP SIGNATURE----- + +iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl2vybFfFIAAAAAALgAo +aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD +MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n +5cKPExAAmtnxSlDJGtLzpO8YGTrQI4VNIwmk70cxu3cdwhwWvvBR/JzedaV136iK +CiYqIdMa0FERKFKRhN9VH5KPrZIYubg8vGgLcc7aaLFMYotOaWsZGm4p5bZmRUxK +VgbEqTFIEmOM7+rlNqov73emsQTvSX1T02i/KToTMGXLLlBZZjwFCDd9w9cXNUnO +8/CsrHi3mPeeCIF4dKgg31xSM6emO3dJXdJJ6gXaVprv8KKbMUSxzEtrYGslE9eS +6HDBsZVsde/hgc8VFAA19QwiWkjYzaiCUax9yutozYOjbvwxLUUN08/zR8B+GyU9 +SnJPN7RvmqRpybLQHVdvds2mSr3v3+ADo+hdW8oBNpiwJ99gCuzB8qJaIfTPstOo +BZo7GaM+MGE94/0cjjhk4AB1FyBlTCMz5Xr0t07mk/65/PmXyg77xkcL1m23RJFi +cZfC0K6X00KfDt5N/1OwvEiBKUamNHQvDfhbb2pclYEysOSWJVrkWB9En1TMwPQX +oncaSjqiJhRarleoQhvs7FwqYffaFvEUTrvfzK8KaAqm4wFd0P8ExTVnPCxy1Frz +68KdJJ7e1+uxsHy8+cGgnH4W8+0KP4CNSXqEDUiOV2iw9LwGmZnhEpjGseO1/4Z4 +bOkP7gzEHtkN/k6/OnOu8NiDiR5rUvyq+SoHUlaiP6/Oo11EZBk= +=cMXm +-----END PGP SIGNATURE----- Added: head/share/security/patches/EN-19:18/tzdata-2019c.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/security/patches/EN-19:18/tzdata-2019c.patch Wed Oct 23 03:36:38 2019 (r53502) @@ -0,0 +1,1315 @@ +--- contrib/tzdata/NEWS.orig ++++ contrib/tzdata/NEWS +@@ -1,5 +1,80 @@ + News for the tz database + ++Release 2019c - 2019-09-11 08:59:48 -0700 ++ ++ Briefly: ++ Fiji observes DST from 2019-11-10 to 2020-01-12. ++ Norfolk Island starts observing Australian-style DST. ++ ++ Changes to future timestamps ++ ++ Fiji's next DST transitions will be 2019-11-10 and 2020-01-12 ++ instead of 2019-11-03 and 2020-01-19. (Thanks to Raymond Kumar.) ++ Adjust future guesses accordingly. ++ ++ Norfolk Island will observe Australian-style DST starting in ++ spring 2019. The first transition is on 2019-10-06. (Thanks to ++ Kyle Czech and Michael Deckers.) ++ ++ Changes to past timestamps ++ ++ Many corrections to time in Turkey from 1940 through 1985. ++ (Thanks to Oya Vulaş via Alois Treindl, and to Kıvanç Yazan.) ++ ++ The Norfolk Island 1975-03-02 transition was at 02:00 standard ++ time, not 02:00 DST. (Thanks to Michael Deckers.) ++ ++ South Korea observed DST from 1948 through 1951. Although this ++ info was supposed to appear in release 2014j, a typo inadvertently ++ suppressed the change. (Thanks to Alois Treindl.) ++ ++ Detroit observed DST in 1967 and 1968 following the US DST rules, ++ except that its 1967 DST began on June 14 at 00:01. (Thanks to ++ Alois Treindl for pointing out that the old data entries were ++ probably wrong.) ++ ++ Fix several errors in pre-1970 transitions in Perry County, IN. ++ (Thanks to Alois Triendl for pointing out the 1967/9 errors.) ++ ++ Edmonton did not observe DST in 1967 or 1969. In 1946 Vancouver ++ ended DST on 09-29 not 10-13, and Vienna ended DST on 10-07 not ++ 10-06. In 1945 Königsberg (now Kaliningrad) switched from +01/+02 ++ to +02/+03 on 04-10 not 01-01, and its +02/+03 is abbreviated ++ EET/EEST, not CET/CEST. (Thanks to Alois Triendl.) In 1946 ++ Königsberg switched to +03 on 04-07 not 01-01. ++ ++ In 1946 Louisville switched from CST to CDT on 04-28 at 00:01, not ++ 01-01 at 00:00. (Thanks to Alois Treindl and Michael Deckers.) ++ Also, it switched from CST to CDT on 1950-04-30, not 1947-04-27. ++ ++ The 1892-05-01 transition in Brussels was at 00:17:30, not at noon. ++ (Thanks to Michael Deckers.) ++ ++ Changes to past time zone abbreviations and DST flags ++ ++ Hong Kong Winter Time, observed from 1941-10-01 to 1941-12-25, ++ is now flagged as DST and is abbreviated HKWT not HKT. ++ ++ Changes to code ++ ++ leapseconds.awk now relies only on its input data, rather than ++ also relying on its comments. (Inspired by code from Dennis ++ Ferguson and Chris Woodbury.) ++ ++ The code now defends against CRLFs in leap-seconds.list. ++ (Thanks to Brian Inglis and Chris Woodbury.) ++ ++ Changes to documentation and commentary ++ ++ theory.html discusses leap seconds. (Thanks to Steve Summit.) ++ ++ Nashville's newspapers dueled about the time of day in the 1950s. ++ (Thanks to John Seigenthaler.) ++ ++ Liechtenstein observed Swiss DST in 1941/2. ++ (Thanks to Alois Treindl.) ++ ++ + Release 2019b - 2019-07-01 00:09:53 -0700 + + Briefly: +--- contrib/tzdata/asia.orig ++++ contrib/tzdata/asia +@@ -8,7 +8,7 @@ + # tz@iana.org for general use in the future). For more, please see + # the file CONTRIBUTING in the tz distribution. + +-# From Paul Eggert (2018-06-19): ++# From Paul Eggert (2019-07-11): + # + # Unless otherwise specified, the source for data through 1990 is: + # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), +@@ -47,13 +47,13 @@ + # 7:00 WIB west Indonesia (Waktu Indonesia Barat) + # 8:00 WITA central Indonesia (Waktu Indonesia Tengah) + # 8:00 CST China +-# 8:00 PST PDT* Philippine Standard Time ++# 8:00 HKT HKST Hong Kong (HKWT* for Winter Time in late 1941) ++# 8:00 PST PDT* Philippines + # 8:30 KST KDT Korea when at +0830 + # 9:00 WIT east Indonesia (Waktu Indonesia Timur) + # 9:00 JST JDT Japan + # 9:00 KST KDT Korea when at +09 +-# 9:30 ACST Australian Central Standard Time +-# *I invented the abbreviation PDT; see "Philippines" below. ++# *I invented the abbreviations HKWT and PDT; see below. + # Otherwise, these tables typically use numeric abbreviations like +03 + # and +0330 for integer hour and minute UT offsets. Although earlier + # editions invented alphabetic time zone abbreviations for every +@@ -653,6 +653,15 @@ + # * 1941-09-30, Hong Kong Daily Press, Winter Time Warning. + # https://i.imgur.com/dge4kFJ.png + ++# From Paul Eggert (2019-07-11): ++# "Hong Kong winter time" is considered to be daylight saving. ++# "Hong Kong had adopted daylight saving on June 15 as a wartime measure, ++# clocks moving forward one hour until October 1, when they would be put back ++# by just half an hour for 'Hong Kong Winter time', so that daylight saving ++# operated year round." -- Low Z. The longest day: when wartime Hong Kong ++# introduced daylight saving. South China Morning Post. 2019-06-28. ++# https://www.scmp.com/magazines/post-magazine/short-reads/article/3016281/longest-day-when-wartime-hong-kong-introduced ++ + # From P Chan (2018-12-31): + # * According to the Hong Kong Daylight-Saving Regulations, 1941, the + # 1941 spring-forward transition was at 03:00. +@@ -754,7 +763,7 @@ + Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 0:36:42 + 8:00 - HKT 1941 Jun 15 3:00 + 8:00 1:00 HKST 1941 Oct 1 4:00 +- 8:30 - HKT 1941 Dec 25 ++ 8:00 0:30 HKWT 1941 Dec 25 + 9:00 - JST 1945 Nov 18 2:00 + 8:00 HK HK%sT + +@@ -2419,7 +2428,7 @@ + Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1 + 8:30 - KST 1912 Jan 1 + 9:00 - JST 1945 Sep 8 +- 9:00 - KST 1954 Mar 21 ++ 9:00 ROK K%sT 1954 Mar 21 + 8:30 ROK K%sT 1961 Aug 10 + 9:00 ROK K%sT + Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 +@@ -3604,7 +3613,7 @@ + # and in South Vietnam in particular (after 1954): + # To 07:00 on 1911-05-01. + # To 08:00 on 1942-12-31 at 23:00. +-# To 09:00 in 1945-03-14 at 23:00. ++# To 09:00 on 1945-03-14 at 23:00. + # To 07:00 on 1945-09-02 in Vietnam. + # To 08:00 on 1947-04-01 in French-controlled Indochina. + # To 07:00 on 1955-07-01 in South Vietnam. +--- contrib/tzdata/australasia.orig ++++ contrib/tzdata/australasia +@@ -367,13 +367,18 @@ + # From Raymond Kumar (2018-07-13): + # http://www.fijitimes.com/government-approves-2018-daylight-saving/ + # ... The daylight saving period will end at 3am on Sunday January 13, 2019. +-# +-# From Paul Eggert (2018-07-15): +-# For now, guess DST from 02:00 the first Sunday in November to 03:00 +-# the first Sunday on or after January 13. January transitions reportedly ++ ++# From Paul Eggert (2019-08-06): ++# Today Raymond Kumar reported the Government of Fiji Gazette Supplement No. 27 ++# (2019-08-02) said that Fiji observes DST "commencing at 2.00 am on ++# Sunday, 10 November 2019 and ending at 3.00 am on Sunday, 12 January 2020." ++# For now, guess DST from 02:00 the second Sunday in November to 03:00 ++# the first Sunday on or after January 12. January transitions reportedly + # depend on when school terms start. Although the guess is ad hoc, it matches +-# transitions since late 2014 and seems more likely to match future +-# practice than guessing no DST. ++# transitions planned this year and seems more likely to match future practice ++# than guessing no DST. ++# From Michael Deckers (2019-08-06): ++# https://www.laws.gov.fj/LawsAsMade/downloadfile/848 + + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - +@@ -384,8 +389,9 @@ + Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - + Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 - + Rule Fiji 2014 only - Jan Sun>=18 2:00 0 - +-Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 - +-Rule Fiji 2015 max - Jan Sun>=13 3:00 0 - ++Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - ++Rule Fiji 2015 max - Jan Sun>=12 3:00 0 - ++Rule Fiji 2019 max - Nov Sun>=8 2:00 1:00 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva + 12:00 Fiji +12/+13 +@@ -604,10 +610,11 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston + 11:12 - +1112 1951 +- 11:30 - +1130 1974 Oct 27 02:00 +- 11:30 1:00 +1230 1975 Mar 2 02:00 +- 11:30 - +1130 2015 Oct 4 02:00 +- 11:00 - +11 ++ 11:30 - +1130 1974 Oct 27 02:00s ++ 11:30 1:00 +1230 1975 Mar 2 02:00s ++ 11:30 - +1130 2015 Oct 4 02:00s ++ 11:00 - +11 2019 Jul ++ 11:00 AN +11/+12 + + # Palau (Belau) + # Zone NAME STDOFF RULES FORMAT [UNTIL] +@@ -1875,13 +1882,22 @@ + # ... at 12.30 am (by legal time in New South Wales) on 4 October 2015. + # http://www.norfolkisland.gov.nf/nia/MediaRelease/Media%20Release%20Norfolk%20Island%20Standard%20Time%20Change.pdf + +-# From Paul Eggert (2015-09-23): ++# From Paul Eggert (2019-08-28): + # Transitions before 2015 are from timeanddate.com, which consulted + # the Norfolk Island Museum and the Australian Bureau of Meteorology's + # Norfolk Island station, and found no record of Norfolk observing DST + # other than in 1974/5. See: + # https://www.timeanddate.com/time/australia/norfolk-island.html ++# However, disagree with timeanddate about the 1975-03-02 transition; ++# timeanddate has 02:00 but 02:00s corresponds to what the NSW law said ++# (thanks to Michael Deckers). + ++# Norfolk started observing Australian DST in spring 2019. ++# From Kyle Czech (2019-08-13): ++# https://www.legislation.gov.au/Details/F2018L01702 ++# From Michael Deckers (2019-08-14): ++# https://www.legislation.gov.au/Details/F2019C00010 ++ + # Palau + # See commentary for Micronesia. + +--- contrib/tzdata/backzone.orig ++++ contrib/tzdata/backzone +@@ -507,19 +507,35 @@ + #Zone Asia/Panaji [not enough info to complete] + + # Cambodia +-# From Paul Eggert (2014-10-11): +-# See Asia/Ho_Chi_Minh for the source for most of this data. Also, guess +-# (1) Cambodia reverted to UT +07 on 1945-09-02, when Vietnam did, and +-# (2) they also reverted to +07 on 1953-11-09, the date of independence. +-# These guesses are probably wrong but they're better than guessing no +-# transitions there. ++ ++# From an adoptive daughter of the late Cambodian ruler Prince Sihanouk, ++# via Alois Treindl (2019-08-08): ++# ++# King Sihanouk said that, during the Japanese occupation, starting with ++# what historians refer to as "le coup de force du 9 mars 1945", Cambodia, ++# like the entire French Indochina, used Tokyo time zone. After Japan ++# surrendered, 2 September 1945, Cambodia fell under French rule again and ++# adopted Hanoi time zone again. ++# ++# However, on 7 January 1946, Sihanouk and Tioulong managed to obtain a ++# status of "internal autonomy" from the government of Charles de Gaulle. ++# Although many fields remained under the administration of the French ++# (customs, taxes, justice, defence, foreign affairs, etc.), the Cambodian ++# administration was responsible for religious matters and traditional ++# celebrations, which included our calendar and time. The time zone was GMT ++# + 7 and _no_ DST was applied. ++# ++# After Sihanouk and Tioulong achieved full independence, on 9 November 1953, ++# GMT + 7 was maintained. ++ ++# From Paul Eggert (2019-08-26): ++# See Asia/Ho_Chi_Minh for the source for most of rest of this data. ++ + Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jul 1 + 7:06:30 - PLMT 1911 May 1 + 7:00 - +07 1942 Dec 31 23:00 + 8:00 - +08 1945 Mar 14 23:00 + 9:00 - +09 1945 Sep 2 +- 7:00 - +07 1947 Apr 1 +- 8:00 - +08 1953 Nov 9 + 7:00 - +07 + + # Israel +@@ -646,7 +662,7 @@ + + # Liechtenstein + Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun +- 1:00 - CET 1981 ++ 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT + + # Croatia +--- contrib/tzdata/europe.orig ++++ contrib/tzdata/europe +@@ -821,11 +821,16 @@ + # Shanks & Pottenger give 02:00, the BEV 00:00. Go with the BEV, + # and guess 02:00 for 1945-04-12. + ++# From Alois Triendl (2019-07-22): ++# In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am. ++# Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5. ++ + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + Rule Austria 1920 only - Apr 5 2:00s 1:00 S + Rule Austria 1920 only - Sep 13 2:00s 0 - + Rule Austria 1946 only - Apr 14 2:00s 1:00 S +-Rule Austria 1946 1948 - Oct Sun>=1 2:00s 0 - ++Rule Austria 1946 only - Oct 7 2:00s 0 - ++Rule Austria 1947 1948 - Oct Sun>=1 2:00s 0 - + Rule Austria 1947 only - Apr 6 2:00s 1:00 S + Rule Austria 1948 only - Apr 18 2:00s 1:00 S + Rule Austria 1980 only - Apr 6 0:00 1:00 S +@@ -875,15 +880,35 @@ + + # Belgium + # +-# From Paul Eggert (1997-07-02): ++# From Michael Deckers (2019-08-25): ++# The exposition in the web page ++# https://www.bestor.be/wiki/index.php/Voyager_dans_le_temps._L%E2%80%99introduction_de_la_norme_de_Greenwich_en_Belgique ++# gives several contemporary sources from which one can conclude that ++# the switch in Europe/Brussels on 1892-05-01 was from 00:17:30 to 00:00:00. ++# ++# From Paul Eggert (2019-08-28): ++# This quote helps explain the late-1914 situation: ++# In early November 1914, the Germans imposed the time zone used in central ++# Europe and forced the inhabitants to set their watches and public clocks ++# sixty minutes ahead. Many were reluctant to accept "German time" and ++# continued to use "Belgian time" among themselves. Reflecting the spirit of ++# resistance that arose in the population, a song made fun of this change.... ++# The song ended: ++# Putting your clock forward ++# Will but hasten the happy hour ++# When we kick out the Boches! ++# See: Pluvinage G. Brussels on German time. Cahiers Bruxellois - ++# Brusselse Cahiers. 2014;XLVI(1E):15-38. ++# https://www.cairn.info/revue-cahiers-bruxellois-2014-1E-page-15.htm ++# ++# Entries from 1914 through 1917 are taken from "De tijd in België" ++# <https://www.astro.oma.be/GENERAL/INFO/nli001a.html>. + # Entries from 1918 through 1991 are taken from: + # Annuaire de L'Observatoire Royal de Belgique, + # Avenue Circulaire, 3, B-1180 BRUXELLES, CLVIIe année, 1991 + # (Imprimerie HAYEZ, s.p.r.l., Rue Fin, 4, 1080 BRUXELLES, MCMXC), + # pp 8-9. +-# LMT before 1892 was 0:17:30, according to the official journal of Belgium: +-# Moniteur Belge, Samedi 30 Avril 1892, N.121. +-# Thanks to Pascal Delmoitie for these references. ++# Thanks to Pascal Delmoitie for the 1918/1991 references. + # The 1918 rules are listed for completeness; they apply to unoccupied Belgium. + # Assume Brussels switched to WET in 1918 when the armistice took effect. + # +@@ -928,7 +953,7 @@ + Rule Belgium 1946 only - Oct 7 2:00s 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Europe/Brussels 0:17:30 - LMT 1880 +- 0:17:30 - BMT 1892 May 1 12:00 # Brussels MT ++ 0:17:30 - BMT 1892 May 1 00:17:30 + 0:00 - WET 1914 Nov 8 + 1:00 - CET 1916 May 1 0:00 + 1:00 C-Eur CE%sT 1918 Nov 11 11:00u +@@ -1627,6 +1652,13 @@ + # advanced to sixty minutes later starting at hour two on 1944-04-02; ... + # Starting at hour three on the date 1944-09-17 standard time will be resumed. + # ++# From Alois Triendl (2019-07-02): ++# I spent 6 Euros to buy two archive copies of Il Messaggero, a Roman paper, ++# for 1 and 2 April 1944. The edition of 2 April has this note: "Tonight at 2 ++# am, put forward the clock by one hour. Remember that in the night between ++# today and Monday the 'ora legale' will come in force again." That makes it ++# clear that in Rome the change was on Monday, 3 April 1944 at 2 am. ++# + # From Paul Eggert (2016-10-27): + # Go with INRiM for DST rules, except as corrected by Inglis for 1944 + # for the Kingdom of Italy. This is consistent with Renzo Baldini. +@@ -1774,15 +1806,10 @@ + # From Paul Eggert (2013-09-09): + # Shanks & Pottenger say Vaduz is like Zurich. + +-# From Alois Treindl (2013-09-18): +-# http://www.eliechtensteinensia.li/LIJ/1978/1938-1978/1941.pdf +-# ... confirms on p. 6 that Liechtenstein followed Switzerland in 1941 and 1942. +-# I ... translate only the last two paragraphs: +-# ... during second world war, in the years 1941 and 1942, Liechtenstein +-# introduced daylight saving time, adapting to Switzerland. From 1943 on +-# central European time was in force throughout the year. +-# From a report of the duke's government to the high council, +-# regarding the introduction of a time law, of 31 May 1977. ++# From Alois Treindl (2019-07-04): ++# I was able to access the online archive of the Vaduz paper Vaterland ... ++# I could confirm from the paper that Liechtenstein did in fact follow ++# the same DST in 1941 and 1942 as Switzerland did. + + Link Europe/Zurich Europe/Vaduz + +@@ -2490,6 +2517,12 @@ + # Europe/Kaliningrad covers... + # 39 RU-KGD Kaliningrad Oblast + ++# From Paul Eggert (2019-07-25): ++# Although Shanks lists 1945-01-01 as the date for transition from ++# +01/+02 to +02/+03, more likely this is a placeholder. Guess that ++# the transition occurred at 1945-04-10 00:00, which is about when ++# Königsberg surrendered to Soviet troops. (Thanks to Alois Triendl.) ++ + # From Paul Eggert (2016-03-18): + # The 1989 transition is from USSR act No. 227 (1989-03-14). + +@@ -2506,8 +2539,8 @@ + # Moscow on 1991-11-03, switched to Moscow-1 on 1992-01-19. + + Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr +- 1:00 C-Eur CE%sT 1945 +- 2:00 Poland CE%sT 1946 ++ 1:00 C-Eur CE%sT 1945 Apr 10 ++ 2:00 Poland EE%sT 1946 Apr 7 + 3:00 Russia MSK/MSD 1989 Mar 26 2:00s + 2:00 Russia EE%sT 2011 Mar 27 2:00s + 3:00 - +03 2014 Oct 26 2:00s +@@ -3650,20 +3683,75 @@ + + # Turkey + ++# From Alois Treindl (2019-08-12): ++# http://www.astrolojidergisi.com/yazsaati.htm has researched the time zone ++# history of Turkey, based on newspaper archives and official documents. ++# From Paul Eggert (2019-08-28): ++# That source (Oya Vulaş, "Türkiye'de Yaz Saati Uygulamaları") ++# is used for 1940/1972, where it seems more reliable than our other ++# sources. ++ ++# From Kıvanç Yazan (2019-08-12): ++# http://www.resmigazete.gov.tr/arsiv/14539.pdf#page=24 ++# 1973-06-03 01:00 -> 02:00, 1973-11-04 02:00 -> 01:00 ++# ++# http://www.resmigazete.gov.tr/arsiv/14829.pdf#page=1 ++# 1974-03-31 02:00 -> 03:00, 1974-11-03 02:00 -> 01:00 ++# ++# http://www.resmigazete.gov.tr/arsiv/15161.pdf#page=1 ++# 1975-03-22 02:00 -> 03:00, 1975-11-02 02:00 -> 01:00 ++# ++# http://www.resmigazete.gov.tr/arsiv/15535_1.pdf#page=1 ++# 1976-03-21 02:00 -> 03:00, 1976-10-31 02:00 -> 01:00 ++# ++# http://www.resmigazete.gov.tr/arsiv/15778.pdf#page=5 ++# 1977-04-03 02:00 -> 03:00, 1977-10-16 02:00 -> 01:00, ++# 1978-04-02 02:00 -> 03:00 (not applied, see below) ++# 1978-10-15 02:00 -> 01:00 (not applied, see below) ++# 1979-04-01 02:00 -> 03:00 (not applied, see below) ++# 1979-10-14 02:00 -> 01:00 (not applied, see below) ++# ++# http://www.resmigazete.gov.tr/arsiv/16245.pdf#page=17 ++# This cancels the previous decision, and repeats it only for 1978. ++# 1978-04-02 02:00 -> 03:00, 1978-10-15 02:00 -> 01:00 ++# (not applied due to standard TZ change below) ++# ++# http://www.resmigazete.gov.tr/arsiv/16331.pdf#page=3 ++# This decision changes the default longitude for Turkish time zone from 30 ++# degrees East to 45 degrees East. This means a standard TZ change, from +2 ++# to +3. This is published & applied on 1978-06-29. At that time, Turkey was ++# already on summer time (already on 45E). Hence, this new law just meant an ++# "continuous summer time". Note that this was reversed in a few years. ++# ++# http://www.resmigazete.gov.tr/arsiv/18119_1.pdf#page=1 ++# 1983-07-31 02:00 -> 03:00 (note that this jumps TZ to +4) ++# 1983-10-02 02:00 -> 01:00 (back to +3) ++# ++# http://www.resmigazete.gov.tr/arsiv/18561.pdf (page 1 and 34) ++# At this time, Turkey is still on +3 with no spring-forward on early ++# 1984. This decision is published on 10/31/1984. Page 1 declares ++# the decision of reverting the "default longitude change". So the ++# standard time should go back to +3 (30E). And page 34 explains when ++# that will happen: 1984-11-01 02:00 -> 01:00. You can think of this ++# as "end of continuous summer time, change of standard time zone". ++# ++# http://www.resmigazete.gov.tr/arsiv/18713.pdf#page=1 ++# 1985-04-20 01:00 -> 02:00, 1985-09-28 02:00 -> 01:00 ++ + # From Kıvanç Yazan (2016-09-25): + # 1) For 1986-2006, DST started at 01:00 local and ended at 02:00 local, with + # no exceptions. + # 2) 1994's lastSun was overridden with Mar 20 ... + # Here are official papers: +-# http://www.resmigazete.gov.tr/arsiv/19032.pdf - page 2 for 1986 +-# http://www.resmigazete.gov.tr/arsiv/19400.pdf - page 4 for 1987 +-# http://www.resmigazete.gov.tr/arsiv/19752.pdf - page 15 for 1988 +-# http://www.resmigazete.gov.tr/arsiv/20102.pdf - page 6 for 1989 +-# http://www.resmigazete.gov.tr/arsiv/20464.pdf - page 1 for 1990 - 1992 +-# http://www.resmigazete.gov.tr/arsiv/21531.pdf - page 15 for 1993 - 1995 +-# http://www.resmigazete.gov.tr/arsiv/21879.pdf - page 1 for overriding 1994 +-# http://www.resmigazete.gov.tr/arsiv/22588.pdf - page 1 for 1996, 1997 +-# http://www.resmigazete.gov.tr/arsiv/23286.pdf - page 10 for 1998 - 2000 ++# http://www.resmigazete.gov.tr/arsiv/19032.pdf#page=2 for 1986 ++# http://www.resmigazete.gov.tr/arsiv/19400.pdf#page=4 for 1987 ++# http://www.resmigazete.gov.tr/arsiv/19752.pdf#page=15 for 1988 ++# http://www.resmigazete.gov.tr/arsiv/20102.pdf#page=6 for 1989 ++# http://www.resmigazete.gov.tr/arsiv/20464.pdf#page=1 for 1990 - 1992 ++# http://www.resmigazete.gov.tr/arsiv/21531.pdf#page=15 for 1993 - 1995 ++# http://www.resmigazete.gov.tr/arsiv/21879.pdf#page=1 for overriding 1994 ++# http://www.resmigazete.gov.tr/arsiv/22588.pdf#page=1 for 1996, 1997 ++# http://www.resmigazete.gov.tr/arsiv/23286.pdf#page=10 for 1998 - 2000 + # http://www.resmigazete.gov.tr/eskiler/2001/03/20010324.htm#2 - for 2001 + # http://www.resmigazete.gov.tr/eskiler/2002/03/20020316.htm#2 - for 2002-2006 + # From Paul Eggert (2016-09-25): +@@ -3747,46 +3835,36 @@ + Rule Turkey 1924 only - May 13 0:00 1:00 S + Rule Turkey 1924 1925 - Oct 1 0:00 0 - + Rule Turkey 1925 only - May 1 0:00 1:00 S +-Rule Turkey 1940 only - Jun 30 0:00 1:00 S +-Rule Turkey 1940 only - Oct 5 0:00 0 - ++Rule Turkey 1940 only - Jul 1 0:00 1:00 S ++Rule Turkey 1940 only - Oct 6 0:00 0 - + Rule Turkey 1940 only - Dec 1 0:00 1:00 S + Rule Turkey 1941 only - Sep 21 0:00 0 - + Rule Turkey 1942 only - Apr 1 0:00 1:00 S +-# Whitman omits the next two transition and gives 1945 Oct 1; +-# go with Shanks & Pottenger. +-Rule Turkey 1942 only - Nov 1 0:00 0 - +-Rule Turkey 1945 only - Apr 2 0:00 1:00 S + Rule Turkey 1945 only - Oct 8 0:00 0 - + Rule Turkey 1946 only - Jun 1 0:00 1:00 S + Rule Turkey 1946 only - Oct 1 0:00 0 - + Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S +-Rule Turkey 1947 1950 - Oct Sun>=2 0:00 0 - ++Rule Turkey 1947 1951 - Oct Sun>=2 0:00 0 - + Rule Turkey 1949 only - Apr 10 0:00 1:00 S +-Rule Turkey 1950 only - Apr 19 0:00 1:00 S ++Rule Turkey 1950 only - Apr 16 0:00 1:00 S + Rule Turkey 1951 only - Apr 22 0:00 1:00 S +-Rule Turkey 1951 only - Oct 8 0:00 0 - ++# DST for 15 months; unusual but we'll let it pass. + Rule Turkey 1962 only - Jul 15 0:00 1:00 S +-Rule Turkey 1962 only - Oct 8 0:00 0 - ++Rule Turkey 1963 only - Oct 30 0:00 0 - + Rule Turkey 1964 only - May 15 0:00 1:00 S + Rule Turkey 1964 only - Oct 1 0:00 0 - +-Rule Turkey 1970 1972 - May Sun>=2 0:00 1:00 S +-Rule Turkey 1970 1972 - Oct Sun>=2 0:00 0 - + Rule Turkey 1973 only - Jun 3 1:00 1:00 S +-Rule Turkey 1973 only - Nov 4 3:00 0 - ++Rule Turkey 1973 1976 - Oct Sun>=31 2:00 0 - + Rule Turkey 1974 only - Mar 31 2:00 1:00 S +-Rule Turkey 1974 only - Nov 3 5:00 0 - +-Rule Turkey 1975 only - Mar 30 0:00 1:00 S +-Rule Turkey 1975 1976 - Oct lastSun 0:00 0 - +-Rule Turkey 1976 only - Jun 1 0:00 1:00 S +-Rule Turkey 1977 1978 - Apr Sun>=1 0:00 1:00 S +-Rule Turkey 1977 only - Oct 16 0:00 0 - +-Rule Turkey 1979 1980 - Apr Sun>=1 3:00 1:00 S +-Rule Turkey 1979 1982 - Oct Mon>=11 0:00 0 - +-Rule Turkey 1981 1982 - Mar lastSun 3:00 1:00 S +-Rule Turkey 1983 only - Jul 31 0:00 1:00 S +-Rule Turkey 1983 only - Oct 2 0:00 0 - +-Rule Turkey 1985 only - Apr 20 0:00 1:00 S +-Rule Turkey 1985 only - Sep 28 0:00 0 - ++Rule Turkey 1975 only - Mar 22 2:00 1:00 S ++Rule Turkey 1976 only - Mar 21 2:00 1:00 S ++Rule Turkey 1977 1978 - Apr Sun>=1 2:00 1:00 S ++Rule Turkey 1977 1978 - Oct Sun>=15 2:00 0 - ++Rule Turkey 1978 only - Jun 29 0:00 0 - ++Rule Turkey 1983 only - Jul 31 2:00 1:00 S ++Rule Turkey 1983 only - Oct 2 2:00 0 - ++Rule Turkey 1985 only - Apr 20 1:00s 1:00 S ++Rule Turkey 1985 only - Sep 28 1:00s 0 - + Rule Turkey 1986 1993 - Mar lastSun 1:00s 1:00 S + Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 - + Rule Turkey 1994 only - Mar 20 1:00s 1:00 S +@@ -3795,8 +3873,8 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Europe/Istanbul 1:55:52 - LMT 1880 + 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? +- 2:00 Turkey EE%sT 1978 Oct 15 +- 3:00 Turkey +03/+04 1985 Apr 20 ++ 2:00 Turkey EE%sT 1978 Jun 29 ++ 3:00 Turkey +03/+04 1984 Nov 1 2:00 + 2:00 Turkey EE%sT 2007 + 2:00 EU EE%sT 2011 Mar 27 1:00u + 2:00 - EET 2011 Mar 28 1:00u +--- contrib/tzdata/leap-seconds.list.orig ++++ contrib/tzdata/leap-seconds.list +@@ -204,10 +204,10 @@ + # current -- the update time stamp, the data and the name of the file + # will not change. + # +-# Updated through IERS Bulletin C57 +-# File expires on: 28 December 2019 ++# Updated through IERS Bulletin C58 ++# File expires on: 28 June 2020 + # +-#@ 3786480000 ++#@ 3802291200 + # + 2272060800 10 # 1 Jan 1972 + 2287785600 11 # 1 Jul 1972 +@@ -252,4 +252,4 @@ + # the hash line is also ignored in the + # computation. + # +-#h 83c68138 d3650221 07dbbbcd 11fcc859 ced1106a ++#h f28827d2 f263b6c3 ec0f19eb a3e0dbf0 97f3fa30 +--- contrib/tzdata/leapseconds.orig ++++ contrib/tzdata/leapseconds +@@ -3,17 +3,21 @@ + # This file is in the public domain. + + # This file is generated automatically from the data in the public-domain +-# leap-seconds.list file, which can be copied from ++# NIST format leap-seconds.list file, which can be copied from + # <ftp://ftp.nist.gov/pub/time/leap-seconds.list> +-# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list> +-# or <ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.list>. ++# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>. + # For more about leap-seconds.list, please see + # The NTP Timescale and Leap Seconds + # <https://www.eecis.udel.edu/~mills/leap.html>. + +-# The International Earth Rotation and Reference Systems Service ++# The rules for leap seconds are specified in Annex 1 (Time scales) of: ++# Standard-frequency and time-signal emissions. ++# International Telecommunication Union - Radiocommunication Sector ++# (ITU-R) Recommendation TF.460-6 (02/2002) ++# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>. ++# The International Earth Rotation and Reference Systems Service (IERS) + # periodically uses leap seconds to keep UTC to within 0.9 s of UT1 +-# (which measures the true angular orientation of the earth in space) ++# (a proxy for Earth's angle in space as measured by astronomers) + # and publishes leap second data in a copyrighted file + # <https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat>. + # See: Levine J. Coordinated Universal Time and the leap second. +@@ -20,19 +24,18 @@ + # URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995 + # <https://ieeexplore.ieee.org/document/7909995>. + +-# There were no leap seconds before 1972, because the official mechanism +-# accounting for the discrepancy between atomic time and the earth's rotation +-# did not exist. The first ("1 Jan 1972") data line in leap-seconds.list ++# There were no leap seconds before 1972, as no official mechanism ++# accounted for the discrepancy between atomic time (TAI) and the earth's ++# rotation. The first ("1 Jan 1972") data line in leap-seconds.list + # does not denote a leap second; it denotes the start of the current definition + # of UTC. + +-# The correction (+ or -) is made at the given time, so lines +-# will typically look like: +-# Leap YEAR MON DAY 23:59:60 + R/S +-# or +-# Leap YEAR MON DAY 23:59:59 - R/S +- +-# If the leap second is Rolling (R) the given time is local time (unused here). ++# All leap-seconds are Stationary (S) at the given UTC time. ++# The correction (+ or -) is made at the given time, so in the unlikely ++# event of a negative leap second, a line would look like this: ++# Leap YEAR MON DAY 23:59:59 - S ++# Typical lines look like this: ++# Leap YEAR MON DAY 23:59:60 + S + Leap 1972 Jun 30 23:59:60 + S + Leap 1972 Dec 31 23:59:60 + S + Leap 1973 Dec 31 23:59:60 + S +@@ -62,8 +65,8 @@ + Leap 2016 Dec 31 23:59:60 + S + + # POSIX timestamps for the data in this file: +-#updated 1467936000 +-#expires 1577491200 ++#updated 1467936000 (2016-07-08 00:00:00 UTC) ++#expires 1593302400 (2020-06-28 00:00:00 UTC) + +-# Updated through IERS Bulletin C57 +-# File expires on: 28 December 2019 ++# Updated through IERS Bulletin C58 ++# File expires on: 28 June 2020 +--- contrib/tzdata/leapseconds.awk.orig ++++ contrib/tzdata/leapseconds.awk +@@ -1,7 +1,20 @@ +-# Generate the 'leapseconds' file from 'leap-seconds.list'. ++# Generate zic format 'leapseconds' from NIST format 'leap-seconds.list'. + + # This file is in the public domain. + ++# This program uses awk arithmetic. POSIX requires awk to support ++# exact integer arithmetic only through 10**10, which means for NTP ++# timestamps this program works only to the year 2216, which is the ++# year 1900 plus 10**10 seconds. However, in practice ++# POSIX-conforming awk implementations invariably use IEEE-754 double ++# and so support exact integers through 2**53. By the year 2216, ++# POSIX will almost surely require at least 2**53 for awk, so for NTP ++# timestamps this program should be good until the year 285,428,681 ++# (the year 1900 plus 2**53 seconds). By then leap seconds will be ++# long obsolete, as the Earth will likely slow down so much that ++# there will be more than 25 hours per day and so some other scheme ++# will be needed. ++ + BEGIN { + print "# Allowance for leap seconds added to each time zone file." + print "" +@@ -8,17 +21,21 @@ + print "# This file is in the public domain." + print "" + print "# This file is generated automatically from the data in the public-domain" +- print "# leap-seconds.list file, which can be copied from" ++ print "# NIST format leap-seconds.list file, which can be copied from" + print "# <ftp://ftp.nist.gov/pub/time/leap-seconds.list>" +- print "# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>" +- print "# or <ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.list>." ++ print "# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>." + print "# For more about leap-seconds.list, please see" + print "# The NTP Timescale and Leap Seconds" + print "# <https://www.eecis.udel.edu/~mills/leap.html>." + print "" +- print "# The International Earth Rotation and Reference Systems Service" ++ print "# The rules for leap seconds are specified in Annex 1 (Time scales) of:" ++ print "# Standard-frequency and time-signal emissions." ++ print "# International Telecommunication Union - Radiocommunication Sector" ++ print "# (ITU-R) Recommendation TF.460-6 (02/2002)" ++ print "# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>." ++ print "# The International Earth Rotation and Reference Systems Service (IERS)" + print "# periodically uses leap seconds to keep UTC to within 0.9 s of UT1" +- print "# (which measures the true angular orientation of the earth in space)" ++ print "# (a proxy for Earth's angle in space as measured by astronomers)" + print "# and publishes leap second data in a copyrighted file" + print "# <https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat>." + print "# See: Levine J. Coordinated Universal Time and the leap second." +@@ -25,19 +42,18 @@ + print "# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995" + print "# <https://ieeexplore.ieee.org/document/7909995>." + print "" +- print "# There were no leap seconds before 1972, because the official mechanism" +- print "# accounting for the discrepancy between atomic time and the earth's rotation" +- print "# did not exist. The first (\"1 Jan 1972\") data line in leap-seconds.list" ++ print "# There were no leap seconds before 1972, as no official mechanism" ++ print "# accounted for the discrepancy between atomic time (TAI) and the earth's" ++ print "# rotation. The first (\"1 Jan 1972\") data line in leap-seconds.list" + print "# does not denote a leap second; it denotes the start of the current definition" +- print"# of UTC." ++ print "# of UTC." + print "" +- print "# The correction (+ or -) is made at the given time, so lines" +- print "# will typically look like:" +- print "# Leap YEAR MON DAY 23:59:60 + R/S" +- print "# or" +- print "# Leap YEAR MON DAY 23:59:59 - R/S" +- print "" +- print "# If the leap second is Rolling (R) the given time is local time (unused here)." ++ print "# All leap-seconds are Stationary (S) at the given UTC time." ++ print "# The correction (+ or -) is made at the given time, so in the unlikely" ++ print "# event of a negative leap second, a line would look like this:" ++ print "# Leap YEAR MON DAY 23:59:59 - S" ++ print "# Typical lines look like this:" ++ print "# Leap YEAR MON DAY 23:59:60 + S" + + monthabbr[ 1] = "Jan" + monthabbr[ 2] = "Feb" +@@ -51,15 +67,14 @@ + monthabbr[10] = "Oct" + monthabbr[11] = "Nov" + monthabbr[12] = "Dec" +- for (i in monthabbr) { +- monthnum[monthabbr[i]] = i +- monthlen[i] = 31 +- } +- monthlen[2] = 28 +- monthlen[4] = monthlen[6] = monthlen[9] = monthlen[11] = 30 ++ ++ # Strip trailing CR, in case the input has CRLF form a la NIST. ++ RS = "\r?\n" ++ ++ sstamp_init() + } + +-/^#\tUpdated through/ || /^#\tFile expires on:/ { ++/^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ { + last_lines = last_lines $0 "\n" + } + +@@ -66,15 +81,11 @@ + /^#[$][ \t]/ { updated = $2 } + /^#[@][ \t]/ { expires = $2 } + +-/^#/ { next } ++/^[ \t]*#/ { next } + + { + NTP_timestamp = $1 + TAI_minus_UTC = $2 +- hash_mark = $3 +- one = $4 +- month = $5 +- year = $6 + if (old_TAI_minus_UTC) { + if (old_TAI_minus_UTC < TAI_minus_UTC) { + sign = "23:59:60\t+" +@@ -81,15 +92,9 @@ + } else { + sign = "23:59:59\t-" + } +- m = monthnum[month] - 1 +- if (m == 0) { +- year--; +- m = 12 +- } +- month = monthabbr[m] +- day = monthlen[m] +- day += m == 2 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) +- printf "Leap\t%s\t%s\t%s\t%s\tS\n", year, month, day, sign ++ sstamp_to_ymdhMs(NTP_timestamp - 1, ss_NTP) ++ printf "Leap\t%d\t%s\t%d\t%s\tS\n", \ ++ ss_year, monthabbr[ss_month], ss_mday, sign + } + old_TAI_minus_UTC = TAI_minus_UTC + } +@@ -102,7 +107,117 @@ + + print "" + print "# POSIX timestamps for the data in this file:" +- printf "#updated %s\n", updated - epoch_minus_NTP +- printf "#expires %s\n", expires - epoch_minus_NTP ++ sstamp_to_ymdhMs(updated, ss_NTP) ++ printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \ ++ updated - epoch_minus_NTP, \ ++ ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec ++ sstamp_to_ymdhMs(expires, ss_NTP) ++ printf "#expires %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \ ++ expires - epoch_minus_NTP, \ ++ ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec ++ + printf "\n%s", last_lines + } ++ ++# sstamp_to_ymdhMs - convert seconds timestamp to date and time ++# ++# Call as: ++# ++# sstamp_to_ymdhMs(sstamp, epoch_days) ++# ++# where: ++# ++# sstamp - is the seconds timestamp. ++# epoch_days - is the timestamp epoch in Gregorian days since 1600-03-01. ++# ss_NTP is appropriate for an NTP sstamp. ++# ++# Both arguments should be nonnegative integers. ++# On return, the following variables are set based on sstamp: ++# ++# ss_year - Gregorian calendar year ++# ss_month - month of the year (1-January to 12-December) ++# ss_mday - day of the month (1-31) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910230336.x9N3adA0063839>