Skip to content

Commit e22640e

Browse files
committed
Squashed 'tz/' changes from cc48c2dfa..beeb53a3d
380c07cef Release 2024a a97e920cd * localtime.c: Fix comment typography. 85a0aade5 Update a few stale links * theory.html, tz-art.html: Update stale links and normalize some punctuation and white space. 75c9e5923 Streamline tz-link a bit 619fcf091 Improve Czechoslovakia commentary 9740ab1de * tz-link.html: Prefer <code> to <samp> for code snippets. 983d3efb3 * tz-link.html: Mention posix_tz_db. 2903b9acf Document POSIX versions more carefully 23e7cfa05 Palestine springs forward a week later after Ramadan f4c6e5f15 Update link to Palestine MTIT b3d4dbb84 Fix NEWS typo for strftime f295cc13b Mention zonenow.tab in “Theory” e9f12c313 Update some tz-link links f481c61c2 * zonenow.tab: Fix up west Kazakhstan comments. 7de0bfb9c Update ISO 3166-2:KZ codes for Kazakhstan 2cbd39c9e Asia/Ho_Chi_Minh: Correct 1955 transition 1fe97024d Add Kazakhstan PM’s decision 9a43feddc Update Kazakhstan region comments 39bfdc787 Fix typo in checknow.awk diagnostic 608c13d48 Pacify ‘make check’ for Kazakhstan changes 95a16c87f Kazakhstan unifies on UTC+5 beginning 2024-03-01. 845957071 Update Matthews & Vincent URI 16495d669 Improve recent Vietnam doc 893c20b04 Asia/Ho_Chi_Minh 1945-09 Source added b7f926f32 More strftime doc improvements fc7b8b61a Document strftime struct tm member usage a707253f0 For strftime %z, use tm_gmtoff if available b4ec32798 Draft next POSIX has tm_gmtoff, tm_zone 4238791ac Sort links by dest when shrinking vanguard 77e6d7f64 Sort zones by name when shrinking b848dce41 Shrink lines by class 05588b6b5 Simplify zishrink.awk 1ca031c0d Shrink tzdata.zi a bit more if vanguard 400526081 "m" now abbreviates both "maximum" and "minimum" f927f6e33 Don’t mention ftp.nist.gov e6b568372 Miquelon 1911 transition was June 15 not May 15 56c15806e Toronto 1947/1949 switched at 02:00 not 00:00 cb72e39b7 make commit-leap-seconds.list 27b4d76d1 Automate copying of leap-seconds.list 5a43b0d7d Improve tzalloc etc. man page 95fa1a491 * NEWS: Fix America/Ciudad_Juarez summary. 321a49c95 Remove support for "min" in Rule lines f83d3a375 Name two constants in zic.c 325e4efd1 Avoid pwd in tzselect when developing d4c4422e5 Avoid sed in tzselect d03bc3aee Avoid expr in tzselect 322abaa97 Reformat music section d6a94fee0 Comics update 284ebde20 Fix localtime.c bug: America/Ciudad_Juarez in 2422 git-subtree-dir: tz git-subtree-split: beeb53a3d8a62e7525d5e6345c5c7ca4bde26a6b
1 parent 4a37f7c commit e22640e

27 files changed

+1091
-880
lines changed

Makefile

+42-11
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ DATAFORM= main
5353

5454
LOCALTIME= Factory
5555

56-
# The POSIXRULES macro controls interpretation of POSIX-like TZ
56+
# The POSIXRULES macro controls interpretation of POSIX-2017.1-like TZ
5757
# settings like TZ='EET-2EEST' that lack DST transition rules.
5858
# If POSIXRULES is '-', no template is installed; this is the default.
5959
# Any other value for POSIXRULES is obsolete and should not be relied on, as:
@@ -274,7 +274,7 @@ LDLIBS=
274274
# -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
275275
# the default is system-supplied, typically "/usr/lib/locale"
276276
# -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
277-
# DST transitions for POSIX-style TZ strings lacking them,
277+
# DST transitions for POSIX.1-2017-style TZ strings lacking them,
278278
# in the usual case where POSIXRULES is '-'. If not specified,
279279
# TZDEFRULESTRING defaults to US rules for future DST transitions.
280280
# This mishandles some past timestamps, as US DST rules have changed.
@@ -340,9 +340,10 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
340340
# guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
341341
# Similarly, if your system has a "zone abbreviation" field, define
342342
# -DTM_ZONE=tm_zone
343-
# and define NO_TM_ZONE to suppress any guessing. Although these two fields
344-
# not required by POSIX, a future version of POSIX is planned to require them
345-
# and they are widely available on GNU/Linux and BSD systems.
343+
# and define NO_TM_ZONE to suppress any guessing.
344+
# Although these two fields are not required by POSIX.1-2017,
345+
# POSIX 202x/D4 requires them and they are widely available
346+
# on GNU/Linux and BSD systems.
346347
#
347348
# The next batch of options control support for external variables
348349
# exported by tzcode. In practice these variables are less useful
@@ -352,7 +353,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
352353
# # -DHAVE_TZNAME=0 # do not support "tzname"
353354
# # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library
354355
# # -DHAVE_TZNAME=2 # support and define "tzname"
355-
# # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later.
356+
# # to the "CFLAGS=" line. "tzname" is required by POSIX.1-1988 and later.
356357
# # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
357358
# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
358359
# # crashes when combined with some platforms' standard libraries,
@@ -362,8 +363,8 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
362363
# # -DUSG_COMPAT=0 # do not support
363364
# # -DUSG_COMPAT=1 # support, and variables are defined by system library
364365
# # -DUSG_COMPAT=2 # support and define variables
365-
# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by
366-
# # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later.
366+
# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by Unix
367+
# # Systems Group code and are required by POSIX.1-2008 and later (with XSI).
367368
# # If not defined, the code attempts to guess USG_COMPAT from other macros.
368369
# #
369370
# # To support the external variable "altzone", add
@@ -427,7 +428,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
427428

