Merge tzcode-2021a
- No comments in the changelog about the code changes.
This commit is contained in:
parent
55daaba23c
commit
234ed2b238
|
@ -583,11 +583,19 @@ INSTALL: ALL install date.1
|
|||
cp date '$(DESTDIR)$(BINDIR)/.'
|
||||
cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.'
|
||||
|
||||
# Calculate version number from git, if available.
|
||||
# Otherwise, use $(VERSION) unless it is "unknown" and there is already
|
||||
# a 'version' file, in which case reuse the existing 'version' contents
|
||||
# and append "-dirty" if the contents do not already end in "-dirty".
|
||||
version: $(VERSION_DEPS)
|
||||
{ (type git) >/dev/null 2>&1 && \
|
||||
V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
|
||||
--abbrev=7 --dirty` || \
|
||||
V='$(VERSION)'; } && \
|
||||
if test '$(VERSION)' = unknown && V=`cat $@`; then \
|
||||
case $$V in *-dirty);; *) V=$$V-dirty;; esac; \
|
||||
else \
|
||||
V='$(VERSION)'; \
|
||||
fi; } && \
|
||||
printf '%s\n' "$$V" >$@.out
|
||||
mv $@.out $@
|
||||
|
||||
|
@ -872,11 +880,34 @@ $(MANTXTS): workman.sh
|
|||
LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out
|
||||
mv $@.out $@
|
||||
|
||||
# Set file timestamps deterministically if possible,
|
||||
# so that tarballs containing the timestamps are reproducible.
|
||||
#
|
||||
# '$(SET_TIMESTAMP_N) N DEST A B C ...' sets the timestamp of the
|
||||
# file DEST to the maximum of the timestamps of the files A B C ...,
|
||||
# plus N if GNU ls and touch are available.
|
||||
SET_TIMESTAMP_N = sh -c '\
|
||||
n=$$0 dest=$$1; shift; \
|
||||
touch -cmr `ls -t "$$@" | sed 1q` "$$dest" && \
|
||||
if test $$n != 0 && \
|
||||
lsout=`ls -n --time-style="+%s" "$$dest" 2>/dev/null`; then \
|
||||
set x $$lsout && \
|
||||
touch -cmd @`expr $$7 + $$n` "$$dest"; \
|
||||
else :; fi'
|
||||
# If DEST depends on A B C ... in this Makefile, callers should use
|
||||
# $(SET_TIMESTAMP_DEP) DEST A B C ..., for the benefit of any
|
||||
# downstream 'make' that considers equal timestamps to be out of date.
|
||||
# POSIX allows this 'make' behavior, and HP-UX 'make' does it.
|
||||
# If all that matters is that the timestamp be reproducible
|
||||
# and plausible, use $(SET_TIMESTAMP).
|
||||
SET_TIMESTAMP = $(SET_TIMESTAMP_N) 0
|
||||
SET_TIMESTAMP_DEP = $(SET_TIMESTAMP_N) 1
|
||||
|
||||
# Set the timestamps to those of the git repository, if available,
|
||||
# and if the files have not changed since then.
|
||||
# This uses GNU 'touch' syntax 'touch -d@N FILE',
|
||||
# where N is the number of seconds since 1970.
|
||||
# If git or GNU 'touch' is absent, don't bother to sync with git timestamps.
|
||||
# This uses GNU 'ls --time-style=+%s', which outputs the seconds count,
|
||||
# and GNU 'touch -d@N FILE', where N is the number of seconds since 1970.
|
||||
# If git or GNU is absent, don't bother to sync with git timestamps.
|
||||
# Also, set the timestamp of each prebuilt file like 'leapseconds'
|
||||
# to be the maximum of the files it depends on.
|
||||
set-timestamps.out: $(EIGHT_YARDS)
|
||||
|
@ -894,16 +925,16 @@ set-timestamps.out: $(EIGHT_YARDS)
|
|||
fi || exit; \
|
||||
done; \
|
||||
fi
|
||||
touch -cmr `ls -t $(LEAP_DEPS) | sed 1q` leapseconds
|
||||
$(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS)
|
||||
for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \
|
||||
touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \
|
||||
$(SET_TIMESTAMP_DEP) $$file.txt $$file workman.sh || \
|
||||
exit; \
|
||||
done
|
||||
touch -cmr `ls -t $(TZDATA_ZI_DEPS) | sed 1q` tzdata.zi
|
||||
touch -cmr `ls -t $(VERSION_DEPS) | sed 1q` version
|
||||
$(SET_TIMESTAMP_DEP) version $(VERSION_DEPS)
|
||||
$(SET_TIMESTAMP_DEP) tzdata.zi $(TZDATA_ZI_DEPS)
|
||||
touch $@
|
||||
set-tzs-timestamp.out: $(TZS)
|
||||
touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS)
|
||||
$(SET_TIMESTAMP_DEP) $(TZS) $(TZS_DEPS)
|
||||
touch $@
|
||||
|
||||
# The zics below ensure that each data file can stand on its own.
|
||||
|
@ -914,7 +945,10 @@ check_public: $(VERSION_DEPS)
|
|||
mkdir public.dir
|
||||
ln $(VERSION_DEPS) public.dir
|
||||
cd public.dir && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' ALL
|
||||
for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi; do \
|
||||
for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi \
|
||||
public.dir/vanguard.zi public.dir/main.zi \
|
||||
public.dir/rearguard.zi; \
|
||||
do \
|
||||
public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \
|
||||
done
|
||||
public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK)
|
||||
|
@ -981,7 +1015,7 @@ tarballs rearguard_tarballs traditional_tarballs \
|
|||
signatures rearguard_signatures traditional_signatures: \
|
||||
version set-timestamps.out rearguard.zi
|
||||
VERSION=`cat version` && \
|
||||
$(MAKE) VERSION="$$VERSION" $@_version
|
||||
$(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version
|
||||
|
||||
# These *_version rules are intended for use if VERSION is set by some
|
||||
# other means. Ordinarily these rules are used only by the above
|
||||
|
@ -1018,12 +1052,12 @@ tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out
|
|||
for f in $(TDATA) $(PACKRATDATA); do \
|
||||
rearf=tzdata$(VERSION)-rearguard.dir/$$f; \
|
||||
$(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \
|
||||
touch -cmr `ls -t ziguard.awk $$f` $$rearf || exit; \
|
||||
$(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \
|
||||
done
|
||||
sed '1s/$$/-rearguard/' \
|
||||
<version >tzdata$(VERSION)-rearguard.dir/version
|
||||
: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
|
||||
touch -md 2020-10-12T22:53:00Z \
|
||||
TZ=UTC0 touch -mt 202010122253.00 \
|
||||
tzdata$(VERSION)-rearguard.dir/pacificnew
|
||||
touch -cmr version tzdata$(VERSION)-rearguard.dir/version
|
||||
LC_ALL=C && export LC_ALL && \
|
||||
|
@ -1037,7 +1071,7 @@ tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out
|
|||
rm -fr tzdb-$(VERSION)
|
||||
mkdir tzdb-$(VERSION)
|
||||
ln $(ENCHILADA) tzdb-$(VERSION)
|
||||
touch -cmr `ls -t tzdb-$(VERSION)/* | sed 1q` tzdb-$(VERSION)
|
||||
$(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/*
|
||||
LC_ALL=C && export LC_ALL && \
|
||||
tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out
|
||||
mv $@.out $@
|
||||
|
@ -1079,8 +1113,6 @@ strftime.o: private.h tzfile.h
|
|||
zdump.o: version.h
|
||||
zic.o: private.h tzfile.h version.h
|
||||
|
||||
.KEEP_STATE:
|
||||
|
||||
.PHONY: ALL INSTALL all
|
||||
.PHONY: check check_time_t_alternatives
|
||||
.PHONY: check_web check_zishrink
|
||||
|
|
|
@ -1,5 +1,85 @@
|
|||
News for the tz database
|
||||
|
||||
Release 2021a - 2021-01-24 10:54:57 -0800
|
||||
|
||||
Changes to future timestamps
|
||||
|
||||
South Sudan changes from +03 to +02 on 2021-02-01 at 00:00.
|
||||
(Thanks to Steffen Thorsen.)
|
||||
|
||||
|
||||
Release 2020f - 2020-12-29 00:17:46 -0800
|
||||
|
||||
Change to build procedure
|
||||
|
||||
'make rearguard_tarballs' no longer generates a bad rearguard.zi,
|
||||
fixing a 2020e bug. (Problem reported by Deborah Goldsmith.)
|
||||
|
||||
|
||||
Release 2020e - 2020-12-22 15:14:34 -0800
|
||||
|
||||
Briefly:
|
||||
Volgograd switches to Moscow time on 2020-12-27 at 02:00.
|
||||
|
||||
Changes to future timestamps
|
||||
|
||||
Volgograd changes time zone from +04 to +03 on 2020-12-27 at 02:00.
|
||||
(Thanks to Alexander Krivenyshev and Stepan Golosunov.)
|
||||
|
||||
Changes to past timestamps
|
||||
|
||||
Correct many pre-1986 transitions, fixing entries originally
|
||||
derived from Shanks. The fixes include:
|
||||
- Australia: several 1917 through 1971 transitions
|
||||
- Bahamas: several 1941 through 1945 transitions
|
||||
- Bermuda: several 1917 through 1956 transitions
|
||||
- Belize: several 1942 through 1968 transitions
|
||||
- Ghana: several 1915 through 1956 transitions
|
||||
- Israel and Palestine: several 1940 through 1985 transitions
|
||||
- Kenya and adjacent: several 1908 through 1960 transitions
|
||||
- Nigeria and adjacent: correcting LMT in Lagos, and several 1905
|
||||
through 1919 transitions
|
||||
- Seychelles: the introduction of standard time in 1907, not 1906
|
||||
- Vanuatu: DST in 1973-1974, and a corrected 1984 transition
|
||||
(Thanks to P Chan.)
|
||||
|
||||
Because of the Australia change, Australia/Currie (King Island) is
|
||||
no longer needed, as it is identical to Australia/Hobart for all
|
||||
timestamps since 1970 and was therefore created by mistake.
|
||||
Australia/Currie has been moved to the 'backward' file and its
|
||||
corrected data moved to the 'backzone' file.
|
||||
|
||||
Changes to past time zone abbreviations and DST flags
|
||||
|
||||
To better match legislation in Turks and Caicos, the 2015 shift to
|
||||
year-round observance of -04 is now modeled as AST throughout before
|
||||
returning to Eastern Time with US DST in 2018, rather than as
|
||||
maintaining EDT until 2015-11-01. (Thanks to P Chan.)
|
||||
|
||||
Changes to documentation
|
||||
|
||||
The zic man page now documents zic's coalescing of transitions
|
||||
when a zone falls back just before DST springs forward.
|
||||
|
||||
|
||||
Release 2020d - 2020-10-21 11:24:13 -0700
|
||||
|
||||
Briefly:
|
||||
Palestine ends DST earlier than predicted, on 2020-10-24.
|
||||
|
||||
Changes to past and future timestamps
|
||||
|
||||
Palestine ends DST on 2020-10-24 at 01:00, instead of 2020-10-31
|
||||
as previously predicted (thanks to Sharef Mustafa.) Its
|
||||
2019-10-26 fall-back was at 00:00, not 01:00 (thanks to Steffen
|
||||
Thorsen.) Its 2015-10-23 transition was at 01:00 not 00:00, and
|
||||
its spring 2020 transition was on March 28 at 00:00, not March 27
|
||||
(thanks to Pierre Cashon.) This affects Asia/Gaza and
|
||||
Asia/Hebron. Assume future spring and fall transitions will be on
|
||||
the Saturday preceding the last Sunday of March and October,
|
||||
respectively.
|
||||
|
||||
|
||||
Release 2020c - 2020-10-16 11:15:53 -0700
|
||||
|
||||
Briefly:
|
||||
|
|
|
@ -474,8 +474,8 @@ in decreasing order of importance:
|
|||
<p>
|
||||
<small>These abbreviations are:
|
||||
AMT Amsterdam, Asunción, Athens;
|
||||
BMT Baghdad, Bangkok, Batavia, Bern, Bogotá, Bridgetown, Brussels,
|
||||
Bucharest;
|
||||
BMT Baghdad, Bangkok, Batavia, Bermuda, Bern, Bogotá, Bridgetown,
|
||||
Brussels, Bucharest;
|
||||
CMT Calamarca, Caracas, Chisinau, Colón, Copenhagen, Córdoba;
|
||||
DMT Dublin/Dunsink;
|
||||
EMT Easter;
|
||||
|
@ -506,6 +506,7 @@ in decreasing order of importance:
|
|||
<small>A few abbreviations also follow the pattern that
|
||||
<abbr>GMT</abbr>/<abbr>BST</abbr> established for time in the UK.
|
||||
They are:
|
||||
BMT/BST for Bermuda 1890–1930,
|
||||
CMT/BST for Calamarca Mean Time and Bolivian Summer Time
|
||||
1890–1932,
|
||||
DMT/IST for Dublin/Dunsink Mean Time and Irish Summer Time
|
||||
|
|
|
@ -22,6 +22,10 @@ into problems that programmers have with timekeeping.</li>
|
|||
Explaining The Mysteries Of Time Zones</a>" (2017; 2:15)
|
||||
briefly says why France has more time zones than Russia.
|
||||
<li>
|
||||
"<a href="https://www.youtube.com/watch?v=yRz-Dl60Lfc">Why Denmark is
|
||||
.17 Seconds Behind The World</a>" (2019; 6:29) explains why Denmark and
|
||||
the United Kingdom don't exactly follow their own law about civil time.
|
||||
<li>
|
||||
"About Time" (1962; 59 minutes) is part of the
|
||||
Bell Science extravaganza, with Frank Baxter, Richard Deacon, and Les Tremayne.
|
||||
Its advisor was Richard Feynman, and it was voiced by Mel Blanc.
|
||||
|
|
|
@ -245,13 +245,12 @@ href="https://play.google.com/store/apps/details?id=com.google.android.timezone.
|
|||
<a
|
||||
href="http://userguide.icu-project.org/datetime/timezone"><abbr
|
||||
title="International Components for Unicode">ICU</abbr></a>,
|
||||
<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr></a>
|
||||
and <a
|
||||
href="https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">Oracle</a>
|
||||
Java, <a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
|
||||
<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr>
|
||||
JDK</a>,
|
||||
<a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
|
||||
href="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
|
||||
and <a
|
||||
href="https://nodatime.org/userguide/tzdb">Noda Time</a> (see below).
|
||||
<a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a
|
||||
href="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html#usage">OpenJDK/Oracle JDK</a>.
|
||||
</p>
|
||||
<p>Sources for the <code><abbr>tz</abbr></code> database are
|
||||
<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
|
||||
|
@ -353,12 +352,7 @@ transferring time zone data by reference.
|
|||
<a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST
|
||||
implementations</a> are available.
|
||||
The <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis
|
||||
mailing list</a> discussed the Internet draft <a
|
||||
id="TZDIST-Geolocate"
|
||||
href="https://tools.ietf.org/html/draft-murchison-tzdist-geolocate">TZDIST
|
||||
Geolocate Extension</a> (now expired), which let a client determine its timezone
|
||||
from its geographic location using a <a
|
||||
href="https://tools.ietf.org/html/rfc5870">'geo' URI</a>.</li>
|
||||
mailing list</a> discusses possible extensions.</li>
|
||||
<li>The <a href="https://tools.ietf.org/html/rfc5545">
|
||||
Internet Calendaring and Scheduling Core Object Specification
|
||||
(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
|
||||
|
@ -411,11 +405,11 @@ transition in the <code><abbr>tz</abbr></code> database.</li>
|
|||
<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
|
||||
Database Parser</a> is a
|
||||
<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> parser and
|
||||
runtime library with API <a
|
||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">adopted
|
||||
into the draft standard</a> for
|
||||
runtime library with <a
|
||||
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">API</a>
|
||||
adopted by
|
||||
<a href="https://en.wikipedia.org/wiki/C++20">C++20</a>,
|
||||
the next iteration of the C++ standard.
|
||||
the current iteration of the C++ standard.
|
||||
It is freely available under the
|
||||
<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
|
||||
<li><a id="ICU" href="http://site.icu-project.org">International Components for
|
||||
|
@ -436,9 +430,13 @@ freely available under the <abbr>MIT</abbr> license.</li>
|
|||
<li>Java-based compilers and libraries include:
|
||||
<ul>
|
||||
<li>The <a
|
||||
href="https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater
|
||||
href="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater
|
||||
tool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
|
||||
Oracle Java.</li>
|
||||
<a href="https://openjdk.java.net/">OpenJDK</a> and
|
||||
<a href="https://jdk.java.net/">Oracle JDK</a>.
|
||||
Although its source code is proprietary, its executable is available under the
|
||||
<a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE
|
||||
Timezone Updater License Agreement</a>.</li>
|
||||
<li>The <a
|
||||
href="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
|
||||
SE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a
|
||||
|
@ -451,11 +449,10 @@ and time <abbr>API</abbr></a> contains a class
|
|||
Java 8 <code>java.time</code>, which its users should migrate to once
|
||||
they can assume Java 8 or later. It is available under the <a
|
||||
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
|
||||
<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a>,
|
||||
<a href="https://github.com/akashche/tzdbgen">tzdbgen</a>, and <a
|
||||
<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a
|
||||
href="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
|
||||
are other alternatives to TZUpdater. IANA Updater's license is unclear;
|
||||
the others are licensed under the <abbr>GPL</abbr>.</li>
|
||||
are alternatives to TZUpdater. IANA Updater's license is unclear;
|
||||
ZIUpdater is licensed under the <abbr>GPL</abbr>.</li>
|
||||
<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
|
||||
time library for Android</a> and
|
||||
<a href="https://github.com/MenoData/Time4J/">Time4J: Advanced date,
|
||||
|
@ -515,7 +512,10 @@ It is freely available under a <abbr>BSD</abbr>-style license.</li>
|
|||
<li><a href="http://pytz.sourceforge.net">pytz – World Timezone
|
||||
Definitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
|
||||
<a href="https://www.python.org">Python</a>.
|
||||
It is freely available under a <abbr>BSD</abbr>-style license.</li>
|
||||
It is freely available under a <abbr>BSD</abbr>-style license.
|
||||
In code that can assume Python 3.9 or later it is superseded by
|
||||
<a href="#python-zoneinfo"><code>zoneinfo.ZoneInfo</code></a>
|
||||
and the <a href="#pypi-tzdata"><code>tzdata</code> Python package</a>.</li>
|
||||
<li><a href="https://tzinfo.github.io">TZInfo –
|
||||
Ruby Timezone Library</a>
|
||||
compiles <code><abbr>tz</abbr></code> source into
|
||||
|
@ -579,14 +579,14 @@ DateTime::TimeZone::Tzfile</a>
|
|||
is a <abbr>TZif</abbr> file reader written in Perl.
|
||||
It is freely available under the same terms as Perl
|
||||
(dual <abbr>GPL</abbr> and Artistic license).</li>
|
||||
<li>Python has a <a
|
||||
<li>Python has a <a id="python-zoneinfo"
|
||||
href="https://docs.python.org/3.9/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code>
|
||||
class</a> that reads <abbr>TZif</abbr> data and creates objects
|
||||
that represent <code><abbr>tzdb</abbr></code> timezones.
|
||||
Python is freely available under the
|
||||
<a href="https://docs.python.org/3.9/license.html">Python Software Foundation
|
||||
License</a>.
|
||||
A companion <a href="https://pypi.org/">PyPI</a> module
|
||||
A companion <a id="pypi-tzdata" href="https://pypi.org/">PyPI</a> module
|
||||
<a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a>
|
||||
supplies TZif data if the underlying system data cannot be found;
|
||||
it is freely available under the Apache License.</li>
|
||||
|
@ -622,11 +622,6 @@ It is freely available under the <abbr>GPL</abbr>.</li>
|
|||
implementations contain a copy of a 32-bit subset of a recent
|
||||
<code><abbr>tz</abbr></code> database in a
|
||||
Go-specific format.</li>
|
||||
<li><a
|
||||
href="http://users.skynet.be/Peter.Verthez/projects/intclock/">International
|
||||
clock (intclock)</a> is a clock that displays multiple time zones on
|
||||
<abbr>GNU</abbr>/Linux and similar systems. It is freely available
|
||||
under the <abbr>GPL</abbr>.</li>
|
||||
<li>Microsoft Windows 8.1
|
||||
and later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
|
||||
data (mentioned <a href="#CLDR">below</a>) used by the
|
||||
|
@ -672,10 +667,7 @@ licenses</a> to <code><abbr>tz</abbr></code> contributors.</li>
|
|||
is Astrodienst's Web version of Shanks and Pottenger's out-of-print
|
||||
time zone history atlases
|
||||
<a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
|
||||
<a href="https://www.worldcat.org/oclc/76950459">for the world</a>,
|
||||
now published in <a
|
||||
href="https://astrocom.com/astrology-products/software/acs-atlas-software">software</a>
|
||||
form by <a href="https://astrocom.com">ACS-Starcrafts</a>.
|
||||
<a href="https://www.worldcat.org/oclc/76950459">for the world</a>.
|
||||
Although these extensive atlases
|
||||
<a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
|
||||
sources for much of the older <code><abbr>tz</abbr></code> data</a>,
|
||||
|
@ -699,11 +691,13 @@ gives current time zone rules for airports served by commercial aviation.</li>
|
|||
<section>
|
||||
<h2 id="maps">Maps</h2>
|
||||
<ul>
|
||||
<li>The <a href="https://www.cia.gov/index.html">United States Central
|
||||
Intelligence Agency (<abbr
|
||||
title="Central Intelligence Agency">CIA</abbr>)</a> publishes a <a
|
||||
href="https://www.cia.gov/library/publications/the-world-factbook/graphics/ref_maps/physical/pdf/standard_time_zones_of_the_world.pdf">time
|
||||
zone map</a>; the
|
||||
<li>The <a
|
||||
href="https://www.cia.gov/the-world-factbook/maps/world-regional/">World
|
||||
and Regional Maps section</a> of <em>The World Factbook</em>, published by the
|
||||
<a href="https://www.cia.gov">US Central Intelligence
|
||||
Agency (<abbr
|
||||
title="Central Intelligence Agency">CIA</abbr>)</a>, contains a time
|
||||
zone map; the
|
||||
<a
|
||||
href="https://legacy.lib.utexas.edu/maps/world.html">Perry–Castañeda
|
||||
Library Map Collection</a>
|
||||
|
@ -729,7 +723,9 @@ where the two differ greatly. It's a bit out of date, unfortunately.</li>
|
|||
<section>
|
||||
<h2 id="boundaries">Time zone boundaries</h2>
|
||||
<p>Geographical boundaries between timezones are available
|
||||
from several <a href="https://en.wikipedia.org/wiki/Geolocation">geolocation</a>
|
||||
from several <a
|
||||
href="https://en.wikipedia.org/wiki/Internet_geolocation">Internet
|
||||
geolocation</a>
|
||||
services and other sources.</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
|
||||
|
@ -878,10 +874,6 @@ of Legal Time in Germany</a>.</dd>
|
|||
<dd>The Interior Ministry periodically issues <a
|
||||
href="ftp://ftp.cs.huji.ac.il/pub/tz/announcements"
|
||||
hreflang="he">announcements (in Hebrew)</a>.</dd>
|
||||
<dt>Italy</dt>
|
||||
<dd>The National Institute of Metrological Research publishes a
|
||||
<a href="http://oldsite.inrim.it/res/tf/ora_legale_i.shtml" hreflang="it">table
|
||||
of civil time (in Italian)</a>.</dd>
|
||||
<dt>Malaysia</dt>
|
||||
<dd>See Singapore <a href="#Singapore">below</a>.</dd>
|
||||
<dt>Mexico</dt>
|
||||
|
@ -1029,8 +1021,21 @@ title="International Earth Rotation and Reference Systems Service">IERS</abbr>
|
|||
Bulletins</a> contains official publications of the International
|
||||
Earth Rotation and Reference Systems Service, which decides when leap
|
||||
seconds occur. The <code><abbr>tz</abbr></code> code and data support leap seconds
|
||||
via an optional "<code>right</code>" configuration, as opposed to the
|
||||
default "<code>posix</code>" configuration.</li>
|
||||
via an optional "<code>right</code>" configuration where a computer's internal
|
||||
<code>time_t</code> integer clock counts every <abbr>TAI</abbr> second,
|
||||
as opposed to the default "<code>posix</code>" configuration
|
||||
where the internal clock ignores leap seconds.
|
||||
The two configurations agree for timestamps starting with 1972-01-01 00:00:00
|
||||
<abbr>UTC</abbr> (<code>time_t</code> 63 072 000) and diverge for
|
||||
timestamps starting with <code>time_t</code> 78 796 800,
|
||||
which corresponds to the first leap second
|
||||
1972-06-30 23:59:60 <abbr>UTC</abbr> in the "<code>right</code>" configuration,
|
||||
and to
|
||||
1972-07-01 00:00:00 <abbr>UTC</abbr> in the "<code>posix</code>" configuration.
|
||||
In practice the two configurations also agree for timestamps before
|
||||
1972 even though the historical situation is messy, partly because
|
||||
neither <abbr>UTC</abbr> nor <abbr>TAI</abbr>
|
||||
is well-defined for sufficiently-old timestamps.</li>
|
||||
<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
|
||||
discusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
|
||||
leap second so that they disagree with <abbr>UTC</abbr> by at most a
|
||||
|
@ -1043,7 +1048,7 @@ cloud service providers. However, according to
|
|||
<a href="https://tools.ietf.org/html/rfc8633#section-3.7.1">§3.7.1 of
|
||||
Network Time Protocol Best Current Practices</a>
|
||||
(Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
|
||||
applications requiring accurate UTC or civil time,
|
||||
applications requiring accurate <abbr>UTC</abbr> or civil time,
|
||||
and is intended for use only in single, well-controlled environments.</li>
|
||||
<li>The <a
|
||||
href="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
|
||||
|
|
|
@ -1 +1 @@
|
|||
2020c
|
||||
2021a
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" $NetBSD: zic.8,v 1.35 2020/10/09 18:38:48 christos Exp $
|
||||
.Dd October 9, 2020
|
||||
.\" $NetBSD: zic.8,v 1.36 2021/03/01 04:42:14 christos Exp $
|
||||
.Dd Fabruary 28, 2021
|
||||
.Dt ZIC 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -71,7 +71,7 @@ will act as if the input contained a link line of the form
|
|||
If
|
||||
.Ar timezone
|
||||
is
|
||||
.Dv \*- ,
|
||||
.Dv \&- ,
|
||||
any already-existing link is removed.
|
||||
.It Fl L Ar leapsecondfilename
|
||||
Read leap second information from the file with the given name.
|
||||
|
@ -82,7 +82,7 @@ Use
|
|||
.Ar timezone's
|
||||
rules when handling POSIX-format
|
||||
TZ strings like
|
||||
.Qq EET\*-2EEST
|
||||
.Qq EET\&-2EEST
|
||||
that lack transition rules.
|
||||
.Nm
|
||||
will act as if the input contained a link line of the form
|
||||
|
@ -98,7 +98,7 @@ transitions are at standard time or Universal Time (UT) instead of local time.
|
|||
If
|
||||
.Ar timezone
|
||||
is
|
||||
.Dv \*- ,
|
||||
.Dv \&- ,
|
||||
any already-existing link is removed.
|
||||
.It Fl r Op Ar @lo / Op Ar @hi
|
||||
Reduce the size of output files by limiting their applicability
|
||||
|
@ -573,6 +573,36 @@ first transition into standard time.
|
|||
In a single zone it is an error if two rules take effect at the same
|
||||
instant, or if two zone changes take effect at the same instant.
|
||||
.Pp
|
||||
If a continuation line subtracts
|
||||
.Dv N
|
||||
seconds from the UT offset after a transition that would be
|
||||
interpreted to be later if using the continuation line's UT offset and
|
||||
rules, the
|
||||
.Em until
|
||||
time of the previous zone or continuation line is interpreted
|
||||
according to the continuation line's UT offset and rules, and any rule
|
||||
that would otherwise take effect in the next
|
||||
.Dv N
|
||||
seconds is instead assumed to take effect simultaneously.
|
||||
For example:
|
||||
.Pp
|
||||
.Bl -column -compact -offset indent "# Rule" "Swiss" "FROM" "1995" "\&*" "Oct" "lastSun" "1:00u" "SAVE" "LETTER/S"
|
||||
.It # Rule NAME FROM TO \&- IN ON AT SAVE LETTER/S
|
||||
.It Rule US 1967 2006 \&- Oct lastSun 2:00 0 S
|
||||
.It Rule US 1967 1973 \&- Apr lastSun 2:00 1:00 D
|
||||
.It # Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
.It Zone America/Menominee \&-5:00 \&- EST 1973 Apr 29 2:00
|
||||
.It \&-6:00 US C%sT
|
||||
.El
|
||||
.Pp
|
||||
Here, an incorrect reading would be there were two clock changes on 1973-04-29,
|
||||
the first from 02:00 EST (\&-05) to 01:00 CST (\&-06),
|
||||
and the second an hour later from 02:00 CST (\&-06) to 03:00 CDT (\&-05).
|
||||
However,
|
||||
.Nm
|
||||
interprets this more sensibly as a single transition from 02:00 CST (\&-05) to
|
||||
02:00 CDT (\&-05).
|
||||
.Pp
|
||||
A link line has the form
|
||||
.Pp
|
||||
.Dl Link TARGET LINK-NAME
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: zic.c,v 1.77 2020/10/09 18:38:48 christos Exp $ */
|
||||
/* $NetBSD: zic.c,v 1.78 2021/03/01 04:42:14 christos Exp $ */
|
||||
/*
|
||||
** This file is in the public domain, so clarified as of
|
||||
** 2006-07-17 by Arthur David Olson.
|
||||
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
__RCSID("$NetBSD: zic.c,v 1.77 2020/10/09 18:38:48 christos Exp $");
|
||||
__RCSID("$NetBSD: zic.c,v 1.78 2021/03/01 04:42:14 christos Exp $");
|
||||
#endif /* !defined lint */
|
||||
|
||||
#include "private.h"
|
||||
|
@ -669,7 +669,8 @@ static const char * leapsec;
|
|||
static const char * tzdefault;
|
||||
|
||||
/* -1 if the TZif output file should be slim, 0 if default, 1 if the
|
||||
output should be fat for backward compatibility. The default is slim. */
|
||||
output should be fat for backward compatibility. ZIC_BLOAT_DEFAULT
|
||||
determines the default. */
|
||||
static int bloat;
|
||||
|
||||
static bool
|
||||
|
@ -806,8 +807,15 @@ _("%s: invalid time range: %s\n"),
|
|||
}
|
||||
if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
|
||||
usage(stderr, EXIT_FAILURE); /* usage message by request */
|
||||
if (bloat == 0)
|
||||
bloat = strcmp(ZIC_BLOAT_DEFAULT, "slim") == 0 ? -1 : 1;
|
||||
if (bloat == 0) {
|
||||
static char const bloat_default[] = ZIC_BLOAT_DEFAULT;
|
||||
if (strcmp(bloat_default, "slim") == 0)
|
||||
bloat = -1;
|
||||
else if (strcmp(bloat_default, "fat") == 0)
|
||||
bloat = 1;
|
||||
else
|
||||
abort(); /* Configuration error. */
|
||||
}
|
||||
if (directory == NULL)
|
||||
directory = TZDIR;
|
||||
if (tzdefault == NULL)
|
||||
|
|
Loading…
Reference in New Issue