Tue Feb 6 12:22:42 2024 UTC (104d)
Pull up the following, requested by kre in ticket #586:

	external/public-domain/tz/dist/Makefile         up to 1.1.1.38
	external/public-domain/tz/dist/NEWS             up to 1.1.1.45
	external/public-domain/tz/dist/TZDATA_VERSION   up to 1.37
	external/public-domain/tz/dist/africa           up to 1.1.1.33
	external/public-domain/tz/dist/asia             up to 1.12
	external/public-domain/tz/dist/australasia      up to 1.9
	external/public-domain/tz/dist/checknow.awk     up to 1.1.1.2
	external/public-domain/tz/dist/etcetera         up to 1.1.1.8
	external/public-domain/tz/dist/europe           up to 1.1.1.39
	external/public-domain/tz/dist/leap-seconds.list up to 1.7
	external/public-domain/tz/dist/leapseconds      up to 1.7
	external/public-domain/tz/dist/leapseconds.awk  up to 1.1.1.14
	external/public-domain/tz/dist/northamerica     up to 1.1.1.35
	external/public-domain/tz/dist/southamerica     up to 1.1.1.25
	external/public-domain/tz/dist/theory.html      up to 1.1.1.19
	external/public-domain/tz/dist/version          up to 1.12
	external/public-domain/tz/dist/zishrink.awk     up to 1.1.1.9
	external/public-domain/tz/dist/zonenow.tab      up to 1.1.1.2

Updated tzdata to 2024a


(martin)
diff -r1.1.1.35.2.2 -r1.1.1.35.2.3 src/external/public-domain/tz/dist/Makefile
diff -r1.1.1.40.2.2 -r1.1.1.40.2.3 src/external/public-domain/tz/dist/NEWS
diff -r1.32.2.2 -r1.32.2.3 src/external/public-domain/tz/dist/TZDATA_VERSION
diff -r1.1.1.30.2.2 -r1.1.1.30.2.3 src/external/public-domain/tz/dist/africa
diff -r1.7.2.2 -r1.7.2.3 src/external/public-domain/tz/dist/asia
diff -r1.7.2.2 -r1.7.2.3 src/external/public-domain/tz/dist/version
diff -r1.6.2.2 -r1.6.2.3 src/external/public-domain/tz/dist/australasia
diff -r1.1.1.1.2.2 -r1.1.1.1.2.3 src/external/public-domain/tz/dist/checknow.awk
diff -r1.1.1.1.2.2 -r1.1.1.1.2.3 src/external/public-domain/tz/dist/zonenow.tab
diff -r1.1.1.7 -r1.1.1.7.2.1 src/external/public-domain/tz/dist/etcetera
diff -r1.1.1.36.2.2 -r1.1.1.36.2.3 src/external/public-domain/tz/dist/europe
diff -r1.4.2.2 -r1.4.2.3 src/external/public-domain/tz/dist/leap-seconds.list
diff -r1.4.2.2 -r1.4.2.3 src/external/public-domain/tz/dist/leapseconds
diff -r1.1.1.12.6.1 -r1.1.1.12.6.2 src/external/public-domain/tz/dist/leapseconds.awk
diff -r1.1.1.32.2.2 -r1.1.1.32.2.3 src/external/public-domain/tz/dist/northamerica
diff -r1.1.1.22.2.2 -r1.1.1.22.2.3 src/external/public-domain/tz/dist/southamerica
diff -r1.1.1.17.2.1 -r1.1.1.17.2.2 src/external/public-domain/tz/dist/theory.html
diff -r1.1.1.8 -r1.1.1.8.2.1 src/external/public-domain/tz/dist/zishrink.awk

cvs diff -r1.1.1.35.2.2 -r1.1.1.35.2.3 src/external/public-domain/tz/dist/Makefile (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/Makefile 2023/12/29 20:41:11 1.1.1.35.2.2
+++ src/external/public-domain/tz/dist/Makefile 2024/02/06 12:22:41 1.1.1.35.2.3
@@ -43,27 +43,27 @@ BUGEMAIL= tz@iana.org @@ -43,27 +43,27 @@ BUGEMAIL= tz@iana.org
43# Rearguard users might also want "ZFLAGS = -b fat"; see below. 43# Rearguard users might also want "ZFLAGS = -b fat"; see below.
44DATAFORM= main 44DATAFORM= main
45 45
46# Change the line below for your timezone (after finding the one you want in 46# Change the line below for your timezone (after finding the one you want in
47# one of the $(TDATA) source files, or adding it to a source file). 47# one of the $(TDATA) source files, or adding it to a source file).
48# Alternatively, if you discover you've got the wrong timezone, you can just 48# Alternatively, if you discover you've got the wrong timezone, you can just
49# 'zic -l -' to remove it, or 'zic -l rightzone' to change it. 49# 'zic -l -' to remove it, or 'zic -l rightzone' to change it.
50# Use the command 50# Use the command
51# make zonenames 51# make zonenames
52# to get a list of the values you can use for LOCALTIME. 52# to get a list of the values you can use for LOCALTIME.
53 53
54LOCALTIME= Factory 54LOCALTIME= Factory
55 55
56# The POSIXRULES macro controls interpretation of POSIX-like TZ 56# The POSIXRULES macro controls interpretation of POSIX-2017.1-like TZ
57# settings like TZ='EET-2EEST' that lack DST transition rules. 57# settings like TZ='EET-2EEST' that lack DST transition rules.
58# If POSIXRULES is '-', no template is installed; this is the default. 58# If POSIXRULES is '-', no template is installed; this is the default.
59# Any other value for POSIXRULES is obsolete and should not be relied on, as: 59# Any other value for POSIXRULES is obsolete and should not be relied on, as:
60# * It does not work correctly in popular implementations such as GNU/Linux. 60# * It does not work correctly in popular implementations such as GNU/Linux.
61# * It does not work even in tzcode, except for historical timestamps 61# * It does not work even in tzcode, except for historical timestamps
62# that precede the last explicit transition in the POSIXRULES file. 62# that precede the last explicit transition in the POSIXRULES file.
63# Hence it typically does not work for current and future timestamps. 63# Hence it typically does not work for current and future timestamps.
64# If, despite the above, you want a template for handling these settings, 64# If, despite the above, you want a template for handling these settings,
65# you can change the line below (after finding the timezone you want in the 65# you can change the line below (after finding the timezone you want in the
66# one of the $(TDATA) source files, or adding it to a source file). 66# one of the $(TDATA) source files, or adding it to a source file).
67# Alternatively, if you discover you've got the wrong timezone, you can just 67# Alternatively, if you discover you've got the wrong timezone, you can just
68# 'zic -p -' to remove it, or 'zic -p rightzone' to change it. 68# 'zic -p -' to remove it, or 'zic -p rightzone' to change it.
69# Use the command 69# Use the command
@@ -264,27 +264,27 @@ LDLIBS= @@ -264,27 +264,27 @@ LDLIBS=
264# -DSUPPORT_C89 if the tzcode library should support C89 callers+ 264# -DSUPPORT_C89 if the tzcode library should support C89 callers+
265# However, this might trigger latent bugs in C99-or-later callers. 265# However, this might trigger latent bugs in C99-or-later callers.
266# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has 266# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
267# security implications and is not recommended for general use 267# security implications and is not recommended for general use
268# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; 268# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
269# not needed by the main-program tz code, which is single-threaded. 269# not needed by the main-program tz code, which is single-threaded.
270# Append other compiler flags as needed, e.g., -pthread on GNU/Linux. 270# Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
271# -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t 271# -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t
272# This is intended for internal use only; it mangles external names. 272# This is intended for internal use only; it mangles external names.
273# -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" 273# -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz"
274# -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; 274# -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
275# the default is system-supplied, typically "/usr/lib/locale" 275# the default is system-supplied, typically "/usr/lib/locale"
276# -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified 276# -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,
278# in the usual case where POSIXRULES is '-'. If not specified, 278# in the usual case where POSIXRULES is '-'. If not specified,
279# TZDEFRULESTRING defaults to US rules for future DST transitions. 279# TZDEFRULESTRING defaults to US rules for future DST transitions.
280# This mishandles some past timestamps, as US DST rules have changed. 280# This mishandles some past timestamps, as US DST rules have changed.
281# It also mishandles settings like TZ='EET-2EEST' for eastern Europe, 281# It also mishandles settings like TZ='EET-2EEST' for eastern Europe,
282# as Europe and US DST rules differ. 282# as Europe and US DST rules differ.
283# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255) 283# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255)
284# -DUNINIT_TRAP if reading uninitialized storage can cause problems 284# -DUNINIT_TRAP if reading uninitialized storage can cause problems
285# other than simply getting garbage data 285# other than simply getting garbage data
286# -DUSE_LTZ=0 to build zdump with the system time zone library 286# -DUSE_LTZ=0 to build zdump with the system time zone library
287# Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below. 287# Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below.
288# -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and 288# -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and
289# similarly for "slim". Fat TZif files work around incompatibilities 289# similarly for "slim". Fat TZif files work around incompatibilities
290# and bugs in some TZif readers, notably older ones that 290# and bugs in some TZif readers, notably older ones that
@@ -330,50 +330,51 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn @@ -330,50 +330,51 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn
330 -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \ 330 -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \
331 -Wvariadic-macros -Wvla -Wwrite-strings \ 331 -Wvariadic-macros -Wvla -Wwrite-strings \
332 -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ 332 -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
333 -Wno-type-limits 333 -Wno-type-limits
334# 334#
335# If your system has a "GMT offset" field in its "struct tm"s 335# If your system has a "GMT offset" field in its "struct tm"s
336# (or if you decide to add such a field in your system's "time.h" file), 336# (or if you decide to add such a field in your system's "time.h" file),
337# add the name to a define such as 337# add the name to a define such as
338# -DTM_GMTOFF=tm_gmtoff 338# -DTM_GMTOFF=tm_gmtoff
339# to the end of the "CFLAGS=" line. If not defined, the code attempts to 339# to the end of the "CFLAGS=" line. If not defined, the code attempts to
340# guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this. 340# guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
341# Similarly, if your system has a "zone abbreviation" field, define 341# Similarly, if your system has a "zone abbreviation" field, define
342# -DTM_ZONE=tm_zone 342# -DTM_ZONE=tm_zone
343# and define NO_TM_ZONE to suppress any guessing. Although these two fields 343# and define NO_TM_ZONE to suppress any guessing.
344# not required by POSIX, a future version of POSIX is planned to require them 344# Although these two fields are not required by POSIX.1-2017,
345# and they are widely available on GNU/Linux and BSD systems. 345# POSIX 202x/D4 requires them and they are widely available
 346# on GNU/Linux and BSD systems.
346# 347#
347# The next batch of options control support for external variables 348# The next batch of options control support for external variables
348# exported by tzcode. In practice these variables are less useful 349# exported by tzcode. In practice these variables are less useful
349# than TM_GMTOFF and TM_ZONE. However, most of them are standardized. 350# than TM_GMTOFF and TM_ZONE. However, most of them are standardized.
350# # 351# #
351# # To omit or support the external variable "tzname", add one of: 352# # To omit or support the external variable "tzname", add one of:
352# # -DHAVE_TZNAME=0 # do not support "tzname" 353# # -DHAVE_TZNAME=0 # do not support "tzname"
353# # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library 354# # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library
354# # -DHAVE_TZNAME=2 # support and define "tzname" 355# # -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.
356# # If not defined, the code attempts to guess HAVE_TZNAME from other macros. 357# # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
357# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause 358# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
358# # crashes when combined with some platforms' standard libraries, 359# # crashes when combined with some platforms' standard libraries,
359# # presumably due to memory allocation issues. 360# # presumably due to memory allocation issues.
360# # 361# #
361# # To omit or support the external variables "timezone" and "daylight", add 362# # To omit or support the external variables "timezone" and "daylight", add
362# # -DUSG_COMPAT=0 # do not support 363# # -DUSG_COMPAT=0 # do not support
363# # -DUSG_COMPAT=1 # support, and variables are defined by system library 364# # -DUSG_COMPAT=1 # support, and variables are defined by system library
364# # -DUSG_COMPAT=2 # support and define variables 365# # -DUSG_COMPAT=2 # support and define variables
365# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by 366# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by Unix
366# # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later. 367# # Systems Group code and are required by POSIX.1-2008 and later (with XSI).
367# # If not defined, the code attempts to guess USG_COMPAT from other macros. 368# # If not defined, the code attempts to guess USG_COMPAT from other macros.
368# # 369# #
369# # To support the external variable "altzone", add 370# # To support the external variable "altzone", add
370# # -DALTZONE=0 # do not support 371# # -DALTZONE=0 # do not support
371# # -DALTZONE=1 # support "altzone", which is defined by system library 372# # -DALTZONE=1 # support "altzone", which is defined by system library
372# # -DALTZONE=2 # support and define "altzone" 373# # -DALTZONE=2 # support and define "altzone"
373# # to the end of the "CFLAGS=" line; although "altzone" appeared in 374# # to the end of the "CFLAGS=" line; although "altzone" appeared in
374# # System V Release 3.1 it has not been standardized. 375# # System V Release 3.1 it has not been standardized.
375# # If not defined, the code attempts to guess ALTZONE from other macros. 376# # If not defined, the code attempts to guess ALTZONE from other macros.
376# 377#
377# If you want functions that were inspired by early versions of X3J11's work, 378# If you want functions that were inspired by early versions of X3J11's work,
378# add 379# add
379# -DSTD_INSPIRED 380# -DSTD_INSPIRED
@@ -417,38 +418,44 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn @@ -417,38 +418,44 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn
417# to the end of the "CFLAGS=" line. This causes "strftime" to always return 418# to the end of the "CFLAGS=" line. This causes "strftime" to always return
418# 53 as a week number (rather than 52 or 53) for January days before 419# 53 as a week number (rather than 52 or 53) for January days before
419# January's first Monday when a "%V" format is used and January 1 420# January's first Monday when a "%V" format is used and January 1
420# falls on a Friday, Saturday, or Sunday. 421# falls on a Friday, Saturday, or Sunday.
421# 422#
422# POSIX says CFLAGS defaults to "-O 1". 423# POSIX says CFLAGS defaults to "-O 1".
423# Uncomment the following line and edit its contents as needed. 424# Uncomment the following line and edit its contents as needed.
424 425
425#CFLAGS= -O 1 426#CFLAGS= -O 1
426 427
427 428
428# The name of a POSIX-like library archiver, its flags, C compiler, 429# The name of a POSIX-like library archiver, its flags, C compiler,
429# linker flags, and 'make' utility. Ordinarily the defaults suffice. 430# 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.
431#AR = ar 432#AR = ar
432#ARFLAGS = -rv 433#ARFLAGS = -rv
433#CC = c17 434#CC = c17
434#LDFLAGS = 435#LDFLAGS =
435#MAKE = make 436#MAKE = make
436 437
437# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in 438# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in
438# submake command lines. The default is no leap seconds. 439# submake command lines. The default is no leap seconds.
439 440
440LEAPSECONDS= 441LEAPSECONDS=
441 442
 443# Where to fetch leap-seconds.list from.
 444leaplist_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.
 447leaplist_TZ = Europe/Paris
 448
442# The zic command and its arguments. 449# The zic command and its arguments.
443 450
444zic= ./zic 451zic= ./zic
445ZIC= $(zic) $(ZFLAGS) 452ZIC= $(zic) $(ZFLAGS)
446 453
447# To shrink the size of installed TZif files, 454# To shrink the size of installed TZif files,
448# append "-r @N" to omit data before N-seconds-after-the-Epoch. 455# append "-r @N" to omit data before N-seconds-after-the-Epoch.
449# To grow the files and work around bugs in older applications, 456# To grow the files and work around bugs in older applications,
450# possibly at the expense of introducing bugs in newer ones, 457# possibly at the expense of introducing bugs in newer ones,
451# append "-b fat"; see ZIC_BLOAT_DEFAULT above. 458# append "-b fat"; see ZIC_BLOAT_DEFAULT above.
452# See the zic man page for more about -b and -r. 459# See the zic man page for more about -b and -r.
453ZFLAGS= 460ZFLAGS=
454 461
@@ -461,27 +468,28 @@ ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDI @@ -461,27 +468,28 @@ ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDI
461# Also, it is better (though not essential) if 'awk' supports UTF-8, 468# Also, it is better (though not essential) if 'awk' supports UTF-8,
462# and unfortunately mawk and busybox awk do not support UTF-8. 469# and unfortunately mawk and busybox awk do not support UTF-8.
463# Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems. 470# Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems.
464AWK= awk 471AWK= awk
465 472
466# The full path name of a POSIX-compliant shell, preferably one that supports 473# The full path name of a POSIX-compliant shell, preferably one that supports
467# the Korn shell's 'select' statement as an extension. 474# the Korn shell's 'select' statement as an extension.
468# These days, Bash is the most popular. 475# These days, Bash is the most popular.
469# It should be OK to set this to /bin/sh, on platforms where /bin/sh 476# It should be OK to set this to /bin/sh, on platforms where /bin/sh
470# lacks 'select' or doesn't completely conform to POSIX, but /bin/bash 477# lacks 'select' or doesn't completely conform to POSIX, but /bin/bash
471# is typically nicer if it works. 478# is typically nicer if it works.
472KSHELL= /bin/bash 479KSHELL= /bin/bash
473 480
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.
475CURL= curl 483CURL= curl
476 484
477# Name of GNU Privacy Guard <https://gnupg.org/>, used to sign distributions. 485# Name of GNU Privacy Guard <https://gnupg.org/>, used to sign distributions.
478GPG= gpg 486GPG= gpg
479 487
480# This expensive test requires USE_LTZ. 488# This expensive test requires USE_LTZ.
481# To suppress it, define this macro to be empty. 489# To suppress it, define this macro to be empty.
482CHECK_TIME_T_ALTERNATIVES = check_time_t_alternatives 490CHECK_TIME_T_ALTERNATIVES = check_time_t_alternatives
483 491
484# SAFE_CHAR is a regular expression that matches a safe character. 492# SAFE_CHAR is a regular expression that matches a safe character.
485# Some parts of this distribution are limited to safe characters; 493# Some parts of this distribution are limited to safe characters;
486# others can use any UTF-8 character. 494# others can use any UTF-8 character.
487# For now, the safe characters are a safe subset of ASCII. 495# For now, the safe characters are a safe subset of ASCII.
@@ -708,26 +716,48 @@ version.h: version @@ -708,26 +716,48 @@ version.h: version
708 mv $@.out $@ 716 mv $@.out $@
709 717
710zdump: $(TZDOBJS) 718zdump: $(TZDOBJS)
711 $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS) 719 $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
712 720
713zic: $(TZCOBJS) 721zic: $(TZCOBJS)
714 $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS) 722 $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
715 723
716leapseconds: $(LEAP_DEPS) 724leapseconds: $(LEAP_DEPS)
717 $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \ 725 $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \
718 -f leapseconds.awk leap-seconds.list >$@.out 726 -f leapseconds.awk leap-seconds.list >$@.out
719 mv $@.out $@ 727 mv $@.out $@
720 728
 729# Awk script to extract a Git-style author from leap-seconds.list comments.
 730EXTRACT_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.
 741fetch-leap-seconds.list:
 742 $(CURL) -OR $(leaplist_URI)
 743
 744# Fetch leap-seconds.list from upstream and commit it to the local repository.
 745commit-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
721# Arguments to pass to submakes of install_data. 751# Arguments to pass to submakes of install_data.
722# They can be overridden by later submake arguments. 752# They can be overridden by later submake arguments.
723INSTALLARGS = \ 753INSTALLARGS = \
724 BACKWARD='$(BACKWARD)' \ 754 BACKWARD='$(BACKWARD)' \
725 DESTDIR='$(DESTDIR)' \ 755 DESTDIR='$(DESTDIR)' \
726 LEAPSECONDS='$(LEAPSECONDS)' \ 756 LEAPSECONDS='$(LEAPSECONDS)' \
727 PACKRATDATA='$(PACKRATDATA)' \ 757 PACKRATDATA='$(PACKRATDATA)' \
728 PACKRATLIST='$(PACKRATLIST)' \ 758 PACKRATLIST='$(PACKRATLIST)' \
729 TZDEFAULT='$(TZDEFAULT)' \ 759 TZDEFAULT='$(TZDEFAULT)' \
730 TZDIR='$(TZDIR)' \ 760 TZDIR='$(TZDIR)' \
731 ZIC='$(ZIC)' 761 ZIC='$(ZIC)'
732 762
733INSTALL_DATA_DEPS = zic leapseconds tzdata.zi 763INSTALL_DATA_DEPS = zic leapseconds tzdata.zi
@@ -1304,26 +1334,27 @@ zonenames: tzdata.zi @@ -1304,26 +1334,27 @@ zonenames: tzdata.zi
1304 @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi 1334 @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
1305 1335
1306asctime.o: private.h tzfile.h 1336asctime.o: private.h tzfile.h
1307date.o: private.h 1337date.o: private.h
1308difftime.o: private.h 1338difftime.o: private.h
1309localtime.o: private.h tzfile.h tzdir.h 1339localtime.o: private.h tzfile.h tzdir.h
1310strftime.o: private.h tzfile.h 1340strftime.o: private.h tzfile.h
1311zdump.o: version.h 1341zdump.o: version.h
1312zic.o: private.h tzfile.h tzdir.h version.h 1342zic.o: private.h tzfile.h tzdir.h version.h
1313 1343
1314.PHONY: ALL INSTALL all 1344.PHONY: ALL INSTALL all
1315.PHONY: check check_mild check_time_t_alternatives 1345.PHONY: check check_mild check_time_t_alternatives
1316.PHONY: check_web check_zishrink 1346.PHONY: check_web check_zishrink
1317.PHONY: clean clean_misc dummy.zd force_tzs 1347.PHONY: clean clean_misc commit-leap-seconds.list dummy.zd
 1348.PHONY: fetch-leap-seconds.list force_tzs