428429
# The name of a POSIX-like library archiver, its flags, C compiler,
429430
# linker flags, and 'make' utility. Ordinarily the defaults suffice.
430-
# The commented-out values are the defaults specified by POSIX 202x/D3.
431+
# The commented-out values are the defaults specified by POSIX.1-202x/D4.
431432
#AR = ar
432433
#ARFLAGS = -rv
433434
#CC = c17
@@ -439,6 +440,12 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
439440

440441
LEAPSECONDS=
441442

443+
# Where to fetch leap-seconds.list from.
444+
leaplist_URI = \
445+
https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list
446+
# The file is generated by the IERS Earth Orientation Centre, in Paris.
447+
leaplist_TZ = Europe/Paris
448+
442449
# The zic command and its arguments.
443450

444451
zic= ./zic
@@ -471,7 +478,8 @@ AWK= awk
471478
# is typically nicer if it works.
472479
KSHELL= /bin/bash
473480

474-
# Name of curl <https://curl.haxx.se/>, used for HTML validation.
481+
# Name of curl <https://curl.haxx.se/>, used for HTML validation
482+
# and to fetch leap-seconds.list from upstream.
475483
CURL= curl
476484

477485
# Name of GNU Privacy Guard <https://gnupg.org/>, used to sign distributions.
@@ -718,6 +726,28 @@ leapseconds: $(LEAP_DEPS)
718726
-f leapseconds.awk leap-seconds.list >$@.out
719727
mv $@.out $@
720728
729+
# Awk script to extract a Git-style author from leap-seconds.list comments.
730+
EXTRACT_AUTHOR = \
731+
author_line { sub(/^.[[:space:]]*/, ""); \
732+
sub(/:[[:space:]]*/, " <"); \
733+
printf "%s>\n", $$0; \
734+
success = 1; \
735+
exit \
736+
} \
737+
/Questions or comments to:/ { author_line = 1 } \
738+
END { exit !success }
739+
740+
# Fetch leap-seconds.list from upstream.
741+
fetch-leap-seconds.list:
742+
$(CURL) -OR $(leaplist_URI)
743+
744+
# Fetch leap-seconds.list from upstream and commit it to the local repository.
745+
commit-leap-seconds.list: fetch-leap-seconds.list
746+
author=$$($(AWK) '$(EXTRACT_AUTHOR)' leap-seconds.list) && \
747+
date=$$(TZ=$(leaplist_TZ) stat -c%y leap-seconds.list) && \
748+
git commit --author="$$author" --date="$$date" -m'make $@' \
749+
leap-seconds.list
750+
721751
# Arguments to pass to submakes of install_data.
722752
# They can be overridden by later submake arguments.
723753
INSTALLARGS = \
@@ -1315,7 +1345,8 @@ zic.o: private.h tzfile.h tzdir.h version.h
13151345
.PHONY: ALL INSTALL all
13161346
.PHONY: check check_mild check_time_t_alternatives
13171347
.PHONY: check_web check_zishrink
1318-
.PHONY: clean clean_misc dummy.zd force_tzs
1348+
.PHONY: clean clean_misc commit-leap-seconds.list dummy.zd
1349+
.PHONY: fetch-leap-seconds.list force_tzs
13191350
.PHONY: install install_data maintainer-clean names
13201351
.PHONY: posix_only posix_right public
13211352
.PHONY: rearguard_signatures rearguard_signatures_version

