diff --git a/Makefile b/Makefile index 8714c16..ce018ec 100644 --- a/Makefile +++ b/Makefile @@ -529,7 +529,7 @@ TZS_YEAR= 2050 TZS_CUTOFF_FLAG= -c $(TZS_YEAR) TZS= to$(TZS_YEAR).tzs TZS_NEW= to$(TZS_YEAR)new.tzs -TZS_DEPS= $(PRIMARY_YDATA) asctime.c localtime.c \ +TZS_DEPS= $(YDATA) asctime.c localtime.c \ private.h tzfile.h zdump.c zic.c # EIGHT_YARDS is just a yard short of the whole ENCHILADA. EIGHT_YARDS = $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) tzdata.zi diff --git a/NEWS b/NEWS index 6d1cd09..435a40f 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,23 @@ Unreleased, experimental changes (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.) + Merge timezones whose timestamps agree since 1970, since pre-1970 + timestamps are out of scope. This change does not affect + post-1970 timestamps, and timezone historians who build with 'make + PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. + When merging, keep the most-populous location's data, and move + data for other locations to 'backzone' with a backward + compatibility link in 'backward'. Also, merge timezones with + neither post-1970 clock changes nor alphabetic abbreviations into + their Etc counterparts. For example, move the Europe/Oslo data to + 'backzone' with a link in 'backward' from Europe/Berlin because + the two timezones' timestamps agree since 1970; this change + affects some pre-1966 timestamps in Europe/Oslo because Berlin and + Oslo disagreed before 1966. For another example, move the + Asia/Aden data to 'backzone' with a link in 'backward' from + Etc/GMT-3. Affected entries range from Africa/Abidjan to + Pacific/Yap. + Changes to maintenance procedure The new file SECURITY covers how to report security-related bugs. diff --git a/backzone b/backzone index 6c77378..b58f4d8 100644 --- a/backzone +++ b/backzone @@ -619,6 +619,8 @@ Zone America/Creston -7:46:04 - LMT 1884 Zone America/Curacao -4:35:47 - LMT 1912 Feb 12 # Willemstad -4:30 - -0430 1965 -4:00 - AST +Link America/Curacao America/Kralendijk +Link America/Curacao America/Lower_Princes # Dominica Zone America/Dominica -4:05:36 - LMT 1911 Jul 1 0:01 # Roseau @@ -763,6 +765,9 @@ Zone America/Nassau -5:09:30 - LMT 1912 Mar 2 # Trinidad and Tobago Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 -4:00 - AST +Link America/Port_of_Spain America/Marigot +Link America/Port_of_Spain America/St_Barthelemy +Link America/Port_of_Spain America/Virgin # Argentina # This entry was intended for the following areas, but has been superseded by @@ -1228,6 +1233,7 @@ Rule Iceland 1967 only - Oct 29 1:00s 0 - Zone Atlantic/Reykjavik -1:28 - LMT 1908 -1:00 Iceland -01/+00 1968 Apr 7 1:00s 0:00 - GMT +Link Atlantic/Reykjavik Iceland # South Georgia Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken @@ -1520,6 +1526,7 @@ Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 1:00 C-Eur CE%sT 1945 Apr 2 2:00 1:00 Norway CE%sT 1980 1:00 EU CE%sT +Link Europe/Oslo Arctic/Longyearbyen # Bosnia and Herzegovina Zone Europe/Sarajevo 1:13:40 - LMT 1884 @@ -1708,6 +1715,8 @@ Zone Pacific/Chuuk -13:52:52 - LMT 1844 Dec 31 10:00 - +10 1941 Apr 1 9:00 - +09 1945 Aug 10:00 - +10 +Link Pacific/Chuuk Pacific/Truk +Link Pacific/Chuuk Pacific/Yap # Tuvalu Zone Pacific/Funafuti 11:56:52 - LMT 1901 @@ -1767,6 +1776,7 @@ Zone Pacific/Pohnpei -13:27:08 - LMT 1844 Dec 31 # Kolonia 10:00 - +10 1941 Apr 1 9:00 - +09 1945 Aug 11:00 - +11 +Link Pacific/Pohnpei Pacific/Ponape # Papua New Guinea Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 diff --git a/etcetera b/etcetera index 1dc7411..dc21c4d 100644 --- a/etcetera +++ b/etcetera @@ -12,6 +12,8 @@ # Starting with POSIX 1003.1-2001, the entries below are all # unnecessary as settings for the TZ environment variable. E.g., # instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'. +# However, some entries are needed if 'backward' is used: +# for example, the 'backward' file links Etc/GMT to Africa/Abidjan. # # Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours # behind GMT but uses the completely misleading abbreviation "GMT". diff --git a/theory.html b/theory.html index 5251c96..47a7b2d 100644 --- a/theory.html +++ b/theory.html @@ -42,12 +42,13 @@ href="https://en.wikipedia.org/wiki/Unix_time">POSIX Epoch (1970-01-01 00:00:00 UTC). -The database labels each timezone with a notable location and -records all known clock transitions for that location. Although 1970 is a somewhat-arbitrary cutoff, there are significant challenges to moving the cutoff earlier even by a decade or two, due to the wide variety of local practices before computer timekeeping became prevalent. +Most timezones correspond to a notable location and the database +records all known clock transitions for that location; +some timezones correspond instead to a fixed UTC offset.

@@ -68,7 +70,7 @@ time but differs from other timezones for some timestamps after 1970.

-Clock transitions before 1970 are recorded for each timezone, +Clock transitions before 1970 are recorded for location-based timezones, because most systems support timestamps before 1970 and could misbehave if data entries were omitted for pre-1970 transitions. However, the database is not designed for and does not suffice for