1318.PHONY: install install_data maintainer-clean names 1349.PHONY: install install_data maintainer-clean names
1319.PHONY: posix_only posix_right public 1350.PHONY: posix_only posix_right public
1320.PHONY: rearguard_signatures rearguard_signatures_version 1351.PHONY: rearguard_signatures rearguard_signatures_version
1321.PHONY: rearguard_tarballs rearguard_tarballs_version 1352.PHONY: rearguard_tarballs rearguard_tarballs_version
1322.PHONY: right_only right_posix signatures signatures_version 1353.PHONY: right_only right_posix signatures signatures_version
1323.PHONY: tarballs tarballs_version 1354.PHONY: tarballs tarballs_version
1324.PHONY: traditional_signatures traditional_signatures_version 1355.PHONY: traditional_signatures traditional_signatures_version
1325.PHONY: traditional_tarballs traditional_tarballs_version 1356.PHONY: traditional_tarballs traditional_tarballs_version
1326.PHONY: tailored_tarballs tailored_tarballs_version 1357.PHONY: tailored_tarballs tailored_tarballs_version
1327.PHONY: typecheck 1358.PHONY: typecheck
1328.PHONY: zonenames zones 1359.PHONY: zonenames zones
1329.PHONY: $(ZDS) 1360.PHONY: $(ZDS)