NEWS

+68
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,73 @@
11
News for the tz database
22

3+
Release 2024a - 2024-02-01 09:28:56 -0800
4+
5+
Briefly:
6+
Kazakhstan unifies on UTC+5 beginning 2024-03-01.
7+
Palestine springs forward a week later after Ramadan.
8+
zic no longer pretends to support indefinite-past DST.
9+
localtime no longer mishandles Ciudad Juárez in 2422.
10+
11+
Changes to future timestamps
12+
13+
Kazakhstan unifies on UTC+5. This affects Asia/Almaty and
14+
Asia/Qostanay which together represent the eastern portion of the
15+
country that will transition from UTC+6 on 2024-03-01 at 00:00 to
16+
join the western portion. (Thanks to Zhanbolat Raimbekov.)
17+
18+
Palestine springs forward a week later than previously predicted
19+
in 2024 and 2025. (Thanks to Heba Hamad.) Change spring-forward
20+
predictions to the second Saturday after Ramadan, not the first;
21+
this also affects other predictions starting in 2039.
22+
23+
Changes to past timestamps
24+
25+
Asia/Ho_Chi_Minh's 1955-07-01 transition occurred at 01:00
26+
not 00:00. (Thanks to Đoàn Trần Công Danh.)
27+
28+
From 1947 through 1949, Toronto's transitions occurred at 02:00
29+
not 00:00. (Thanks to Chris Walton.)
30+
31+
In 1911 Miquelon adopted standard time on June 15, not May 15.
32+
33+
Changes to code
34+
35+
The FROM and TO columns of Rule lines can no longer be "minimum"
36+
or an abbreviation of "minimum", because TZif files do not support
37+
DST rules that extend into the indefinite past - although these
38+
rules were supported when TZif files had only 32-bit data, this
39+
stopped working when 64-bit TZif files were introduced in 1995.
40+
This should not be a problem for realistic data, since DST was
41+
first used in the 20th century. As a transition aid, FROM columns
42+
like "minimum" are now diagnosed and then treated as if they were
43+
the year 1900; this should suffice for TZif files on old systems
44+
with only 32-bit time_t, and it is more compatible with bugs in
45+
2023c-and-earlier localtime.c. (Problem reported by Yoshito
46+
Umaoka.)
47+
48+
localtime and related functions no longer mishandle some
49+
timestamps that occur about 400 years after a switch to a time
50+
zone with a DST schedule. In 2023d data this problem was visible
51+
for some timestamps in November 2422, November 2822, etc. in
52+
America/Ciudad_Juarez. (Problem reported by Gilmore Davidson.)
53+
54+
strftime %s now uses tm_gmtoff if available. (Problem and draft
55+
patch reported by Dag-Erling Smørgrav.)
56+
57+
Changes to build procedure
58+
59+
The leap-seconds.list file is now copied from the IERS instead of
60+
from its downstream counterpart at NIST, as the IERS version is
61+
now in the public domain too and tends to be more up-to-date.
62+
(Thanks to Martin Burnicki for liaisoning with the IERS.)
63+
64+
Changes to documentation
65+
66+
The strftime man page documents which struct tm members affect
67+
which conversion specs, and that tzset is called. (Problems
68+
reported by Robert Elz and Steve Summit.)
69+
70+
371
Release 2023d - 2023-12-21 20:02:24 -0800
472

573
Briefly:

africa

+6-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
3131
# https://www.jstor.org/stable/1774359
3232
#
33+
# For the 1911/1912 establishment of standard time in French possessions, see:
34+
# Société Française de Physique, Recueil de constantes physiques (1913),
35+
# page 752, 18b.
36+
#
3337
# European-style abbreviations are commonly used along the Mediterranean.
3438
# For sub-Saharan Africa abbreviations were less standardized.
3539
# Previous editions of this database used WAT, CAT, SAT, and EAT
@@ -113,7 +117,7 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
113117

114118
# Chad
115119
# Zone NAME STDOFF RULES FORMAT [UNTIL]
116-
Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
120+
Zone Africa/Ndjamena 1:00:12 - LMT 1912 Jan 1 # N'Djamena
117121
1:00 - WAT 1979 Oct 14
118122
1:00 1:00 WAST 1980 Mar 8
119123
1:00 - WAT
@@ -139,7 +143,7 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
139143
# Inaccessible, Nightingale: uninhabited
140144

141145
# Zone NAME STDOFF RULES FORMAT [UNTIL]
142-
Zone Africa/Abidjan -0:16:08 - LMT 1912
146+
Zone Africa/Abidjan -0:16:08 - LMT 1912 Jan 1
143147
0:00 - GMT
144148

145149
###############################################################################

0 commit comments

Comments
 (0)