git: e86b610b8744 - releng/13.1 - contrib/tzdata: import tzdata 2022b and 2022c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 30 Aug 2022 23:14:40 UTC
The branch releng/13.1 has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=e86b610b8744988dd4ede0f190676a15b652da03
commit e86b610b8744988dd4ede0f190676a15b652da03
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:48 +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 f7cb47731675828d27ebd55c9fc46953ee168d48)
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 aa2923bb1b12..4fd80bedbe9f 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -9640,8 +9640,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 ***