cvs diff -r1.1.1.40.2.2 -r1.1.1.40.2.3 src/external/public-domain/tz/dist/NEWS (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/NEWS 2023/12/29 20:41:11 1.1.1.40.2.2
+++ src/external/public-domain/tz/dist/NEWS 2024/02/06 12:22:41 1.1.1.40.2.3
@@ -1,15 +1,83 @@ @@ -1,15 +1,83 @@
1News for the tz database 1News for the tz database
2 2
 3Release 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
3Release 2023d - 2023-12-21 20:02:24 -0800 71Release 2023d - 2023-12-21 20:02:24 -0800
4 72
5 Briefly: 73 Briefly:
6 Ittoqqortoormiit, Greenland changes time zones on 2024-03-31. 74 Ittoqqortoormiit, Greenland changes time zones on 2024-03-31.
7 Vostok, Antarctica changed time zones on 2023-12-18. 75 Vostok, Antarctica changed time zones on 2023-12-18.
8 Casey, Antarctica changed time zones five times since 2020. 76 Casey, Antarctica changed time zones five times since 2020.
9 Code and data fixes for Palestine timestamps starting in 2072. 77 Code and data fixes for Palestine timestamps starting in 2072.
10 A new data file zonenow.tab for timestamps starting now. 78 A new data file zonenow.tab for timestamps starting now.
11 79
12 Changes to future timestamps 80 Changes to future timestamps
13 81
14 Ittoqqortoormiit, Greenland (America/Scoresbysund) joins most of 82 Ittoqqortoormiit, Greenland (America/Scoresbysund) joins most of
15 the rest of Greenland's timekeeping practice on 2024-03-31, by 83 the rest of Greenland's timekeeping practice on 2024-03-31, by

cvs diff -r1.32.2.2 -r1.32.2.3 src/external/public-domain/tz/dist/TZDATA_VERSION (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/TZDATA_VERSION 2023/12/29 20:41:11 1.32.2.2
+++ src/external/public-domain/tz/dist/TZDATA_VERSION 2024/02/06 12:22:41 1.32.2.3

cvs diff -r1.1.1.30.2.2 -r1.1.1.30.2.3 src/external/public-domain/tz/dist/africa (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/africa 2023/12/29 20:41:11 1.1.1.30.2.2
+++ src/external/public-domain/tz/dist/africa 2024/02/06 12:22:41 1.1.1.30.2.3
@@ -20,26 +20,30 @@ @@ -20,26 +20,30 @@
20# Association's Standard Schedules Information Manual (IATA SSIM), 20# Association's Standard Schedules Information Manual (IATA SSIM),
21# published semiannually. Law sent in several helpful summaries 21# published semiannually. Law sent in several helpful summaries
22# of the IATA's data after 1990. Except where otherwise noted, 22# of the IATA's data after 1990. Except where otherwise noted,
23# IATA SSIM is the source for entries after 1990. 23# IATA SSIM is the source for entries after 1990.
24# 24#
25# Another source occasionally used is Edward W. Whitman, World Time Differences, 25# Another source occasionally used is Edward W. Whitman, World Time Differences,
26# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which 26# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
27# I found in the UCLA library. 27# I found in the UCLA library.
28# 28#
29# For data circa 1899, a common source is: 29# For data circa 1899, a common source is:
30# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. 30# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
31# https://www.jstor.org/stable/1774359 31# https://www.jstor.org/stable/1774359
32# 32#
 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#
33# European-style abbreviations are commonly used along the Mediterranean. 37# European-style abbreviations are commonly used along the Mediterranean.
34# For sub-Saharan Africa abbreviations were less standardized. 38# For sub-Saharan Africa abbreviations were less standardized.
35# Previous editions of this database used WAT, CAT, SAT, and EAT 39# Previous editions of this database used WAT, CAT, SAT, and EAT
36# for UT +00 through +03, respectively, 40# for UT +00 through +03, respectively,
37# but in 1997 Mark R V Murray reported that 41# but in 1997 Mark R V Murray reported that
38# 'SAST' is the official abbreviation for +02 in the country of South Africa, 42# 'SAST' is the official abbreviation for +02 in the country of South Africa,
39# 'CAT' is commonly used for +02 in countries north of South Africa, and 43# 'CAT' is commonly used for +02 in countries north of South Africa, and
40# 'WAT' is probably the best name for +01, as the common phrase for 44# 'WAT' is probably the best name for +01, as the common phrase for
41# the area that includes Nigeria is "West Africa". 45# the area that includes Nigeria is "West Africa".
42# 46#
43# To summarize, the following abbreviations seemed to have some currency: 47# To summarize, the following abbreviations seemed to have some currency:
44# +00 GMT Greenwich Mean Time 48# +00 GMT Greenwich Mean Time
45# +02 CAT Central Africa Time 49# +02 CAT Central Africa Time
@@ -143,27 +147,27 @@ Zone Africa/Douala 0:38:48 - LMT 1912 @@ -143,27 +147,27 @@ Zone Africa/Douala 0:38:48 - LMT 1912
143Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia 147Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
144 -2:00 - -02 1942 Sep 148 -2:00 - -02 1942 Sep
145 -2:00 1:00 -01 1945 Oct 15 149 -2:00 1:00 -01 1945 Oct 15
146 -2:00 - -02 1975 Nov 25 2:00 150 -2:00 - -02 1975 Nov 25 2:00
147 -1:00 - -01 151 -1:00 - -01
148 152
149# Central African Republic 153# Central African Republic
150# Zone NAME STDOFF RULES FORMAT [UNTIL] 154# Zone NAME STDOFF RULES FORMAT [UNTIL]
151Zone Africa/Bangui 1:14:20 - LMT 1912 155Zone Africa/Bangui 1:14:20 - LMT 1912
152 1:00 - WAT 156 1:00 - WAT
153 157
154# Chad 158# Chad
155# Zone NAME STDOFF RULES FORMAT [UNTIL] 159# Zone NAME STDOFF RULES FORMAT [UNTIL]
156Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena 160Zone Africa/Ndjamena 1:00:12 - LMT 1912 Jan 1 # N'Djamena
157 1:00 - WAT 1979 Oct 14 161 1:00 - WAT 1979 Oct 14
158 1:00 1:00 WAST 1980 Mar 8 162 1:00 1:00 WAST 1980 Mar 8
159 1:00 - WAT 163 1:00 - WAT
160 164
161# Comoros 165# Comoros
162# Zone NAME STDOFF RULES FORMAT [UNTIL] 166# Zone NAME STDOFF RULES FORMAT [UNTIL]
163Zone Indian/Comoro 2:53:04 - LMT 1911 Jul # Moroni, Gran Comoro 167Zone Indian/Comoro 2:53:04 - LMT 1911 Jul # Moroni, Gran Comoro
164 3:00 - EAT 168 3:00 - EAT
165 169
166# Democratic Republic of the Congo 170# Democratic Republic of the Congo
167# Zone NAME STDOFF RULES FORMAT [UNTIL] 171# Zone NAME STDOFF RULES FORMAT [UNTIL]
168Zone Africa/Kinshasa 1:01:12 - LMT 1897 Nov 9 172Zone Africa/Kinshasa 1:01:12 - LMT 1897 Nov 9
169 1:00 - WAT 173 1:00 - WAT
@@ -178,27 +182,27 @@ Zone Africa/Lubumbashi 1:49:52 - LMT 189 @@ -178,27 +182,27 @@ Zone Africa/Lubumbashi 1:49:52 - LMT 189
178Zone Africa/Brazzaville 1:01:08 - LMT 1912 182Zone Africa/Brazzaville 1:01:08 - LMT 1912
179 1:00 - WAT 183 1:00 - WAT
180 184
181# Côte d'Ivoire (Ivory Coast) 185# Côte d'Ivoire (Ivory Coast)
182 186
183# The other parts of the St Helena territory are similar: 187# The other parts of the St Helena territory are similar:
184# Tristan da Cunha: on GMT, say Whitman and the CIA 188# Tristan da Cunha: on GMT, say Whitman and the CIA
185# Ascension: on GMT, say the USNO (1995-12-21) and the CIA 189# Ascension: on GMT, say the USNO (1995-12-21) and the CIA
186# Gough (scientific station since 1955; sealers wintered previously): 190# Gough (scientific station since 1955; sealers wintered previously):
187# on GMT, says the CIA 191# on GMT, says the CIA
188# Inaccessible, Nightingale: uninhabited 192# Inaccessible, Nightingale: uninhabited
189 193
190# Zone NAME STDOFF RULES FORMAT [UNTIL] 194# Zone NAME STDOFF RULES FORMAT [UNTIL]
191Zone Africa/Abidjan -0:16:08 - LMT 1912 195Zone Africa/Abidjan -0:16:08 - LMT 1912 Jan 1
192 0:00 - GMT 196 0:00 - GMT
193 197
194# Djibouti 198# Djibouti
195# Zone NAME STDOFF RULES FORMAT [UNTIL] 199# Zone NAME STDOFF RULES FORMAT [UNTIL]
196Zone Africa/Djibouti 2:52:36 - LMT 1911 Jul 200Zone Africa/Djibouti 2:52:36 - LMT 1911 Jul
197 3:00 - EAT 201 3:00 - EAT
198 202
199 203
200############################################################################### 204###############################################################################
201 205
202# Egypt 206# Egypt
203 207
204# Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh 208# Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh

cvs diff -r1.7.2.2 -r1.7.2.3 src/external/public-domain/tz/dist/asia (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/asia 2023/12/29 20:41:12 1.7.2.2
+++ src/external/public-domain/tz/dist/asia 2024/02/06 12:22:42 1.7.2.3
@@ -2468,98 +2468,112 @@ Zone Asia/Amman 2:23:44 - LMT 1931 @@ -2468,98 +2468,112 @@ Zone Asia/Amman 2:23:44 - LMT 1931
2468# 1920-01-01 to the fourth time belt. But I do not understand 2468# 1920-01-01 to the fourth time belt. But I do not understand
2469# how that could happen.... 2469# how that could happen....
2470# 2470#
2471# [For Atyrau and Oral] 1919 decree 2471# [For Atyrau and Oral] 1919 decree
2472# (http://www.worldtimezone.com/dst_news/dst_news_russia-1919-02-08.html 2472# (http://www.worldtimezone.com/dst_news/dst_news_russia-1919-02-08.html
2473# and in Byalokoz) lists Ural river (plus 10 versts on its left bank) in 2473# and in Byalokoz) lists Ural river (plus 10 versts on its left bank) in
2474# the third time belt (before 1930 this means +03). 2474# the third time belt (before 1930 this means +03).
2475 2475
2476# From Alexander Konzurovski (2018-12-20): 2476# From Alexander Konzurovski (2018-12-20):
2477# (Asia/Qyzylorda) is changing its time zone from UTC+6 to UTC+5 2477# (Asia/Qyzylorda) is changing its time zone from UTC+6 to UTC+5
2478# effective December 21st, 2018.... 2478# effective December 21st, 2018....
2479# http://adilet.zan.kz/rus/docs/P1800000817 (russian language). 2479# http://adilet.zan.kz/rus/docs/P1800000817 (russian language).
2480 2480
 2481# From Zhanbolat Raimbekov (2024-01-19):
 2482# Kazakhstan (all parts) switching to UTC+5 on March 1, 2024
 2483# https://www.gov.kz/memleket/entities/mti/press/news/details/688998?lang=ru
 2484# [in Russian]
 2485# (2024-01-20): https://primeminister.kz/ru/decisions/19012024-20
 2486#
 2487# From Alexander Krivenyshev (2024-01-19):
 2488# According to a different news and the official web site for the Ministry of
 2489# Trade and Integration of the Republic of Kazakhstan:
 2490# https://en.inform.kz/news/kazakhstan-to-switch-to-single-hour-zone-mar-1-54ad0b/
 2491
2481# Zone NAME STDOFF RULES FORMAT [UNTIL] 2492# Zone NAME STDOFF RULES FORMAT [UNTIL]
2482# 2493#
2483# Almaty (formerly Alma-Ata), representing most locations in Kazakhstan 2494# Almaty (formerly Alma-Ata), representing most locations in Kazakhstan
2484# This includes KZ-AKM, KZ-ALA, KZ-ALM, KZ-AST, KZ-BAY, KZ-VOS, KZ-ZHA, 2495# This includes Abai/Abay (ISO 3166-2 code KZ-10), Aqmola/Akmola (KZ-11),
2485# KZ-KAR, KZ-SEV, KZ-PAV, and KZ-YUZ. 2496# Almaty (KZ-19), Almaty city (KZ-75), Astana city (KZ-71),
 2497# East Kazkhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33),
 2498# Karaganda (KZ-35), North Kazakhstan (KZ-59), Pavlodar (KZ-55),
 2499# Shyumkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62).
2486Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata 2500Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata
2487 5:00 - +05 1930 Jun 21 2501 5:00 - +05 1930 Jun 21
2488 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s 2502 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
2489 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s 2503 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s
2490 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s 2504 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s
2491 6:00 - +06 2505 6:00 - +06 2024 Mar 1 0:00
2492# Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-KZY) 2506 5:00 - +05
 2507# Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-43)
2493Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 2508Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2
2494 4:00 - +04 1930 Jun 21 2509 4:00 - +04 1930 Jun 21
2495 5:00 - +05 1981 Apr 1 2510 5:00 - +05 1981 Apr 1
2496 5:00 1:00 +06 1981 Oct 1 2511 5:00 1:00 +06 1981 Oct 1
2497 6:00 - +06 1982 Apr 1 2512 6:00 - +06 1982 Apr 1
2498 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 2513 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
2499 4:00 RussiaAsia +04/+05 1991 Sep 29 2:00s 2514 4:00 RussiaAsia +04/+05 1991 Sep 29 2:00s
2500 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s 2515 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s
2501 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s 2516 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s
2502 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 2517 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
2503 6:00 - +06 2018 Dec 21 0:00 2518 6:00 - +06 2018 Dec 21 0:00
2504 5:00 - +05 2519 5:00 - +05
2505# 2520# Qostanay (aka Kostanay, Kustanay) (KZ-39)
2506# Qostanay (aka Kostanay, Kustanay) (KZ-KUS) 
2507# The 1991/2 rules are unclear partly because of the 1997 Turgai 2521# The 1991/2 rules are unclear partly because of the 1997 Turgai
2508# reorganization. 2522# reorganization.
2509Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2 2523Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2
2510 4:00 - +04 1930 Jun 21 2524 4:00 - +04 1930 Jun 21
2511 5:00 - +05 1981 Apr 1 2525 5:00 - +05 1981 Apr 1
2512 5:00 1:00 +06 1981 Oct 1 2526 5:00 1:00 +06 1981 Oct 1
2513 6:00 - +06 1982 Apr 1 2527 6:00 - +06 1982 Apr 1
2514 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 2528 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
2515 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 2529 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
2516 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 2530 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
2517 6:00 - +06 2531 6:00 - +06 2024 Mar 1 0:00
2518 2532 5:00 - +05
2519# Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-AKT) 2533# Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-15)
2520Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 2534Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2
2521 4:00 - +04 1930 Jun 21 2535 4:00 - +04 1930 Jun 21
2522 5:00 - +05 1981 Apr 1 2536 5:00 - +05 1981 Apr 1
2523 5:00 1:00 +06 1981 Oct 1 2537 5:00 1:00 +06 1981 Oct 1
2524 6:00 - +06 1982 Apr 1 2538 6:00 - +06 1982 Apr 1
2525 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 2539 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
2526 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 2540 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
2527 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 2541 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s
2528 5:00 - +05 2542 5:00 - +05
2529# MangghystaÅ« (KZ-MAN) 2543# MangghystaÅ« (KZ-47)
2530# Aqtau was not founded until 1963, but it represents an inhabited region, 2544# Aqtau was not founded until 1963, but it represents an inhabited region,
2531# so include timestamps before 1963. 2545# so include timestamps before 1963.
2532Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 2546Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2
2533 4:00 - +04 1930 Jun 21 2547 4:00 - +04 1930 Jun 21
2534 5:00 - +05 1981 Oct 1 2548 5:00 - +05 1981 Oct 1
2535 6:00 - +06 1982 Apr 1 2549 6:00 - +06 1982 Apr 1
2536 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 2550 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
2537 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 2551 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
2538 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s 2552 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s
2539 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 2553 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
2540 5:00 - +05 2554 5:00 - +05
2541# AtyraÅ« (KZ-ATY) is like MangghystaÅ« except it switched from 2555# AtyraÅ« (KZ-23) is like MangghystaÅ« except it switched from
2542# +04/+05 to +05/+06 in spring 1999, not fall 1994. 2556# +04/+05 to +05/+06 in spring 1999, not fall 1994.
2543Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 2557Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2
2544 3:00 - +03 1930 Jun 21 2558 3:00 - +03 1930 Jun 21
2545 5:00 - +05 1981 Oct 1 2559 5:00 - +05 1981 Oct 1
2546 6:00 - +06 1982 Apr 1 2560 6:00 - +06 1982 Apr 1
2547 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s 2561 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s
2548 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 2562 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
2549 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s 2563 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s
2550 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 2564 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
2551 5:00 - +05 2565 5:00 - +05
2552# West Kazakhstan (KZ-ZAP) 2566# West Kazakhstan (KZ-27)
2553# From Paul Eggert (2016-03-18): 2567# From Paul Eggert (2016-03-18):
2554# The 1989 transition is from USSR act No. 227 (1989-03-14). 2568# The 1989 transition is from USSR act No. 227 (1989-03-14).
2555Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk 2569Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk
2556 3:00 - +03 1930 Jun 21 2570 3:00 - +03 1930 Jun 21
2557 5:00 - +05 1981 Apr 1 2571 5:00 - +05 1981 Apr 1
2558 5:00 1:00 +06 1981 Oct 1 2572 5:00 1:00 +06 1981 Oct 1
2559 6:00 - +06 1982 Apr 1 2573 6:00 - +06 1982 Apr 1
2560 5:00 RussiaAsia +05/+06 1989 Mar 26 2:00s 2574 5:00 RussiaAsia +05/+06 1989 Mar 26 2:00s
2561 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 2575 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s
2562 5:00 RussiaAsia +05/+06 1992 Mar 29 2:00s 2576 5:00 RussiaAsia +05/+06 1992 Mar 29 2:00s
2563 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 2577 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s
2564 5:00 - +05 2578 5:00 - +05
2565 2579
@@ -3470,47 +3484,55 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 @@ -3470,47 +3484,55 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
3470# and winter time for the years: 2023,2024,2025,2026 ... 3484# and winter time for the years: 2023,2024,2025,2026 ...
3471# https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001.pdf 3485# https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001.pdf
3472# (2022-08-31): ... the Saturday before the last Sunday in March and October 3486# (2022-08-31): ... the Saturday before the last Sunday in March and October
3473# at 2:00 AM ,for the years from 2023 to 2026. 3487# at 2:00 AM ,for the years from 2023 to 2026.
3474# (2022-09-05): https://mtit.pna.ps/Site/New/1453 3488# (2022-09-05): https://mtit.pna.ps/Site/New/1453
3475 3489
3476# From Heba Hamad (2023-03-22): 3490# From Heba Hamad (2023-03-22):
3477# ... summer time will begin in Palestine from Saturday 04-29-2023, 3491# ... summer time will begin in Palestine from Saturday 04-29-2023,
3478# 02:00 AM by 60 minutes forward. 3492# 02:00 AM by 60 minutes forward.
3479# From Heba Hemad (2023-10-09): 3493# From Heba Hemad (2023-10-09):
3480# ... winter time will begin in Palestine from Saturday 10-28-2023, 3494# ... winter time will begin in Palestine from Saturday 10-28-2023,
3481# 02:00 AM by 60 minutes back. 3495# 02:00 AM by 60 minutes back.
3482# 3496#
3483# From Paul Eggert (2023-03-22): 3497# From Heba Hamad (2024-01-25):
 3498# the summer time for the years 2024,2025 will begin in Palestine
 3499# from Saturday at 02:00 AM by 60 minutes forward as shown below:
 3500# year date
 3501# 2024 2024-04-20
 3502# 2025 2025-04-12
 3503#
 3504# From Paul Eggert (2024-01-25):
3484# For now, guess that spring and fall transitions will normally 3505# For now, guess that spring and fall transitions will normally
3485# continue to use 2022's rules, that during DST Palestine will switch 3506# continue to use 2022's rules, that during DST Palestine will switch
3486# to standard time at 02:00 the last Saturday before Ramadan and back 3507# to standard time at 02:00 the last Saturday before Ramadan and back
3487# to DST at 02:00 the first Saturday after Ramadan, and that 3508# to DST at 02:00 the second Saturday after Ramadan, and that
3488# if the normal spring-forward or fall-back transition occurs during 3509# if the normal spring-forward or fall-back transition occurs during
3489# Ramadan the former is delayed and the latter advanced. 3510# Ramadan the former is delayed and the latter advanced.
3490# To implement this, I predicted Ramadan-oriented transition dates for 3511# To implement this, I predicted Ramadan-oriented transition dates for
3491# 2023 through 2086 by running the following program under GNU Emacs 28.2, 3512# 2026 through 2086 by running the following program under GNU Emacs 29.2,
3492# with the results integrated by hand into the table below. 3513# with the results integrated by hand into the table below.
3493# Predictions after 2086 are approximated without Ramadan. 3514# Predictions after 2086 are approximated without Ramadan.
3494# 3515#
3495# (let ((islamic-year 1444)) 3516# (let ((islamic-year 1447))
3496# (require 'cal-islam) 3517# (require 'cal-islam)
3497# (while (< islamic-year 1510) 3518# (while (< islamic-year 1510)
3498# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) 3519# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
3499# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year)))) 3520# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
3500# (saturday 6)) 3521# (saturday 6))
3501# (while (/= saturday (mod (setq a (1- a)) 7))) 3522# (while (/= saturday (mod (setq a (1- a)) 7)))
3502# (while (/= saturday (mod b 7)) 3523# (while (/= saturday (mod b 7))
3503# (setq b (1+ b))) 3524# (setq b (1+ b)))
 3525# (setq b (+ 7 b))
3504# (setq a (calendar-gregorian-from-absolute a)) 3526# (setq a (calendar-gregorian-from-absolute a))
3505# (setq b (calendar-gregorian-from-absolute b)) 3527# (setq b (calendar-gregorian-from-absolute b))
3506# (insert 3528# (insert
3507# (format 3529# (format
3508# (concat "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t0\t-\n" 3530# (concat "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t0\t-\n"
3509# "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t1:00\tS\n") 3531# "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t1:00\tS\n")
3510# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a)) 3532# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
3511# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) 3533# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
3512# (setq islamic-year (+ 1 islamic-year)))) 3534# (setq islamic-year (+ 1 islamic-year))))
3513 3535
3514# Rule NAME FROM TO - IN ON AT SAVE LETTER/S 3536# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
3515Rule EgyptAsia 1957 only - May 10 0:00 1:00 S 3537Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
3516Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - 3538Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
@@ -3541,104 +3563,104 @@ Rule Palestine 2013 only - Sep 27 0:00 0 @@ -3541,104 +3563,104 @@ Rule Palestine 2013 only - Sep 27 0:00 0
3541Rule Palestine 2014 only - Oct 24 0:00 0 - 3563Rule Palestine 2014 only - Oct 24 0:00 0 -
3542Rule Palestine 2015 only - Mar 28 0:00 1:00 S 3564Rule Palestine 2015 only - Mar 28 0:00 1:00 S
3543Rule Palestine 2015 only - Oct 23 1:00 0 - 3565Rule Palestine 2015 only - Oct 23 1:00 0 -
3544Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S 3566Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
3545Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 - 3567Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
3546Rule Palestine 2019 only - Mar 29 0:00 1:00 S 3568Rule Palestine 2019 only - Mar 29 0:00 1:00 S
3547Rule Palestine 2019 only - Oct Sat<=30 0:00 0 - 3569Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
3548Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S 3570Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
3549Rule Palestine 2020 only - Oct 24 1:00 0 - 3571Rule Palestine 2020 only - Oct 24 1:00 0 -
3550Rule Palestine 2021 only - Oct 29 1:00 0 - 3572Rule Palestine 2021 only - Oct 29 1:00 0 -
3551Rule Palestine 2022 only - Mar 27 0:00 1:00 S 3573Rule Palestine 2022 only - Mar 27 0:00 1:00 S
3552Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 - 3574Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
3553Rule Palestine 2023 only - Apr 29 2:00 1:00 S 3575Rule Palestine 2023 only - Apr 29 2:00 1:00 S
3554Rule Palestine 2024 only - Apr 13 2:00 1:00 S 3576Rule Palestine 2024 only - Apr 20 2:00 1:00 S
3555Rule Palestine 2025 only - Apr 5 2:00 1:00 S 3577Rule Palestine 2025 only - Apr 12 2:00 1:00 S
3556Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S 3578Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
3557Rule Palestine 2036 only - Oct 18 2:00 0 - 3579Rule Palestine 2036 only - Oct 18 2:00 0 -
3558Rule Palestine 2037 only - Oct 10 2:00 0 - 3580Rule Palestine 2037 only - Oct 10 2:00 0 -
3559Rule Palestine 2038 only - Sep 25 2:00 0 - 3581Rule Palestine 2038 only - Sep 25 2:00 0 -
3560Rule Palestine 2039 only - Sep 17 2:00 0 - 3582Rule Palestine 2039 only - Sep 17 2:00 0 -
3561Rule Palestine 2039 only - Oct 22 2:00 1:00 S 
3562Rule Palestine 2039 2067 - Oct Sat<=30 2:00 0 - 
3563Rule Palestine 2040 only - Sep 1 2:00 0 - 3583Rule Palestine 2040 only - Sep 1 2:00 0 -
3564Rule Palestine 2040 only - Oct 13 2:00 1:00 S 3584Rule Palestine 2040 only - Oct 20 2:00 1:00 S
 3585Rule Palestine 2040 2067 - Oct Sat<=30 2:00 0 -
3565Rule Palestine 2041 only - Aug 24 2:00 0 - 3586Rule Palestine 2041 only - Aug 24 2:00 0 -
3566Rule Palestine 2041 only - Sep 28 2:00 1:00 S 3587Rule Palestine 2041 only - Oct 5 2:00 1:00 S
3567Rule Palestine 2042 only - Aug 16 2:00 0 - 3588Rule Palestine 2042 only - Aug 16 2:00 0 -
3568Rule Palestine 2042 only - Sep 20 2:00 1:00 S 3589Rule Palestine 2042 only - Sep 27 2:00 1:00 S
3569Rule Palestine 2043 only - Aug 1 2:00 0 - 3590Rule Palestine 2043 only - Aug 1 2:00 0 -
3570Rule Palestine 2043 only - Sep 12 2:00 1:00 S 3591Rule Palestine 2043 only - Sep 19 2:00 1:00 S
3571Rule Palestine 2044 only - Jul 23 2:00 0 - 3592Rule Palestine 2044 only - Jul 23 2:00 0 -
3572Rule Palestine 2044 only - Aug 27 2:00 1:00 S 3593Rule Palestine 2044 only - Sep 3 2:00 1:00 S
3573Rule Palestine 2045 only - Jul 15 2:00 0 - 3594Rule Palestine 2045 only - Jul 15 2:00 0 -
3574Rule Palestine 2045 only - Aug 19 2:00 1:00 S 3595Rule Palestine 2045 only - Aug 26 2:00 1:00 S
3575Rule Palestine 2046 only - Jun 30 2:00 0 - 3596Rule Palestine 2046 only - Jun 30 2:00 0 -
3576Rule Palestine 2046 only - Aug 11 2:00 1:00 S 3597Rule Palestine 2046 only - Aug 18 2:00 1:00 S
3577Rule Palestine 2047 only - Jun 22 2:00 0 - 3598Rule Palestine 2047 only - Jun 22 2:00 0 -
3578Rule Palestine 2047 only - Jul 27 2:00 1:00 S 3599Rule Palestine 2047 only - Aug 3 2:00 1:00 S
3579Rule Palestine 2048 only - Jun 6 2:00 0 - 3600Rule Palestine 2048 only - Jun 6 2:00 0 -
3580Rule Palestine 2048 only - Jul 18 2:00 1:00 S 3601Rule Palestine 2048 only - Jul 25 2:00 1:00 S
3581Rule Palestine 2049 only - May 29 2:00 0 - 3602Rule Palestine 2049 only - May 29 2:00 0 -
3582Rule Palestine 2049 only - Jul 3 2:00 1:00 S 3603Rule Palestine 2049 only - Jul 10 2:00 1:00 S
3583Rule Palestine 2050 only - May 21 2:00 0 - 3604Rule Palestine 2050 only - May 21 2:00 0 -
3584Rule Palestine 2050 only - Jun 25 2:00 1:00 S 3605Rule Palestine 2050 only - Jul 2 2:00 1:00 S
3585Rule Palestine 2051 only - May 6 2:00 0 - 3606Rule Palestine 2051 only - May 6 2:00 0 -
3586Rule Palestine 2051 only - Jun 17 2:00 1:00 S 3607Rule Palestine 2051 only - Jun 24 2:00 1:00 S
3587Rule Palestine 2052 only - Apr 27 2:00 0 - 3608Rule Palestine 2052 only - Apr 27 2:00 0 -
3588Rule Palestine 2052 only - Jun 1 2:00 1:00 S 3609Rule Palestine 2052 only - Jun 8 2:00 1:00 S
3589Rule Palestine 2053 only - Apr 12 2:00 0 - 3610Rule Palestine 2053 only - Apr 12 2:00 0 -
3590Rule Palestine 2053 only - May 24 2:00 1:00 S 3611Rule Palestine 2053 only - May 31 2:00 1:00 S
3591Rule Palestine 2054 only - Apr 4 2:00 0 - 3612Rule Palestine 2054 only - Apr 4 2:00 0 -
3592Rule Palestine 2054 only - May 16 2:00 1:00 S 3613Rule Palestine 2054 only - May 23 2:00 1:00 S
3593Rule Palestine 2055 only - May 1 2:00 1:00 S 3614Rule Palestine 2055 only - May 8 2:00 1:00 S
3594Rule Palestine 2056 only - Apr 22 2:00 1:00 S 3615Rule Palestine 2056 only - Apr 29 2:00 1:00 S
3595Rule Palestine 2057 only - Apr 7 2:00 1:00 S 3616Rule Palestine 2057 only - Apr 14 2:00 1:00 S
3596Rule Palestine 2058 max - Mar Sat<=30 2:00 1:00 S 3617Rule Palestine 2058 only - Apr 6 2:00 1:00 S
 3618Rule Palestine 2059 max - Mar Sat<=30 2:00 1:00 S
3597Rule Palestine 2068 only - Oct 20 2:00 0 - 3619Rule Palestine 2068 only - Oct 20 2:00 0 -
3598Rule Palestine 2069 only - Oct 12 2:00 0 - 3620Rule Palestine 2069 only - Oct 12 2:00 0 -
3599Rule Palestine 2070 only - Oct 4 2:00 0 - 3621Rule Palestine 2070 only - Oct 4 2:00 0 -
3600Rule Palestine 2071 only - Sep 19 2:00 0 - 3622Rule Palestine 2071 only - Sep 19 2:00 0 -
3601Rule Palestine 2072 only - Sep 10 2:00 0 - 3623Rule Palestine 2072 only - Sep 10 2:00 0 -
3602Rule Palestine 2072 only - Oct 15 2:00 1:00 S 3624Rule Palestine 2072 only - Oct 22 2:00 1:00 S
3603Rule Palestine 2072 max - Oct Sat<=30 2:00 0 - 3625Rule Palestine 2072 max - Oct Sat<=30 2:00 0 -
3604Rule Palestine 2073 only - Sep 2 2:00 0 - 3626Rule Palestine 2073 only - Sep 2 2:00 0 -
3605Rule Palestine 2073 only - Oct 7 2:00 1:00 S 3627Rule Palestine 2073 only - Oct 14 2:00 1:00 S
3606Rule Palestine 2074 only - Aug 18 2:00 0 - 3628Rule Palestine 2074 only - Aug 18 2:00 0 -
3607Rule Palestine 2074 only - Sep 29 2:00 1:00 S 3629Rule Palestine 2074 only - Oct 6 2:00 1:00 S
3608Rule Palestine 2075 only - Aug 10 2:00 0 - 3630Rule Palestine 2075 only - Aug 10 2:00 0 -
3609Rule Palestine 2075 only - Sep 14 2:00 1:00 S 3631Rule Palestine 2075 only - Sep 21 2:00 1:00 S
3610Rule Palestine 2076 only - Jul 25 2:00 0 - 3632Rule Palestine 2076 only - Jul 25 2:00 0 -
3611Rule Palestine 2076 only - Sep 5 2:00 1:00 S 3633Rule Palestine 2076 only - Sep 12 2:00 1:00 S
3612Rule Palestine 2077 only - Jul 17 2:00 0 - 3634Rule Palestine 2077 only - Jul 17 2:00 0 -
3613Rule Palestine 2077 only - Aug 28 2:00 1:00 S 3635Rule Palestine 2077 only - Sep 4 2:00 1:00 S
3614Rule Palestine 2078 only - Jul 9 2:00 0 - 3636Rule Palestine 2078 only - Jul 9 2:00 0 -
3615Rule Palestine 2078 only - Aug 13 2:00 1:00 S 3637Rule Palestine 2078 only - Aug 20 2:00 1:00 S
3616Rule Palestine 2079 only - Jun 24 2:00 0 - 3638Rule Palestine 2079 only - Jun 24 2:00 0 -
3617Rule Palestine 2079 only - Aug 5 2:00 1:00 S 3639Rule Palestine 2079 only - Aug 12 2:00 1:00 S
3618Rule Palestine 2080 only - Jun 15 2:00 0 - 3640Rule Palestine 2080 only - Jun 15 2:00 0 -
3619Rule Palestine 2080 only - Jul 20 2:00 1:00 S 3641Rule Palestine 2080 only - Jul 27 2:00 1:00 S
3620Rule Palestine 2081 only - Jun 7 2:00 0 - 3642Rule Palestine 2081 only - Jun 7 2:00 0 -
3621Rule Palestine 2081 only - Jul 12 2:00 1:00 S 3643Rule Palestine 2081 only - Jul 19 2:00 1:00 S
3622Rule Palestine 2082 only - May 23 2:00 0 - 3644Rule Palestine 2082 only - May 23 2:00 0 -
3623Rule Palestine 2082 only - Jul 4 2:00 1:00 S 3645Rule Palestine 2082 only - Jul 11 2:00 1:00 S
3624Rule Palestine 2083 only - May 15 2:00 0 - 3646Rule Palestine 2083 only - May 15 2:00 0 -
3625Rule Palestine 2083 only - Jun 19 2:00 1:00 S 3647Rule Palestine 2083 only - Jun 26 2:00 1:00 S
3626Rule Palestine 2084 only - Apr 29 2:00 0 - 3648Rule Palestine 2084 only - Apr 29 2:00 0 -
3627Rule Palestine 2084 only - Jun 10 2:00 1:00 S 3649Rule Palestine 2084 only - Jun 17 2:00 1:00 S
3628Rule Palestine 2085 only - Apr 21 2:00 0 - 3650Rule Palestine 2085 only - Apr 21 2:00 0 -
3629Rule Palestine 2085 only - Jun 2 2:00 1:00 S 3651Rule Palestine 2085 only - Jun 9 2:00 1:00 S
3630Rule Palestine 2086 only - Apr 13 2:00 0 - 3652Rule Palestine 2086 only - Apr 13 2:00 0 -
3631Rule Palestine 2086 only - May 18 2:00 1:00 S 3653Rule Palestine 2086 only - May 25 2:00 1:00 S
3632 3654
3633# Zone NAME STDOFF RULES FORMAT [UNTIL] 3655# Zone NAME STDOFF RULES FORMAT [UNTIL]
3634Zone Asia/Gaza 2:17:52 - LMT 1900 Oct 3656Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
3635 2:00 Zion EET/EEST 1948 May 15 3657 2:00 Zion EET/EEST 1948 May 15
3636 2:00 EgyptAsia EE%sT 1967 Jun 5 3658 2:00 EgyptAsia EE%sT 1967 Jun 5
3637 2:00 Zion I%sT 1996 3659 2:00 Zion I%sT 1996
3638 2:00 Jordan EE%sT 1999 3660 2:00 Jordan EE%sT 1999
3639 2:00 Palestine EE%sT 2008 Aug 29 0:00 3661 2:00 Palestine EE%sT 2008 Aug 29 0:00
3640 2:00 - EET 2008 Sep 3662 2:00 - EET 2008 Sep
3641 2:00 Palestine EE%sT 2010 3663 2:00 Palestine EE%sT 2010
3642 2:00 - EET 2010 Mar 27 0:01 3664 2:00 - EET 2010 Mar 27 0:01
3643 2:00 Palestine EE%sT 2011 Aug 1 3665 2:00 Palestine EE%sT 2011 Aug 1
3644 2:00 - EET 2012 3666 2:00 - EET 2012
@@ -3646,35 +3668,35 @@ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct @@ -3646,35 +3668,35 @@ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
3646 3668
3647Zone Asia/Hebron 2:20:23 - LMT 1900 Oct 3669Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
3648 2:00 Zion EET/EEST 1948 May 15 3670 2:00 Zion EET/EEST 1948 May 15
3649 2:00 EgyptAsia EE%sT 1967 Jun 5 3671 2:00 EgyptAsia EE%sT 1967 Jun 5
3650 2:00 Zion I%sT 1996 3672 2:00 Zion I%sT 1996
3651 2:00 Jordan EE%sT 1999 3673 2:00 Jordan EE%sT 1999
3652 2:00 Palestine EE%sT 3674 2:00 Palestine EE%sT
3653 3675
3654# Paracel Is 3676# Paracel Is
3655# no information 3677# no information
3656 3678
3657# Philippines 3679# Philippines
3658 3680
3659# From Paul Eggert (2018-11-18): 3681# From Paul Eggert (2024-01-21):
3660# The Spanish initially used American (west-of-Greenwich) time. 3682# The Spanish initially used American (west-of-Greenwich) time.
3661# It is unknown what time Manila kept when the British occupied it from 3683# It is unknown what time Manila kept when the British occupied it from
3662# 1762-10-06 through 1764-04; for now assume it kept American time. 3684# 1762-10-06 through 1764-04; for now assume it kept American time.
3663# On 1844-08-16, Narciso Clavería, governor-general of the 3685# On 1844-08-16, Narciso Clavería, governor-general of the
3664# Philippines, issued a proclamation announcing that 1844-12-30 was to 3686# Philippines, issued a proclamation announcing that 1844-12-30 was to
3665# be immediately followed by 1845-01-01; see R.H. van Gent's 3687# be immediately followed by 1845-01-01; see R.H. van Gent's
3666# History of the International Date Line 3688# History of the International Date Line
3667# https://www.staff.science.uu.nl/~gent0113/idl/idl_philippines.htm 3689# https://webspace.science.uu.nl/~gent0113/idl/idl_philippines.htm
3668# The rest of the data entries are from Shanks & Pottenger. 3690# The rest of the data entries are from Shanks & Pottenger.
3669 3691
3670# From Jesper Nørgaard Welen (2006-04-26): 3692# From Jesper Nørgaard Welen (2006-04-26):
3671# ... claims that Philippines had DST last time in 1990: 3693# ... claims that Philippines had DST last time in 1990:
3672# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/ 3694# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/
3673# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires, 3695# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires,
3674# but no details] 3696# but no details]
3675 3697
3676# From Paul Eggert (2014-08-14): 3698# From Paul Eggert (2014-08-14):
3677# The following source says DST may be instituted November-January and again 3699# The following source says DST may be instituted November-January and again
3678# March-June, but this is not definite. It also says DST was last proclaimed 3700# March-June, but this is not definite. It also says DST was last proclaimed
3679# during the Ramos administration (1992-1998); but again, no details. 3701# during the Ramos administration (1992-1998); but again, no details.
3680# Carcamo D. PNoy urged to declare use of daylight saving time. 3702# Carcamo D. PNoy urged to declare use of daylight saving time.
@@ -4071,27 +4093,28 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 Ma @@ -4071,27 +4093,28 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 Ma
4071 4093
4072# Vietnam (southern) 4094# Vietnam (southern)
4073 4095
4074# From Paul Eggert (2014-10-04): 4096# From Paul Eggert (2014-10-04):
4075# Milne gives 7:16:56 for the meridian of Saigon in 1899, as being 4097# Milne gives 7:16:56 for the meridian of Saigon in 1899, as being
4076# used in Lower Laos, Cambodia, and Annam. But this is quite a ways 4098# used in Lower Laos, Cambodia, and Annam. But this is quite a ways
4077# from Saigon's location. For now, ignore this and stick with Shanks 4099# from Saigon's location. For now, ignore this and stick with Shanks
4078# and Pottenger for LMT before 1906. 4100# and Pottenger for LMT before 1906.
4079 4101
4080# From Arthur David Olson (2008-03-18): 4102# From Arthur David Olson (2008-03-18):
4081# The English-language name of Vietnam's most populous city is "Ho Chi Minh 4103# The English-language name of Vietnam's most populous city is "Ho Chi Minh
4082# City"; use Ho_Chi_Minh below to avoid a name of more than 14 characters. 4104# City"; use Ho_Chi_Minh below to avoid a name of more than 14 characters.
4083 4105
4084# From Paul Eggert (2022-07-27) after a 2014 heads-up from Trần Ngá»c Quân: 4106# From Paul Eggert (2024-01-14) after a 2014 heads-up from Trần Ngá»c Quân
 4107# and a 2024-01-14 heads-up from Äoàn Trần Công Danh:
4085# Trần Tiến Bình's authoritative book "Lịch Việt Nam: thế ká»· XX-XXI (1901-2100)" 4108# Trần Tiến Bình's authoritative book "Lịch Việt Nam: thế ká»· XX-XXI (1901-2100)"
4086# (Nhà xuất bản Văn Hoá - Thông Tin, Hanoi, 2005), pp 49-50, 4109# (Nhà xuất bản Văn Hoá - Thông Tin, Hanoi, 2005), pp 49-50,
4087# is quoted verbatim in: 4110# is quoted verbatim in:
4088# http://www.thoigian.com.vn/?mPage=P80D01 4111# http://www.thoigian.com.vn/?mPage=P80D01
4089# is translated by Brian Inglis in: 4112# is translated by Brian Inglis in:
4090# https://mm.icann.org/pipermail/tz/2014-October/021654.html 4113# https://mm.icann.org/pipermail/tz/2014-October/021654.html
4091# and is the basis for the information below. 4114# and is the basis for the information below.
4092# 4115#
4093# The 1906 transition was effective July 1 and standardized Indochina to 4116# The 1906 transition was effective July 1 and standardized Indochina to
4094# Phù Liá»…n Observatory, legally 104° 17' 17" east of Paris. 4117# Phù Liá»…n Observatory, legally 104° 17' 17" east of Paris.
4095# It's unclear whether this meant legal Paris Mean Time (00:09:21) or 4118# It's unclear whether this meant legal Paris Mean Time (00:09:21) or
4096# the Paris Meridian; for now guess the former and round the exact 4119# the Paris Meridian; for now guess the former and round the exact
4097# 07:06:30.1333... to 07:06:30.13 as the legal spec used 66 2/3 ms precision. 4120# 07:06:30.1333... to 07:06:30.13 as the legal spec used 66 2/3 ms precision.
@@ -4101,44 +4124,65 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 Ma @@ -4101,44 +4124,65 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 Ma
4101# The following transitions occurred in Indochina in general (before 1954) 4124# The following transitions occurred in Indochina in general (before 1954)
4102# and in South Vietnam in particular (after 1954): 4125# and in South Vietnam in particular (after 1954):
4103# To 07:00 on 1911-05-01. 4126# To 07:00 on 1911-05-01.
4104# To 08:00 on 1942-12-31 at 23:00. 4127# To 08:00 on 1942-12-31 at 23:00.
4105# To 09:00 on 1945-03-14 at 23:00. 4128# To 09:00 on 1945-03-14 at 23:00.
4106# To 07:00 on 1945-09-02 in Vietnam. 4129# To 07:00 on 1945-09-02 in Vietnam.
4107# To 08:00 on 1947-04-01 in French-controlled Indochina. 4130# To 08:00 on 1947-04-01 in French-controlled Indochina.
4108# To 07:00 on 1955-07-01 in South Vietnam. 4131# To 07:00 on 1955-07-01 in South Vietnam.
4109# To 08:00 on 1959-12-31 at 23:00 in South Vietnam. 4132# To 08:00 on 1959-12-31 at 23:00 in South Vietnam.
4110# To 07:00 on 1975-06-13 in South Vietnam. 4133# To 07:00 on 1975-06-13 in South Vietnam.
4111# 4134#
4112# Trần cites the following sources; it's unclear which supplied the info above. 4135# Trần cites the following sources; it's unclear which supplied the info above.
4113# 4136#
4114# Hoàng Xuân Hãn: "Lịch và lịch Việt Nam". Tập san Khoa há»c Xã há»™i, 4137# Hoàng Xuân Hãn: "Lịch và lịch Việt Nam". Tập san Khoa há»c Xã há»™i,
4115# No. 9, Paris, February 1982. 4138# No. 9, Paris, February 1982.
 4139#
 4140# Lê Thành Lân: "Lịch và niên biểu lịch sá»­ hai mÆ°Æ¡i thế ká»· (0001-2010)",
 4141# NXB Thống kê, Hanoi, 2000.
4116# 4142#
4117# Lê Thành Lân: "Lịch và niên biểu lá»ch sá»­ hai mÆ°Æ¡i thế ká»· (0001-2010)", 4143# Lê Thành Lân: "Lịch hai thế ká»· (1802-2010) và các lá»ch vÄ©nh cá»­u",
4118# NXB Thá»ng kê, Hanoi, 2000. 4144# NXB Thuận Hoá, Huế, 1995.
4119# 4145#
4120# Lê Thành Lân: "Lịch hai thế ká»· (1802-2010) và các lịch vÄ©nh cá»­u", 4146# Here is the decision for the September 1945 transition:
4121# NXB Thuận Hoá, Huế, 1995. 4147# Võ Nguyên Giáp, Việt Nam Dân Quốc Công Báo, No. 1 (1945-09-29), page 13
 4148# http://baochi.nlv.gov.vn/baochi/cgi-bin/baochi?a=d&d=JwvzO19450929.2.5&dliv=none
 4149# It says that on 1945-09-01 at 24:00, Vietnam moved back two hours, to +07.
 4150# It also mentions a 1945-03-29 decree (by a Japanese Goveror-General)
 4151# to set the time zone to +09, but does not say whether that decree
 4152# merely legalized an earlier change to +09.
 4153#
 4154# July 1955 transition:
 4155# Ngô Äình Diệm, Công Báo Việt Nam, No. 92 (1955-07-02), page 1780-1781
 4156# Ordinance (Dụ) No. 46 (1955-06-25)
 4157# http://ddsnext.crl.edu/titles/32341#?c=0&m=29&s=0&cv=4&r=0&xywh=-89%2C342%2C1724%2C1216
 4158# It says that on 1955-07-01 at 01:00, South Vietnam moved back 1 hour (to +07).
 4159#
 4160# December 1959 transition:
 4161# Ngô Äình Diệm, Công Báo Việt Nam Cá»™ng Hòa, 1960 part 1 (1960-01-02), page 62
 4162# Decree (Sắc lệnh) No. 362-TTP (1959-12-30)
 4163# http://ddsnext.crl.edu/titles/32341#?c=0&m=138&s=0&cv=793&r=0&xywh=-54%2C1504%2C1705%2C1202
 4164# It says that on 1959-12-31 at 23:00, South Vietnam moved forward 1 hour (to +08).
 4165
4122 4166
4123# Zone NAME STDOFF RULES FORMAT [UNTIL] 4167# Zone NAME STDOFF RULES FORMAT [UNTIL]
4124 #STDOFF 7:06:30.13 4168 #STDOFF 7:06:30.13
4125Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 4169Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1
4126 7:06:30 - PLMT 1911 May 1 # Phù Liá»…n MT 4170 7:06:30 - PLMT 1911 May 1 # Phù Liá»…n MT
4127 7:00 - +07 1942 Dec 31 23:00 4171 7:00 - +07 1942 Dec 31 23:00
4128 8:00 - +08 1945 Mar 14 23:00 4172 8:00 - +08 1945 Mar 14 23:00
4129 9:00 - +09 1945 Sep 2 4173 9:00 - +09 1945 Sep 1 24:00
4130 7:00 - +07 1947 Apr 1 4174 7:00 - +07 1947 Apr 1
4131 8:00 - +08 1955 Jul 1 4175 8:00 - +08 1955 Jul 1 01:00
4132 7:00 - +07 1959 Dec 31 23:00 4176 7:00 - +07 1959 Dec 31 23:00
4133 8:00 - +08 1975 Jun 13 4177 8:00 - +08 1975 Jun 13
4134 7:00 - +07 4178 7:00 - +07
4135 4179
4136# From Paul Eggert (2019-02-19): 4180# From Paul Eggert (2019-02-19):
4137# 4181#
4138# The Ho Chi Minh entry suffices for most purposes as it agrees with all of 4182# The Ho Chi Minh entry suffices for most purposes as it agrees with all of
4139# Vietnam since 1975-06-13. Presumably clocks often changed in south Vietnam 4183# Vietnam since 1975-06-13. Presumably clocks often changed in south Vietnam
4140# in the early 1970s as locations changed hands during the war; however the 4184# in the early 1970s as locations changed hands during the war; however the
4141# details are unknown and would likely be too voluminous for this database. 4185# details are unknown and would likely be too voluminous for this database.
4142# 4186#
4143# For timestamps in north Vietnam back to 1970 (the tzdb cutoff), 4187# For timestamps in north Vietnam back to 1970 (the tzdb cutoff),
4144# use Asia/Bangkok; see the VN entries in the file zone1970.tab. 4188# use Asia/Bangkok; see the VN entries in the file zone1970.tab.

cvs diff -r1.7.2.2 -r1.7.2.3 src/external/public-domain/tz/dist/version (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/version 2023/12/29 20:41:12 1.7.2.2
+++ src/external/public-domain/tz/dist/version 2024/02/06 12:22:42 1.7.2.3

cvs diff -r1.6.2.2 -r1.6.2.3 src/external/public-domain/tz/dist/australasia (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/australasia 2023/12/29 20:41:12 1.6.2.2
+++ src/external/public-domain/tz/dist/australasia 2024/02/06 12:22:42 1.6.2.3
@@ -420,31 +420,31 @@ Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1 @@ -420,31 +420,31 @@ Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1
420Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - 420Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
421Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 - 421Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
422Rule Fiji 2014 only - Jan Sun>=18 2:00 0 - 422Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
423Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - 423Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
424Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 - 424Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
425Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 - 425Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
426Rule Fiji 2020 only - Dec 20 2:00 1:00 - 426Rule Fiji 2020 only - Dec 20 2:00 1:00 -
427# Zone NAME STDOFF RULES FORMAT [UNTIL] 427# Zone NAME STDOFF RULES FORMAT [UNTIL]
428Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva 428Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
429 12:00 Fiji +12/+13 429 12:00 Fiji +12/+13
430 430
431# French Polynesia 431# French Polynesia
432# Zone NAME STDOFF RULES FORMAT [UNTIL] 432# Zone NAME STDOFF RULES FORMAT [UNTIL]
433Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct # Rikitea 433Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct 1 # Rikitea
434 -9:00 - -09 434 -9:00 - -09
435Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct 435Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct 1
436 -9:30 - -0930 436 -9:30 - -0930
437Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete 437Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct 1 # Papeete
438 -10:00 - -10 438 -10:00 - -10
439# Clipperton (near North America) is administered from French Polynesia; 439# Clipperton (near North America) is administered from French Polynesia;
440# it is uninhabited. 440# it is uninhabited.
441 441
442 442
443# Guam 443# Guam
444 444
445# Rule NAME FROM TO - IN ON AT SAVE LETTER/S 445# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
446# http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf 446# http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
447# http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savings-Time-May-6-1959.pdf 447# http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savings-Time-May-6-1959.pdf
448Rule Guam 1959 only - Jun 27 2:00 1:00 D 448Rule Guam 1959 only - Jun 27 2:00 1:00 D
449# http://documents.guam.gov/wp-content/uploads/E.O.-61-5-Revocation-of-Daylight-Saving-Time-and-Restoratio.pdf 449# http://documents.guam.gov/wp-content/uploads/E.O.-61-5-Revocation-of-Daylight-Saving-Time-and-Restoratio.pdf
450Rule Guam 1961 only - Jan 29 2:00 0 S 450Rule Guam 1961 only - Jan 29 2:00 0 S
@@ -833,27 +833,27 @@ Rule WS 2011 only - Apr Sat>=1 4:00 0 - @@ -833,27 +833,27 @@ Rule WS 2011 only - Apr Sat>=1 4:00 0 -
833Rule WS 2011 only - Sep lastSat 3:00 1 - 833Rule WS 2011 only - Sep lastSat 3:00 1 -
834Rule WS 2012 2021 - Apr Sun>=1 4:00 0 - 834Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
835Rule WS 2012 2020 - Sep lastSun 3:00 1 - 835Rule WS 2012 2020 - Sep lastSun 3:00 1 -
836# Zone NAME STDOFF RULES FORMAT [UNTIL] 836# Zone NAME STDOFF RULES FORMAT [UNTIL]
837Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 837Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5
838 -11:26:56 - LMT 1911 838 -11:26:56 - LMT 1911
839 -11:30 - -1130 1950 839 -11:30 - -1130 1950
840 -11:00 WS -11/-10 2011 Dec 29 24:00 840 -11:00 WS -11/-10 2011 Dec 29 24:00
841 13:00 WS +13/+14 841 13:00 WS +13/+14
842 842
843# Solomon Is 843# Solomon Is
844# excludes Bougainville, for which see Papua New Guinea 844# excludes Bougainville, for which see Papua New Guinea
845# Zone NAME STDOFF RULES FORMAT [UNTIL] 845# Zone NAME STDOFF RULES FORMAT [UNTIL]
846Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara 846Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct 1 # Honiara
847 11:00 - +11 847 11:00 - +11
848 848
849# Tokelau 849# Tokelau
850# 850#
851# From Gwillim Law (2011-12-29) 851# From Gwillim Law (2011-12-29)
852# A correspondent informed me that Tokelau, like Samoa, will be skipping 852# A correspondent informed me that Tokelau, like Samoa, will be skipping
853# December 31 this year ... 853# December 31 this year ...
854# 854#
855# From Steffen Thorsen (2012-07-25) 855# From Steffen Thorsen (2012-07-25)
856# ... we double checked by calling hotels and offices based in Tokelau asking 856# ... we double checked by calling hotels and offices based in Tokelau asking
857# about the time there, and they all told a time that agrees with UTC+13.... 857# about the time there, and they all told a time that agrees with UTC+13....
858# Shanks says UT-10 from 1901 [but] ... there is a good chance the change 858# Shanks says UT-10 from 1901 [but] ... there is a good chance the change
859# actually was to UT-11 back then. 859# actually was to UT-11 back then.
@@ -1015,26 +1015,30 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 @@ -1015,26 +1015,30 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
1015# Association's Standard Schedules Information Manual (IATA SSIM), 1015# Association's Standard Schedules Information Manual (IATA SSIM),
1016# published semiannually. Law sent in several helpful summaries 1016# published semiannually. Law sent in several helpful summaries
1017# of the IATA's data after 1990. Except where otherwise noted, 1017# of the IATA's data after 1990. Except where otherwise noted,
1018# IATA SSIM is the source for entries after 1990. 1018# IATA SSIM is the source for entries after 1990.
1019# 1019#
1020# Another source occasionally used is Edward W. Whitman, World Time Differences, 1020# Another source occasionally used is Edward W. Whitman, World Time Differences,
1021# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which 1021# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
1022# I found in the UCLA library. 1022# I found in the UCLA library.
1023# 1023#
1024# For data circa 1899, a common source is: 1024# For data circa 1899, a common source is:
1025# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. 1025# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
1026# https://www.jstor.org/stable/1774359 1026# https://www.jstor.org/stable/1774359
1027# 1027#
 1028# For the 1911/1912 establishment of standard time in French possessions, see:
 1029# Société Française de Physique, Recueil de constantes physiques (1913),
 1030# page 752, 18b.
 1031#
1028# A reliable and entertaining source about time zones is 1032# A reliable and entertaining source about time zones is
1029# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). 1033# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
1030# 1034#
1031# I invented the abbreviation marked "*". 1035# I invented the abbreviation marked "*".
1032# The following abbreviations are from other sources. 1036# The following abbreviations are from other sources.
1033# Corrections are welcome! 1037# Corrections are welcome!
1034# std dst 1038# std dst
1035# LMT Local Mean Time 1039# LMT Local Mean Time
1036# 8:00 AWST AWDT Western Australia 1040# 8:00 AWST AWDT Western Australia
1037# 9:30 ACST ACDT Central Australia 1041# 9:30 ACST ACDT Central Australia
1038# 10:00 AEST AEDT Eastern Australia 1042# 10:00 AEST AEDT Eastern Australia
1039# 10:00 GST GDT* Guam through 2000 1043# 10:00 GST GDT* Guam through 2000
1040# 10:00 ChST Chamorro 1044# 10:00 ChST Chamorro
@@ -2091,27 +2095,27 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 @@ -2091,27 +2095,27 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
2091# Betty Christian told me yesterday that their local time is the same as 2095# Betty Christian told me yesterday that their local time is the same as
2092# Pacific Standard Time. They used to be ½ hour different from us here in 2096# Pacific Standard Time. They used to be ½ hour different from us here in
2093# Sacramento but it was changed a couple of years ago. 2097# Sacramento but it was changed a couple of years ago.
2094 2098
2095 2099
2096# (Western) Samoa and American Samoa 2100# (Western) Samoa and American Samoa
2097 2101
2098# Howse writes (p 153) that after the 1879 standardization on Antipodean 2102# Howse writes (p 153) that after the 1879 standardization on Antipodean
2099# time by the British governor of Fiji, the King of Samoa decided to change 2103# time by the British governor of Fiji, the King of Samoa decided to change
2100# "the date in his kingdom from the Antipodean to the American system, 2104# "the date in his kingdom from the Antipodean to the American system,
2101# ordaining - by a masterpiece of diplomatic flattery - that 2105# ordaining - by a masterpiece of diplomatic flattery - that
2102# the Fourth of July should be celebrated twice in that year." 2106# the Fourth of July should be celebrated twice in that year."
2103# This happened in 1892, according to the Evening News (Sydney) of 1892-07-20. 2107# This happened in 1892, according to the Evening News (Sydney) of 1892-07-20.
2104# https://www.staff.science.uu.nl/~gent0113/idl/idl.htm 2108# https://webspace.science.uu.nl/~gent0113/idl/idl_alaska_samoa.htm
2105 2109
2106# Although Shanks & Pottenger says they both switched to UT -11:30 2110# Although Shanks & Pottenger says they both switched to UT -11:30
2107# in 1911, and to -11 in 1950. many earlier sources give -11 2111# in 1911, and to -11 in 1950. many earlier sources give -11
2108# for American Samoa, e.g., the US National Bureau of Standards 2112# for American Samoa, e.g., the US National Bureau of Standards
2109# circular "Standard Time Throughout the World", 1932. 2113# circular "Standard Time Throughout the World", 1932.
2110# Assume American Samoa switched to -11 in 1911, not 1950, 2114# Assume American Samoa switched to -11 in 1911, not 1950,
2111# and that after 1950 they agreed until (western) Samoa skipped a 2115# and that after 1950 they agreed until (western) Samoa skipped a
2112# day in 2011. Assume also that the Samoas follow the US and New 2116# day in 2011. Assume also that the Samoas follow the US and New
2113# Zealand's "ST"/"DT" style of daylight-saving abbreviations. 2117# Zealand's "ST"/"DT" style of daylight-saving abbreviations.
2114 2118
2115 2119
2116# Tonga 2120# Tonga
2117 2121

cvs diff -r1.1.1.1.2.2 -r1.1.1.1.2.3 src/external/public-domain/tz/dist/checknow.awk (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/checknow.awk 2023/12/29 20:41:12 1.1.1.1.2.2
+++ src/external/public-domain/tz/dist/checknow.awk 2024/02/06 12:22:42 1.1.1.1.2.3
@@ -35,20 +35,20 @@ BEGIN { @@ -35,20 +35,20 @@ BEGIN {
35 zone2 = zonenow[data] 35 zone2 = zonenow[data]
36 if (zone2) { 36 if (zone2) {
37 printf "zones %s and %s identical from now on\n", zone, zone2 37 printf "zones %s and %s identical from now on\n", zone, zone2
38 status = 1 38 status = 1
39 } else 39 } else
40 zonenow[data] = zone 40 zonenow[data] = zone
41 } 41 }
42} 42}
43 43
44END { 44END {
45 for (zone in zone_data) { 45 for (zone in zone_data) {
46 data = zone_data[zone] 46 data = zone_data[zone]
47 if (!zonenow[data]) { 47 if (!zonenow[data]) {
48 printf "checknow.tab should have one of:%s\n", zones[data] 48 printf "zonenow.tab should have one of:%s\n", zones[data]
49 zonenow[data] = zone # This suppresses duplicate diagnostics. 49 zonenow[data] = zone # This suppresses duplicate diagnostics.
50 status = 1 50 status = 1
51 } 51 }
52 } 52 }
53 exit status 53 exit status
54} 54}

cvs diff -r1.1.1.1.2.2 -r1.1.1.1.2.3 src/external/public-domain/tz/dist/zonenow.tab (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/zonenow.tab 2023/12/29 20:41:12 1.1.1.1.2.2
+++ src/external/public-domain/tz/dist/zonenow.tab 2024/02/06 12:22:42 1.1.1.1.2.3
@@ -189,42 +189,44 @@ XX -0117+03649 Africa/Nairobi eastern Af @@ -189,42 +189,44 @@ XX -0117+03649 Africa/Nairobi eastern Af
189# +03 - MSK 189# +03 - MSK
190XX +554521+0373704 Europe/Moscow Moscow ("MSK") 190XX +554521+0373704 Europe/Moscow Moscow ("MSK")
191# 191#
192# +03:30 192# +03:30
193XX +3540+05126 Asia/Tehran Iran 193XX +3540+05126 Asia/Tehran Iran
194# 194#
195# +04 195# +04
196XX +2518+05518 Asia/Dubai Russia; Caucasus; Persian Gulf; Seychelles; Réunion 196XX +2518+05518 Asia/Dubai Russia; Caucasus; Persian Gulf; Seychelles; Réunion
197# 197#
198# +04:30 198# +04:30
199XX +3431+06912 Asia/Kabul Afghanistan 199XX +3431+06912 Asia/Kabul Afghanistan
200# 200#
201# +05 201# +05
202XX +4120+06918 Asia/Tashkent Russia; Tajikistan; Turkmenistan; Uzbekistan; Maldives 202XX +4120+06918 Asia/Tashkent Russia; west Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives
203# 203#
204# +05 - PKT 204# +05 - PKT
205XX +2452+06703 Asia/Karachi Pakistan ("PKT") 205XX +2452+06703 Asia/Karachi Pakistan ("PKT")
206# 206#
207# +05:30 207# +05:30
208XX +0656+07951 Asia/Colombo Sri Lanka 208XX +0656+07951 Asia/Colombo Sri Lanka
209# 209#
210# +05:30 - IST 210# +05:30 - IST
211XX +2232+08822 Asia/Kolkata India ("IST") 211XX +2232+08822 Asia/Kolkata India ("IST")
212# 212#
213# +05:45 213# +05:45
214XX +2743+08519 Asia/Kathmandu Nepal 214XX +2743+08519 Asia/Kathmandu Nepal
215# 215#
216# +06 216# +06
217XX +2343+09025 Asia/Dhaka Russia; Kyrgyzstan; Bhutan; Bangladesh; Chagos 217XX +2343+09025 Asia/Dhaka Russia; Kyrgyzstan; Bhutan; Bangladesh; Chagos
 218# +06 until 2024-03-01; then +05
 219XX +4315+07657 Asia/Almaty Kazakhstan (except western areas)
218# 220#
219# +06:30 221# +06:30
220XX +1647+09610 Asia/Yangon Myanmar; Cocos 222XX +1647+09610 Asia/Yangon Myanmar; Cocos
221# 223#
222# +07 224# +07
223XX +1345+10031 Asia/Bangkok Russia; Indochina; Christmas Island 225XX +1345+10031 Asia/Bangkok Russia; Indochina; Christmas Island
224# 226#
225# +07 - WIB 227# +07 - WIB
226XX -0610+10648 Asia/Jakarta Indonesia ("WIB") 228XX -0610+10648 Asia/Jakarta Indonesia ("WIB")
227# 229#
228# +08 230# +08
229XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore 231XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore
230# 232#

cvs diff -r1.1.1.7 -r1.1.1.7.2.1 src/external/public-domain/tz/dist/etcetera (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/etcetera 2022/10/30 01:03:04 1.1.1.7
+++ src/external/public-domain/tz/dist/etcetera 2024/02/06 12:22:42 1.1.1.7.2.1
@@ -1,21 +1,21 @@ @@ -1,21 +1,21 @@
1# tzdb data for ships at sea and other miscellany 1# tzdb data for ships at sea and other miscellany
2 2
3# This file is in the public domain, so clarified as of 3# This file is in the public domain, so clarified as of
4# 2009-05-17 by Arthur David Olson. 4# 2009-05-17 by Arthur David Olson.
5 5
6# These entries are for uses not otherwise covered by the tz database. 6# These entries are for uses not otherwise covered by the tz database.
7# Their main practical use is for platforms like Android that lack 7# Their main practical use is for platforms like Android that lack
8# support for POSIX-style TZ strings. On such platforms these entries 8# support for POSIX.1-2017-style TZ strings. On such platforms these entries
9# can be useful if the timezone database is wrong or if a ship or 9# can be useful if the timezone database is wrong or if a ship or
10# aircraft at sea is not in a timezone. 10# aircraft at sea is not in a timezone.
11 11
12# Starting with POSIX 1003.1-2001, the entries below are all 12# Starting with POSIX 1003.1-2001, the entries below are all
13# unnecessary as settings for the TZ environment variable. E.g., 13# unnecessary as settings for the TZ environment variable. E.g.,
14# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'. 14# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'.
15# 15#
16# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours 16# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
17# behind GMT but uses the completely misleading abbreviation "GMT". 17# behind GMT but uses the completely misleading abbreviation "GMT".
18 18
19# The following zone is used by tzcode functions like gmtime, 19# The following zone is used by tzcode functions like gmtime,
20# which load the "UTC" file to handle seconds properly. 20# which load the "UTC" file to handle seconds properly.
21Zone Etc/UTC 0 - UTC 21Zone Etc/UTC 0 - UTC

cvs diff -r1.1.1.36.2.2 -r1.1.1.36.2.3 src/external/public-domain/tz/dist/europe (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/europe 2023/12/29 20:41:12 1.1.1.36.2.2
+++ src/external/public-domain/tz/dist/europe 2024/02/06 12:22:42 1.1.1.36.2.3
@@ -1018,29 +1018,54 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 @@ -1018,29 +1018,54 @@ Zone Europe/Sofia 1:33:16 - LMT 1880
1018# Zone NAME STDOFF RULES FORMAT [UNTIL] 1018# Zone NAME STDOFF RULES FORMAT [UNTIL]
1019Zone Europe/Zagreb 1:03:52 - LMT 1884 1019Zone Europe/Zagreb 1:03:52 - LMT 1884
1020 1:00 - CET 1941 Apr 18 23:00 1020 1:00 - CET 1941 Apr 18 23:00
1021 1:00 C-Eur CE%sT 1945 May 8 2:00s 1021 1:00 C-Eur CE%sT 1945 May 8 2:00s
1022 1:00 1:00 CEST 1945 Sep 16 2:00s 1022 1:00 1:00 CEST 1945 Sep 16 2:00s
1023 1:00 - CET 1982 Nov 27 1023 1:00 - CET 1982 Nov 27
1024 1:00 EU CE%sT 1024 1:00 EU CE%sT
1025 1025
1026# Cyprus 1026# Cyprus
1027# Please see the 'asia' file for Asia/Nicosia. 1027# Please see the 'asia' file for Asia/Nicosia.
1028 1028
1029# Czech Republic (Czechia) 1029# Czech Republic (Czechia)
1030# 1030#
1031# From Paul Eggert (2018-04-15): 1031# From Ivan Benovic (2024-01-30):
1032# The source for Czech data is: Kdy zaÄíná a konÄí letní Äas. 2018-04-15. 1032# https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/1946/54/
 1033# (This is an official link to the Czechoslovak Summer Time Act of
 1034# March 8, 1946 that authorizes the Czechoslovak government to set the
 1035# exact dates of change to summer time and back to Central European Time.
 1036# The act also implicitly confirms Central European Time as the
 1037# official time zone of Czechoslovakia and currently remains in force
 1038# in both the Czech Republic and Slovakia.)
 1039# https://www.psp.cz/eknih/1945pns/tisky/t0216_00.htm
 1040# (This is a link to the original legislative proposal dating back to
 1041# February 22, 1946. The accompanying memorandum to the proposal says
 1042# that an advisory committee on European railroad transportation that
 1043# met in Brussels in October 1945 decided that the change of time
 1044# should be carried out in all participating countries in a strictly
 1045# coordinated manner....)
 1046#
 1047# From Paul Eggert (2024-01-30):
 1048# The source for Czech data is: Kdy zaÄíná a konÄí letní Äas.
1033# https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas 1049# https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas
 1050# Its main text disagrees with its quoted sources only in 1918,
 1051# where the main text says spring and autumn transitions
 1052# occurred at 02:00 and 03:00 respectively (as usual),
 1053# whereas the 1918 source "Oznámení o zavedení letního Äasu v roce 1918"
 1054# says transitions were at 01:00 and 02:00 respectively.
 1055# As the 1918 source appears to be a humorous piece, and it is
 1056# unlikely that Prague would have disagreed with its neighbors by an hour,
 1057# go with the main text for now.
 1058#
1034# We know of no English-language name for historical Czech winter time; 1059# We know of no English-language name for historical Czech winter time;
1035# abbreviate it as "GMT", as it happened to be GMT. 1060# abbreviate it as "GMT", as it happened to be GMT.
1036# 1061#
1037# Rule NAME FROM TO - IN ON AT SAVE LETTER/S 1062# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
1038Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S 1063Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
1039Rule Czech 1945 only - Oct 1 2:00s 0 - 1064Rule Czech 1945 only - Oct 1 2:00s 0 -
1040Rule Czech 1946 only - May 6 2:00s 1:00 S 1065Rule Czech 1946 only - May 6 2:00s 1:00 S
1041Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 - 1066Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 -
1042Rule Czech 1947 1948 - Apr Sun>=15 2:00s 1:00 S 1067Rule Czech 1947 1948 - Apr Sun>=15 2:00s 1:00 S
1043Rule Czech 1949 only - Apr 9 2:00s 1:00 S 1068Rule Czech 1949 only - Apr 9 2:00s 1:00 S
1044# Zone NAME STDOFF RULES FORMAT [UNTIL] 1069# Zone NAME STDOFF RULES FORMAT [UNTIL]
1045Zone Europe/Prague 0:57:44 - LMT 1850 1070Zone Europe/Prague 0:57:44 - LMT 1850
1046 0:57:44 - PMT 1891 Oct # Prague Mean Time 1071 0:57:44 - PMT 1891 Oct # Prague Mean Time

cvs diff -r1.4.2.2 -r1.4.2.3 src/external/public-domain/tz/dist/leap-seconds.list (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/leap-seconds.list 2023/12/29 20:41:12 1.4.2.2
+++ src/external/public-domain/tz/dist/leap-seconds.list 2024/02/06 12:22:42 1.4.2.3
@@ -1,255 +1,120 @@ @@ -1,255 +1,120 @@
 1# ATOMIC TIME.
 2# The Coordinated Universal Time (UTC) is the reference time scale derived
 3# from The "Temps Atomique International" (TAI) calculated by the Bureau
 4# International des Poids et Mesures (BIPM) using a worldwide network of atomic
 5# clocks. UTC differs from TAI by an integer number of seconds; it is the basis
 6# of all activities in the world.
1# 7#
2# In the following text, the symbol '#' introduces 
3# a comment, which continues from that symbol until 
4# the end of the line. A plain comment line has a 
5# whitespace character following the comment indicator. 
6# There are also special comment lines defined below. 
7# A special comment will always have a non-whitespace 
8# character in column 2. 
9# 
10# A blank line should be ignored. 
11# 
12# The following table shows the corrections that must 
13# be applied to compute International Atomic Time (TAI) 
14# from the Coordinated Universal Time (UTC) values that 
15# are transmitted by almost all time services. 
16# 
17# The first column shows an epoch as a number of seconds 
18# since 1 January 1900, 00:00:00 (1900.0 is also used to 
19# indicate the same epoch.) Both of these time stamp formats 
20# ignore the complexities of the time scales that were 
21# used before the current definition of UTC at the start 
22# of 1972. (See note 3 below.) 
23# The second column shows the number of seconds that 
24# must be added to UTC to compute TAI for any timestamp 
25# at or after that epoch. The value on each line is 
26# valid from the indicated initial instant until the 
27# epoch given on the next one or indefinitely into the 
28# future if there is no next line. 
29# (The comment on each line shows the representation of 
30# the corresponding initial epoch in the usual 
31# day-month-year format. The epoch always begins at 
32# 00:00:00 UTC on the indicated day. See Note 5 below.) 
33# 
34# Important notes: 
35# 
36# 1. Coordinated Universal Time (UTC) is often referred to 
37# as Greenwich Mean Time (GMT). The GMT time scale is no 
38# longer used, and the use of GMT to designate UTC is 
39# discouraged. 
40# 
41# 2. The UTC time scale is realized by many national 
42# laboratories and timing centers. Each laboratory 
43# identifies its realization with its name: Thus 
44# UTC(NIST), UTC(USNO), etc. The differences among 
45# these different realizations are typically on the 
46# order of a few nanoseconds (i.e., 0.000 000 00x s) 
47# and can be ignored for many purposes. These differences 
48# are tabulated in Circular T, which is published monthly 
49# by the International Bureau of Weights and Measures 
50# (BIPM). See www.bipm.org for more information. 
51# 
52# 3. The current definition of the relationship between UTC 
53# and TAI dates from 1 January 1972. A number of different 
54# time scales were in use before that epoch, and it can be 
55# quite difficult to compute precise timestamps and time 
56# intervals in those "prehistoric" days. For more information, 
57# consult: 
58# 
59# The Explanatory Supplement to the Astronomical 
60# Ephemeris. 
61# or 
62# Terry Quinn, "The BIPM and the Accurate Measurement 
63# of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, 
64# July, 1991. <http://dx.doi.org/10.1109/5.84965> 
65# reprinted in: 
66# Christine Hackman and Donald B Sullivan (eds.) 
67# Time and Frequency Measurement 
68# American Association of Physics Teachers (1996) 
69# <http://tf.nist.gov/general/pdf/1168.pdf>, pp. 75-86 
70# 
71# 4. The decision to insert a leap second into UTC is currently 
72# the responsibility of the International Earth Rotation and 
73# Reference Systems Service. (The name was changed from the 
74# International Earth Rotation Service, but the acronym IERS 
75# is still used.) 
76# 
77# Leap seconds are announced by the IERS in its Bulletin C. 
78# 
79# See www.iers.org for more details. 
80# 
81# Every national laboratory and timing center uses the 
82# data from the BIPM and the IERS to construct UTC(lab), 
83# their local realization of UTC. 
84# 
85# Although the definition also includes the possibility 
86# of dropping seconds ("negative" leap seconds), this has 
87# never been done and is unlikely to be necessary in the 
88# foreseeable future. 
89# 
90# 5. If your system keeps time as the number of seconds since 
91# some epoch (e.g., NTP timestamps), then the algorithm for 
92# assigning a UTC time stamp to an event that happens during a positive 
93# leap second is not well defined. The official name of that leap 
94# second is 23:59:60, but there is no way of representing that time 
95# in these systems. 
96# Many systems of this type effectively stop the system clock for 
97# one second during the leap second and use a time that is equivalent 
98# to 23:59:59 UTC twice. For these systems, the corresponding TAI 
99# timestamp would be obtained by advancing to the next entry in the 
100# following table when the time equivalent to 23:59:59 UTC 
101# is used for the second time. Thus the leap second which 
102# occurred on 30 June 1972 at 23:59:59 UTC would have TAI 
103# timestamps computed as follows: 
104# 
105# ... 
106# 30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds 
107# 30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds 
108# 1 July 1972 00:00:00 (2287785600) TAI= UTC + 11 seconds 
109# ... 
110# 
111# If your system realizes the leap second by repeating 00:00:00 UTC twice 
112# (this is possible but not usual), then the advance to the next entry 
113# in the table must occur the second time that a time equivalent to 
114# 00:00:00 UTC is used. Thus, using the same example as above: 
115# 
116# ... 
117# 30 June 1972 23:59:59 (2287785599): TAI= UTC + 10 seconds 
118# 30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds 
119# 1 July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds 
120# ... 
121# 
122# in both cases the use of timestamps based on TAI produces a smooth 
123# time scale with no discontinuity in the time interval. However, 
124# although the long-term behavior of the time scale is correct in both 
125# methods, the second method is technically not correct because it adds 
126# the extra second to the wrong day. 
127# 
128# This complexity would not be needed for negative leap seconds (if they 
129# are ever used). The UTC time would skip 23:59:59 and advance from 
130# 23:59:58 to 00:00:00 in that case. The TAI offset would decrease by 
131# 1 second at the same instant. This is a much easier situation to deal 
132# with, since the difficulty of unambiguously representing the epoch 
133# during the leap second does not arise. 
134# 
135# Some systems implement leap seconds by amortizing the leap second 
136# over the last few minutes of the day. The frequency of the local 
137# clock is decreased (or increased) to realize the positive (or 
138# negative) leap second. This method removes the time step described 
139# above. Although the long-term behavior of the time scale is correct 
140# in this case, this method introduces an error during the adjustment 
141# period both in time and in frequency with respect to the official 
142# definition of UTC. 
143# 
144# Questions or comments to: 
145# Judah Levine 
146# Time and Frequency Division 
147# NIST 
148# Boulder, Colorado 
149# Judah.Levine@nist.gov 
150# 
151# Last Update of leap second values: 8 July 2016 
152# 
153# The following line shows this last update date in NTP timestamp 
154# format. This is the date on which the most recent change to 
155# the leap second data was added to the file. This line can 
156# be identified by the unique pair of characters in the first two 
157# columns as shown below. 
158# 
159#$ 3676924800 
160# 
161# The NTP timestamps are in units of seconds since the NTP epoch, 
162# which is 1 January 1900, 00:00:00. The Modified Julian Day number 
163# corresponding to the NTP time stamp, X, can be computed as 
164# 
165# X/86400 + 15020 
166# 
167# where the first term converts seconds to days and the second 
168# term adds the MJD corresponding to the time origin defined above. 
169# The integer portion of the result is the integer MJD for that 
170# day, and any remainder is the time of day, expressed as the 
171# fraction of the day since 0 hours UTC. The conversion from day 
172# fraction to seconds or to hours, minutes, and seconds may involve 
173# rounding or truncation, depending on the method used in the 
174# computation. 
175# 
176# The data in this file will be updated periodically as new leap 
177# seconds are announced. In addition to being entered on the line 
178# above, the update time (in NTP format) will be added to the basic 
179# file name leap-seconds to form the name leap-seconds.<NTP TIME>. 
180# In addition, the generic name leap-seconds.list will always point to 
181# the most recent version of the file. 
182# 
183# This update procedure will be performed only when a new leap second 
184# is announced. 
185# 
186# The following entry specifies the expiration date of the data 
187# in this file in units of seconds since the origin at the instant 
188# 1 January 1900, 00:00:00. This expiration date will be changed 
189# at least twice per year whether or not a new leap second is 
190# announced. These semi-annual changes will be made no later 
191# than 1 June and 1 December of each year to indicate what 
192# action (if any) is to be taken on 30 June and 31 December, 
193# respectively. (These are the customary effective dates for new 
194# leap seconds.) This expiration date will be identified by a 
195# unique pair of characters in columns 1 and 2 as shown below. 
196# In the unlikely event that a leap second is announced with an 
197# effective date other than 30 June or 31 December, then this 
198# file will be edited to include that leap second as soon as it is 
199# announced or at least one month before the effective date 
200# (whichever is later). 
201# If an announcement by the IERS specifies that no leap second is 
202# scheduled, then only the expiration date of the file will 
203# be advanced to show that the information in the file is still 
204# current -- the update time stamp, the data and the name of the file 
205# will not change. 
206# 
207# Updated through IERS Bulletin C66 
208# File expires on: 28 June 2024 
209# 
210#@ 3928521600 
211# 
2122272060800 10 # 1 Jan 1972 
2132287785600 11 # 1 Jul 1972 
2142303683200 12 # 1 Jan 1973 
2152335219200 13 # 1 Jan 1974 
2162366755200 14 # 1 Jan 1975 
2172398291200 15 # 1 Jan 1976 
2182429913600 16 # 1 Jan 1977 
2192461449600 17 # 1 Jan 1978 
2202492985600 18 # 1 Jan 1979 
2212524521600 19 # 1 Jan 1980 
2222571782400 20 # 1 Jul 1981 
2232603318400 21 # 1 Jul 1982 
2242634854400 22 # 1 Jul 1983 
2252698012800 23 # 1 Jul 1985 
2262776982400 24 # 1 Jan 1988 
2272840140800 25 # 1 Jan 1990 
2282871676800 26 # 1 Jan 1991 
2292918937600 27 # 1 Jul 1992 
2302950473600 28 # 1 Jul 1993 
2312982009600 29 # 1 Jul 1994 
2323029443200 30 # 1 Jan 1996 
2333076704000 31 # 1 Jul 1997 
2343124137600 32 # 1 Jan 1999 
2353345062400 33 # 1 Jan 2006 
2363439756800 34 # 1 Jan 2009 
2373550089600 35 # 1 Jul 2012 
2383644697600 36 # 1 Jul 2015 
2393692217600 37 # 1 Jan 2017 
240# 
241# the following special comment contains the 
242# hash value of the data in this file computed 
243# use the secure hash algorithm as specified 
244# by FIPS 180-1. See the files in ~/pub/sha for 
245# the details of how this hash value is 
246# computed. Note that the hash computation 
247# ignores comments and whitespace characters 
248# in data lines. It includes the NTP values 
249# of both the last modification time and the 
250# expiration time of the file, but not the 
251# white space on those lines. 
252# the hash line is also ignored in the 
253# computation. 
254# 8#
255#h 16edd0f0 3666784f 37db6bdd e74ced87 59af48f1 9# ASTRONOMICAL TIME (UT1) is the time scale based on the rate of rotation of the earth.
 10# It is now mainly derived from Very Long Baseline Interferometry (VLBI). The various
 11# irregular fluctuations progressively detected in the rotation rate of the Earth lead
 12# in 1972 to the replacement of UT1 by UTC as the reference time scale.
 13#
 14#
 15# LEAP SECOND
 16# Atomic clocks are more stable than the rate of the earth rotation since the latter
 17# undergoes a full range of geophysical perturbations at various time scales: lunisolar
 18# and core-mantle torques, atmospheric and oceanic effetcs, etc.
 19# Leap seconds are needed to keep the two time scales in agreement, i.e. UT1-UTC smaller
 20# than 0.9 second. Therefore, when necessary a "leap second" is applied to UTC.
 21# Since the adoption of this system in 1972 it has been necessary to add a number of seconds to UTC,
 22# firstly due to the initial choice of the value of the second (1/86400 mean solar day of
 23# the year 1820) and secondly to the general slowing down of the Earth's rotation. It is
 24# theorically possible to have a negative leap second (a second removed from UTC), but so far,
 25# all leap seconds have been positive (a second has been added to UTC). Based on what we know about
 26# the earth's rotation, it is unlikely that we will ever have a negative leap second.
 27#
 28#
 29# HISTORY
 30# The first leap second was added on June 30, 1972. Until yhe year 2000, it was necessary in average to add a
 31# leap second at a rate of 1 to 2 years. Since the year 2000 leap seconds are introduced with an
 32# average interval of 3 to 4 years due to the acceleration of the Earth rotation speed.
 33#
 34#
 35# RESPONSABILITY OF THE DECISION TO INTRODUCE A LEAP SECOND IN UTC
 36# The decision to introduce a leap second in UTC is the responsibility of the Earth Orientation Center of
 37# the International Earth Rotation and reference System Service (IERS). This center is located at Paris
 38# Observatory. According to international agreements, leap seconds should only be scheduled for certain dates:
 39# first preference is given to the end of December and June, and second preference at the end of March
 40# and September. Since the introduction of leap seconds in 1972, only dates in June and December were used.
 41#
 42# Questions or comments to:
 43# Christian Bizouard: christian.bizouard@obspm.fr
 44# Earth orientation Center of the IERS
 45# Paris Observatory, France
 46#
 47#
 48#
 49# COPYRIGHT STATUS OF THIS FILE
 50# This file is in the public domain.
 51#
 52#
 53# VALIDITY OF THE FILE
 54# It is important to express the validity of the file. These next two dates are
 55# given in units of seconds since 1900.0.
 56#
 57# 1) Last update of the file.
 58#
 59# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
 60#
 61# The following line shows the last update of this file in NTP timestamp:
 62#
 63#$ 3913697179
 64#
 65# 2) Expiration date of the file given on a semi-annual basis: last June or last December
 66#
 67# File expires on 28 December 2024
 68#
 69# Expire date in NTP timestamp:
 70#
 71#@ 3944332800
 72#
 73#
 74# LIST OF LEAP SECONDS
 75# NTP timestamp (X parameter) is the number of seconds since 1900.0
 76#
 77# MJD: The Modified Julian Day number. MJD = X/86400 + 15020
 78#
 79# DTAI: The difference DTAI= TAI-UTC in units of seconds
 80# It is the quantity to add to UTC to get the time in TAI
 81#
 82# Day Month Year : epoch in clear
 83#
 84#NTP Time DTAI Day Month Year
 85#
 862272060800 10 # 1 Jan 1972
 872287785600 11 # 1 Jul 1972
 882303683200 12 # 1 Jan 1973
 892335219200 13 # 1 Jan 1974
 902366755200 14 # 1 Jan 1975
 912398291200 15 # 1 Jan 1976
 922429913600 16 # 1 Jan 1977
 932461449600 17 # 1 Jan 1978
 942492985600 18 # 1 Jan 1979
 952524521600 19 # 1 Jan 1980
 962571782400 20 # 1 Jul 1981
 972603318400 21 # 1 Jul 1982
 982634854400 22 # 1 Jul 1983
 992698012800 23 # 1 Jul 1985
 1002776982400 24 # 1 Jan 1988
 1012840140800 25 # 1 Jan 1990
 1022871676800 26 # 1 Jan 1991
 1032918937600 27 # 1 Jul 1992
 1042950473600 28 # 1 Jul 1993
 1052982009600 29 # 1 Jul 1994
 1063029443200 30 # 1 Jan 1996
 1073076704000 31 # 1 Jul 1997
 1083124137600 32 # 1 Jan 1999
 1093345062400 33 # 1 Jan 2006
 1103439756800 34 # 1 Jan 2009
 1113550089600 35 # 1 Jul 2012
 1123644697600 36 # 1 Jul 2015
 1133692217600 37 # 1 Jan 2017
 114#
 115# A hash code has been generated to be able to verify the integrity
 116# of this file. For more information about using this hash code,
 117# please see the readme file in the 'source' directory :
 118# https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README
 119#
 120#h 9dac5845 8acd32c0 2947d462 daf4a943 f58d9391

cvs diff -r1.4.2.2 -r1.4.2.3 src/external/public-domain/tz/dist/leapseconds (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/leapseconds 2023/12/29 20:41:12 1.4.2.2
+++ src/external/public-domain/tz/dist/leapseconds 2024/02/06 12:22:42 1.4.2.3
@@ -1,25 +1,22 @@ @@ -1,25 +1,22 @@
1# Allowance for leap seconds added to each time zone file. 1# Allowance for leap seconds added to each time zone file.
2 2
3# This file is in the public domain. 3# This file is in the public domain.
4 4
5# This file is generated automatically from the data in the public-domain 5# This file is generated automatically from the data in the public-domain
6# NIST format leap-seconds.list file, which can be copied from 6# NIST/IERS format leap-seconds.list file, which can be copied from
7# <ftp://ftp.nist.gov/pub/time/leap-seconds.list> 
8# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>. 
9# The NIST file is used instead of its IERS upstream counterpart 
10# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list> 7# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>
11# because under US law the NIST file is public domain 8# or, in a variant with different comments, from
12# whereas the IERS file's copyright and license status is unclear. 9# <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>.
13# For more about leap-seconds.list, please see 10# For more about leap-seconds.list, please see
14# The NTP Timescale and Leap Seconds 11# The NTP Timescale and Leap Seconds
15# <https://www.eecis.udel.edu/~mills/leap.html>. 12# <https://www.eecis.udel.edu/~mills/leap.html>.
16 13
17# The rules for leap seconds are specified in Annex 1 (Time scales) of: 14# The rules for leap seconds are specified in Annex 1 (Time scales) of:
18# Standard-frequency and time-signal emissions. 15# Standard-frequency and time-signal emissions.
19# International Telecommunication Union - Radiocommunication Sector 16# International Telecommunication Union - Radiocommunication Sector
20# (ITU-R) Recommendation TF.460-6 (02/2002) 17# (ITU-R) Recommendation TF.460-6 (02/2002)
21# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>. 18# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>.
22# The International Earth Rotation and Reference Systems Service (IERS) 19# The International Earth Rotation and Reference Systems Service (IERS)
23# periodically uses leap seconds to keep UTC to within 0.9 s of UT1 20# periodically uses leap seconds to keep UTC to within 0.9 s of UT1
24# (a proxy for Earth's angle in space as measured by astronomers) 21# (a proxy for Earth's angle in space as measured by astronomers)
25# and publishes leap second data in a copyrighted file 22# and publishes leap second data in a copyrighted file
@@ -62,21 +59,21 @@ Leap 1994 Jun 30 23:59:60 + S @@ -62,21 +59,21 @@ Leap 1994 Jun 30 23:59:60 + S
62Leap 1995 Dec 31 23:59:60 + S 59Leap 1995 Dec 31 23:59:60 + S
63Leap 1997 Jun 30 23:59:60 + S 60Leap 1997 Jun 30 23:59:60 + S
64Leap 1998 Dec 31 23:59:60 + S 61Leap 1998 Dec 31 23:59:60 + S
65Leap 2005 Dec 31 23:59:60 + S 62Leap 2005 Dec 31 23:59:60 + S
66Leap 2008 Dec 31 23:59:60 + S 63Leap 2008 Dec 31 23:59:60 + S
67Leap 2012 Jun 30 23:59:60 + S 64Leap 2012 Jun 30 23:59:60 + S
68Leap 2015 Jun 30 23:59:60 + S 65Leap 2015 Jun 30 23:59:60 + S
69Leap 2016 Dec 31 23:59:60 + S 66Leap 2016 Dec 31 23:59:60 + S
70 67
71# UTC timestamp when this leap second list expires. 68# UTC timestamp when this leap second list expires.
72# Any additional leap seconds will come after this. 69# Any additional leap seconds will come after this.
73# This Expires line is commented out for now, 70# This Expires line is commented out for now,
74# so that pre-2020a zic implementations do not reject this file. 71# so that pre-2020a zic implementations do not reject this file.
75#Expires 2024 Jun 28 00:00:00 72#Expires 2024 Dec 28 00:00:00
76 73
77# POSIX timestamps for the data in this file: 74# POSIX timestamps for the data in this file:
78#updated 1467936000 (2016-07-08 00:00:00 UTC) 75#updated 1704708379 (2024-01-08 10:06:19 UTC)
79#expires 1719532800 (2024-06-28 00:00:00 UTC) 76#expires 1735344000 (2024-12-28 00:00:00 UTC)
80 77
81# Updated through IERS Bulletin C66 78# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
82# File expires on: 28 June 2024 79# File expires on 28 December 2024

cvs diff -r1.1.1.12.6.1 -r1.1.1.12.6.2 src/external/public-domain/tz/dist/leapseconds.awk (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/leapseconds.awk 2023/04/25 15:58:37 1.1.1.12.6.1
+++ src/external/public-domain/tz/dist/leapseconds.awk 2024/02/06 12:22:42 1.1.1.12.6.2
@@ -1,43 +1,40 @@ @@ -1,43 +1,40 @@
1# Generate zic format 'leapseconds' from NIST format 'leap-seconds.list'. 1# Generate zic format 'leapseconds' from NIST/IERS format 'leap-seconds.list'.
2 2
3# This file is in the public domain. 3# This file is in the public domain.
4 4
5# This program uses awk arithmetic. POSIX requires awk to support 5# This program uses awk arithmetic. POSIX requires awk to support
6# exact integer arithmetic only through 10**10, which means for NTP 6# exact integer arithmetic only through 10**10, which means for NTP
7# timestamps this program works only to the year 2216, which is the 7# timestamps this program works only to the year 2216, which is the
8# year 1900 plus 10**10 seconds. However, in practice 8# year 1900 plus 10**10 seconds. However, in practice
9# POSIX-conforming awk implementations invariably use IEEE-754 double 9# POSIX-conforming awk implementations invariably use IEEE-754 double
10# and so support exact integers through 2**53. By the year 2216, 10# and so support exact integers through 2**53. By the year 2216,
11# POSIX will almost surely require at least 2**53 for awk, so for NTP 11# POSIX will almost surely require at least 2**53 for awk, so for NTP
12# timestamps this program should be good until the year 285,428,681 12# timestamps this program should be good until the year 285,428,681
13# (the year 1900 plus 2**53 seconds). By then leap seconds will be 13# (the year 1900 plus 2**53 seconds). By then leap seconds will be
14# long obsolete, as the Earth will likely slow down so much that 14# long obsolete, as the Earth will likely slow down so much that
15# there will be more than 25 hours per day and so some other scheme 15# there will be more than 25 hours per day and so some other scheme
16# will be needed. 16# will be needed.
17 17
18BEGIN { 18BEGIN {
19 print "# Allowance for leap seconds added to each time zone file." 19 print "# Allowance for leap seconds added to each time zone file."
20 print "" 20 print ""
21 print "# This file is in the public domain." 21 print "# This file is in the public domain."
22 print "" 22 print ""
23 print "# This file is generated automatically from the data in the public-domain" 23 print "# This file is generated automatically from the data in the public-domain"
24 print "# NIST format leap-seconds.list file, which can be copied from" 24 print "# NIST/IERS format leap-seconds.list file, which can be copied from"
25 print "# <ftp://ftp.nist.gov/pub/time/leap-seconds.list>" 
26 print "# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>." 
27 print "# The NIST file is used instead of its IERS upstream counterpart" 
28 print "# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>" 25 print "# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>"
29 print "# because under US law the NIST file is public domain" 26 print "# or, in a variant with different comments, from"
30 print "# whereas the IERS file's copyright and license status is unclear." 27 print "# <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>."
31 print "# For more about leap-seconds.list, please see" 28 print "# For more about leap-seconds.list, please see"
32 print "# The NTP Timescale and Leap Seconds" 29 print "# The NTP Timescale and Leap Seconds"
33 print "# <https://www.eecis.udel.edu/~mills/leap.html>." 30 print "# <https://www.eecis.udel.edu/~mills/leap.html>."
34 print "" 31 print ""
35 print "# The rules for leap seconds are specified in Annex 1 (Time scales) of:" 32 print "# The rules for leap seconds are specified in Annex 1 (Time scales) of:"
36 print "# Standard-frequency and time-signal emissions." 33 print "# Standard-frequency and time-signal emissions."
37 print "# International Telecommunication Union - Radiocommunication Sector" 34 print "# International Telecommunication Union - Radiocommunication Sector"
38 print "# (ITU-R) Recommendation TF.460-6 (02/2002)" 35 print "# (ITU-R) Recommendation TF.460-6 (02/2002)"
39 print "# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>." 36 print "# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>."
40 print "# The International Earth Rotation and Reference Systems Service (IERS)" 37 print "# The International Earth Rotation and Reference Systems Service (IERS)"
41 print "# periodically uses leap seconds to keep UTC to within 0.9 s of UT1" 38 print "# periodically uses leap seconds to keep UTC to within 0.9 s of UT1"
42 print "# (a proxy for Earth's angle in space as measured by astronomers)" 39 print "# (a proxy for Earth's angle in space as measured by astronomers)"
43 print "# and publishes leap second data in a copyrighted file" 40 print "# and publishes leap second data in a copyrighted file"

cvs diff -r1.1.1.32.2.2 -r1.1.1.32.2.3 src/external/public-domain/tz/dist/northamerica (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/northamerica 2023/12/29 20:41:12 1.1.1.32.2.2
+++ src/external/public-domain/tz/dist/northamerica 2024/02/06 12:22:42 1.1.1.32.2.3
@@ -1258,26 +1258,30 @@ Zone America/Menominee -5:50:27 - LMT 18 @@ -1258,26 +1258,30 @@ Zone America/Menominee -5:50:27 - LMT 18
1258# <https://www.jstor.org/stable/1774359>. 1258# <https://www.jstor.org/stable/1774359>.
1259# 1259#
1260# Pearce C. The Great Daylight Saving Time Controversy. 1260# Pearce C. The Great Daylight Saving Time Controversy.
1261# Australian Ebook Publisher. 2017. ISBN 978-1-925516-96-8. 1261# Australian Ebook Publisher. 2017. ISBN 978-1-925516-96-8.
1262# 1262#
1263# Edward W. Whitman, World Time Differences, 1263# Edward W. Whitman, World Time Differences,
1264# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), 1264# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
1265# which I found in the UCLA library. 1265# which I found in the UCLA library.
1266# 1266#
1267# William Willett, The Waste of Daylight, 19th edition 1267# William Willett, The Waste of Daylight, 19th edition
1268# <http://cs.ucla.edu/~eggert/The-Waste-of-Daylight-19th.pdf> 1268# <http://cs.ucla.edu/~eggert/The-Waste-of-Daylight-19th.pdf>
1269# [PDF] (1914-03) 1269# [PDF] (1914-03)
1270# 1270#
 1271# For the 1911/1912 establishment of standard time in French possessions, see:
 1272# Société Française de Physique, Recueil de constantes physiques (1913),
 1273# page 752, 18b.
 1274#
1271# See the 'europe' file for Greenland. 1275# See the 'europe' file for Greenland.
1272 1276
1273# Canada 1277# Canada
1274 1278
1275# From Alain LaBonté (1994-11-14): 1279# From Alain LaBonté (1994-11-14):
1276# I post here the time zone abbreviations standardized in Canada 1280# I post here the time zone abbreviations standardized in Canada
1277# for both English and French in the CAN/CSA-Z234.4-89 standard.... 1281# for both English and French in the CAN/CSA-Z234.4-89 standard....
1278# 1282#
1279# UTC Standard time Daylight saving time 1283# UTC Standard time Daylight saving time
1280# offset French English French English 1284# offset French English French English
1281# -2:30 - - HAT NDT 1285# -2:30 - - HAT NDT
1282# -3 - - HAA ADT 1286# -3 - - HAA ADT
1283# -3:30 HNT NST - - 1287# -3:30 HNT NST - -
@@ -1344,27 +1348,27 @@ Zone America/Menominee -5:50:27 - LMT 18 @@ -1344,27 +1348,27 @@ Zone America/Menominee -5:50:27 - LMT 18
1344# does not seem to believe in bookmarks. To see the news release, click the 1348# does not seem to believe in bookmarks. To see the news release, click the
1345# following link and search for "Daylight Savings Time Change". Press the 1349# following link and search for "Daylight Savings Time Change". Press the
1346# "Daylight Savings Time Change" link; it will fire off a popup using 1350# "Daylight Savings Time Change" link; it will fire off a popup using
1347# JavaScript. 1351# JavaScript.
1348# http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive 1352# http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive
1349# ... 1353# ...
1350# Nunavut 1354# Nunavut
1351# An amendment to the Interpretation Act was registered on February 19/2007.... 1355# An amendment to the Interpretation Act was registered on February 19/2007....
1352# http://action.attavik.ca/home/justice-gn/attach/2007/gaz02part2.pdf 1356# http://action.attavik.ca/home/justice-gn/attach/2007/gaz02part2.pdf
1353 1357
1354# From Paul Eggert (2014-10-18): 1358# From Paul Eggert (2014-10-18):
1355# H. David Matthews and Mary Vincent's map 1359# H. David Matthews and Mary Vincent's map
1356# "It's about TIME", _Canadian Geographic_ (September-October 1998) 1360# "It's about TIME", _Canadian Geographic_ (September-October 1998)
1357# http://www.canadiangeographic.ca/Magazine/SO98/alacarte.asp 1361# https://web.archive.org/web/19990827055050/https://canadiangeographic.ca/SO98/geomap.htm
1358# contains detailed boundaries for regions observing nonstandard 1362# contains detailed boundaries for regions observing nonstandard
1359# time and daylight saving time arrangements in Canada circa 1998. 1363# time and daylight saving time arrangements in Canada circa 1998.
1360# 1364#
1361# National Research Council Canada maintains info about time zones and DST. 1365# National Research Council Canada maintains info about time zones and DST.
1362# https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html 1366# https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html
1363# https://www.nrc-cnrc.gc.ca/eng/services/time/faq/index.html#Q5 1367# https://www.nrc-cnrc.gc.ca/eng/services/time/faq/index.html#Q5
1364# Its unofficial information is often taken from Matthews and Vincent. 1368# Its unofficial information is often taken from Matthews and Vincent.
1365 1369
1366# From Paul Eggert (2006-06-27): 1370# From Paul Eggert (2006-06-27):
1367# For now, assume all of DST-observing Canada will fall into line with the 1371# For now, assume all of DST-observing Canada will fall into line with the
1368# new US DST rules, 1372# new US DST rules,
1369 1373
1370# From Chris Walton (2011-12-01) 1374# From Chris Walton (2011-12-01)
@@ -1636,26 +1640,35 @@ Zone America/Blanc-Sablon -3:48:28 - LMT @@ -1636,26 +1640,35 @@ Zone America/Blanc-Sablon -3:48:28 - LMT
1636# time at 2 am Sunday morning (which agrees with the database), and that: 1640# time at 2 am Sunday morning (which agrees with the database), and that:
1637# 1641#
1638# The one-hour setback will go into effect throughout most of Ontario, 1642# The one-hour setback will go into effect throughout most of Ontario,
1639# except in areas like Windsor which remains on standard time all year. 1643# except in areas like Windsor which remains on standard time all year.
1640# 1644#
1641# ... I don't know if Windsor began observing DST when Detroit did, 1645# ... I don't know if Windsor began observing DST when Detroit did,
1642# or in 1974, or on some other date. 1646# or in 1974, or on some other date.
1643# 1647#
1644# By the way, the article continues by noting that: 1648# By the way, the article continues by noting that:
1645# 1649#
1646# Some cities in the United States have pushed the deadline back 1650# Some cities in the United States have pushed the deadline back
1647# three weeks and will change over from daylight saving in October. 1651# three weeks and will change over from daylight saving in October.
1648 1652
 1653# From Chris Walton (2024-01-09):
 1654# The [Toronto] changes in 1947, 1948, and 1949 took place at 2:00 a.m. local
 1655# time instead of midnight.... Toronto Daily Star - ...
 1656# April 2, 1947 - Page 39 ... April 7, 1948 - Page 13 ...
 1657# April 2, 1949 - Page 1 ... April 7, 1949 - Page 24 ...
 1658# November 25, 1949 - Page 52 ... April 21, 1950 - Page 14 ...
 1659# September 19, 1950 - Page 46 ... September 20, 1950 - Page 3 ...
 1660# November 24, 1950 - Page 21
 1661
1649# From Arthur David Olson (2010-07-17): 1662# From Arthur David Olson (2010-07-17):
1650# 1663#
1651# "Standard Time and Time Zones in Canada" appeared in 1664# "Standard Time and Time Zones in Canada" appeared in
1652# The Journal of The Royal Astronomical Society of Canada, 1665# The Journal of The Royal Astronomical Society of Canada,
1653# volume 26, number 2 (February 1932) and, as of 2010-07-17, 1666# volume 26, number 2 (February 1932) and, as of 2010-07-17,
1654# was available at 1667# was available at
1655# http://adsabs.harvard.edu/full/1932JRASC..26...49S 1668# http://adsabs.harvard.edu/full/1932JRASC..26...49S
1656# 1669#
1657# It includes the text below (starting on page 57): 1670# It includes the text below (starting on page 57):
1658# 1671#
1659# A list of the places in Canada using daylight saving time would 1672# A list of the places in Canada using daylight saving time would
1660# require yearly revision. From information kindly furnished by 1673# require yearly revision. From information kindly furnished by
1661# the provincial governments and by the postmasters in many cities 1674# the provincial governments and by the postmasters in many cities
@@ -1697,33 +1710,29 @@ Rule Toronto 1919 only - Oct 26 0:00 0 S @@ -1697,33 +1710,29 @@ Rule Toronto 1919 only - Oct 26 0:00 0 S
1697Rule Toronto 1920 only - May 2 2:00 1:00 D 1710Rule Toronto 1920 only - May 2 2:00 1:00 D
1698Rule Toronto 1920 only - Sep 26 0:00 0 S 1711Rule Toronto 1920 only - Sep 26 0:00 0 S
1699Rule Toronto 1921 only - May 15 2:00 1:00 D 1712Rule Toronto 1921 only - May 15 2:00 1:00 D
1700Rule Toronto 1921 only - Sep 15 2:00 0 S 1713Rule Toronto 1921 only - Sep 15 2:00 0 S
1701Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D 1714Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D
1702# Shanks & Pottenger say 1923-09-19; assume it's a typo and that "-16" 1715# Shanks & Pottenger say 1923-09-19; assume it's a typo and that "-16"
1703# was meant. 1716# was meant.
1704Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S 1717Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S
1705Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D 1718Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D
1706Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S 1719Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S
1707Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D 1720Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D
1708Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D 1721Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D
1709Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S 1722Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S
1710Rule Toronto 1945 1946 - Sep lastSun 2:00 0 S 1723Rule Toronto 1945 1948 - Sep lastSun 2:00 0 S
1711Rule Toronto 1946 only - Apr lastSun 2:00 1:00 D 1724Rule Toronto 1946 1973 - Apr lastSun 2:00 1:00 D
1712Rule Toronto 1947 1949 - Apr lastSun 0:00 1:00 D 1725Rule Toronto 1949 1950 - Nov lastSun 2:00 0 S
1713Rule Toronto 1947 1948 - Sep lastSun 0:00 0 S 
1714Rule Toronto 1949 only - Nov lastSun 0:00 0 S 
1715Rule Toronto 1950 1973 - Apr lastSun 2:00 1:00 D 
1716Rule Toronto 1950 only - Nov lastSun 2:00 0 S 
1717Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S 1726Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
1718# Shanks & Pottenger say Toronto ended DST a week early in 1971, 1727# Shanks & Pottenger say Toronto ended DST a week early in 1971,
1719# namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this 1728# namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this
1720# is wrong, and that he had confirmed it by checking the 1971-10-30 1729# is wrong, and that he had confirmed it by checking the 1971-10-30
1721# Toronto Star, which said that DST was ending 1971-10-31 as usual. 1730# Toronto Star, which said that DST was ending 1971-10-31 as usual.
1722Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S 1731Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S
1723 1732
1724 1733
1725# Zone NAME STDOFF RULES FORMAT [UNTIL] 1734# Zone NAME STDOFF RULES FORMAT [UNTIL]
1726Zone America/Toronto -5:17:32 - LMT 1895 1735Zone America/Toronto -5:17:32 - LMT 1895
1727 -5:00 Canada E%sT 1919 1736 -5:00 Canada E%sT 1919
1728 -5:00 Toronto E%sT 1942 Feb 9 2:00s 1737 -5:00 Toronto E%sT 1942 Feb 9 2:00s
1729 -5:00 Canada E%sT 1946 1738 -5:00 Canada E%sT 1946
@@ -3491,27 +3500,27 @@ Zone America/Tegucigalpa -5:48:52 - LMT  @@ -3491,27 +3500,27 @@ Zone America/Tegucigalpa -5:48:52 - LMT
3491# http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647 3500# http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647
3492# 3501#
3493# Zone NAME STDOFF RULES FORMAT [UNTIL] 3502# Zone NAME STDOFF RULES FORMAT [UNTIL]
3494 #STDOFF -5:07:10.41 3503 #STDOFF -5:07:10.41
3495Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston 3504Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston
3496 -5:07:10 - KMT 1912 Feb # Kingston Mean Time 3505 -5:07:10 - KMT 1912 Feb # Kingston Mean Time
3497 -5:00 - EST 1974 3506 -5:00 - EST 1974
3498 -5:00 US E%sT 1984 3507 -5:00 US E%sT 1984
3499 -5:00 - EST 3508 -5:00 - EST
3500 3509
3501# Martinique 3510# Martinique
3502# Zone NAME STDOFF RULES FORMAT [UNTIL] 3511# Zone NAME STDOFF RULES FORMAT [UNTIL]
3503Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France 3512Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France
3504 -4:04:20 - FFMT 1911 May # Fort-de-France MT 3513 -4:04:20 - FFMT 1911 May 1 # Fort-de-France MT
3505 -4:00 - AST 1980 Apr 6 3514 -4:00 - AST 1980 Apr 6
3506 -4:00 1:00 ADT 1980 Sep 28 3515 -4:00 1:00 ADT 1980 Sep 28
3507 -4:00 - AST 3516 -4:00 - AST
3508 3517
3509# Montserrat 3518# Montserrat
3510# Zone NAME STDOFF RULES FORMAT [UNTIL] 3519# Zone NAME STDOFF RULES FORMAT [UNTIL]
3511Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill 3520Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill
3512 -4:00 - AST 3521 -4:00 - AST
3513 3522
3514# Nicaragua 3523# Nicaragua
3515# 3524#
3516# This uses Shanks & Pottenger for times before 2005. 3525# This uses Shanks & Pottenger for times before 2005.
3517# 3526#
@@ -3594,27 +3603,27 @@ Zone America/Puerto_Rico -4:24:25 - LMT  @@ -3594,27 +3603,27 @@ Zone America/Puerto_Rico -4:24:25 - LMT
3594# Zone NAME STDOFF RULES FORMAT [UNTIL] 3603# Zone NAME STDOFF RULES FORMAT [UNTIL]
3595Zone America/St_Kitts -4:10:52 - LMT 1912 Mar 2 # Basseterre 3604Zone America/St_Kitts -4:10:52 - LMT 1912 Mar 2 # Basseterre
3596 -4:00 - AST 3605 -4:00 - AST
3597 3606
3598# St Lucia 3607# St Lucia
3599# Zone NAME STDOFF RULES FORMAT [UNTIL] 3608# Zone NAME STDOFF RULES FORMAT [UNTIL]
3600Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries 3609Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries
3601 -4:04:00 - CMT 1912 # Castries Mean Time 3610 -4:04:00 - CMT 1912 # Castries Mean Time
3602 -4:00 - AST 3611 -4:00 - AST
3603 3612
3604# St Pierre and Miquelon 3613# St Pierre and Miquelon
3605# There are too many St Pierres elsewhere, so we'll use 'Miquelon'. 3614# There are too many St Pierres elsewhere, so we'll use 'Miquelon'.
3606# Zone NAME STDOFF RULES FORMAT [UNTIL] 3615# Zone NAME STDOFF RULES FORMAT [UNTIL]
3607Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre 3616Zone America/Miquelon -3:44:40 - LMT 1911 Jun 15 # St Pierre
3608 -4:00 - AST 1980 May 3617 -4:00 - AST 1980 May
3609 -3:00 - -03 1987 3618 -3:00 - -03 1987
3610 -3:00 Canada -03/-02 3619 -3:00 Canada -03/-02
3611 3620
3612# St Vincent & the Grenadines 3621# St Vincent & the Grenadines
3613# Zone NAME STDOFF RULES FORMAT [UNTIL] 3622# Zone NAME STDOFF RULES FORMAT [UNTIL]
3614Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown 3623Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown
3615 -4:04:56 - KMT 1912 # Kingstown Mean Time 3624 -4:04:56 - KMT 1912 # Kingstown Mean Time
3616 -4:00 - AST 3625 -4:00 - AST
3617 3626
3618# Sint Maarten 3627# Sint Maarten
3619# See America/Lower_Princes in southamerica. 3628# See America/Lower_Princes in southamerica.
3620 3629

cvs diff -r1.1.1.22.2.2 -r1.1.1.22.2.3 src/external/public-domain/tz/dist/southamerica (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/southamerica 2023/12/29 20:41:12 1.1.1.22.2.2
+++ src/external/public-domain/tz/dist/southamerica 2024/02/06 12:22:42 1.1.1.22.2.3
@@ -1573,28 +1573,31 @@ Rule Falk 1984 only - Sep 16 0:00 1:00 - @@ -1573,28 +1573,31 @@ Rule Falk 1984 only - Sep 16 0:00 1:00 -
1573Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 - 1573Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 -
1574Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 - 1574Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
1575Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 - 1575Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
1576Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 - 1576Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 -
1577# Zone NAME STDOFF RULES FORMAT [UNTIL] 1577# Zone NAME STDOFF RULES FORMAT [UNTIL]
1578Zone Atlantic/Stanley -3:51:24 - LMT 1890 1578Zone Atlantic/Stanley -3:51:24 - LMT 1890
1579 -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time 1579 -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time
1580 -4:00 Falk -04/-03 1983 May 1580 -4:00 Falk -04/-03 1983 May
1581 -3:00 Falk -03/-02 1985 Sep 15 1581 -3:00 Falk -03/-02 1985 Sep 15
1582 -4:00 Falk -04/-03 2010 Sep 5 2:00 1582 -4:00 Falk -04/-03 2010 Sep 5 2:00
1583 -3:00 - -03 1583 -3:00 - -03
1584 1584
1585# French Guiana 1585# French Guiana
 1586# For the 1911/1912 establishment of standard time in French possessions, see:
 1587# Société Française de Physique, Recueil de constantes physiques (1913),
 1588# page 752, 18b.
1586# Zone NAME STDOFF RULES FORMAT [UNTIL] 1589# Zone NAME STDOFF RULES FORMAT [UNTIL]
1587Zone America/Cayenne -3:29:20 - LMT 1911 Jul 1590Zone America/Cayenne -3:29:20 - LMT 1911 Jul 1
1588 -4:00 - -04 1967 Oct 1591 -4:00 - -04 1967 Oct
1589 -3:00 - -03 1592 -3:00 - -03
1590 1593
1591# Guyana 1594# Guyana
1592 1595
1593# From P Chan (2020-11-27): 1596# From P Chan (2020-11-27):
1594# https://books.google.com/books?id=5-5CAQAAMAAJ&pg=SA1-PA547 1597# https://books.google.com/books?id=5-5CAQAAMAAJ&pg=SA1-PA547
1595# The Official Gazette of British Guiana. (New Series.) Vol. XL. July to 1598# The Official Gazette of British Guiana. (New Series.) Vol. XL. July to
1596# December, 1915, p 1547, lists as several notes: 1599# December, 1915, p 1547, lists as several notes:
1597# "Local Mean Time 3 hours 52 mins. 39 secs. slow of Greenwich Mean Time 1600# "Local Mean Time 3 hours 52 mins. 39 secs. slow of Greenwich Mean Time
1598# (Georgetown.) From 1st August, 1911, British Guiana Standard Mean Time 4 1601# (Georgetown.) From 1st August, 1911, British Guiana Standard Mean Time 4
1599# hours slow of Greenwich Mean Time, by notice in Official Gazette on 1st July, 1602# hours slow of Greenwich Mean Time, by notice in Official Gazette on 1st July,
1600# 1911. From 1st March, 1915, British Guiana Standard Mean Time 3 hours 45 1603# 1911. From 1st March, 1915, British Guiana Standard Mean Time 3 hours 45

cvs diff -r1.1.1.17.2.1 -r1.1.1.17.2.2 src/external/public-domain/tz/dist/theory.html (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/theory.html 2023/04/25 15:58:37 1.1.1.17.2.1
+++ src/external/public-domain/tz/dist/theory.html 2024/02/06 12:22:42 1.1.1.17.2.2
@@ -85,27 +85,27 @@ necessarily follow database guidelines. @@ -85,27 +85,27 @@ necessarily follow database guidelines.
85<p> 85<p>
86As described below, reference source code for using the 86As described below, reference source code for using the
87<code><abbr>tz</abbr></code> database is also available. 87<code><abbr>tz</abbr></code> database is also available.
88The <code><abbr>tz</abbr></code> code is upwards compatible with <a 88The <code><abbr>tz</abbr></code> code is upwards compatible with <a
89href="https://en.wikipedia.org/wiki/POSIX">POSIX</a>, an international 89href="https://en.wikipedia.org/wiki/POSIX">POSIX</a>, an international
90standard for <a 90standard for <a
91href="https://en.wikipedia.org/wiki/Unix">UNIX</a>-like systems. 91href="https://en.wikipedia.org/wiki/Unix">UNIX</a>-like systems.
92As of this writing, the current edition of POSIX is: <a 92As of this writing, the current edition of POSIX is: <a
93href="https://pubs.opengroup.org/onlinepubs/9699919799/"> The Open 93href="https://pubs.opengroup.org/onlinepubs/9699919799/"> The Open
94Group Base Specifications Issue 7</a>, IEEE Std 1003.1-2017, 2018 94Group Base Specifications Issue 7</a>, IEEE Std 1003.1-2017, 2018
95Edition. 95Edition.
96Because the database's scope encompasses real-world changes to civil 96Because the database's scope encompasses real-world changes to civil
97timekeeping, its model for describing time is more complex than the 97timekeeping, its model for describing time is more complex than the
98standard and daylight saving times supported by POSIX. 98standard and daylight saving times supported by POSIX.1-2017.
99A <code><abbr>tz</abbr></code> timezone corresponds to a ruleset that can 99A <code><abbr>tz</abbr></code> timezone corresponds to a ruleset that can
100have more than two changes per year, these changes need not merely 100have more than two changes per year, these changes need not merely
101flip back and forth between two alternatives, and the rules themselves 101flip back and forth between two alternatives, and the rules themselves
102can change at times. 102can change at times.
103Whether and when a timezone changes its clock, 103Whether and when a timezone changes its clock,
104and even the timezone's notional base offset from <abbr>UTC</abbr>, 104and even the timezone's notional base offset from <abbr>UTC</abbr>,
105are variable. 105are variable.
106It does not always make sense to talk about a timezone's 106It does not always make sense to talk about a timezone's
107"base offset", which is not necessarily a single number. 107"base offset", which is not necessarily a single number.
108</p> 108</p>
109 109
110</section> 110</section>
111 111
@@ -177,27 +177,27 @@ choosing timezone names, @@ -177,27 +177,27 @@ choosing timezone names,
177in decreasing order of importance: 177in decreasing order of importance:
178</p> 178</p>
179 179
180<ul> 180<ul>
181 <li> 181 <li>
182 Use only valid POSIX file name components (i.e., the parts of 182 Use only valid POSIX file name components (i.e., the parts of
183 names other than '<code>/</code>'). 183 names other than '<code>/</code>').
184 Do not use the file name components '<code>.</code>' and 184 Do not use the file name components '<code>.</code>' and
185 '<code>..</code>'. 185 '<code>..</code>'.
186 Within a file name component, use only <a 186 Within a file name component, use only <a
187 href="https://en.wikipedia.org/wiki/ASCII">ASCII</a> letters, 187 href="https://en.wikipedia.org/wiki/ASCII">ASCII</a> letters,
188 '<code>.</code>', '<code>-</code>' and '<code>_</code>'. 188 '<code>.</code>', '<code>-</code>' and '<code>_</code>'.
189 Do not use digits, as that might create an ambiguity with <a 189 Do not use digits, as that might create an ambiguity with <a
190 href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03">POSIX 190 href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03">POSIX.1-2017
191 <code>TZ</code> strings</a>. 191 <code>TZ</code> strings</a>.
192 A file name component must not exceed 14 characters or start with 192 A file name component must not exceed 14 characters or start with
193 '<code>-</code>'. 193 '<code>-</code>'.
194 E.g., prefer <code>America/Noronha</code> to 194 E.g., prefer <code>America/Noronha</code> to
195 <code>America/Fernando_de_Noronha</code>. 195 <code>America/Fernando_de_Noronha</code>.
196 Exceptions: see the discussion of legacy names below. 196 Exceptions: see the discussion of legacy names below.
197 </li> 197 </li>
198 <li> 198 <li>
199 A name must not be empty, or contain '<code>//</code>', or 199 A name must not be empty, or contain '<code>//</code>', or
200 start or end with '<code>/</code>'. 200 start or end with '<code>/</code>'.
201 </li> 201 </li>
202 <li> 202 <li>
203 Do not use names that differ only in case. 203 Do not use names that differ only in case.
@@ -352,38 +352,43 @@ The file zone1970.tab lists @@ -352,38 +352,43 @@ The file zone1970.tab lists
352to name timezones. 352to name timezones.
353It is intended to be an exhaustive list of names for geographic 353It is intended to be an exhaustive list of names for geographic
354regions as described above; this is a subset of the timezones in the data. 354regions as described above; this is a subset of the timezones in the data.
355Although a <code>zone1970.tab</code> location's 355Although a <code>zone1970.tab</code> location's
356<a href="https://en.wikipedia.org/wiki/Longitude">longitude</a> 356<a href="https://en.wikipedia.org/wiki/Longitude">longitude</a>
357corresponds to 357corresponds to
358its <a href="https://en.wikipedia.org/wiki/Local_mean_time">local mean 358its <a href="https://en.wikipedia.org/wiki/Local_mean_time">local mean
359time (<abbr>LMT</abbr>)</a> offset with one hour for every 15&deg; 359time (<abbr>LMT</abbr>)</a> offset with one hour for every 15&deg;
360east longitude, this relationship is not exact. 360east longitude, this relationship is not exact.
361The backward-compatibility file <code>zone.tab</code> is similar 361The backward-compatibility file <code>zone.tab</code> is similar
362but conforms to the older-version guidelines related to <abbr>ISO</abbr> 3166-1; 362but conforms to the older-version guidelines related to <abbr>ISO</abbr> 3166-1;
363it lists only one country code per entry and unlike <code>zone1970.tab</code> 363it lists only one country code per entry and unlike <code>zone1970.tab</code>
364it can list names defined in <code>backward</code>. 364it can list names defined in <code>backward</code>.
 365Applications that process only timestamps from now on can instead use the file
 366<code>zonenow.tab</code>, which partitions the world more coarsely,
 367into regions where clocks agree now and in the predicted future;
 368this file is smaller and simpler than <code>zone1970.tab</code>
 369and <code>zone.tab</code>.
365</p> 370</p>
366 371
367<p> 372<p>
368The database defines each timezone name to be a zone, or a link to a zone. 373The database defines each timezone name to be a zone, or a link to a zone.
369The source file <code>backward</code> defines links for backward 374The source file <code>backward</code> defines links for backward
370compatibility; it does not define zones. 375compatibility; it does not define zones.
371Although <code>backward</code> was originally designed to be optional, 376Although <code>backward</code> was originally designed to be optional,
372nowadays distributions typically use it 377nowadays distributions typically use it
373and no great weight should be attached to whether a link 378and no great weight should be attached to whether a link
374is defined in <code>backward</code> or in some other file. 379is defined in <code>backward</code> or in some other file.
375The source file <code>etcetera</code> defines names that may be useful 380The source file <code>etcetera</code> defines names that may be useful
376on platforms that do not support POSIX-style <code>TZ</code> strings; 381on platforms that do not support POSIX.1-2017-style <code>TZ</code> strings;
377no other source file other than <code>backward</code> 382no other source file other than <code>backward</code>
378contains links to its zones. 383contains links to its zones.
379One of <code>etcetera</code>'s names is <code>Etc/UTC</code>, 384One of <code>etcetera</code>'s names is <code>Etc/UTC</code>,
380used by functions like <code>gmtime</code> to obtain leap 385used by functions like <code>gmtime</code> to obtain leap
381second information on platforms that support leap seconds. 386second information on platforms that support leap seconds.
382Another <code>etcetera</code> name, <code>GMT</code>, 387Another <code>etcetera</code> name, <code>GMT</code>,
383is used by older code releases. 388is used by older code releases.
384</p> 389</p>
385</section> 390</section>
386 391
387<section> 392<section>
388 <h2 id="abbreviations">Time zone abbreviations</h2> 393 <h2 id="abbreviations">Time zone abbreviations</h2>
389<p> 394<p>
@@ -411,27 +416,27 @@ in decreasing order of importance: @@ -411,27 +416,27 @@ in decreasing order of importance:
411 Standard Time</a> preferred "ChST", so lower-case letters are now 416 Standard Time</a> preferred "ChST", so lower-case letters are now
412 allowed. 417 allowed.
413 Also, POSIX from 2001 on relaxed the rule to allow '<code>-</code>', 418 Also, POSIX from 2001 on relaxed the rule to allow '<code>-</code>',
414 '<code>+</code>', and alphanumeric characters from the portable 419 '<code>+</code>', and alphanumeric characters from the portable
415 character set in the current locale. 420 character set in the current locale.
416 In practice ASCII alphanumerics and '<code>+</code>' and 421 In practice ASCII alphanumerics and '<code>+</code>' and
417 '<code>-</code>' are safe in all locales. 422 '<code>-</code>' are safe in all locales.
418 423
419 <p> 424 <p>
420 In other words, in the C locale the POSIX extended regular 425 In other words, in the C locale the POSIX extended regular
421 expression <code>[-+[:alnum:]]{3,6}</code> should match the 426 expression <code>[-+[:alnum:]]{3,6}</code> should match the
422 abbreviation. 427 abbreviation.
423 This guarantees that all abbreviations could have been specified by a 428 This guarantees that all abbreviations could have been specified by a
424 POSIX <code>TZ</code> string. 429 POSIX.1-2017 <code>TZ</code> string.
425 </p> 430 </p>
426 </li> 431 </li>
427 <li> 432 <li>
428 Use abbreviations that are in common use among English-speakers, 433 Use abbreviations that are in common use among English-speakers,
429 e.g., 'EST' for Eastern Standard Time in North America. 434 e.g., 'EST' for Eastern Standard Time in North America.
430 We assume that applications translate them to other languages 435 We assume that applications translate them to other languages
431 as part of the normal localization process; for example, 436 as part of the normal localization process; for example,
432 a French application might translate 'EST' to 'HNE'. 437 a French application might translate 'EST' to 'HNE'.
433 438
434 <p> 439 <p>
435 <small>These abbreviations (for standard/daylight/etc. time) are: 440 <small>These abbreviations (for standard/daylight/etc. time) are:
436 ACST/ACDT Australian Central, 441 ACST/ACDT Australian Central,
437 AST/ADT/APT/AWT/ADDT Atlantic, 442 AST/ADT/APT/AWT/ADDT Atlantic,
@@ -755,32 +760,32 @@ href="https://www.dissentmagazine.org/bl @@ -755,32 +760,32 @@ href="https://www.dissentmagazine.org/bl
755 numbered 00 through 23, except when clock transitions occur. 760 numbered 00 through 23, except when clock transitions occur.
756 Pre-standard time is modeled as local mean time. 761 Pre-standard time is modeled as local mean time.
757 However, historically many people used other calendars and other timescales. 762 However, historically many people used other calendars and other timescales.
758 For example, the Roman Empire used 763 For example, the Roman Empire used
759 the <a href="https://en.wikipedia.org/wiki/Julian_calendar">Julian 764 the <a href="https://en.wikipedia.org/wiki/Julian_calendar">Julian
760 calendar</a>, 765 calendar</a>,
761 and <a href="https://en.wikipedia.org/wiki/Roman_timekeeping">Roman 766 and <a href="https://en.wikipedia.org/wiki/Roman_timekeeping">Roman
762 timekeeping</a> had twelve varying-length daytime hours with a 767 timekeeping</a> had twelve varying-length daytime hours with a
763 non-hour-based system at night. 768 non-hour-based system at night.
764 And even today, some local practices diverge from the Gregorian 769 And even today, some local practices diverge from the Gregorian
765 calendar with 24-hour days. These divergences range from 770 calendar with 24-hour days. These divergences range from
766 relatively minor, such as Japanese bars giving times like "24:30" for the 771 relatively minor, such as Japanese bars giving times like "24:30" for the
767 wee hours of the morning, to more-significant differences such as <a 772 wee hours of the morning, to more-significant differences such as <a
768 href="https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time">the 773 href="https://theworld.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time">the
769 east African practice of starting the day at dawn</a>, renumbering 774 east African practice of starting the day at dawn</a>, renumbering
770 the Western 06:00 to be 12:00. These practices are largely outside 775 the Western 06:00 to be 12:00. These practices are largely outside
771 the scope of the <code><abbr>tz</abbr></code> code and data, which 776 the scope of the <code><abbr>tz</abbr></code> code and data, which
772 provide only limited support for date and time localization 777 provide only limited support for date and time localization
773 such as that required by POSIX. 778 such as that required by POSIX.1-2017.
774 If <abbr>DST</abbr> is not used a different time zone 779 If <abbr>DST</abbr> is not used a different time zone
775 can often do the trick; for example, in Kenya a <code>TZ</code> setting 780 can often do the trick; for example, in Kenya a <code>TZ</code> setting
776 like <code>&lt;-03&gt;3</code> or <code>America/Cayenne</code> starts 781 like <code>&lt;-03&gt;3</code> or <code>America/Cayenne</code> starts
777 the day six hours later than <code>Africa/Nairobi</code> does. 782 the day six hours later than <code>Africa/Nairobi</code> does.
778 </li> 783 </li>
779 <li> 784 <li>
780 Early clocks were less reliable, and data entries do not represent 785 Early clocks were less reliable, and data entries do not represent
781 clock error. 786 clock error.
782 </li> 787 </li>
783 <li> 788 <li>
784 The <code><abbr>tz</abbr></code> database assumes Universal Time 789 The <code><abbr>tz</abbr></code> database assumes Universal Time
785 (<abbr>UT</abbr>) as an origin, even though <abbr>UT</abbr> is not 790 (<abbr>UT</abbr>) as an origin, even though <abbr>UT</abbr> is not
786 standardized for older timestamps. 791 standardized for older timestamps.
@@ -857,43 +862,43 @@ different dates. @@ -857,43 +862,43 @@ different dates.
857<p> 862<p>
858The <code><abbr>tz</abbr></code> code contains time and date functions 863The <code><abbr>tz</abbr></code> code contains time and date functions
859that are upwards compatible with those of POSIX. 864that are upwards compatible with those of POSIX.
860Code compatible with this package is already 865Code compatible with this package is already
861<a href="tz-link.html#tzdb">part of many platforms</a>, where the 866<a href="tz-link.html#tzdb">part of many platforms</a>, where the
862primary use of this package is to update obsolete time-related files. 867primary use of this package is to update obsolete time-related files.
863To do this, you may need to compile the time zone compiler 868To do this, you may need to compile the time zone compiler
864'<code>zic</code>' supplied with this package instead of using the 869'<code>zic</code>' supplied with this package instead of using the
865system '<code>zic</code>', since the format of <code>zic</code>'s 870system '<code>zic</code>', since the format of <code>zic</code>'s
866input is occasionally extended, and a platform may still be shipping 871input is occasionally extended, and a platform may still be shipping
867an older <code>zic</code>. 872an older <code>zic</code>.
868</p> 873</p>
869 874
870<h3 id="POSIX">POSIX properties and limitations</h3> 875<h3 id="POSIX">POSIX.1-2017 properties and limitations</h3>
871<ul> 876<ul>
872 <li> 877 <li>
873 <p> 878 <p>
874 In POSIX, time display in a process is controlled by the 879 In POSIX.1-2017, time display in a process is controlled by the
875 environment variable <code>TZ</code>. 880 environment variable <code>TZ</code>.
876 Unfortunately, the POSIX 881 Unfortunately, the POSIX.1-2017
877 <code>TZ</code> string takes a form that is hard to describe and 882 <code>TZ</code> string takes a form that is hard to describe and
878 is error-prone in practice. 883 is error-prone in practice.
879 Also, POSIX <code>TZ</code> strings cannot deal with daylight 884 Also, POSIX.1-2017 <code>TZ</code> strings cannot deal with daylight
880 saving time rules not based on the Gregorian calendar (as in 885 saving time rules not based on the Gregorian calendar (as in
881 Morocco), or with situations where more than two time zone 886 Morocco), or with situations where more than two time zone
882 abbreviations or <abbr>UT</abbr> offsets are used in an area. 887 abbreviations or <abbr>UT</abbr> offsets are used in an area.
883 </p> 888 </p>
884 889
885 <p> 890 <p>
886 The POSIX <code>TZ</code> string takes the following form: 891 The POSIX.1-2017 <code>TZ</code> string takes the following form:
887 </p> 892 </p>
888 893
889 <p> 894 <p>
890 <var>stdoffset</var>[<var>dst</var>[<var>offset</var>][<code>,</code><var>date</var>[<code>/</code><var>time</var>]<code>,</code><var>date</var>[<code>/</code><var>time</var>]]] 895 <var>stdoffset</var>[<var>dst</var>[<var>offset</var>][<code>,</code><var>date</var>[<code>/</code><var>time</var>]<code>,</code><var>date</var>[<code>/</code><var>time</var>]]]
891 </p> 896 </p>
892 897
893 <p> 898 <p>
894 where: 899 where:
895 </p> 900 </p>
896 901
897 <dl> 902 <dl>
898 <dt><var>std</var> and <var>dst</var></dt><dd> 903 <dt><var>std</var> and <var>dst</var></dt><dd>
899 are 3 or more characters specifying the standard 904 are 3 or more characters specifying the standard
@@ -940,38 +945,38 @@ an older zic. @@ -940,38 +945,38 @@ an older zic.
940 month <var>m</var> of the year, where week 1 is the first 945 month <var>m</var> of the year, where week 1 is the first
941 week in which day <var>d</var> appears, and 946 week in which day <var>d</var> appears, and
942 '<code>5</code>' stands for the last week in which 947 '<code>5</code>' stands for the last week in which
943 day <var>d</var> appears (which may be either the 4th or 948 day <var>d</var> appears (which may be either the 4th or
944 5th week). 949 5th week).
945 Typically, this is the only useful form; the <var>n</var> 950 Typically, this is the only useful form; the <var>n</var>
946 and <code>J</code><var>n</var> forms are rarely used. 951 and <code>J</code><var>n</var> forms are rarely used.
947 </dd> 952 </dd>
948 </dl> 953 </dl>
949 </dd> 954 </dd>
950 </dl> 955 </dl>
951 956
952 <p> 957 <p>
953 Here is an example POSIX <code>TZ</code> string for New 958 Here is an example POSIX.1-2017 <code>TZ</code> string for New
954 Zealand after 2007. 959 Zealand after 2007.
955 It says that standard time (<abbr>NZST</abbr>) is 12 hours ahead 960 It says that standard time (<abbr>NZST</abbr>) is 12 hours ahead
956 of <abbr>UT</abbr>, and that daylight saving time 961 of <abbr>UT</abbr>, and that daylight saving time
957 (<abbr>NZDT</abbr>) is observed from September's last Sunday at 962 (<abbr>NZDT</abbr>) is observed from September's last Sunday at
958 02:00 until April's first Sunday at 03:00: 963 02:00 until April's first Sunday at 03:00:
959 </p> 964 </p>
960 965
961 <pre><code>TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'</code></pre> 966 <pre><code>TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'</code></pre>
962 967
963 <p> 968 <p>
964 This POSIX <code>TZ</code> string is hard to remember, and 969 This POSIX.1-2017 <code>TZ</code> string is hard to remember, and
965 mishandles some timestamps before 2008. 970 mishandles some timestamps before 2008.
966 With this package you can use this instead: 971 With this package you can use this instead:
967 </p> 972 </p>
968 973
969 <pre><code>TZ='Pacific/Auckland'</code></pre> 974 <pre><code>TZ='Pacific/Auckland'</code></pre>
970 </li> 975 </li>
971 <li> 976 <li>
972 POSIX does not define the <abbr>DST</abbr> transitions 977 POSIX does not define the <abbr>DST</abbr> transitions
973 for <code>TZ</code> values like 978 for <code>TZ</code> values like
974 "<code>EST5EDT</code>". 979 "<code>EST5EDT</code>".
975 Traditionally the current <abbr>US</abbr> <abbr>DST</abbr> rules 980 Traditionally the current <abbr>US</abbr> <abbr>DST</abbr> rules
976 were used to interpret such values, but this meant that the 981 were used to interpret such values, but this meant that the
977 <abbr>US</abbr> <abbr>DST</abbr> rules were compiled into each 982 <abbr>US</abbr> <abbr>DST</abbr> rules were compiled into each
@@ -989,61 +994,61 @@ an older zic. @@ -989,61 +994,61 @@ an older zic.
989 <li> 994 <li>
990 In POSIX, there is no tamper-proof way for a process to learn the 995 In POSIX, there is no tamper-proof way for a process to learn the
991 system's best idea of local (wall clock) time. 996 system's best idea of local (wall clock) time.
992 This is important for applications that an administrator wants 997 This is important for applications that an administrator wants
993 used only at certain times &ndash; without regard to whether the 998 used only at certain times &ndash; without regard to whether the
994 user has fiddled the 999 user has fiddled the
995 <code>TZ</code> environment variable. 1000 <code>TZ</code> environment variable.
996 While an administrator can "do everything in <abbr>UT</abbr>" to 1001 While an administrator can "do everything in <abbr>UT</abbr>" to
997 get around the problem, doing so is inconvenient and precludes 1002 get around the problem, doing so is inconvenient and precludes
998 handling daylight saving time shifts &ndash; as might be required to 1003 handling daylight saving time shifts &ndash; as might be required to
999 limit phone calls to off-peak hours. 1004 limit phone calls to off-peak hours.
1000 </li> 1005 </li>
1001 <li> 1006 <li>
1002 POSIX provides no convenient and efficient way to determine 1007 POSIX.1-2017 provides no convenient and efficient way to determine
1003 the <abbr>UT</abbr> offset and time zone abbreviation of arbitrary 1008 the <abbr>UT</abbr> offset and time zone abbreviation of arbitrary
1004 timestamps, particularly for timezones 1009 timestamps, particularly for timezones
1005 that do not fit into the POSIX model. 1010 that do not fit into the POSIX model.
1006 </li> 1011 </li>
1007 <li> 1012 <li>
1008 POSIX requires that <code>time_t</code> clock counts exclude leap 1013 POSIX requires that <code>time_t</code> clock counts exclude leap
1009 seconds. 1014 seconds.
1010 </li> 1015 </li>
1011 <li> 1016 <li>
1012 The <code><abbr>tz</abbr></code> code attempts to support all the 1017 The <code><abbr>tz</abbr></code> code attempts to support all the
1013 <code>time_t</code> implementations allowed by POSIX. 1018 <code>time_t</code> implementations allowed by POSIX.
1014 The <code>time_t</code> type represents a nonnegative count of seconds 1019 The <code>time_t</code> type represents a nonnegative count of seconds
1015 since 1970-01-01 00:00:00 <abbr>UTC</abbr>, ignoring leap seconds. 1020 since 1970-01-01 00:00:00 <abbr>UTC</abbr>, ignoring leap seconds.
1016 In practice, <code>time_t</code> is usually a signed 64- or 32-bit 1021 In practice, <code>time_t</code> is usually a signed 64- or 32-bit
1017 integer; 32-bit signed <code>time_t</code> values stop working after 1022 integer; 32-bit signed <code>time_t</code> values stop working after
1018 2038-01-19 03:14:07 <abbr>UTC</abbr>, so new implementations these 1023 2038-01-19 03:14:07 <abbr>UTC</abbr>, so new implementations these
1019 days typically use a signed 64-bit integer. 1024 days typically use a signed 64-bit integer.
1020 Unsigned 32-bit integers are used on one or two platforms, and 36-bit 1025 Unsigned 32-bit integers are used on one or two platforms, and 36-bit
1021 and 40-bit integers are also used occasionally. 1026 and 40-bit integers are also used occasionally.
1022 Although earlier POSIX versions allowed <code>time_t</code> to be a 1027 Although earlier POSIX versions allowed <code>time_t</code> to be a
1023 floating-point type, this was not supported by any practical system, 1028 floating-point type, this was not supported by any practical system,
1024 and POSIX.1-2013 and the <code><abbr>tz</abbr></code> code both 1029 and POSIX.1-2013 and the <code><abbr>tz</abbr></code> code both
1025 require <code>time_t</code> to be an integer type. 1030 require <code>time_t</code> to be an integer type.
1026 </li> 1031 </li>
1027</ul> 1032</ul>
1028 1033
1029<h3 id="POSIX-extensions">Extensions to POSIX in the 1034<h3 id="POSIX-extensions">Extensions to POSIX.1-2017 in the
1030<code><abbr>tz</abbr></code> code</h3> 1035<code><abbr>tz</abbr></code> code</h3>
1031<ul> 1036<ul>
1032 <li> 1037 <li>
1033 <p> 1038 <p>
1034 The <code>TZ</code> environment variable is used in generating 1039 The <code>TZ</code> environment variable is used in generating
1035 the name of a file from which time-related information is read 1040 the name of a file from which time-related information is read
1036 (or is interpreted à la POSIX); <code>TZ</code> is no longer 1041 (or is interpreted à la POSIX.1-2017); <code>TZ</code> is no longer
1037 constrained to be a string containing abbreviations 1042 constrained to be a string containing abbreviations
1038 and numeric data as described <a href="#POSIX">above</a>. 1043 and numeric data as described <a href="#POSIX">above</a>.
1039 The file's format is <dfn><abbr>TZif</abbr></dfn>, 1044 The file's format is <dfn><abbr>TZif</abbr></dfn>,
1040 a timezone information format that contains binary data; see 1045 a timezone information format that contains binary data; see
1041 <a href="https://datatracker.ietf.org/doc/html/8536">Internet 1046 <a href="https://datatracker.ietf.org/doc/html/8536">Internet
1042 <abbr>RFC</abbr> 8536</a>. 1047 <abbr>RFC</abbr> 8536</a>.
1043 The daylight saving time rules to be used for a 1048 The daylight saving time rules to be used for a
1044 particular timezone are encoded in the 1049 particular timezone are encoded in the
1045 <abbr>TZif</abbr> file; the format of the file allows <abbr>US</abbr>, 1050 <abbr>TZif</abbr> file; the format of the file allows <abbr>US</abbr>,
1046 Australian, and other rules to be encoded, and 1051 Australian, and other rules to be encoded, and
1047 allows for situations where more than two time zone 1052 allows for situations where more than two time zone
1048 abbreviations are used. 1053 abbreviations are used.
1049 </p> 1054 </p>

cvs diff -r1.1.1.8 -r1.1.1.8.2.1 src/external/public-domain/tz/dist/zishrink.awk (expand / switch to unified diff)

--- src/external/public-domain/tz/dist/zishrink.awk 2022/08/17 12:17:56 1.1.1.8
+++ src/external/public-domain/tz/dist/zishrink.awk 2024/02/06 12:22:42 1.1.1.8.2.1
@@ -152,27 +152,27 @@ function prehash_rule_names( \ @@ -152,27 +152,27 @@ function prehash_rule_names( \
152 152
153function make_line(n, field, \ 153function make_line(n, field, \
154 f, r) 154 f, r)
155{ 155{
156 r = field[1] 156 r = field[1]
157 for (f = 2; f <= n; f++) 157 for (f = 2; f <= n; f++)
158 r = r " " field[f] 158 r = r " " field[f]
159 return r 159 return r
160} 160}
161 161
162# Process the input line LINE and save it for later output. 162# Process the input line LINE and save it for later output.
163 163
164function process_input_line(line, \ 164function process_input_line(line, \
165 f, field, end, i, n, r, startdef, \ 165 f, field, end, n, outline, r, \
166 linkline, ruleline, zoneline) 166 linkline, ruleline, zoneline)
167{ 167{
168 # Remove comments, normalize spaces, and append a space to each line. 168 # Remove comments, normalize spaces, and append a space to each line.
169 sub(/#.*/, "", line) 169 sub(/#.*/, "", line)
170 line = line " " 170 line = line " "
171 gsub(/[\t ]+/, " ", line) 171 gsub(/[\t ]+/, " ", line)
172 172
173 # Abbreviate keywords and determine line type. 173 # Abbreviate keywords and determine line type.
174 linkline = sub(/^Link /, "L ", line) 174 linkline = sub(/^Link /, "L ", line)
175 ruleline = sub(/^Rule /, "R ", line) 175 ruleline = sub(/^Rule /, "R ", line)
176 zoneline = sub(/^Zone /, "Z ", line) 176 zoneline = sub(/^Zone /, "Z ", line)
177 177
178 # Replace FooAsia rules with the same rules without "Asia", as they 178 # Replace FooAsia rules with the same rules without "Asia", as they
@@ -189,28 +189,30 @@ function process_input_line(line, \ @@ -189,28 +189,30 @@ function process_input_line(line, \
189 line = substr(line, 1, RSTART - 1) substr(line, RSTART + 2) 189 line = substr(line, 1, RSTART - 1) substr(line, RSTART + 2)
190 190
191 # Abbreviate weekday names. 191 # Abbreviate weekday names.
192 while (match(line, / (last)?(Mon|Wed|Fri)[ <>]/)) { 192 while (match(line, / (last)?(Mon|Wed|Fri)[ <>]/)) {
193 end = RSTART + RLENGTH 193 end = RSTART + RLENGTH
194 line = substr(line, 1, end - 4) substr(line, end - 1) 194 line = substr(line, 1, end - 4) substr(line, end - 1)
195 } 195 }
196 while (match(line, / (last)?(Sun|Tue|Thu|Sat)[ <>]/)) { 196 while (match(line, / (last)?(Sun|Tue|Thu|Sat)[ <>]/)) {
197 end = RSTART + RLENGTH 197 end = RSTART + RLENGTH
198 line = substr(line, 1, end - 3) substr(line, end - 1) 198 line = substr(line, 1, end - 3) substr(line, end - 1)
199 } 199 }
200 200
201 # Abbreviate "max", "min", "only" and month names. 201 # Abbreviate "max", "min", "only" and month names.
202 gsub(/ max /, " ma ", line) 202 # Although "max" and "min" can both be abbreviated to just "m",
203 gsub(/ min /, " mi ", line) 203 # the longer forms "ma" and "mi" are needed with zic 2023d and earlier.
 204 gsub(/ max /, dataform == "vanguard" ? " m " : " ma ", line)
 205 gsub(/ min /, dataform == "vanguard" ? " m " : " mi ", line)
204 gsub(/ only /, " o ", line) 206 gsub(/ only /, " o ", line)
205 gsub(/ Jan /, " Ja ", line) 207 gsub(/ Jan /, " Ja ", line)
206 gsub(/ Feb /, " F ", line) 208 gsub(/ Feb /, " F ", line)
207 gsub(/ Apr /, " Ap ", line) 209 gsub(/ Apr /, " Ap ", line)
208 gsub(/ Aug /, " Au ", line) 210 gsub(/ Aug /, " Au ", line)
209 gsub(/ Sep /, " S ", line) 211 gsub(/ Sep /, " S ", line)
210 gsub(/ Oct /, " O ", line) 212 gsub(/ Oct /, " O ", line)
211 gsub(/ Nov /, " N ", line) 213 gsub(/ Nov /, " N ", line)
212 gsub(/ Dec /, " D ", line) 214 gsub(/ Dec /, " D ", line)
213 215
214 # Strip leading and trailing space. 216 # Strip leading and trailing space.
215 sub(/^ /, "", line) 217 sub(/^ /, "", line)
216 sub(/ $/, "", line) 218 sub(/ $/, "", line)
@@ -224,86 +226,116 @@ function process_input_line(line, \ @@ -224,86 +226,116 @@ function process_input_line(line, \
224 226
225 # Remove unnecessary trailing " Ja" (for January). 227 # Remove unnecessary trailing " Ja" (for January).
226 sub(/ Ja$/, "", line) 228 sub(/ Ja$/, "", line)
227 229
228 n = split(line, field) 230 n = split(line, field)
229 231
230 # Record which rule names are used, and generate their abbreviations. 232 # Record which rule names are used, and generate their abbreviations.
231 f = zoneline ? 4 : linkline || ruleline ? 0 : 2 233 f = zoneline ? 4 : linkline || ruleline ? 0 : 2
232 r = field[f] 234 r = field[f]
233 if (r ~ /^[^-+0-9]/) { 235 if (r ~ /^[^-+0-9]/) {
234 rule_used[r] = 1 236 rule_used[r] = 1
235 } 237 }
236 238
237 # If this zone supersedes an earlier one, delete the earlier one 
238 # from the saved output lines. 
239 startdef = "" 
240 if (zoneline) 239 if (zoneline)
241 zonename = startdef = field[2] 240 zonename = startdef = field[2]
242 else if (linkline) 241 else if (linkline)
243 zonename = startdef = field[3] 242 zonename = startdef = field[3]
244 else if (ruleline) 243 else if (ruleline)
245 zonename = "" 244 zonename = ""
246 if (startdef) { 
247 i = zonedef[startdef] 
248 if (i) { 
249 do 
250 output_line[i - 1] = "" 
251 while (output_line[i++] ~ /^[-+0-9]/); 
252 } 
253 } 
254 zonedef[zonename] = nout + 1 
255 245
256 # Save the line for later output. 246 # Save the information for later output.
257 output_line[nout++] = make_line(n, field) 247 outline = make_line(n, field)
 248 if (ruleline)
 249 rule_output_line[nrule_out++] = outline
 250 else if (linkline) {
 251 # In vanguard format with Gawk, links are output sorted by destination.
 252 if (dataform == "vanguard" && PROCINFO["version"])
 253 linkdef[zonename] = field[2]
 254 else
 255 link_output_line[nlink_out++] = outline
 256 }else
 257 zonedef[zonename] = (zoneline ? "" : zonedef[zonename] "\n") outline
258} 258}
259 259
260function omit_unused_rules( \ 260function omit_unused_rules( \
261 i, field) 261 i, field)
262{ 262{
263 for (i = 0; i < nout; i++) { 263 for (i = 0; i < nrule_out; i++) {
264 split(output_line[i], field) 264 split(rule_output_line[i], field)
265 if (field[1] == "R" && !rule_used[field[2]]) { 265 if (!rule_used[field[2]])
266 output_line[i] = "" 266 rule_output_line[i] = ""
267 } 
268 } 267 }
269} 268}
270 269
271function abbreviate_rule_names( \ 270function abbreviate_rule_names( \
272 abbr, f, field, i, n, r) 271 abbr, f, field, i, n, newdef, newline, r, \
 272 zoneline, zonelines, zonename)
273{ 273{
274 for (i = 0; i < nout; i++) { 274 for (i = 0; i < nrule_out; i++) {
275 n = split(output_line[i], field) 275 n = split(rule_output_line[i], field)
276 if (n) { 276 if (n) {
277 f = field[1] == "Z" ? 4 : field[1] == "L" ? 0 : 2 277 r = field[2]
278 r = field[f] 
279 if (r ~ /^[^-+0-9]/) { 278 if (r ~ /^[^-+0-9]/) {
280 abbr = rule[r] 279 abbr = rule[r]
281 if (!abbr) { 280 if (!abbr) {
282 rule[r] = abbr = gen_rule_name(r) 281 rule[r] = abbr = gen_rule_name(r)
283 } 282 }
284 field[f] = abbr 283 field[2] = abbr
285 output_line[i] = make_line(n, field) 284 rule_output_line[i] = make_line(n, field)
286 } 285 }
287 } 286 }
288 } 287 }
 288 for (zonename in zonedef) {
 289 zonelines = split(zonedef[zonename], zoneline, /\n/)
 290 newdef = ""
 291 for (i = 1; i <= zonelines; i++) {
 292 newline = zoneline[i]
 293 n = split(newline, field)
 294 f = i == 1 ? 4 : 2
 295 r = rule[field[f]]
 296 if (r) {
 297 field[f] = r
 298 newline = make_line(n, field)
 299 }
 300 newdef = (newdef ? newdef "\n" : "") newline
 301 }
 302 zonedef[zonename] = newdef
 303 }
289} 304}
290 305
291function output_saved_lines( \ 306function output_saved_lines( \
292 i) 307 i, zonename)
293{ 308{
294 for (i = 0; i < nout; i++) 309 for (i = 0; i < nrule_out; i++)
295 if (output_line[i]) 310 if (rule_output_line[i])
296 print output_line[i] 311 print rule_output_line[i]
 312
 313 # When using gawk, output zones sorted by name.
 314 # This makes the output a bit more compressible.
 315 PROCINFO["sorted_in"] = "@ind_str_asc"
 316 for (zonename in zonedef)
 317 print zonedef[zonename]
 318
 319 if (nlink_out)
 320 for (i = 0; i < nlink_out; i++)
 321 print link_output_line[i]
 322 else {
 323 # When using gawk, output links sorted by destination.
 324 # This also helps compressibility a bit.
 325 PROCINFO["sorted_in"] = "@val_type_asc"
 326 for (zonename in linkdef)
 327 printf "L %s %s\n", linkdef[zonename], zonename
 328 }
297} 329}
298 330
299BEGIN { 331BEGIN {
300 # Files that the output normally depends on. 332 # Files that the output normally depends on.
301 default_dep["africa"] = 1 333 default_dep["africa"] = 1
302 default_dep["antarctica"] = 1 334 default_dep["antarctica"] = 1
303 default_dep["asia"] = 1 335 default_dep["asia"] = 1
304 default_dep["australasia"] = 1 336 default_dep["australasia"] = 1
305 default_dep["backward"] = 1 337 default_dep["backward"] = 1
306 default_dep["etcetera"] = 1 338 default_dep["etcetera"] = 1
307 default_dep["europe"] = 1 339 default_dep["europe"] = 1
308 default_dep["factory"] = 1 340 default_dep["factory"] = 1
309 default_dep["northamerica"] = 1 341 default_dep["northamerica"] = 1