git: 6852ad586e45 - releng/12.3 - contrib/tzdata: import tzdata 2022b and 2022c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 30 Aug 2022 23:15:37 UTC
The branch releng/12.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6852ad586e45b3a14bcf3efbac185502f161a913 commit 6852ad586e45b3a14bcf3efbac185502f161a913 Author: Philip Paeps <philip@FreeBSD.org> AuthorDate: 2022-08-11 02:48:24 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2022-08-30 23:02:07 +0000 contrib/tzdata: import tzdata 2022b and 2022c Changes: https://github.com/eggert/tz/blob/2022b/NEWS Changes: https://github.com/eggert/tz/blob/2022c/NEWS The tzdata2022b import restored the zoneinfo/GMT link. Don't delete it again with 'make delete-old'. (cherry picked from commit 9f9fc6bb8028ea29da6b04c338c750cedc3040f3) (cherry picked from commit f5d5282cf7d1181f933626dcdc3525db0d70a266) (cherry picked from commit 5f33eb7266f938857ce2fc9ea59679ea46a0694b) (cherry picked from commit 7fb15b35cc2299341bc423209b4c6586164b6b37) Approved by: so --- ObsoleteFiles.inc | 2 - contrib/tzdata/Makefile | 169 +++++++++---- contrib/tzdata/NEWS | 141 ++++++++++- contrib/tzdata/africa | 48 +--- contrib/tzdata/antarctica | 30 +-- contrib/tzdata/asia | 338 +++++++++++++------------ contrib/tzdata/australasia | 107 ++------ contrib/tzdata/backward | 18 +- contrib/tzdata/backzone | 514 +++++++++++++++++++++++++++++++++++++++ contrib/tzdata/calendars | 4 +- contrib/tzdata/etcetera | 10 +- contrib/tzdata/europe | 474 +++++++----------------------------- contrib/tzdata/leap-seconds.list | 8 +- contrib/tzdata/leapseconds | 8 +- contrib/tzdata/leapseconds.awk | 0 contrib/tzdata/northamerica | 21 +- contrib/tzdata/southamerica | 59 +++-- contrib/tzdata/theory.html | 40 +-- contrib/tzdata/version | 2 +- contrib/tzdata/ziguard.awk | 251 ++++++++++++++++--- contrib/tzdata/zishrink.awk | 62 ++++- contrib/tzdata/zone.tab | 4 +- contrib/tzdata/zone1970.tab | 75 +++--- 23 files changed, 1482 insertions(+), 903 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 71f7a17cf730..c5e16a0cf9b5 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -6737,8 +6737,6 @@ OLD_FILES+=etc/rc.firewall6 OLD_FILES+=usr/share/examples/etc/rc.firewall6 # 20091117: removal of rc.early(8) link OLD_FILES+=usr/share/man/man8/rc.early.8.gz -# 20091117: usr/share/zoneinfo/GMT link removed -OLD_FILES+=usr/share/zoneinfo/GMT # 20091027: pselect.3 implemented as syscall OLD_FILES+=usr/share/man/man3/pselect.3.gz # 20091005: fusword.9 and susword.9 removed diff --git a/contrib/tzdata/Makefile b/contrib/tzdata/Makefile index a9a989ecf394..b68f843d08ee 100644 --- a/contrib/tzdata/Makefile +++ b/contrib/tzdata/Makefile @@ -33,7 +33,7 @@ DATAFORM= main # make zonenames # to get a list of the values you can use for LOCALTIME. -LOCALTIME= GMT +LOCALTIME= Factory # The POSIXRULES macro controls interpretation of nonstandard and obsolete # POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules. @@ -176,12 +176,19 @@ TZDATA_TEXT= leapseconds tzdata.zi BACKWARD= backward -# If you want out-of-scope and often-wrong data from the file 'backzone', use +# If you want out-of-scope and often-wrong data from the file 'backzone', +# but only for entries listed in the backward-compatibility file zone.tab, use # PACKRATDATA= backzone +# PACKRATLIST= zone.tab +# If you want all the 'backzone' data, use +# PACKRATDATA= backzone +# PACKRATLIST= # To omit this data, use # PACKRATDATA= +# PACKRATLIST= PACKRATDATA= +PACKRATLIST= # 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. @@ -264,7 +271,7 @@ 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=strict -Wdate-time \ + -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \ -Wdeclaration-after-statement -Wdouble-promotion \ -Wduplicated-branches -Wduplicated-cond \ -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ @@ -278,7 +285,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ -Wsuggest-attribute=const -Wsuggest-attribute=format \ -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ - -Wtrampolines -Wundef -Wuninitialized -Wunused-macros \ + -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \ -Wvariadic-macros -Wvla -Wwrite-strings \ -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ -Wno-type-limits -Wno-unused-parameter @@ -291,8 +298,9 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this. # Similarly, if your system has a "zone abbreviation" field, define # -DTM_ZONE=tm_zone -# 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. +# and define NO_TM_ZONE to suppress any guessing. Although these two fields +# not required by POSIX, a future version of POSIX is planned to require them +# and they 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 @@ -448,6 +456,9 @@ UNUSUAL_OK_IPA = u̯ # useful in commentary. UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA) +# Put this in a bracket expression to match spaces. +s = [:space:] + # OK_CHAR matches any character allowed in the distributed files. # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and # multibyte letters are also allowed so that commentary can contain a @@ -521,21 +532,23 @@ TDATA= $(YDATA) $(NDATA) $(BACKWARD) ZONETABLES= zone1970.tab zone.tab TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES) LEAP_DEPS= leapseconds.awk leap-seconds.list -TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA) -DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) +TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) \ + $(PACKRATDATA) $(PACKRATLIST) +DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) $(PACKRATLIST) DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \ leapseconds $(ZONETABLES) AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \ ziguard.awk zishrink.awk -MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl +MISC= $(AWK_SCRIPTS) TZS_YEAR= 2050 TZS_CUTOFF_FLAG= -c $(TZS_YEAR) TZS= to$(TZS_YEAR).tzs TZS_NEW= to$(TZS_YEAR)new.tzs TZS_DEPS= $(YDATA) asctime.c localtime.c \ private.h tzfile.h zdump.c zic.c +TZDATA_DIST = $(COMMON) $(DATA) $(MISC) # EIGHT_YARDS is just a yard short of the whole ENCHILADA. -EIGHT_YARDS = $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) tzdata.zi +EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi ENCHILADA = $(EIGHT_YARDS) $(TZS) # Consult these files when deciding whether to rebuild the 'version' file. @@ -555,7 +568,7 @@ VERSION_DEPS= \ tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ workman.sh zdump.8 zdump.c zic.8 zic.c \ ziguard.awk zishrink.awk \ - zone.tab zone1970.tab zoneinfo2tdf.pl + zone.tab zone1970.tab # And for the benefit of csh users on systems that assume the user # shell should be used to handle commands in Makefiles. . . @@ -608,13 +621,17 @@ version: $(VERSION_DEPS) printf '%s\n' "$$V" >$@.out mv $@.out $@ -# These files can be tailored by setting BACKWARD and PACKRATDATA. +# These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST. vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) - $(AWK) -v DATAFORM=`expr $@ : '\(.*\).zi'` -f ziguard.awk \ + $(AWK) \ + -v DATAFORM=`expr $@ : '\(.*\).zi'` \ + -v PACKRATDATA='$(PACKRATDATA)' \ + -v PACKRATLIST='$(PACKRATLIST)' \ + -f ziguard.awk \ $(TDATA) $(PACKRATDATA) >$@.out mv $@.out $@ # This file has a version comment that attempts to capture any tailoring -# via BACKWARD, DATAFORM, PACKRATDATA, and REDO. +# via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO. tzdata.zi: $(DATAFORM).zi version zishrink.awk version=`sed 1q version` && \ LC_ALL=C $(AWK) \ @@ -652,6 +669,7 @@ INSTALLARGS = \ DESTDIR='$(DESTDIR)' \ LEAPSECONDS='$(LEAPSECONDS)' \ PACKRATDATA='$(PACKRATDATA)' \ + PACKRATLIST='$(PACKRATLIST)' \ TZDEFAULT='$(TZDEFAULT)' \ TZDIR='$(TZDIR)' \ ZIC='$(ZIC)' @@ -690,11 +708,6 @@ posix_right: posix_only $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only -# This obsolescent rule is present for backwards compatibility with -# tz releases 2014g through 2015g. It should go away eventually. -posix_packrat: $(INSTALL_DATA_DEPS) - $(MAKE) $(INSTALLARGS) PACKRATDATA=backzone posix_only - zones: $(REDO) # dummy.zd is not a real file; it is mentioned here only so that the @@ -755,8 +768,8 @@ tzselect: tzselect.ksh version mv $@.out $@ check: check_character_set check_white_space check_links \ - check_name_lengths check_sorted \ - check_tables check_web check_zishrink check_tzs + check_name_lengths check_slashed_abbrs check_sorted \ + check_tables check_web check_ziguard check_zishrink check_tzs check_character_set: $(ENCHILADA) test ! '$(UTF8_LOCALE)' || \ @@ -780,19 +793,28 @@ check_white_space: $(ENCHILADA) patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ ! grep -En "$$pat" \ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) - ! grep -n '[[:space:]]$$' \ + ! grep -n '[$s]$$' \ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) touch $@ -PRECEDES_FILE_NAME = ^(Zone|Link[[:space:]]+[^[:space:]]+)[[:space:]]+ -FILE_NAME_COMPONENT_TOO_LONG = \ - $(PRECEDES_FILE_NAME)[^[:space:]]*[^/[:space:]]{15} +PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+ +FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15} check_name_lengths: $(TDATA_TO_CHECK) backzone ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ $(TDATA_TO_CHECK) backzone touch $@ +PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+ +STDOFF = [-+]?[0-9:.]+ +RULELESS_SAVE = (-|$(STDOFF)[sd]?) +RULELESS_SLASHED_ABBRS = \ + $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ + +check_slashed_abbrs: $(TDATA_TO_CHECK) + ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) + touch $@ + 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 @@ -832,11 +854,19 @@ check_theory.html check_tz-art.html check_tz-how-to.html check_tz-link.html: test ! -s $@.out || { cat $@.out; exit 1; } mv $@.out $@ +check_ziguard: rearguard.zi vanguard.zi ziguard.awk + $(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \ + diff -u rearguard.zi - + $(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \ + diff -u vanguard.zi - + touch $@ + # Check that zishrink.awk does not alter the data, and that ziguard.awk # preserves main-format data. check_zishrink: check_zishrink_posix check_zishrink_right check_zishrink_posix check_zishrink_right: \ - zic leapseconds $(PACKRATDATA) $(TDATA) $(DATAFORM).zi tzdata.zi + zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \ + $(TDATA) $(DATAFORM).zi tzdata.zi rm -fr $@.dir $@-t.dir $@-shrunk.dir mkdir $@.dir $@-t.dir $@-shrunk.dir case $@ in \ @@ -845,8 +875,8 @@ check_zishrink_posix check_zishrink_right: \ esac && \ $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \ $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \ - case $(DATAFORM) in \ - main) \ + case $(DATAFORM),$(PACKRATLIST) in \ + main,) \ $(ZIC) $$leap -d $@-t.dir $(TDATA) && \ $(AWK) '/^Rule/' $(TDATA) | \ $(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \ @@ -967,6 +997,10 @@ check_public: $(VERSION_DEPS) rm public.dir/main.zi cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi public.dir/zic -d public.dir/zoneinfo main.zi + rm public.dir/main.zi + cd public.dir && \ + $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi + public.dir/zic -d public.dir/zoneinfo main.zi : rm -fr public.dir touch $@ @@ -1027,9 +1061,9 @@ REARGUARD_ASC = \ ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \ tzdb-$(VERSION).tar.lz.asc -tarballs rearguard_tarballs traditional_tarballs \ +tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \ signatures rearguard_signatures traditional_signatures: \ - version set-timestamps.out rearguard.zi + version set-timestamps.out rearguard.zi vanguard.zi VERSION=`cat version` && \ $(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version @@ -1042,6 +1076,8 @@ rearguard_tarballs_version: \ tzdata$(VERSION)-rearguard.tar.gz traditional_tarballs_version: \ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz +tailored_tarballs_version: \ + tzdata$(VERSION)-tailored.tar.gz signatures_version: $(ALL_ASC) rearguard_signatures_version: $(REARGUARD_ASC) traditional_signatures_version: $(TRADITIONAL_ASC) @@ -1055,34 +1091,76 @@ tzcode$(VERSION).tar.gz: set-timestamps.out tzdata$(VERSION).tar.gz: set-timestamps.out LC_ALL=C && export LC_ALL && \ - tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \ + tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \ gzip $(GZIPFLAGS) >$@.out mv $@.out $@ +# Create empty files with a reproducible timestamp. +CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00 + +# The obsolescent *rearguard* targets and related macros are present +# for backwards compatibility with tz releases 2018e through 2022a. +# They should go away eventually. To build rearguard tarballs you +# can instead use 'make DATAFORM=rearguard tailored_tarballs'. tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out - rm -fr tzdata$(VERSION)-rearguard.dir - mkdir tzdata$(VERSION)-rearguard.dir - ln $(COMMON) $(DATA) $(MISC) tzdata$(VERSION)-rearguard.dir - cd tzdata$(VERSION)-rearguard.dir && \ - rm -f $(TDATA) $(PACKRATDATA) version + rm -fr $@.dir + mkdir $@.dir + ln $(TZDATA_DIST) $@.dir + cd $@.dir && rm -f $(TDATA) $(PACKRATDATA) version for f in $(TDATA) $(PACKRATDATA); do \ - rearf=tzdata$(VERSION)-rearguard.dir/$$f; \ + rearf=$@.dir/$$f; \ $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \ $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \ done - sed '1s/$$/-rearguard/' \ - <version >tzdata$(VERSION)-rearguard.dir/version + sed '1s/$$/-rearguard/' <version >$@.dir/version : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. - TZ=UTC0 touch -mt 202010122253.00 \ - tzdata$(VERSION)-rearguard.dir/pacificnew - touch -cmr version tzdata$(VERSION)-rearguard.dir/version + $(CREATE_EMPTY) $@.dir/pacificnew + touch -cmr version $@.dir/version LC_ALL=C && export LC_ALL && \ - (cd tzdata$(VERSION)-rearguard.dir && \ + (cd $@.dir && \ tar $(TARFLAGS) -cf - \ - $(COMMON) $(DATA) $(MISC) pacificnew | \ + $(TZDATA_DIST) pacificnew | \ gzip $(GZIPFLAGS)) >$@.out mv $@.out $@ +# Create a tailored tarball suitable for TZUpdater and compatible tools. +# For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball +# useful for testing whether TZUpdater supports vanguard form. +# The generated tarball is not byte-for-byte equivalent to a hand-tailored +# traditional tarball, as data entries are put into 'etcetera' even if they +# came from some other source file. However, the effect should be the same +# for ordinary use, which reads all the source files. +tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out + rm -fr $@.dir + mkdir $@.dir + : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. + cd $@.dir && \ + $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \ + `test $(DATAFORM) = vanguard || echo pacificnew` + (grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \ + >$@.dir/etcetera + touch -cmr tzdata.zi $@.dir/etcetera + sed -n \ + -e '/^# *version *\(.*\)/h' \ + -e '/^# *ddeps */H' \ + -e '$$!d' \ + -e 'g' \ + -e 's/^# *version *//' \ + -e 's/\n# *ddeps */-/' \ + -e 's/ /-/g' \ + -e 'p' \ + <tzdata.zi >$@.dir/version + touch -cmr version $@.dir/version + links= && \ + for file in $(TZDATA_DIST); do \ + test -f $@.dir/$$file || links="$$links $$file"; \ + done && \ + ln $$links $@.dir + LC_ALL=C && export LC_ALL && \ + (cd $@.dir && \ + tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >$@.out + mv $@.out $@ + tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out rm -fr tzdb-$(VERSION) mkdir tzdb-$(VERSION) @@ -1134,13 +1212,14 @@ zic.o: private.h tzfile.h version.h .PHONY: check_web check_zishrink .PHONY: clean clean_misc dummy.zd force_tzs .PHONY: install install_data maintainer-clean names -.PHONY: posix_only posix_packrat posix_right public +.PHONY: posix_only posix_right public .PHONY: rearguard_signatures rearguard_signatures_version .PHONY: rearguard_tarballs rearguard_tarballs_version .PHONY: right_only right_posix signatures signatures_version .PHONY: tarballs tarballs_version .PHONY: traditional_signatures traditional_signatures_version .PHONY: traditional_tarballs traditional_tarballs_version +.PHONY: tailored_tarballs tailored_tarballs_version .PHONY: typecheck .PHONY: zonenames zones .PHONY: $(ZDS) diff --git a/contrib/tzdata/NEWS b/contrib/tzdata/NEWS index ae44be29ff58..c4abb32cd4dc 100644 --- a/contrib/tzdata/NEWS +++ b/contrib/tzdata/NEWS @@ -1,5 +1,140 @@ News for the tz database +Release 2022c - 2022-08-15 17:47:18 -0700 + + Briefly: + Work around awk bug in FreeBSD, macOS, etc. + Improve tzselect on intercontinental Zones. + + Changes to code + + Work around a bug in onetrueawk that broke commands like + 'make traditional_tarballs' on FreeBSD, macOS, etc. + (Problem reported by Deborah Goldsmith.) + + Add code to tzselect that uses experimental structured comments in + zone1970.tab to clarify whether Zones like Africa/Abidjan and + Europe/Istanbul cross continent or ocean boundaries. + (Inspired by a problem reported by Peter Krefting.) + + Fix bug with 'zic -d /a/b/c' when /a is unwritable but the + directory /a/b already exists. + + Remove zoneinfo2tdf.pl, as it was unused and triggered false + malware alarms on some email servers. + + +Release 2022b - 2022-08-10 15:38:32 -0700 + + Briefly: + Chile's DST is delayed by a week in September 2022. + Iran no longer observes DST after 2022. + Rename Europe/Kiev to Europe/Kyiv. + New zic -R option + Vanguard form now uses %z. + Finish moving duplicate-since-1970 zones to 'backzone'. + New build option PACKRATLIST + New tailored_tarballs target, replacing rearguard_tarballs + + Changes to future timestamps + + Chile's 2022 DST start is delayed from September 4 to September 11. + (Thanks to Juan Correa.) + + Iran plans to stop observing DST permanently, after it falls back + on 2022-09-21. (Thanks to Ali Mirjamali.) + + Changes to past timestamps + + Finish moving to 'backzone' the location-based zones whose + timestamps since 1970 are duplicates; adjust links accordingly. + This change ordinarily affects only pre-1970 timestamps, and with + the new PACKRATLIST option it does not affect any timestamps. + In this round the affected zones are Antarctica/Vostok, + Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik, + Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, + Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas, + Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion, + Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei, + Pacific/Wake and Pacific/Wallis, and the affected links are + Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape, + Pacific/Truk, and Pacific/Yap. + + From fall 1994 through fall 1995, Shanks wrote that Crimea's + DST transitions were at 02:00 standard time, not at 00:00. + (Thanks to Michael Deckers.) + + Iran adopted standard time in 1935, not 1946. In 1977 it observed + DST from 03-21 23:00 to 10-20 24:00; its 1978 transitions were on + 03-24 and 08-05, not 03-20 and 10-20; and its spring 1979 + transition was on 05-27, not 03-21. + (Thanks to Roozbeh Pournader and Francis Santoni.) + + Chile's observance of -04 from 1946-08-29 through 1947-03-31 was + considered DST, not standard time. Santiago and environs had moved + their clocks back to rejoin the rest of mainland Chile; put this + change at the end of 1946-08-28. (Thanks to Michael Deckers.) + + Some old, small clock transitions have been removed, as people at + the time did not change their clocks. This affects Asia/Hong_Kong + in 1904, Asia/Ho_Chi_Minh in 1906, and Europe/Dublin in 1880. + + Changes to zone name + + Rename Europe/Kiev to Europe/Kyiv, as "Kyiv" is more common in + English now. Spelling of other names in Ukraine has not yet + demonstrably changed in common English practice so for now these + names retain old spellings, as in other countries (e.g., + Europe/Prague not "Praha", and Europe/Sofia not "Sofiya"). + + Changes to code + + zic has a new option '-R @N' to output explicit transitions < N. + (Need suggested by Almaz Mingaleev.) + + 'zic -r @N' no longer outputs bad data when N < first transition. + (Problem introduced in 2021d and reported by Peter Krefting.) + + zic now checks its input for NUL bytes and unterminated lines, and + now supports input line lengths up to 2048 (not 512) bytes. + + gmtime and related code now use the abbreviation "UTC" not "GMT". + POSIX is being revised to require this. + + When tzset and related functions set vestigial static variables + like tzname, they now prefer specified timestamps to unspecified ones. + (Problem reported by Almaz Mingaleev.) + + zic no longer complains "can't determine time zone abbreviation to + use just after until time" when a transition to a new standard + time occurs simultaneously with the first DST fallback transition. + + Changes to build procedure + + Source data in vanguard form now uses the %z notation, introduced + in release 2015f. For example, for America/Sao_Paulo vanguard + form contains the zone continuation line "-3:00 Brazil %z", which + is simpler and more reliable than the line "-3:00 Brazil -03/-02" + used in main and rearguard forms. The plan is for the main form + to use %z eventually; in the meantime maintainers of zi parsers + are encouraged to test the parsers on vanguard.zi. + + The Makefile has a new PACKRATLIST option to select a subset of + 'backzone'. For example, 'make PACKRATDATA=backzone + PACKRATLIST=zone.tab' now generates TZif files identical to those + of the global-tz project. + + The Makefile has a new tailored_tarballs target for generating + special-purpose tarballs. It generalizes and replaces the + rearguard_tarballs target and related targets and macros, which + are now obsolescent. + + 'make install' now defaults LOCALTIME to Factory not GMT, + which means the default abbreviation is now "-00" not "GMT". + + Remove the posix_packrat target, marked obsolescent in 2016a. + + Release 2022a - 2022-03-15 23:02:01 -0700 Briefly: @@ -161,7 +296,7 @@ Release 2021b - 2021-09-24 16:23:00 -0700 Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in - that timezone. The old name is now a backward-compatility link. + that timezone. The old name is now a backward-compatibility link. Changes to past timestamps @@ -1315,7 +1450,7 @@ Release 2018b - 2018-01-17 23:24:48 -0800 Changes to build procedure The distribution now contains the file 'pacificnew' again. - This file was inadvertantly omitted in the 2018a distribution. + This file was inadvertently omitted in the 2018a distribution. (Problem reported by Matias Fonzo.) @@ -4387,7 +4522,7 @@ Release 2007a - 2007-01-08 12:28:29 -0500 changes by Paul Eggert - Derick Rethan's Asmara change + Derick Rethans's Asmara change Oscar van Vlijmen's Easter Island local mean time change diff --git a/contrib/tzdata/africa b/contrib/tzdata/africa index 4bf491e99d50..7cbd6b0ecd73 100644 --- a/contrib/tzdata/africa +++ b/contrib/tzdata/africa @@ -159,6 +159,7 @@ Link Africa/Abidjan Africa/Freetown # Sierra Leone Link Africa/Abidjan Africa/Lome # Togo Link Africa/Abidjan Africa/Nouakchott # Mauritania Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso +Link Africa/Abidjan Atlantic/Reykjavik # Iceland Link Africa/Abidjan Atlantic/St_Helena # St Helena # Djibouti @@ -169,7 +170,7 @@ Link Africa/Abidjan Atlantic/St_Helena # St Helena # Egypt # Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh -# observatory; round to nearest. Milne also says that the official time for +# observatory. Milne also says that the official time for # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this # did not apply to Cairo, Alexandria, or Port Said. @@ -354,6 +355,7 @@ Rule Egypt 2014 only - Jul 31 24:00 1:00 S Rule Egypt 2014 only - Sep lastThu 24:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] + #STDOFF 2:05:08.9 Zone Africa/Cairo 2:05:09 - LMT 1900 Oct 2:00 Egypt EE%sT @@ -407,7 +409,7 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u # At midnight on 30 June 1928 the clocks throughout Kenya was put forward # half an hour by the Alteration of Time Ordinance, 1928. # https://gazettes.africa/archive/ke/1928/ke-government-gazette-dated-1928-05-11-no-28.pdf -# [Ordinance No. 11 of 1928, The Offical Gazette, 1928-06-26, p 813] +# [Ordinance No. 11 of 1928, The Official Gazette, 1928-06-26, p 813] # https://books.google.com/books?id=2S0S6os32ZUC&pg=PA813 # # The 1928 ordinance was repealed by the Alteration of Time (repeal) Ordinance, @@ -1310,21 +1312,9 @@ Link Africa/Lagos Africa/Niamey # Niger Link Africa/Lagos Africa/Porto-Novo # Benin # Réunion -# Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis - 4:00 - +04 -# -# Scattered Islands (Îles Éparses) administered from Réunion are as follows. -# The following information about them is taken from -# Îles Éparses (<http://www.outre-mer.gouv.fr/domtom/ile.htm>, 1997-07-22, -# in French; no longer available as of 1999-08-17). -# We have no info about their time zone histories. +# See Asia/Dubai. # -# Bassas da India - uninhabited -# Europa Island - inhabited from 1905 to 1910 by two families -# Glorioso Is - inhabited until at least 1958 -# Juan de Nova - uninhabited -# Tromelin - inhabited until at least 1958 +# The Crozet Islands also observe Réunion time; see the 'antarctica' file. # Rwanda # See Africa/Maputo. @@ -1356,9 +1346,10 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis # From Michael Deckers (2018-12-30): # https://www.legis-palop.org/download.jsp?idFile=102818 # ... [The legal time of the country, which coincides with universal -# coordinated time, will be restituted at 2 o'clock on day 1 of January, 2019.] +# coordinated time, will be reinstituted at 2 o'clock on day 1 of January, 2019.] Zone Africa/Sao_Tome 0:26:56 - LMT 1884 + #STDOFF -0:36:44.68 -0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT 0:00 - GMT 2018 Jan 1 01:00 1:00 - WAT 2019 Jan 1 02:00 @@ -1368,28 +1359,7 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884 # See Africa/Abidjan. # Seychelles - -# From P Chan (2020-11-27): -# Standard Time was adopted on 1907-01-01. -# -# Standard Time Ordinance (Chapter 237) -# The Laws of Seychelles in Force on the 31st December, 1971, Vol. 6, p 571 -# https://books.google.com/books?id=efE-AQAAIAAJ&pg=PA571 -# -# From Tim Parenti (2020-12-05): -# A footnote on https://books.google.com/books?id=DYdDAQAAMAAJ&pg=PA1689 -# confirms that Ordinance No. 9 of 1906 "was brought into force on the 1st -# January, 1907." - -# Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Indian/Mahe 3:41:48 - LMT 1907 Jan 1 # Victoria - 4:00 - +04 -# From Paul Eggert (2001-05-30): -# Aldabra, Farquhar, and Desroches, originally dependencies of the -# Seychelles, were transferred to the British Indian Ocean Territory -# in 1965 and returned to Seychelles control in 1976. We don't know -# whether this affected their time zone, so omit this for now. -# Possibly the islands were uninhabited. +# See Asia/Dubai. # Sierra Leone # See Africa/Abidjan. diff --git a/contrib/tzdata/antarctica b/contrib/tzdata/antarctica index 70a5422a9e0a..dbdf20932f04 100644 --- a/contrib/tzdata/antarctica +++ b/contrib/tzdata/antarctica @@ -157,9 +157,7 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13 # St Paul Island - near Amsterdam, uninhabited # fishing stations operated variously 1819/1931 # -# Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français - 5:00 - +05 +# Kerguelen - see Indian/Maldives. # # year-round base in the main continent # Dumont d'Urville - see Pacific/Port_Moresby. @@ -242,31 +240,7 @@ Zone Antarctica/Troll 0 - -00 2005 Feb 12 # year-round from 1960/61 to 1992 # Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11 -# From Craig Mundell (1994-12-15): -# http://quest.arc.nasa.gov/antarctica/QA/computers/Directions,Time,ZIP -# Vostok, which is one of the Russian stations, is set on the same -# time as Moscow, Russia. -# -# From Lee Hotz (2001-03-08): -# I queried the folks at Columbia who spent the summer at Vostok and this is -# what they had to say about time there: -# "in the US Camp (East Camp) we have been on New Zealand (McMurdo) -# time, which is 12 hours ahead of GMT. The Russian Station Vostok was -# 6 hours behind that (although only 2 miles away, i.e. 6 hours ahead -# of GMT). This is a time zone I think two hours east of Moscow. The -# natural time zone is in between the two: 8 hours ahead of GMT." -# -# From Paul Eggert (2001-05-04): -# This seems to be hopelessly confusing, so I asked Lee Hotz about it -# in person. He said that some Antarctic locations set their local -# time so that noon is the warmest part of the day, and that this -# changes during the year and does not necessarily correspond to mean -# solar noon. So the Vostok time might have been whatever the clocks -# happened to be during their visit. So we still don't really know what time -# it is at Vostok. But we'll guess +06. -# -Zone Antarctica/Vostok 0 - -00 1957 Dec 16 - 6:00 - +06 +# See Asia/Urumqi. # S Africa - year-round bases # Marion Island, -4653+03752 diff --git a/contrib/tzdata/asia b/contrib/tzdata/asia index 049b35c148e5..6e3ea4b36e7e 100644 --- a/contrib/tzdata/asia +++ b/contrib/tzdata/asia @@ -255,10 +255,7 @@ Zone Indian/Chagos 4:49:40 - LMT 1907 6:00 - +06 # Brunei -# Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan - 7:30 - +0730 1933 - 8:00 - +08 +# See Asia/Kuching. # Burma / Myanmar @@ -276,6 +273,7 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon 6:30 - +0630 1942 May 9:00 - +09 1945 May 3 6:30 - +0630 +Link Asia/Yangon Indian/Cocos # Cambodia # See Asia/Bangkok. @@ -344,12 +342,9 @@ Rule Shang 1919 only - Sep 30 24:00 0 S # in the city at the time for people who use different time standard to adjust # their clock to their preferred time. # -# a. For the 1940 May 31 spring forward, the essay claim that it was -# coordinared between the international settlement authority and the French -# concession authority and have gathered support from Hong Kong and Xiamen, -# that it would spring forward an hour from May 31 "midnight", and the essay -# claim "Hong Kong government implemented the spring forward in the same time -# on the same date as Shanghai". +# a. For the 1940 May 31 spring forward, the essay [says] ... "Hong +# Kong government implemented the spring forward in the same time on +# the same date as Shanghai". # # b. For the 1940 fall back, it was said that they initially intended to do # so on September 30 00:59 at night, however they postponed it to October 12 @@ -545,7 +540,7 @@ Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D # Zhongyuan Time ("Central plain Time") UT +08 # Now part of Asia/Shanghai. # most of China -# Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. +# Milne gives 8:05:43.2 for Xujiahui Observatory time.... # Guo says Shanghai switched to UT +08 "from the end of the 19th century". # # Long-shu Time (probably as Long and Shu were two names of the area) UT +07 @@ -664,6 +659,7 @@ Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D # Zone NAME STDOFF RULES FORMAT [UNTIL] # Beijing time, used throughout China; represented by Shanghai. + #STDOFF 8:05:43.2 Zone Asia/Shanghai 8:05:43 - LMT 1901 8:00 Shang C%sT 1949 May 28 8:00 PRC C%sT @@ -671,11 +667,12 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901 # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) Zone Asia/Urumqi 5:50:20 - LMT 1928 6:00 - +06 +Link Asia/Urumqi Antarctica/Vostok # Hong Kong -# Milne gives 7:36:41.7; round this. +# Milne gives 7:36:41.7. # From Lee Yiu Chung (2009-10-24): # I found there are some mistakes for the...DST rule for Hong @@ -859,7 +856,8 @@ Rule HK 1973 only - Dec 30 3:30 1:00 S Rule HK 1979 only - May 13 3:30 1:00 S Rule HK 1979 only - Oct 21 3:30 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 0:36:42 + #STDOFF 7:36:41.7 +Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 29 17:00u 8:00 - HKT 1941 Jun 15 3:00 8:00 1:00 HKST 1941 Oct 1 4:00 8:00 0:30 HKWT 1941 Dec 25 @@ -1334,7 +1332,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata # # From Paul Eggert (2014-09-06): # The 1876 Report of the Secretary of the [US] Navy, p 306 says that Batavia -# civil time was 7:07:12.5; round to even for Jakarta. +# civil time was 7:07:12.5. # # From Gwillim Law (2001-05-28), overriding Shanks & Pottenger: # http://www.sumatera-inc.com/go_to_invest/about_indonesia.asp#standtime @@ -1370,10 +1368,11 @@ Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata # # Zone NAME STDOFF RULES FORMAT [UNTIL] # Java, Sumatra + #STDOFF 7:07:12.5 Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, # but this must be a typo. - 7:07:12 - BMT 1923 Dec 31 23:47:12 # Batavia + 7:07:12 - BMT 1923 Dec 31 16:40u # Batavia 7:20 - +0720 1932 Nov 7:30 - +0730 1942 Mar 23 9:00 - +09 1945 Sep 23 @@ -1405,6 +1404,111 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # Iran +# From Roozbeh Pournader (2022-05-30): +# Here's an order from the Cabinet to the rest of the government to switch to +# Tehran time, which is mentioned to be already at +03:30: +# https://qavanin.ir/Law/TreeText/180138 +# Just in case that goes away, I also saved a copy at archive.org: +# https://web.archive.org/web/20220530111940/https://qavanin.ir/Law/TreeText/180138 +# Here's my translation: +# +# "Circular on Matching the Hours of Governmental and Official Circles +# in Provinces +# Approved 1314/03/22 [=1935-06-13] +# According to the ruling of the Honorable Cabinet, it is ordered that from +# now on in all internal provinces of the country, governmental and official +# circles set their time to match Tehran time (three hours and half before +# Greenwich).... +# +# I still haven't found out when Tehran itself switched to +03:30.... +# +# From Paul Eggert (2022-06-05): +# Although the above says Tehran was at +03:30 before 1935-06-13, we don't +# know when it switched to +03:30. For now, use 1935-06-13 as the switch date. +# Although most likely wrong, we have no better info. + +# From Roozbeh Pournader (2022-06-01): +# This is from Kayhan newspaper, one of the major Iranian newspapers, from +# March 20, 1978, page 2: +# +# "Pull the clocks 60 minutes forward +# As we informed before, from the fourth day of the month Farvardin of the +# new year [=1978-03-24], clocks will be pulled forward, and people's daily +# work and life program will start one hour earlier than the current program. +# On the 1st day of the month Farvardin of this year [=1977-03-21], they had +# pulled the clocks forward by one hour, but in the month of Mehr +# [=1977-09-23], the clocks were pulled back by 30 minutes. +# In this way, from the 4th day of the month Farvardin, clocks will be ahead +# of the previous years by one hour and a half. +# According to the new program, during the night of 4th of Farvardin, when +# the midnight, meaning 24 o'clock is announced, the hands of the clock must +# be pulled forward by one hour and thus consider midnight 1 o'clock in the +# forenoon." +# +# This implies that in September 1977, when the daylight savings time was +# done with, Iran didn't go back to +03:30, but immediately to +04:00. +# +# +# This is from the major Iranian newspaper Ettela'at, dated [1978-08-03]..., +# page 32. It looks like they decided to get the clocks back to +4:00 +# just in time for Ramadan that year: +# +# "Tomorrow Night, Pull the Clocks Back by One Hour +# At 1 o'clock in the forenoon of Saturday 14 Mordad [=1978-08-05], the +# clocks will be pulled one hour back and instead of 1 o'clock in the +# forenoon, Radio Iran will announce 24 o'clock. +# This decision was made in the Cabinet of Ministers meeting of 25 Tir +# [=1978-07-16], [...] +# At the beginning of the year 2537 [=March 1978: Iran was using a different +# year number for a few years then, based on the Coronation of Cyrus the +# Great], the country's official time was pulled forward by one hour and now +# the official time is one hour and a half ahead compared to last year, +# because in Farvardin of last year [=March 1977], the official time was +# pulled forward one hour and this continued until the second half of last +# year [=September 1977] until in the second half of last year the official +# time was pulled back half an hour and that half hour still remains." +# +# This matches the time of the true noon published in the newspapers, as they +# clearly go from +05:00 to +04:00 after that date (which happened during a +# long weekend in Iran). + +# From Roozbeh Pournader (2022-05-31): +# [Movahedi S. Cultural preconceptions of time: Can we use operational time +# to meddle in God's Time? Comp Stud Soc Hist. 1985;27(3):385-400] +# https://www.jstor.org/stable/178704 +# Here's the quotes from the paper: +# 1. '"Iran's official time keeper moved the clock one hour forward as from +# March 22, 1977 (Farvardin 2, 2536) to make maximum use of daylight and save +# in energy consumption. Thus Iran joined such other countries as Britain in +# observing what is known as 'daylight saving.' The proposal was originally +# put forward by the Ministry of Energy, in no way having any influence on +# observing religious ceremonies. Moving time one hour forward in summer +# means that at 11:00 o'clock on March 21, the official time was set as +# midnight March 22. Then September 24 will actually begin one hour later +# than the end of September 23 [...]." Iran's time base thus continued to be +# Greenwich Mean Time plus three and one-half hours (plus four and one-half +# hours in summer).' +# +# The article sources this from Iran Almanac and Book of Facts, 1977, Tehran: +# Echo of Iran, which is on Google Books at +# https://www.google.com/books/edition/Iran_Almanac_and_Book_of_Facts/9ybVAAAAMAAJ. +# (I confirmed it by searching for snippets.) +# +# 2. "After the fall of the shah, the revolutionary government returned to +# daylight-saving time (DST) on 26 May 1979." +# +# This seems to have been announced just one day in advance, on 25 May 1979. +# +# The change in 1977 clearly seems to be the first daylight savings effort in +# Iran. But the article doesn't mention what happened in 1978 (which was +# still during the shah's government), or how things continued in 1979 +# onwards (which was during the Islamic Republic). + +# From Francis Santoni (2022-06-01): +# for Iran and 1977 the effective change is only 20 October +# (UIT No. 143 17.XI.1977) and not 23 September (UIT No. 141 13.IX.1977). +# UIT is the Operational Bulletin of International Telecommunication Union. + # From Roozbeh Pournader (2003-03-15): # This is an English translation of what I just found (originally in Persian). # The Gregorian dates in brackets are mine: @@ -1439,65 +1543,12 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # leap year calculation involved. There has never been any serious # plan to change that law.... # -# From Paul Eggert (2018-11-30): -# Go with Shanks & Pottenger before Sept. 1991, and with Pournader thereafter. -# I used the following code in GNU Emacs 26.1 to generate the "Rule Iran" -# lines from 2008 through 2087. Emacs 26.1 uses Ed Reingold's -# cal-persia implementation of Birashk's approximation, which in the -# 2008-2087 range disagrees with the astronomical Persian calendar -# for Persian years 1404 (Gregorian 2025) and 1437 (Gregorian 2058), so -# the following code special-cases those years. See Table 15.1, page 264, of: -# Edward M. Reingold and Nachum Dershowitz, Calendrical Calculations: -# The Ultimate Edition, Cambridge University Press (2018). -# https://www.cambridge.org/fr/academic/subjects/computer-science/computing-general-interest/calendrical-calculations-ultimate-edition-4th-edition -# Page 258, footnote 2, of this book says there is some dispute over what will -# happen in 2091 (and some other years after that), so this code -# stops in 2087, as 2088 and 2089 agree with the "max" rule below. *** 3210 LINES SKIPPED ***