mirror of
https://frontier.innolan.net/rainlance/amiga-tz.git
synced 2025-11-20 22:50:34 +00:00
New file 'pre1970' for zones that differ only in pre-1970 time stamps.
This lets us preserve information about pre-1970 time stamps when we change a Zone to a Link to another zone whose time stamps agree after 1970. This should address concerns about some recent changes that removed this information. This implementation is a stripped-down version of a suggestion by Andrew Main (Zefram) in <http://mm.icann.org/pipermail/tz/2013-August/019615.html> and <http://mm.icann.org/pipermail/tz/2013-August/019639.html> to allow filtering tz data by date range. Unlike Zefram's suggestion, this implementation supports only two date ranges, namely 1970 on, using 'make BACKWARD=backward'; and all dates, using 'make BACKWARD="pre1970 back-pre1970"'. At some point I'd like to improve it to support arbitrary date ranges, but at least we've now restored the data whose loss was of some concern. * .gitignore: Add back-pre1970. * Makefile (BACKWARD): New macro. (YDATA): Use it instead of 'backward'. (AWK_SCRIPTS): New macro, with additional script back-pre1970.awk. (MISC): Use it. (back-pre1970): New rule. (clean_misc): Clean back-pre1970. Also clean time.tab, while we're at it. (check_public): Don't require pre1970 to stand alone. * pre1970, back-pre1970.awk: New files.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,6 +4,7 @@
|
||||
*.txt
|
||||
*~
|
||||
ChangeLog
|
||||
back-pre1970
|
||||
date
|
||||
leapseconds
|
||||
time.tab
|
||||
|
||||
32
Makefile
32
Makefile
@ -49,6 +49,22 @@ POSIXRULES= America/New_York
|
||||
|
||||
ZONETABTYPE= zone
|
||||
|
||||
# How to support obsolescent time zones in a backward-compatible way.
|
||||
# This variable affects only pre-1970 time stamps, on hosts that support them.
|
||||
# It has two possible values, 'backward' and 'pre1970 back-pre1970'.
|
||||
#
|
||||
# 'backward' is the traditional approach, and is simpler and more efficient;
|
||||
# it is designed to generate one zone for each region where clocks have agreed
|
||||
# since 1970.
|
||||
#
|
||||
# 'pre1970 back-pre1970' can generate more than one zone in that situation,
|
||||
# which means it can preserve a bit of pre-1970 data that 'backward' does not;
|
||||
# almost all pre-1970 data is missing, though, so don't get your hopes up.
|
||||
#
|
||||
# Sometimes 'backward' is more-compatible with earlier versions of this database,
|
||||
# and sometimes 'pre1970 back-pre1970' is; it depends on the situation.
|
||||
BACKWARD= backward
|
||||
|
||||
# Also see TZDEFRULESTRING below, which takes effect only
|
||||
# if the time zone files cannot be accessed.
|
||||
|
||||
@ -322,7 +338,7 @@ COMMON= Makefile
|
||||
DOCS= README Theory $(MANS) date.1
|
||||
PRIMARY_YDATA= africa antarctica asia australasia \
|
||||
europe northamerica southamerica
|
||||
YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward
|
||||
YDATA= $(PRIMARY_YDATA) pacificnew etcetera $(BACKWARD)
|
||||
NDATA= systemv factory
|
||||
SDATA= solar87 solar88 solar89
|
||||
TDATA= $(YDATA) $(NDATA) $(SDATA)
|
||||
@ -330,9 +346,10 @@ TABDATA= iso3166.tab time.tab zone.tab
|
||||
DATA= $(YDATA) $(NDATA) $(SDATA) $(TABDATA) \
|
||||
leap-seconds.list yearistype.sh
|
||||
WEB_PAGES= tz-art.htm tz-link.htm
|
||||
AWK_SCRIPTS= back-pre1970.awk checktab.awk leapseconds.awk zone-time.awk
|
||||
MISC= usno1988 usno1989 usno1989a usno1995 usno1997 usno1998 \
|
||||
$(WEB_PAGES) checktab.awk leapseconds.awk workman.sh \
|
||||
zoneinfo2tdf.pl
|
||||
$(WEB_PAGES) $(AWK_SCRIPTS) \
|
||||
workman.sh zoneinfo2tdf.pl
|
||||
ENCHILADA= $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC)
|
||||
|
||||
# And for the benefit of csh users on systems that assume the user
|
||||
@ -423,6 +440,9 @@ zones: $(REDO)
|
||||
time.tab: $(YDATA) zone.tab zone-time.awk
|
||||
$(AWK) -f zone-time.awk $(YDATA) >$@
|
||||
|
||||
back-pre1970: pre1970 backward
|
||||
$(AWK) -v pre1970=pre1970 -f $@.awk backward >$@
|
||||
|
||||
$(TZLIB): $(LIBOBJS)
|
||||
-mkdir $(TOPDIR) $(LIBDIR)
|
||||
ar ru $@ $(LIBOBJS)
|
||||
@ -457,6 +477,7 @@ check_web: $(WEB_PAGES)
|
||||
|
||||
clean_misc:
|
||||
rm -f core *.o *.out \
|
||||
back-pre1970 time.tab \
|
||||
date leapseconds tzselect version.h zdump zic yearistype
|
||||
clean: clean_misc
|
||||
rm -f -r tzpublic
|
||||
@ -488,7 +509,7 @@ set-timestamps:
|
||||
$$cmd || exit; \
|
||||
done
|
||||
|
||||
# The zics below ensure that each data file can stand on its own.
|
||||
# The zics below ensure that each non-pre1970 data file can stand on its own.
|
||||
# We also do an all-files run to catch links to links.
|
||||
|
||||
check_public: $(ENCHILADA)
|
||||
@ -496,7 +517,8 @@ check_public: $(ENCHILADA)
|
||||
make "CFLAGS=$(GCC_DEBUG_FLAGS)"
|
||||
mkdir tzpublic
|
||||
for i in $(TDATA) ; do \
|
||||
$(zic) -v -d tzpublic $$i 2>&1 || exit; \
|
||||
test $$i = pre1970 || $(zic) -v -d tzpublic $$i 2>&1 \
|
||||
|| exit; \
|
||||
done
|
||||
$(zic) -v -d tzpublic $(TDATA)
|
||||
rm -f -r tzpublic
|
||||
|
||||
18
back-pre1970.awk
Normal file
18
back-pre1970.awk
Normal file
@ -0,0 +1,18 @@
|
||||
# Generate 'back-pre1970' from the two input files 'pre1970' and 'backward'.
|
||||
# The output consists of all lines in 'backward' that are not links to
|
||||
# files mentioned in 'pre1970'. Think of it as 'backward' minus 'pre1970'.
|
||||
|
||||
# The 'backward' file is the input.
|
||||
# The awk variable 'pre1970' contains the name of the pre1970 file.
|
||||
|
||||
# This file is in the public domain.
|
||||
|
||||
# Contributed by Paul Eggert.
|
||||
|
||||
BEGIN {
|
||||
while ((getline <pre1970) == 1)
|
||||
if ($1 == "Zone")
|
||||
pre1970_zone[$2] = 1
|
||||
}
|
||||
|
||||
! (/^Link/ && pre1970_zone[$3]) { print }
|
||||
291
pre1970
Normal file
291
pre1970
Normal file
@ -0,0 +1,291 @@
|
||||
# Pre-1970 data
|
||||
|
||||
# This file is in the public domain.
|
||||
|
||||
# This file contains zones that were formerly in other source files,
|
||||
# but were later removed or replaced by backward-compatibility links
|
||||
# as they differ from other zones only in pre-1970 time stamps.
|
||||
|
||||
# Although the tz database focuses on post-1970 time stamps, these
|
||||
# entries are retained here as they may be of some use to people
|
||||
# interested in pre-1970 time stamps, even though they cover only a
|
||||
# tiny sliver of pre-1970 data and are unreliable for that data.
|
||||
# Also, these entries can help with backward compatibility with some
|
||||
# old versions of the tz database. They are incompatible with other
|
||||
# old versions of the database, though; it depends on which old
|
||||
# version you're interested in.
|
||||
|
||||
# Entries are sorted by Zone name. Each entry is preceded by the name
|
||||
# of the country that the entry is in, along with any other commentary
|
||||
# and rules associated with the entry. Some rules, e.g., 'Canada',
|
||||
# are defined by other source files; this file is not intended to be
|
||||
# used without those other files.
|
||||
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
|
||||
# Mali
|
||||
# no longer different from Bamako, but too famous to omit
|
||||
Zone Africa/Timbuktu -0:12:04 - LMT 1912
|
||||
0:00 - GMT
|
||||
|
||||
# Anguilla
|
||||
Zone America/Anguilla -4:12:16 - LMT 1912 Mar 2
|
||||
-4:00 - AST
|
||||
|
||||
# Antigua and Barbuda
|
||||
Zone America/Antigua -4:07:12 - LMT 1912 Mar 2
|
||||
-5:00 - EST 1951
|
||||
-4:00 - AST
|
||||
|
||||
# Argentina
|
||||
# Chubut (CH)
|
||||
# The name "Comodoro Rivadavia" exceeds the 14-byte POSIX limit.
|
||||
Zone America/Argentina/ComodRivadavia -4:30:00 - LMT 1894 Oct 31
|
||||
-4:16:48 - CMT 1920 May
|
||||
-4:00 - ART 1930 Dec
|
||||
-4:00 Arg AR%sT 1969 Oct 5
|
||||
-3:00 Arg AR%sT 1991 Mar 3
|
||||
-4:00 - WART 1991 Oct 20
|
||||
-3:00 Arg AR%sT 1999 Oct 3
|
||||
-4:00 Arg AR%sT 2000 Mar 3
|
||||
-3:00 - ART 2004 Jun 1
|
||||
-4:00 - WART 2004 Jun 20
|
||||
-3:00 - ART
|
||||
|
||||
# Aruba
|
||||
Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad
|
||||
-4:30 - ANT 1965 # Netherlands Antilles Time
|
||||
-4:00 - AST
|
||||
|
||||
# Canada
|
||||
|
||||
Zone America/Atikokan -6:06:28 - LMT 1895
|
||||
-6:00 Canada C%sT 1940 Sep 29
|
||||
-6:00 1:00 CDT 1942 Feb 9 2:00s
|
||||
-6:00 Canada C%sT 1945 Sep 30 2:00
|
||||
-5:00 - EST
|
||||
|
||||
Zone America/Blanc-Sablon -3:48:28 - LMT 1884
|
||||
-4:00 Canada A%sT 1970
|
||||
-4:00 - AST
|
||||
|
||||
# Cayman Is
|
||||
Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
|
||||
-5:07:12 - KMT 1912 Feb # Kingston Mean Time
|
||||
-5:00 - EST
|
||||
|
||||
# Canada
|
||||
Zone America/Coral_Harbour -5:32:40 - LMT 1884
|
||||
-5:00 NT_YK E%sT 1946
|
||||
-5:00 - EST
|
||||
|
||||
# Curacao
|
||||
Zone America/Curacao -4:35:47 - LMT 1912 Feb 12 # Willemstad
|
||||
-4:30 - ANT 1965 # Netherlands Antilles Time
|
||||
-4:00 - AST
|
||||
|
||||
# Dominica
|
||||
Zone America/Dominica -4:05:36 - LMT 1911 Jul 1 0:01 # Roseau
|
||||
-4:00 - AST
|
||||
|
||||
# Mexico
|
||||
Zone America/Ensenada -7:46:28 - LMT 1922 Jan 1 0:13:32
|
||||
-8:00 - PST 1927 Jun 10 23:00
|
||||
-7:00 - MST 1930 Nov 16
|
||||
-8:00 - PST 1942 Apr
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1996
|
||||
-8:00 Mexico P%sT
|
||||
|
||||
# US
|
||||
Zone America/Fort_Wayne -5:00 US E%sT 1946
|
||||
-5:00 - EST # Always EST as of 1986
|
||||
|
||||
# Grenada
|
||||
Zone America/Grenada -4:07:00 - LMT 1911 Jul # St George's
|
||||
-4:00 - AST
|
||||
|
||||
# Guadeloupe
|
||||
Zone America/Guadeloupe -4:06:08 - LMT 1911 Jun 8 # Pointe a Pitre
|
||||
-4:00 - AST
|
||||
|
||||
# Canada
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Mont 1917 only - Mar 25 2:00 1:00 D
|
||||
Rule Mont 1917 only - Apr 24 0:00 0 S
|
||||
Rule Mont 1919 only - Mar 31 2:30 1:00 D
|
||||
Rule Mont 1919 only - Oct 25 2:30 0 S
|
||||
Rule Mont 1920 only - May 2 2:30 1:00 D
|
||||
Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S
|
||||
Rule Mont 1921 only - May 1 2:00 1:00 D
|
||||
Rule Mont 1922 only - Apr 30 2:00 1:00 D
|
||||
Rule Mont 1924 only - May 17 2:00 1:00 D
|
||||
Rule Mont 1924 1926 - Sep lastSun 2:30 0 S
|
||||
Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D
|
||||
# The 1927-to-1937 rules can be expressed more simply as
|
||||
# Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D
|
||||
# Rule Mont 1927 1937 - Sep lastSat 24:00 0 S
|
||||
# The rules below avoid use of 24:00
|
||||
# (which pre-1998 versions of zic cannot handle).
|
||||
Rule Mont 1927 only - May 1 0:00 1:00 D
|
||||
Rule Mont 1927 1932 - Sep lastSun 0:00 0 S
|
||||
Rule Mont 1928 1931 - Apr lastSun 0:00 1:00 D
|
||||
Rule Mont 1932 only - May 1 0:00 1:00 D
|
||||
Rule Mont 1933 1940 - Apr lastSun 0:00 1:00 D
|
||||
Rule Mont 1933 only - Oct 1 0:00 0 S
|
||||
Rule Mont 1934 1939 - Sep lastSun 0:00 0 S
|
||||
Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D
|
||||
Rule Mont 1945 1948 - Sep lastSun 2:00 0 S
|
||||
Rule Mont 1949 1950 - Oct lastSun 2:00 0 S
|
||||
Rule Mont 1951 1956 - Sep lastSun 2:00 0 S
|
||||
Rule Mont 1957 1973 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Montreal -4:54:16 - LMT 1884
|
||||
-5:00 Mont E%sT 1918
|
||||
-5:00 Canada E%sT 1919
|
||||
-5:00 Mont E%sT 1942 Feb 9 2:00s
|
||||
-5:00 Canada E%sT 1946
|
||||
-5:00 Mont E%sT 1974
|
||||
-5:00 Canada E%sT
|
||||
|
||||
# Montserrat
|
||||
Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill
|
||||
-4:00 - AST
|
||||
|
||||
# Bahamas
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S
|
||||
Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Nassau -5:09:30 - LMT 1912 Mar 2
|
||||
-5:00 Bahamas E%sT 1976
|
||||
-5:00 US E%sT
|
||||
|
||||
# Trinidad and Tobago
|
||||
Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2
|
||||
-4:00 - AST
|
||||
|
||||
# Brazil
|
||||
# Rio_Branco is too ambiguous, since there's a Rio Branco in Uruguay too.
|
||||
Zone America/Porto_Acre -4:31:12 - LMT 1914
|
||||
-5:00 Brazil AC%sT 1988 Sep 12
|
||||
-5:00 - ACT
|
||||
|
||||
# Argentina
|
||||
# Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
|
||||
# Formosa (FM), La Pampa (LP), Chubut (CH)
|
||||
Zone America/Rosario -4:02:40 - LMT 1894 Nov
|
||||
-4:16:44 - CMT 1920 May
|
||||
-4:00 - ART 1930 Dec
|
||||
-4:00 Arg AR%sT 1969 Oct 5
|
||||
-3:00 Arg AR%sT 1991 Jul
|
||||
-3:00 - ART 1999 Oct 3 0:00
|
||||
-4:00 Arg AR%sT 2000 Mar 3 0:00
|
||||
-3:00 - ART
|
||||
|
||||
# St Kitts-Nevis
|
||||
Zone America/St_Kitts -4:10:52 - LMT 1912 Mar 2 # Basseterre
|
||||
-4:00 - AST
|
||||
|
||||
# St Lucia
|
||||
Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries
|
||||
-4:04:00 - CMT 1912 # Castries Mean Time
|
||||
-4:00 - AST
|
||||
|
||||
# Virgin Is
|
||||
Zone America/St_Thomas -4:19:44 - LMT 1911 Jul # Charlotte Amalie
|
||||
-4:00 - AST
|
||||
|
||||
# St Vincent and the Grenadines
|
||||
Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown
|
||||
-4:04:56 - KMT 1912 # Kingstown Mean Time
|
||||
-4:00 - AST
|
||||
|
||||
# British Virgin Is
|
||||
Zone America/Tortola -4:18:28 - LMT 1911 Jul # Road Town
|
||||
-4:00 - AST
|
||||
|
||||
# McMurdo, Ross Island, since 1955-12
|
||||
Zone Antarctica/McMurdo 0 - zzz 1956
|
||||
12:00 NZAQ NZ%sT
|
||||
|
||||
# Japan
|
||||
Zone Asia/Ishigaki 8:16:36 - LMT 1896
|
||||
8:00 - CST
|
||||
|
||||
# Israel
|
||||
Zone Asia/Tel_Aviv 2:19:04 - LMT 1880
|
||||
2:21 - JMT 1918
|
||||
2:00 Zion I%sT
|
||||
|
||||
# Russia
|
||||
Zone Asia/Tomsk 5:39:52 - LMT 1924 May 2
|
||||
6:00 - TSK 1957 Mar
|
||||
7:00 Russia TS%s 1991 Mar 31 2:00s
|
||||
6:00 1:00 TSD 1991 Sep 29 2:00s
|
||||
6:00 - TSK 1992 Jan 19 2:00s
|
||||
7:00 Russia TS%s
|
||||
|
||||
# Svalbard & Jan Mayen
|
||||
Zone Atlantic/Jan_Mayen -1:00 - EGT
|
||||
|
||||
# Australia
|
||||
Zone Australia/Canberra 9:56:32 - LMT 1895 Feb
|
||||
10:00 - EST 1917 Jan 1 0:01
|
||||
10:00 Aus EST 1971 Oct 31 2:00
|
||||
10:00 AN EST 1981 Oct 25 2:00
|
||||
10:00 1:00 EST 1982 Apr 4 3:00
|
||||
10:00 AN EST
|
||||
|
||||
# UK
|
||||
Zone Europe/Belfast -0:23:40 - LMT 1880 Aug 2
|
||||
-0:25:21 - DMT 1916 May 21 2:00 # Dublin/Dunsink MT
|
||||
-0:25:21 1:00 IST 1916 Oct 1 2:00s # Irish Summer Time
|
||||
0:00 GB-Eire %s 1968 Oct 27
|
||||
1:00 - BST 1971 Oct 31 2:00u
|
||||
0:00 GB-Eire %s 1996
|
||||
0:00 EU GMT/BST
|
||||
|
||||
# Slovenia
|
||||
Zone Europe/Ljubljana 0:58:04 - LMT 1884
|
||||
1:00 - CET 1941 Apr 18 23:00
|
||||
1:00 C-Eur CE%sT 1945 May 8 2:00s
|
||||
1:00 1:00 CEST 1945 Sep 16 2:00s
|
||||
1:00 - CET 1982 Nov 27
|
||||
1:00 EU CE%sT
|
||||
|
||||
# Bosnia and Herzegovina
|
||||
Zone Europe/Sarajevo 1:13:40 - LMT 1884
|
||||
1:00 - CET 1941 Apr 18 23:00
|
||||
1:00 C-Eur CE%sT 1945 May 8 2:00s
|
||||
1:00 1:00 CEST 1945 Sep 16 2:00s
|
||||
1:00 - CET 1982 Nov 27
|
||||
1:00 EU CE%sT
|
||||
|
||||
# Macedonia
|
||||
Zone Europe/Skopje 1:25:44 - LMT 1884
|
||||
1:00 - CET 1941 Apr 18 23:00
|
||||
1:00 C-Eur CE%sT 1945 May 8 2:00s
|
||||
1:00 1:00 CEST 1945 Sep 16 2:00s
|
||||
1:00 - CET 1982 Nov 27
|
||||
1:00 EU CE%sT
|
||||
|
||||
# Moldova
|
||||
Zone Europe/Tiraspol 1:58:32 - LMT 1880
|
||||
1:55 - CMT 1918 Feb 15 # Chisinau MT
|
||||
1:44:24 - BMT 1931 Jul 24 # Bucharest MT
|
||||
2:00 Romania EE%sT 1940 Aug 15
|
||||
2:00 1:00 EEST 1941 Jul 17
|
||||
1:00 C-Eur CE%sT 1944 Aug 24
|
||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00
|
||||
2:00 Russia EE%sT 1992 Jan 19 2:00
|
||||
3:00 Russia MSK/MSD
|
||||
|
||||
# Croatia
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Europe/Zagreb 1:03:52 - LMT 1884
|
||||
1:00 - CET 1941 Apr 18 23:00
|
||||
1:00 C-Eur CE%sT 1945 May 8 2:00s
|
||||
1:00 1:00 CEST 1945 Sep 16 2:00s
|
||||
1:00 - CET 1982 Nov 27
|
||||
1:00 EU CE%sT
|
||||
Reference in New Issue
Block a user