mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-30 12:25:10 +01:00
Compare commits
56
Commits
stable/12
...
releng/12.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5ad6b488d | ||
|
|
f0327f9d86 | ||
|
|
1f71f08e3b | ||
|
|
7769487a50 | ||
|
|
69dcabf10d | ||
|
|
5e0387e2ec | ||
|
|
e648a628a6 | ||
|
|
9b3e17e15f | ||
|
|
b1b39c2f2f | ||
|
|
bb2ccf50d7 | ||
|
|
0eb6c27362 | ||
|
|
193b7e3d0a | ||
|
|
927b6e752c | ||
|
|
e020f96028 | ||
|
|
0692341b26 | ||
|
|
595be1fc57 | ||
|
|
2f6b510ea2 | ||
|
|
4286578bb1 | ||
|
|
abe05d13d5 | ||
|
|
27340c75ee | ||
|
|
e374f1ec93 | ||
|
|
0453667c49 | ||
|
|
c7b05da297 | ||
|
|
548ece23b5 | ||
|
|
149768b65d | ||
|
|
c644460799 | ||
|
|
e87e8c20e6 | ||
|
|
52442e904d | ||
|
|
256e920613 | ||
|
|
36a39f0cc6 | ||
|
|
ab78a51c8d | ||
|
|
f2877ac4fb | ||
|
|
4e1a2eb30b | ||
|
|
4ff214b2f2 | ||
|
|
1d66ec7d51 | ||
|
|
84c657e5e1 | ||
|
|
1d5a25432b | ||
|
|
7b05f19e97 | ||
|
|
87ce501fcd | ||
|
|
a2c8e84554 | ||
|
|
86bdbdece4 | ||
|
|
495850ff5a | ||
|
|
369e3367d6 | ||
|
|
a9c3d5de9a | ||
|
|
3cef626d8e | ||
|
|
73ab1c87c2 | ||
|
|
df5c24d590 | ||
|
|
0f58c5454c | ||
|
|
aff7cd295f | ||
|
|
a1017358b3 | ||
|
|
990aa6476e | ||
|
|
1ccfac2381 | ||
|
|
50cb877af1 | ||
|
|
28f11883e8 | ||
|
|
6df8e6aef5 | ||
|
|
fce871fe35 |
No files matched your search
@@ -1,4 +1,4 @@
|
||||
Updating Information for FreeBSD stable/12 users.
|
||||
Updating Information for FreeBSD releng/12.4 users.
|
||||
|
||||
This file is maintained and copyrighted by M. Warner Losh <[email protected]>.
|
||||
See end of file for further details. For commonly done items, please see the
|
||||
@@ -17,6 +17,109 @@ from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to
|
||||
the tip of head, and then rebuild without this option. The bootstrap process
|
||||
from older version of current across the gcc/clang cutover is a bit fragile.
|
||||
|
||||
20231205:
|
||||
12.4-RELEASE-p9 FreeBSD-SA-23:17.pf
|
||||
|
||||
TCP spoofing vulnerability in pf(4) [SA-23:17.pf]
|
||||
|
||||
20231130:
|
||||
12.4-RELEASE-p8 EN-23:16.openzfs
|
||||
|
||||
OpenZFS data corruption [EN-23:16.openzfs]
|
||||
|
||||
20231108:
|
||||
12.4-RELEASE-p7 EN-23:13.freebsd-update
|
||||
EN-23:14.regcomp
|
||||
SA-23:15.stdio
|
||||
|
||||
freebsd-update does not handle deep boot environments [EN-23:13.freebsd-update]
|
||||
|
||||
Incorrect regular expression escape handling [EN-23:14.regcomp]
|
||||
|
||||
libc stdio buffer overflow [SA-23:15.stdio]
|
||||
|
||||
20231003:
|
||||
12.4-RELEASE-p6 FreeBSD-EN-23:09.freebsd-update
|
||||
FreeBSD-EN-23:12.freebsd-update
|
||||
FreeBSD-SA-23:12.msdosfs
|
||||
|
||||
freebsd-update incorrectly merges files on upgrade [EN-23:09.freebsd-update]
|
||||
|
||||
freebsd-update to 14.0 fails [EN-23:12.freebsd-update]
|
||||
|
||||
Fix msdosfs data disclosure [SA-23:12.msdosfs]
|
||||
|
||||
20230906:
|
||||
12.4-RELEASE-p5 FreeBSD-SA-23:10.pf
|
||||
FreeBSD-SA-23:11.wifi
|
||||
|
||||
pf incorrectly handles multiple IPv6 fragment headers [SA-23:10.pf]
|
||||
|
||||
Wi-Fi encryption bypass [SA-23:11.wifi]
|
||||
|
||||
20230801:
|
||||
12.4-RELEASE-p4 FreeBSD-SA-23:06.ipv6
|
||||
FreeBSD-SA-23:08.ssh
|
||||
FreeBSD-SA-23:09.pam_krb5
|
||||
|
||||
Remote denial of service in IPv6 fragment reassembly [SA-23:06.ipv6]
|
||||
|
||||
Potential remote code execution via ssh-agent forwarding [SA-23:08.ssh]
|
||||
|
||||
Network authentication attack via pam_krb5 [SA-23:09.pam_krb5]
|
||||
|
||||
20230621:
|
||||
12.4-RELEASE-p3 FreeBSD-EN-23:05.tzdata
|
||||
FreeBSD-EN-23:07.mpr
|
||||
FreeBSD-SA-23:04.pam_krb5
|
||||
FreeBSD-SA-23:05.openssh
|
||||
|
||||
Timezone database information update [EN-23:05.tzdata]
|
||||
|
||||
Fix mpr(4) failure to initialize devices [EN-23:07.mpr]
|
||||
|
||||
Fix network authentication attack via pam_krb5 [SA-23:04.pam_krb5]
|
||||
|
||||
Fix ssh-add not honoring per-hop destination constraints [SA-23:05.openssh]
|
||||
|
||||
20230216:
|
||||
12.4-RELEASE-p2 FreeBSD-SA-23:02.openssh
|
||||
FreeBSD-SA-23:03.openssl
|
||||
|
||||
OpenSSH pre-authentication double free [SA-23:02.openssh]
|
||||
|
||||
Fix multiple OpenSSL vulnerabilities [SA-23:03.openssl]
|
||||
|
||||
20230208:
|
||||
12.4-RELEASE-p1 FreeBSD-SA-23:01.geli
|
||||
FreeBSD-EN-23:01.tzdata
|
||||
FreeBSD-EN-23:04.ixgbe
|
||||
|
||||
Fix GELI silently omits the keyfile if read from stdin [SA-23:01.geli]
|
||||
|
||||
Timezone database information update [EN-23:01.tzdata]
|
||||
|
||||
Fix ixgbe incorrectly reporting input errors for 82599ES [EN-23:04.ixgbe]
|
||||
|
||||
20221205:
|
||||
12.4-RELEASE.
|
||||
|
||||
20221129:
|
||||
12.4-RC2-p2 FreeBSD-SA-22:15.ping
|
||||
FreeBSD-EN-22:28.heimdal
|
||||
|
||||
Stack overflow in ping [SA-22:15.ping]
|
||||
|
||||
Regression in Heimdal KDC [EN-22:28.heimdal]
|
||||
|
||||
20221116:
|
||||
12.4-RC2-p1 FreeBSD-SA-22:14.heimdal
|
||||
|
||||
Multiple vulnerabilities in Heimdal [SA-22:14.heimdal]
|
||||
|
||||
20221020:
|
||||
releng/12.4 branched from stable/12.
|
||||
|
||||
20220222:
|
||||
Kernel-loadable random(4) modules are supported again, but are no
|
||||
longer unloadable.
|
||||
|
||||
@@ -12,3 +12,23 @@
|
||||
# msgs -q
|
||||
# Allow terminal messages
|
||||
# mesg y
|
||||
|
||||
# Load each .sh file in /etc/profile.d/, then /usr/local/etc/profile,
|
||||
# then each .sh file in /usr/local/etc/profile.d/.
|
||||
_loaded=${_loaded:-/etc/profile}
|
||||
export _loaded
|
||||
for _dir in /etc /usr/local/etc ; do
|
||||
for _file in "${_dir}"/profile "${_dir}"/profile.d/*.sh ; do
|
||||
if [ -f "${_file}" ] ; then
|
||||
case :${_loaded}: in
|
||||
*:"${_file}":*)
|
||||
;;
|
||||
*)
|
||||
_loaded="${_loaded:+${_loaded}:}${_file}"
|
||||
. "${_file}"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
done
|
||||
unset _loaded _dir _file
|
||||
@@ -1,5 +1,5 @@
|
||||
.\" $File: file.man,v 1.144 2021/02/05 22:08:31 christos Exp $
|
||||
.Dd February 5, 2021
|
||||
.\" $File: file.man,v 1.146 2022/10/26 16:56:14 christos Exp $
|
||||
.Dd October 26, 2022
|
||||
.Dt FILE __CSECTION__
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
||||
+22
-14
@@ -512,11 +512,8 @@ unwrap(struct magic_set *ms, const char *fn)
|
||||
size_t llen = 0;
|
||||
int wid = 0, cwid;
|
||||
int e = 0;
|
||||
size_t fi = 0, fimax = 100;
|
||||
char **flist = CAST(char **, malloc(sizeof(*flist) * fimax));
|
||||
|
||||
if (flist == NULL)
|
||||
out: file_err(EXIT_FAILURE, "Cannot allocate memory for file list");
|
||||
size_t fi = 0, fimax = 0;
|
||||
char **flist = NULL;
|
||||
|
||||
if (strcmp("-", fn) == 0)
|
||||
f = stdin;
|
||||
@@ -530,26 +527,37 @@ out: file_err(EXIT_FAILURE, "Cannot allocate memory for file list");
|
||||
while ((len = getline(&line, &llen, f)) > 0) {
|
||||
if (line[len - 1] == '\n')
|
||||
line[len - 1] = '\0';
|
||||
cwid = file_mbswidth(ms, line);
|
||||
if (nobuffer) {
|
||||
e |= process(ms, line, cwid);
|
||||
free(line);
|
||||
line = NULL;
|
||||
llen = 0;
|
||||
continue;
|
||||
}
|
||||
if (cwid > wid)
|
||||
wid = cwid;
|
||||
if (fi >= fimax) {
|
||||
fimax += 100;
|
||||
char **nf = CAST(char **,
|
||||
realloc(flist, fimax * sizeof(*flist)));
|
||||
if (nf == NULL)
|
||||
goto out;
|
||||
if (nf == NULL) {
|
||||
file_err(EXIT_FAILURE,
|
||||
"Cannot allocate memory for file list");
|
||||
}
|
||||
flist = nf;
|
||||
}
|
||||
flist[fi++] = line;
|
||||
cwid = file_mbswidth(ms, line);
|
||||
if (cwid > wid)
|
||||
wid = cwid;
|
||||
line = NULL;
|
||||
llen = 0;
|
||||
}
|
||||
|
||||
fimax = fi;
|
||||
for (fi = 0; fi < fimax; fi++) {
|
||||
e |= process(ms, flist[fi], wid);
|
||||
free(flist[fi]);
|
||||
if (!nobuffer) {
|
||||
fimax = fi;
|
||||
for (fi = 0; fi < fimax; fi++) {
|
||||
e |= process(ms, flist[fi], wid);
|
||||
free(flist[fi]);
|
||||
}
|
||||
}
|
||||
free(flist);
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ OPT('e', "exclude", 1, 0,
|
||||
" performed for file. Valid tests are:\n"
|
||||
" %e\n")
|
||||
OPT_LONGONLY("exclude-quiet", 1, 0,
|
||||
" TEST like exclude, but ignore unknown tests\n", OPT_EXCLUDE_QUIET)
|
||||
" TEST like exclude, but ignore unknown tests\n", OPT_EXCLUDE_QUIET)
|
||||
OPT('f', "files-from", 1, 0,
|
||||
" FILE read the filenames to be examined from FILE\n")
|
||||
OPT('F', "separator", 1, 0,
|
||||
|
||||
@@ -230,7 +230,7 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
|
||||
struct addrinfo *res, *t;
|
||||
struct addrinfo hints = {
|
||||
.ai_flags = AI_PASSIVE,
|
||||
.ai_family = AF_INET,
|
||||
.ai_family = AF_UNSPEC,
|
||||
.ai_socktype = SOCK_STREAM
|
||||
};
|
||||
char *service;
|
||||
|
||||
@@ -238,7 +238,7 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
|
||||
struct addrinfo *res, *t;
|
||||
struct addrinfo hints = {
|
||||
.ai_flags = AI_PASSIVE,
|
||||
.ai_family = AF_INET,
|
||||
.ai_family = AF_UNSPEC,
|
||||
.ai_socktype = SOCK_STREAM
|
||||
};
|
||||
char *service;
|
||||
|
||||
@@ -204,7 +204,7 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
|
||||
struct addrinfo *res, *t;
|
||||
struct addrinfo hints = {
|
||||
.ai_flags = AI_PASSIVE,
|
||||
.ai_family = AF_INET,
|
||||
.ai_family = AF_UNSPEC,
|
||||
.ai_socktype = SOCK_STREAM
|
||||
};
|
||||
char *service;
|
||||
|
||||
@@ -202,7 +202,7 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
|
||||
struct addrinfo *res, *t;
|
||||
struct addrinfo hints = {
|
||||
.ai_flags = AI_PASSIVE,
|
||||
.ai_family = AF_INET,
|
||||
.ai_family = AF_UNSPEC,
|
||||
.ai_socktype = SOCK_STREAM
|
||||
};
|
||||
char *service;
|
||||
|
||||
@@ -596,7 +596,7 @@ static int pp_server_connect(int port)
|
||||
int sockfd = -1, connfd;
|
||||
struct addrinfo hints = {
|
||||
.ai_flags = AI_PASSIVE,
|
||||
.ai_family = AF_INET,
|
||||
.ai_family = AF_UNSPEC,
|
||||
.ai_socktype = SOCK_STREAM
|
||||
};
|
||||
|
||||
|
||||
@@ -4597,7 +4597,7 @@ au_read_rec(FILE *fp, u_char **buf)
|
||||
|
||||
if (fread(bptr, 1, ntohs(filenamelen), fp) <
|
||||
ntohs(filenamelen)) {
|
||||
free(buf);
|
||||
free(*buf);
|
||||
errno = EINVAL;
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@@ -706,7 +706,7 @@ extern bool filesys_free __P((long));
|
||||
# define SASL_IS_AUTH 2 /* authenticated */
|
||||
|
||||
/* SASL options */
|
||||
# define SASL_AUTH_AUTH 0x1000 /* use auth= only if authenticated */
|
||||
# define SASL_AUTH_AUTH 0x10000 /* use auth= only if authenticated */
|
||||
# if SASL >= 20101
|
||||
# define SASL_SEC_MASK SASL_SEC_MAXIMUM /* mask for SASL_SEC_* values: sasl.h */
|
||||
# else /* SASL >= 20101 */
|
||||
@@ -721,6 +721,9 @@ ERROR: change SASL_SEC_MASK_ notify sendmail.org!
|
||||
# endif /* SASL_SEC_NOPLAINTEXT & SASL_SEC_MASK) == 0 ... */
|
||||
# endif /* SASL >= 20101 */
|
||||
# define MAXOUTLEN 8192 /* length of output buffer, should be 2^n */
|
||||
# if (SASL_AUTH_AUTH & SASL_SEC_MASK) != 0
|
||||
# ERROR "change SASL_AUTH_AUTH notify sendmail.org!"
|
||||
# endif
|
||||
|
||||
/* functions */
|
||||
extern char *intersect __P((char *, char *, SM_RPOOL_T *));
|
||||
|
||||
@@ -18,7 +18,7 @@ To email small changes, please run a POSIX shell command like
|
||||
'diff -u old/europe new/europe >myfix.patch', and attach
|
||||
'myfix.patch' to the email.
|
||||
|
||||
For more-elaborate or possibly-controversial changes,
|
||||
For more-elaborate or possibly controversial changes,
|
||||
such as renaming, adding or removing zones, please read
|
||||
"Theory and pragmatics of the tz code and data"
|
||||
<https://www.iana.org/time-zones/repository/theory.html>.
|
||||
|
||||
+76
-52
@@ -35,22 +35,14 @@ DATAFORM= main
|
||||
|
||||
LOCALTIME= Factory
|
||||
|
||||
# The POSIXRULES macro controls interpretation of nonstandard and obsolete
|
||||
# POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules.
|
||||
# Such a setting uses the rules in a template file to determine
|
||||
# "spring forward" and "fall back" days and times; the environment
|
||||
# variable itself specifies UT offsets of standard and daylight saving time.
|
||||
#
|
||||
# The POSIXRULES macro controls interpretation of POSIX-like TZ
|
||||
# settings like TZ='EET-2EEST' that lack DST transition rules.
|
||||
# If POSIXRULES is '-', no template is installed; this is the default.
|
||||
#
|
||||
# Any other value for POSIXRULES is obsolete and should not be relied on, as:
|
||||
# * It does not work correctly in popular implementations such as GNU/Linux.
|
||||
# * It does not work even in tzcode, except for historical timestamps
|
||||
# that precede the last explicit transition in the POSIXRULES file.
|
||||
# Hence it typically does not work for current and future timestamps.
|
||||
# In short, software should avoid ruleless settings like TZ='EET-2EEST'
|
||||
# and so should not depend on the value of POSIXRULES.
|
||||
#
|
||||
# If, despite the above, you want a template for handling these settings,
|
||||
# you can change the line below (after finding the timezone you want in the
|
||||
# one of the $(TDATA) source files, or adding it to a source file).
|
||||
@@ -63,7 +55,7 @@ LOCALTIME= Factory
|
||||
POSIXRULES= -
|
||||
|
||||
# Also see TZDEFRULESTRING below, which takes effect only
|
||||
# if the time zone files cannot be accessed.
|
||||
# if POSIXRULES is '-' or if the template file cannot be accessed.
|
||||
|
||||
|
||||
# Installation locations.
|
||||
@@ -196,6 +188,7 @@ PACKRATLIST=
|
||||
UTF8_LOCALE= en_US.utf8
|
||||
|
||||
# Non-default libraries needed to link.
|
||||
# On some hosts, this should have -lintl unless CFLAGS has -DHAVE_GETTEXT=0.
|
||||
LDLIBS=
|
||||
|
||||
# Add the following to the end of the "CFLAGS=" line as needed to override
|
||||
@@ -208,13 +201,18 @@ LDLIBS=
|
||||
# For example, N is 252460800 on AmigaOS.
|
||||
# -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
|
||||
# -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ'
|
||||
# -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm
|
||||
# -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
|
||||
# -DHAVE_GENERIC=0 if _Generic does not work
|
||||
# -DHAVE_GETTEXT if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris)
|
||||
# -DHAVE__GENERIC=0 if _Generic does not work*
|
||||
# -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux),
|
||||
# -DHAVE_GETRANDOM=0 to avoid using getrandom
|
||||
# -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris),
|
||||
# where LDLIBS also needs to contain -lintl on some hosts;
|
||||
# -DHAVE_GETTEXT=0 to avoid using gettext
|
||||
# -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
|
||||
# ctime_r and asctime_r incompatibly with the POSIX standard
|
||||
# (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
|
||||
# -DHAVE_INTTYPES_H if you have a non-C99 compiler with <inttypes.h>
|
||||
# -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work*+
|
||||
# -DHAVE_LINK=0 if your system lacks a link function
|
||||
# -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
|
||||
# -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz
|
||||
@@ -222,20 +220,25 @@ LDLIBS=
|
||||
# -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure.
|
||||
# -DHAVE_POSIX_DECLS=0 if your system's include files do not declare
|
||||
# functions like 'link' or variables like 'tzname' required by POSIX
|
||||
# -DHAVE_SNPRINTF=0 if your system lacks the snprintf function
|
||||
# -DHAVE_STDBOOL_H if you have a non-C99 compiler with <stdbool.h>
|
||||
# -DHAVE_STDINT_H if you have a non-C99 compiler with <stdint.h>
|
||||
# -DHAVE_SETENV=0 if your system lacks the setenv function
|
||||
# -DHAVE_SNPRINTF=0 if your system lacks the snprintf function+
|
||||
# -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like
|
||||
# __builtin_add_overflow work*
|
||||
# -DHAVE_STDINT_H=0 if <stdint.h> does not work*+
|
||||
# -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
|
||||
# -DHAVE_STRDUP=0 if your system lacks the strdup function
|
||||
# -DHAVE_STRTOLL=0 if your system lacks the strtoll function
|
||||
# -DHAVE_STRTOLL=0 if your system lacks the strtoll function+
|
||||
# -DHAVE_SYMLINK=0 if your system lacks the symlink function
|
||||
# -DHAVE_SYS_STAT_H=0 if your compiler lacks a <sys/stat.h>
|
||||
# -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work*
|
||||
# -DHAVE_TZSET=0 if your system lacks a tzset function
|
||||
# -DHAVE_UNISTD_H=0 if your compiler lacks a <unistd.h>
|
||||
# -DHAVE_UNISTD_H=0 if <unistd.h> does not work*
|
||||
# -DHAVE_UTMPX_H=0 if <utmpx.h> does not work*
|
||||
# -Dlocale_t=XXX if your system uses XXX instead of locale_t
|
||||
# -DPORT_TO_C89 if tzcode should also run on C89 platforms+
|
||||
# -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
|
||||
# with external linkage, e.g., applications cannot define 'localtime'.
|
||||
# -Dssize_t=long on hosts like MS-Windows that lack ssize_t
|
||||
# -DSUPPORT_C89 if the tzcode library should support C89 callers+
|
||||
# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
|
||||
# security implications and is not recommended for general use
|
||||
# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
|
||||
@@ -247,21 +250,32 @@ LDLIBS=
|
||||
# -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
|
||||
# the default is system-supplied, typically "/usr/lib/locale"
|
||||
# -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
|
||||
# DST transitions if the time zone files cannot be accessed
|
||||
# DST transitions for POSIX-style TZ strings lacking them,
|
||||
# in the usual case where POSIXRULES is '-'. If not specified,
|
||||
# TZDEFRULESTRING defaults to US rules for future DST transitions.
|
||||
# This mishandles some past timestamps, as US DST rules have changed.
|
||||
# It also mishandles settings like TZ='EET-2EEST' for eastern Europe,
|
||||
# as Europe and US DST rules differ.
|
||||
# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255)
|
||||
# -DUNINIT_TRAP if reading uninitialized storage can cause problems
|
||||
# other than simply getting garbage data
|
||||
# -DUSE_LTZ=0 to build zdump with the system time zone library
|
||||
# Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below.
|
||||
# -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and
|
||||
# similarly for "slim". Fat TZif files work around incompatibilities
|
||||
# and bugs in some TZif readers, notably readers that mishandle 64-bit
|
||||
# data in TZif files. Slim TZif files are more efficient and do not
|
||||
# work around these incompatibilities and bugs. If not given, the
|
||||
# default is "slim".
|
||||
# and bugs in some TZif readers, notably older ones that
|
||||
# ignore or otherwise mishandle 64-bit data in TZif files;
|
||||
# however, fat TZif files may trigger bugs in newer TZif readers.
|
||||
# Slim TZif files are more efficient, and are the default.
|
||||
# -DZIC_MAX_ABBR_LEN_WO_WARN=3
|
||||
# (or some other number) to set the maximum time zone abbreviation length
|
||||
# that zic will accept without a warning (the default is 6)
|
||||
# $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking
|
||||
#
|
||||
# * Options marked "*" can be omitted if your compiler is C23 compatible.
|
||||
# * Options marked "+" are obsolescent and are planned to be removed
|
||||
# once the code assumes C99 or later.
|
||||
#
|
||||
# Select instrumentation via "make GCC_INSTRUMENT='whatever'".
|
||||
GCC_INSTRUMENT = \
|
||||
-fsanitize=undefined -fsanitize-address-use-after-scope \
|
||||
@@ -275,7 +289,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
|
||||
-Wdeclaration-after-statement -Wdouble-promotion \
|
||||
-Wduplicated-branches -Wduplicated-cond \
|
||||
-Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
|
||||
-Winit-self -Wlogical-op \
|
||||
-Wimplicit-fallthrough=5 -Winit-self -Wlogical-op \
|
||||
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
|
||||
-Wnull-dereference \
|
||||
-Wold-style-definition -Woverlength-strings -Wpointer-arith \
|
||||
@@ -288,7 +302,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
|
||||
-Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \
|
||||
-Wvariadic-macros -Wvla -Wwrite-strings \
|
||||
-Wno-address -Wno-format-nonliteral -Wno-sign-compare \
|
||||
-Wno-type-limits -Wno-unused-parameter
|
||||
-Wno-type-limits
|
||||
#
|
||||
# If your system has a "GMT offset" field in its "struct tm"s
|
||||
# (or if you decide to add such a field in your system's "time.h" file),
|
||||
@@ -335,14 +349,11 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
|
||||
# If you want functions that were inspired by early versions of X3J11's work,
|
||||
# add
|
||||
# -DSTD_INSPIRED
|
||||
# to the end of the "CFLAGS=" line. This arranges for the functions
|
||||
# "offtime", "timelocal", "timegm", "timeoff",
|
||||
# "posix2time", and "time2posix" to be added to the time conversion library.
|
||||
# to the end of the "CFLAGS=" line. This arranges for the following
|
||||
# functions to be added to the time conversion library.
|
||||
# "offtime" is like "gmtime" except that it accepts a second (long) argument
|
||||
# that gives an offset to add to the time_t when converting it.
|
||||
# "timelocal" is equivalent to "mktime".
|
||||
# "timegm" is like "timelocal" except that it turns a struct tm into
|
||||
# a time_t using UT (rather than local time as "timelocal" does).
|
||||
# "timeoff" is like "timegm" except that it accepts a second (long) argument
|
||||
# that gives an offset to use when converting to a time_t.
|
||||
# "posix2time" and "time2posix" are described in an included manual page.
|
||||
@@ -354,7 +365,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
|
||||
# -DNETBSD_INSPIRED=0
|
||||
# to the end of the "CFLAGS=" line. Otherwise, the functions
|
||||
# "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the
|
||||
# time library, and if STD_INSPIRED is also defined the functions
|
||||
# time library, and if STD_INSPIRED is also defined to nonzero the functions
|
||||
# "posix2time_z" and "time2posix_z" are added as well.
|
||||
# The functions ending in "_z" (or "_rz") are like their unsuffixed
|
||||
# (or suffixed-by-"_r") counterparts, except with an extra first
|
||||
@@ -397,8 +408,9 @@ ZIC= $(zic) $(ZFLAGS)
|
||||
|
||||
# To shrink the size of installed TZif files,
|
||||
# append "-r @N" to omit data before N-seconds-after-the-Epoch.
|
||||
# To grow the files and work around older application bugs, append "-b fat";
|
||||
# see ZIC_BLOAT_DEFAULT above.
|
||||
# To grow the files and work around bugs in older applications,
|
||||
# possibly at the expense of introducing bugs in newer ones,
|
||||
# append "-b fat"; see ZIC_BLOAT_DEFAULT above.
|
||||
# See the zic man page for more about -b and -r.
|
||||
ZFLAGS=
|
||||
|
||||
@@ -445,16 +457,13 @@ SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
|
||||
SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
|
||||
SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]'
|
||||
|
||||
# These characters are Latin-1, and so are likely to be displayable
|
||||
# even in editors with limited character sets.
|
||||
UNUSUAL_OK_LATIN_1 = «°±»½¾×
|
||||
# This IPA symbol is represented in Unicode as the composition of
|
||||
# U+0075 and U+032F, and U+032F is not considered alphabetic by some
|
||||
# grep implementations that do not grok composition.
|
||||
UNUSUAL_OK_IPA = u̯
|
||||
# These non-alphabetic, non-ASCII printable characters are Latin-1,
|
||||
# and so are likely displayable even in editors like XEmacs 21
|
||||
# that have limited display capabilities.
|
||||
UNUSUAL_OK_LATIN_1 = ¡¢£¤¥¦§¨©«¬®¯°±²³´¶·¸¹»¼½¾¿×÷
|
||||
# Non-ASCII non-letters that OK_CHAR allows, as these characters are
|
||||
# useful in commentary.
|
||||
UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA)
|
||||
UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)
|
||||
|
||||
# Put this in a bracket expression to match spaces.
|
||||
s = [:space:]
|
||||
@@ -489,6 +498,11 @@ TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
|
||||
# Flags to give 'gzip' when making a distribution.
|
||||
GZIPFLAGS= -9n
|
||||
|
||||
# When comparing .tzs files, use GNU diff's -F'^TZ=' option if supported.
|
||||
# This makes it easier to see which Zone has been affected.
|
||||
DIFF_TZS= diff -u$$(! diff -u -F'^TZ=' - - <>/dev/null >&0 2>&1 \
|
||||
|| echo ' -F^TZ=')
|
||||
|
||||
###############################################################################
|
||||
|
||||
#MAKE= make
|
||||
@@ -767,7 +781,8 @@ tzselect: tzselect.ksh version
|
||||
chmod +x $@.out
|
||||
mv $@.out $@
|
||||
|
||||
check: check_character_set check_white_space check_links \
|
||||
check: check_back check_mild
|
||||
check_mild: check_character_set check_white_space check_links \
|
||||
check_name_lengths check_slashed_abbrs check_sorted \
|
||||
check_tables check_web check_ziguard check_zishrink check_tzs
|
||||
|
||||
@@ -817,14 +832,23 @@ check_slashed_abbrs: $(TDATA_TO_CHECK)
|
||||
|
||||
CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
|
||||
|
||||
check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
|
||||
$(AWK) '/^Link/ {print $$3}' backward | LC_ALL=C sort -cu
|
||||
check_sorted: backward backzone
|
||||
$(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} !/./ {g++}' \
|
||||
backward | LC_ALL=C sort -cu
|
||||
$(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu
|
||||
touch $@
|
||||
|
||||
check_links: checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
|
||||
$(AWK) -f checklinks.awk $(TDATA_TO_CHECK)
|
||||
$(AWK) -f checklinks.awk tzdata.zi
|
||||
check_back: checklinks.awk $(TDATA_TO_CHECK)
|
||||
$(AWK) \
|
||||
-v DATAFORM=$(DATAFORM) \
|
||||
-v backcheck=backward \
|
||||
-f checklinks.awk $(TDATA_TO_CHECK)
|
||||
touch $@
|
||||
|
||||
check_links: checklinks.awk tzdata.zi
|
||||
$(AWK) \
|
||||
-v DATAFORM=$(DATAFORM) \
|
||||
-f checklinks.awk tzdata.zi
|
||||
touch $@
|
||||
|
||||
check_tables: checktab.awk $(YDATA) backward $(ZONETABLES)
|
||||
@@ -837,7 +861,7 @@ check_tables: checktab.awk $(YDATA) backward $(ZONETABLES)
|
||||
|
||||
check_tzs: $(TZS) $(TZS_NEW)
|
||||
if test -s $(TZS); then \
|
||||
diff -u $(TZS) $(TZS_NEW); \
|
||||
$(DIFF_TZS) $(TZS) $(TZS_NEW); \
|
||||
else \
|
||||
cp $(TZS_NEW) $(TZS); \
|
||||
fi
|
||||
@@ -1038,7 +1062,7 @@ $(TIME_T_ALTERNATIVES): $(VERSION_DEPS)
|
||||
TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \
|
||||
D=$$wd/$@.dir \
|
||||
to$$range.tzs) && \
|
||||
diff -u $(TIME_T_ALTERNATIVES_HEAD).dir/to$$range.tzs \
|
||||
$(DIFF_TZS) $(TIME_T_ALTERNATIVES_HEAD).dir/to$$range.tzs \
|
||||
$@.dir/to$$range.tzs && \
|
||||
if diff -q Makefile Makefile 2>/dev/null; then \
|
||||
quiet_option='-q'; \
|
||||
@@ -1208,7 +1232,7 @@ zdump.o: version.h
|
||||
zic.o: private.h tzfile.h version.h
|
||||
|
||||
.PHONY: ALL INSTALL all
|
||||
.PHONY: check check_time_t_alternatives
|
||||
.PHONY: check check_mild check_time_t_alternatives
|
||||
.PHONY: check_web check_zishrink
|
||||
.PHONY: clean clean_misc dummy.zd force_tzs
|
||||
.PHONY: install install_data maintainer-clean names
|
||||
|
||||
+315
-16
@@ -1,5 +1,304 @@
|
||||
News for the tz database
|
||||
|
||||
Release 2023c - 2023-03-28 12:42:14 -0700
|
||||
|
||||
Changes to past and future timestamps
|
||||
|
||||
Model Lebanon's DST chaos by reverting data to tzdb 2023a.
|
||||
(Thanks to Rany Hany for the heads-up.)
|
||||
|
||||
|
||||
Release 2023b - 2023-03-23 19:50:38 -0700
|
||||
|
||||
Changes to future timestamps
|
||||
|
||||
This year Lebanon springs forward April 20/21 not March 25/26.
|
||||
(Thanks to Saadallah Itani.) [This was reverted in 2023c.]
|
||||
|
||||
|
||||
Release 2023a - 2023-03-22 12:39:33 -0700
|
||||
|
||||
Briefly:
|
||||
Egypt now uses DST again, from April through October.
|
||||
This year Morocco springs forward April 23, not April 30.
|
||||
Palestine delays the start of DST this year.
|
||||
Much of Greenland still uses DST from 2024 on.
|
||||
America/Yellowknife now links to America/Edmonton.
|
||||
tzselect can now use current time to help infer timezone.
|
||||
The code now defaults to C99 or later.
|
||||
Fix use of C23 attributes.
|
||||
|
||||
Changes to future timestamps
|
||||
|
||||
Starting in 2023, Egypt will observe DST from April's last Friday
|
||||
through October's last Thursday. (Thanks to Ahmad ElDardiry.)
|
||||
Assume the transition times are 00:00 and 24:00, respectively.
|
||||
|
||||
In 2023 Morocco's spring-forward transition after Ramadan
|
||||
will occur April 23, not April 30. (Thanks to Milamber.)
|
||||
Adjust predictions for future years accordingly. This affects
|
||||
predictions for 2023, 2031, 2038, and later years.
|
||||
|
||||
This year Palestine will delay its spring forward from
|
||||
March 25 to April 29 due to Ramadan. (Thanks to Heba Hamad.)
|
||||
Make guesses for future Ramadans too.
|
||||
|
||||
Much of Greenland, represented by America/Nuuk, will continue to
|
||||
observe DST using European Union rules. When combined with
|
||||
Greenland's decision not to change the clocks in fall 2023,
|
||||
America/Nuuk therefore changes from -03/-02 to -02/-01 effective
|
||||
2023-10-29 at 01:00 UTC. (Thanks to Thomas M. Steenholdt.)
|
||||
This change from 2022g doesn't affect timestamps until 2024-03-30,
|
||||
and doesn't affect tm_isdst until 2023-03-25.
|
||||
|
||||
Changes to past timestamps
|
||||
|
||||
America/Yellowknife has changed from a Zone to a backward
|
||||
compatibility Link, as it no longer differs from America/Edmonton
|
||||
since 1970. (Thanks to Almaz Mingaleev.) This affects some
|
||||
pre-1948 timestamps. The old data are now in 'backzone'.
|
||||
|
||||
Changes to past time zone abbreviations
|
||||
|
||||
When observing Moscow time, Europe/Kirov and Europe/Volgograd now
|
||||
use the abbreviations MSK/MSD instead of numeric abbreviations,
|
||||
for consistency with other timezones observing Moscow time.
|
||||
|
||||
Changes to code
|
||||
|
||||
You can now tell tzselect local time, to simplify later choices.
|
||||
Select the 'time' option in its first prompt.
|
||||
|
||||
You can now compile with -DTZNAME_MAXIMUM=N to limit time zone
|
||||
abbreviations to N bytes (default 255). The reference runtime
|
||||
library now rejects POSIX-style TZ strings that contain longer
|
||||
abbreviations, treating them as UTC. Previously the limit was
|
||||
platform dependent and abbreviations were silently truncated to
|
||||
16 bytes even when the limit was greater than 16.
|
||||
|
||||
The code by default is now designed for C99 or later. To build in
|
||||
a C89 environment, compile with -DPORT_TO_C89. To support C89
|
||||
callers of the tzcode library, compile with -DSUPPORT_C89. The
|
||||
two new macros are transitional aids planned to be removed in a
|
||||
future version, when C99 or later will be required.
|
||||
|
||||
The code now builds again on pre-C99 platforms, if you compile
|
||||
with -DPORT_TO_C89. This fixes a bug introduced in 2022f.
|
||||
|
||||
On C23-compatible platforms tzcode no longer uses syntax like
|
||||
'static [[noreturn]] void usage(void);'. Instead, it uses
|
||||
'[[noreturn]] static void usage(void);' as strict C23 requires.
|
||||
(Problem reported by Houge Langley.)
|
||||
|
||||
The code's functions now constrain their arguments with the C
|
||||
'restrict' keyword consistently with their documentation.
|
||||
This may allow future optimizations.
|
||||
|
||||
zdump again builds standalone with ckdadd and without setenv,
|
||||
fixing a bug introduced in 2022g. (Problem reported by panic.)
|
||||
|
||||
leapseconds.awk can now process a leap seconds file that never
|
||||
expires; this might be useful if leap seconds are discontinued.
|
||||
|
||||
Changes to commentary
|
||||
|
||||
tz-link.html has a new section "Coordinating with governments and
|
||||
distributors". (Thanks to Neil Fuller for some of the text.)
|
||||
|
||||
To improve tzselect diagnostics, zone1970.tab's comments column is
|
||||
now limited to countries that have multiple timezones.
|
||||
|
||||
Note that leap seconds are planned to be discontinued by 2035.
|
||||
|
||||
|
||||
Release 2022g - 2022-11-29 08:58:31 -0800
|
||||
|
||||
Briefly:
|
||||
The northern edge of Chihuahua changes to US timekeeping.
|
||||
Much of Greenland stops changing clocks after March 2023.
|
||||
Fix some pre-1996 timestamps in northern Canada.
|
||||
C89 is now deprecated; please use C99 or later.
|
||||
Portability fixes for AIX, libintl, MS-Windows, musl, z/OS
|
||||
In C code, use more C23 features if available.
|
||||
C23 timegm now supported by default
|
||||
Fixes for unlikely integer overflows
|
||||
|
||||
Changes to future timestamps
|
||||
|
||||
In the Mexican state of Chihuahua, the border strip near the US
|
||||
will change to agree with nearby US locations on 2022-11-30.
|
||||
The strip's western part, represented by Ciudad Juárez, switches
|
||||
from -06 all year to -07/-06 with US DST rules, like El Paso, TX.
|
||||
The eastern part, represented by Ojinaga, will observe US DST next
|
||||
year, like Presidio, TX. (Thanks to Heitor David Pinto.)
|
||||
A new Zone America/Ciudad_Juarez splits from America/Ojinaga.
|
||||
|
||||
Much of Greenland, represented by America/Nuuk, stops observing
|
||||
winter time after March 2023, so its daylight saving time becomes
|
||||
standard time. (Thanks to Jonas Nyrup and Jürgen Appel.)
|
||||
|
||||
Changes to past timestamps
|
||||
|
||||
Changes for pre-1996 northern Canada (thanks to Chris Walton):
|
||||
|
||||
Merge America/Iqaluit and America/Pangnirtung into the former,
|
||||
with a backward compatibility link for the latter name.
|
||||
There is no good evidence the two locations differ since 1970.
|
||||
This change affects pre-1996 America/Pangnirtung timestamps.
|
||||
|
||||
Cambridge Bay, Inuvik, Iqaluit, Rankin Inlet, Resolute and
|
||||
Yellowknife did not observe DST in 1965, and did observe DST
|
||||
from 1972 through 1979.
|
||||
|
||||
Whitehorse moved from -09 to -08 on 1966-02-27, not 1967-05-28.
|
||||
|
||||
Colombia's 1993 fallback was 02-06 24:00, not 04-04 00:00.
|
||||
(Thanks to Alois Treindl.)
|
||||
|
||||
Singapore's 1981-12-31 change was at 16:00 UTC (23:30 local time),
|
||||
not 24:00 local time. (Thanks to Geoff Clare via Robert Elz.)
|
||||
|
||||
Changes to code
|
||||
|
||||
Although tzcode still works with C89, bugs found in recent routine
|
||||
maintenance indicate that bitrot has set in and that in practice
|
||||
C89 is no longer used to build tzcode. As it is a maintenance
|
||||
burden, support for C89 is planned to be removed soon. Instead,
|
||||
please use compilers compatible with C99, C11, C17, or C23.
|
||||
|
||||
timegm, which tzcode implemented in 1989, will finally be
|
||||
standardized 34 years later as part of C23, so timegm is now
|
||||
supported even if STD_INSPIRED is not defined.
|
||||
|
||||
Fix bug in zdump's tzalloc emulation on hosts that lack tm_zone.
|
||||
(Problem reported by Đoàn Trần Công Danh.)
|
||||
|
||||
Fix bug in zic on hosts where malloc(0) yields NULL on success.
|
||||
(Problem reported by Tim McBrayer for AIX 6.1.)
|
||||
|
||||
Fix zic configuration to avoid linkage failures on some platforms.
|
||||
(Problems reported by Gilmore Davidson and Igor Ivanov.)
|
||||
|
||||
Work around MS-Windows nmake incompatibility with POSIX.
|
||||
(Problem reported by Manuela Friedrich.)
|
||||
|
||||
Port mktime and strftime to debugging platforms where accessing
|
||||
uninitialized data has undefined behavior (strftime problem
|
||||
reported by Robert Elz).
|
||||
|
||||
Check more carefully for unlikely integer overflows, preferring
|
||||
C23 <stdckdint.h> to overflow checking by hand, as the latter has
|
||||
had obscure bugs.
|
||||
|
||||
Changes to build procedure
|
||||
|
||||
New Makefile rule check_mild that skips checking whether Link
|
||||
lines are in the file 'backward'. (Inspired by a suggestion from
|
||||
Stephen Colebourne.)
|
||||
|
||||
|
||||
Release 2022f - 2022-10-28 18:04:57 -0700
|
||||
|
||||
Briefly:
|
||||
Mexico will no longer observe DST except near the US border.
|
||||
Chihuahua moves to year-round -06 on 2022-10-30.
|
||||
Fiji no longer observes DST.
|
||||
Move links to 'backward'.
|
||||
In vanguard form, GMT is now a Zone and Etc/GMT a link.
|
||||
zic now supports links to links, and vanguard form uses this.
|
||||
Simplify four Ontario zones.
|
||||
Fix a Y2438 bug when reading TZif data.
|
||||
Enable 64-bit time_t on 32-bit glibc platforms.
|
||||
Omit large-file support when no longer needed.
|
||||
In C code, use some C23 features if available.
|
||||
Remove no-longer-needed workaround for Qt bug 53071.
|
||||
|
||||
Changes to future timestamps
|
||||
|
||||
Mexico will no longer observe DST after 2022, except for areas
|
||||
near the US border that continue to observe US DST rules.
|
||||
On 2022-10-30 at 02:00 the Mexican state of Chihuahua moves
|
||||
from -07 (-06 with DST) to year-round -06, thus not changing
|
||||
its clocks that day. The new law states that Chihuahua
|
||||
near the US border no longer observes US DST.
|
||||
(Thanks to gera for the heads-up about Chihuahua.)
|
||||
|
||||
Fiji will not observe DST in 2022/3. (Thanks to Shalvin Narayan.)
|
||||
For now, assume DST is suspended indefinitely.
|
||||
|
||||
Changes to data
|
||||
|
||||
Move links to 'backward' to ease and simplify link maintenance.
|
||||
This affects generated data only if you use 'make BACKWARD='.
|
||||
|
||||
GMT is now a Zone and Etc/GMT a link instead of vice versa,
|
||||
as GMT is needed for leap second support whereas Etc/GMT is not.
|
||||
However, this change exposes a bug in TZUpdater 2.3.2 so it is
|
||||
present only in vanguard form for now.
|
||||
|
||||
Vanguard form now uses links to links, as zic now supports this.
|
||||
|
||||
Changes to past timestamps
|
||||
|
||||
Simplify four Ontario zones, as most of the post-1970 differences
|
||||
seem to have been imaginary. (Problem reported by Chris Walton.)
|
||||
Move America/Nipigon, America/Rainy_River, and America/Thunder_Bay
|
||||
to 'backzone'; backward-compatibility links still work, albeit
|
||||
with some different timestamps before November 2005.
|
||||
|
||||
Changes to code
|
||||
|
||||
zic now supports links to links regardless of input line order.
|
||||
For example, if Australia/Sydney is a Zone, the lines
|
||||
Link Australia/Canberra Australia/ACT
|
||||
Link Australia/Sydney Australia/Canberra
|
||||
now work correctly, even though the shell commands
|
||||
ln Australia/Canberra Australia/ACT
|
||||
ln Australia/Sydney Australia/Canberra
|
||||
would fail because the first command attempts to use a link
|
||||
Australia/Canberra that does not exist until after the second
|
||||
command is executed. Previously, zic had unspecified behavior if
|
||||
a Link line's target was another link, and zic often misbehaved if
|
||||
a Link line's target was a later Link line.
|
||||
|
||||
Fix line number in zic's diagnostic for a link to a link.
|
||||
|
||||
Fix a bug that caused localtime to mishandle timestamps starting
|
||||
in the year 2438 when reading data generated by 'zic -b fat' when
|
||||
distant-future DST transitions occur at times given in standard
|
||||
time or in UT, not the usual case of local time. This occurs when
|
||||
the corresponding .zi Rule lines specify DST transitions with TO
|
||||
columns of 'max' and AT columns that end in 's' or 'u'. The
|
||||
number 2438 comes from the 32-bit limit in the year 2038, plus the
|
||||
400-year Gregorian cycle. (Problem reported by Bradley White.)
|
||||
|
||||
On glibc 2.34 and later, which optionally supports 64-bit time_t
|
||||
on platforms like x86 where time_t was traditionally 32 bits,
|
||||
default time_t to 64 instead of 32 bits. This lets functions like
|
||||
localtime support timestamps after the year 2038, and fixes
|
||||
year-2038 problems in zic when accessing files dated after 2038.
|
||||
To continue to limit time_t to 32 bits on these platforms, use
|
||||
"make CFLAGS='-D_TIME_BITS=32'".
|
||||
|
||||
In C code, do not enable large-file support on platforms like AIX
|
||||
and macOS that no longer need it now that tzcode does not use
|
||||
off_t or related functions like 'stat'. Large-file support is
|
||||
still enabled by default on GNU/Linux, as it is needed for 64-bit
|
||||
time_t support.
|
||||
|
||||
In C code, prefer C23 keywords to pre-C23 macros for alignof,
|
||||
bool, false, and true. Also, use the following C23 features if
|
||||
available: __has_include, unreachable.
|
||||
|
||||
zic no longer works around Qt bug 53071, as the relevant Qt
|
||||
releases have been out of support since 2019. This change affects
|
||||
only fat TZif files, as thin files never had the workaround.
|
||||
|
||||
zdump no longer modifies the environ vector when compiled on
|
||||
platforms lacking tm_zone or when compiled with -DUSE_LTZ=0.
|
||||
This avoid undefined behavior on POSIX platforms.
|
||||
|
||||
|
||||
Release 2022e - 2022-10-11 11:13:02 -0700
|
||||
|
||||
Briefly:
|
||||
@@ -408,7 +707,7 @@ Release 2021b - 2021-09-24 16:23:00 -0700
|
||||
Starting with 2020a, zic -L truncated its output according to the
|
||||
"Expires" directive or "#expires" comment in the leapseconds file.
|
||||
The resulting TZif files omitted daylight saving transitions after
|
||||
the leap second table expired, which led to far less-accurate
|
||||
the leap second table expired, which led to far less accurate
|
||||
predictions of times after the expiry. Although future timestamps
|
||||
cannot be converted accurately in the presence of leap seconds, it
|
||||
is more accurate to convert near-future timestamps with a few
|
||||
@@ -428,7 +727,7 @@ Release 2021b - 2021-09-24 16:23:00 -0700
|
||||
zic -L LEAPFILE -r @LO no longer generates an invalid TZif file
|
||||
that omits leap second information for the range LO..B when LO
|
||||
falls between two leap seconds A and B. Instead, it generates a
|
||||
TZif version 4 file that represents the previously-missing
|
||||
TZif version 4 file that represents the previously missing
|
||||
information.
|
||||
|
||||
The TZif reader now allows the leap second table to begin with a
|
||||
@@ -482,7 +781,7 @@ Release 2021b - 2021-09-24 16:23:00 -0700
|
||||
Fix a bug with 'zic -r @X' when X is a negative leap second that
|
||||
has a nonnegative correction. Without the fix, the output file
|
||||
was truncated so that X appeared to be a positive leap second.
|
||||
Fix a similar, even-less-likely bug when truncating at a positive
|
||||
Fix a similar, even less likely bug when truncating at a positive
|
||||
leap second that has a nonpositive correction.
|
||||
|
||||
zic -r now reports an error if given rolling leap seconds, as this
|
||||
@@ -503,7 +802,7 @@ Release 2021b - 2021-09-24 16:23:00 -0700
|
||||
fixing a bug introduced in 2014g.
|
||||
|
||||
zdump -v now outputs timestamps at boundaries of what localtime
|
||||
and gmtime can represent, instead of the less-useful timestamps
|
||||
and gmtime can represent, instead of the less useful timestamps
|
||||
one day after the minimum and one day before the maximum.
|
||||
(Thanks to Arthur David Olson for prototype code, and to Manuela
|
||||
Friedrich for debugging help.)
|
||||
@@ -2123,7 +2422,7 @@ Release 2016g - 2016-09-13 08:56:38 -0700
|
||||
names internally.
|
||||
|
||||
zdump has a new -i option to generate transitions in a
|
||||
more-compact but still human-readable format. This option is
|
||||
smaller but still human-readable format. This option is
|
||||
experimental, and the output format may change in future versions.
|
||||
(Thanks to Jon Skeet for suggesting that an option was needed,
|
||||
and thanks to Tim Parenti and Chris Rovick for further comments.)
|
||||
@@ -2145,7 +2444,7 @@ Release 2016g - 2016-09-13 08:56:38 -0700
|
||||
release 2016g, the version number is now something like
|
||||
'2016g-23-g50556e3-dirty' instead of the misleading '2016g'.
|
||||
Tagged releases use the same version number format as before,
|
||||
e.g., '2016g'. To support the more-accurate version number, its
|
||||
e.g., '2016g'. To support the more accurate version number, its
|
||||
specification has moved from a line in the Makefile to a new
|
||||
source file 'version'.
|
||||
|
||||
@@ -2776,7 +3075,7 @@ Release 2014i - 2014-10-21 22:04:57 -0700
|
||||
|
||||
Since Belarus is not changing its clocks even though Moscow is,
|
||||
the time zone abbreviation in Europe/Minsk is changing from FET
|
||||
to its more-traditional value MSK on 2014-10-26 at 01:00.
|
||||
to its more traditional value MSK on 2014-10-26 at 01:00.
|
||||
(Thanks to Alexander Bokovoy for the heads-up about Belarus.)
|
||||
|
||||
The new abbreviation IDT stands for the pre-1976 use of UT +08 in
|
||||
@@ -2868,7 +3167,7 @@ Release 2014h - 2014-09-25 18:59:03 -0700
|
||||
|
||||
Changes affecting build procedure
|
||||
|
||||
'make check' now checks better for properly-sorted data.
|
||||
'make check' now checks better for properly sorted data.
|
||||
|
||||
Changes affecting documentation and commentary
|
||||
|
||||
@@ -3369,7 +3668,7 @@ Release 2014a - 2014-03-07 23:30:29 -0800
|
||||
|
||||
Changes affecting past timestamps
|
||||
|
||||
Fiji ended DST on 2014-01-19 at 02:00, not the previously-scheduled 03:00.
|
||||
Fiji ended DST on 2014-01-19 at 02:00, not the previously scheduled 03:00.
|
||||
(Thanks to Steffen Thorsen.)
|
||||
|
||||
Ukraine switched from Moscow to Eastern European time on 1990-07-01
|
||||
@@ -3623,7 +3922,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700
|
||||
Allow POSIX-like TZ strings where the transition time's hour can
|
||||
range from -167 through 167, instead of the POSIX-required 0
|
||||
through 24. E.g., TZ='FJT-12FJST,M10.3.1/146,M1.3.4/75' for the
|
||||
new Fiji rules. This is a more-compact way to represent
|
||||
new Fiji rules. This is a more compact way to represent
|
||||
far-future timestamps for America/Godthab, America/Santiago,
|
||||
Antarctica/Palmer, Asia/Gaza, Asia/Hebron, Asia/Jerusalem,
|
||||
Pacific/Easter, and Pacific/Fiji. Other zones are unaffected by
|
||||
@@ -3631,7 +3930,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700
|
||||
|
||||
Allow POSIX-like TZ strings where daylight saving time is in
|
||||
effect all year. E.g., TZ='WART4WARST,J1/0,J365/25' for Western
|
||||
Argentina Summer Time all year. This supports a more-compact way
|
||||
Argentina Summer Time all year. This supports a more compact way
|
||||
to represent the 2013d data for America/Argentina/San_Luis.
|
||||
Because of the change for San Luis noted above this change does not
|
||||
affect the current data. (Thanks to Andrew Main (Zefram) for
|
||||
@@ -3720,13 +4019,13 @@ Release 2013e - 2013-09-19 23:50:04 -0700
|
||||
|
||||
zdump now outputs "UT" when referring to Universal Time, not "UTC".
|
||||
"UTC" does not make sense for timestamps that predate the introduction
|
||||
of UTC, whereas "UT", a more-generic term, does. (Thanks to Steve Allen
|
||||
of UTC, whereas "UT", a more generic term, does. (Thanks to Steve Allen
|
||||
for clarifying UT vs UTC.)
|
||||
|
||||
Data changes affecting behavior of tzselect and similar programs
|
||||
|
||||
Country code BQ is now called the more-common name "Caribbean Netherlands"
|
||||
rather than the more-official "Bonaire, St Eustatius & Saba".
|
||||
Country code BQ is now called the more common name "Caribbean Netherlands"
|
||||
rather than the more official "Bonaire, St Eustatius & Saba".
|
||||
|
||||
Remove from zone.tab the names America/Montreal, America/Shiprock,
|
||||
and Antarctica/South_Pole, as they are equivalent to existing
|
||||
@@ -3910,7 +4209,7 @@ Release 2013c - 2013-04-19 16:17:40 -0700
|
||||
Macquarie Island is politically part of Australia, not Antarctica.
|
||||
(Thanks to Tobias Conradi.)
|
||||
|
||||
Sort Macquarie more-consistently with other parts of Australia.
|
||||
Sort Macquarie more consistently with other parts of Australia.
|
||||
(Thanks to Tim Parenti.)
|
||||
|
||||
|
||||
@@ -5134,7 +5433,7 @@ Release data1998g - 1998-08-11 03:28:35 -0000
|
||||
Release data1998f - 1998-07-20 13:50:00 -0000
|
||||
[tzdata1998f.tar.gz is missing!]
|
||||
|
||||
Update the "leapseconds" file to include the newly-announced
|
||||
Update the "leapseconds" file to include the newly announced
|
||||
insertion at the end of 1998.
|
||||
|
||||
|
||||
|
||||
+97
-183
@@ -97,22 +97,6 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
|
||||
0:00 Algeria WE%sT 1981 May
|
||||
1:00 - CET
|
||||
|
||||
# Angola
|
||||
# Benin
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Botswana
|
||||
# See Africa/Maputo.
|
||||
|
||||
# Burkina Faso
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Burundi
|
||||
# See Africa/Maputo.
|
||||
|
||||
# Cameroon
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Cape Verde / Cabo Verde
|
||||
#
|
||||
# From Paul Eggert (2018-02-16):
|
||||
@@ -127,9 +111,6 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
|
||||
-2:00 - -02 1975 Nov 25 2:00
|
||||
-1:00 - -01
|
||||
|
||||
# Central African Republic
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Chad
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
@@ -137,33 +118,29 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
1:00 1:00 WAST 1980 Mar 8
|
||||
1:00 - WAT
|
||||
|
||||
# Comoros
|
||||
# See Africa/Nairobi.
|
||||
# Burkina Faso
|
||||
# Côte d'Ivoire (Ivory Coast)
|
||||
# The Gambia
|
||||
# Ghana
|
||||
# Guinea
|
||||
# Iceland
|
||||
# Mali
|
||||
# Mauritania
|
||||
# St Helena
|
||||
# Senegal
|
||||
# Sierra Leone
|
||||
# Togo
|
||||
|
||||
# Democratic Republic of the Congo
|
||||
# See Africa/Lagos for the western part and Africa/Maputo for the eastern.
|
||||
# The other parts of the St Helena territory are similar:
|
||||
# Tristan da Cunha: on GMT, say Whitman and the CIA
|
||||
# Ascension: on GMT, say the USNO (1995-12-21) and the CIA
|
||||
# Gough (scientific station since 1955; sealers wintered previously):
|
||||
# on GMT, says the CIA
|
||||
# Inaccessible, Nightingale: uninhabited
|
||||
|
||||
# Republic of the Congo
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Côte d'Ivoire / Ivory Coast
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Abidjan -0:16:08 - LMT 1912
|
||||
0:00 - GMT
|
||||
Link Africa/Abidjan Africa/Accra # Ghana
|
||||
Link Africa/Abidjan Africa/Bamako # Mali
|
||||
Link Africa/Abidjan Africa/Banjul # The Gambia
|
||||
Link Africa/Abidjan Africa/Conakry # Guinea
|
||||
Link Africa/Abidjan Africa/Dakar # Senegal
|
||||
Link Africa/Abidjan Africa/Freetown # Sierra Leone
|
||||
Link Africa/Abidjan Africa/Lome # Togo
|
||||
Link Africa/Abidjan Africa/Nouakchott # Mauritania
|
||||
Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso
|
||||
Link Africa/Abidjan Atlantic/Reykjavik # Iceland
|
||||
Link Africa/Abidjan Atlantic/St_Helena # St Helena
|
||||
|
||||
# Djibouti
|
||||
# See Africa/Nairobi.
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -344,6 +321,14 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
|
||||
# From Mina Samuel (2016-07-04):
|
||||
# Egyptian government took the decision to cancel the DST,
|
||||
|
||||
# From Ahmad ElDardiry (2023-03-01):
|
||||
# Egypt officially announced today that daylight savings will be
|
||||
# applied from last Friday of April to last Thursday of October.
|
||||
# From Paul Eggert (2023-03-01):
|
||||
# Assume transitions are at 00:00 and 24:00 respectively.
|
||||
# From Amir Adib (2023-03-07):
|
||||
# https://www.facebook.com/EgyptianCabinet/posts/638829614954129/
|
||||
|
||||
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
|
||||
Rule Egypt 2009 only - Aug 20 24:00 0 -
|
||||
Rule Egypt 2010 only - Aug 10 24:00 0 -
|
||||
@@ -353,39 +338,14 @@ Rule Egypt 2014 only - May 15 24:00 1:00 S
|
||||
Rule Egypt 2014 only - Jun 26 24:00 0 -
|
||||
Rule Egypt 2014 only - Jul 31 24:00 1:00 S
|
||||
Rule Egypt 2014 only - Sep lastThu 24:00 0 -
|
||||
Rule Egypt 2023 max - Apr lastFri 0:00 1:00 S
|
||||
Rule Egypt 2023 max - Oct lastThu 24:00 0 -
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
#STDOFF 2:05:08.9
|
||||
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
|
||||
2:00 Egypt EE%sT
|
||||
|
||||
# Equatorial Guinea
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Eritrea
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Eswatini (formerly Swaziland)
|
||||
# See Africa/Johannesburg.
|
||||
|
||||
# Ethiopia
|
||||
# See Africa/Nairobi.
|
||||
#
|
||||
# Unfortunately tzdb records only Western clock time in use in Ethiopia,
|
||||
# as the tzdb format is not up to properly recording a common Ethiopian
|
||||
# timekeeping practice that is based on solar time. See:
|
||||
# Mortada D. If you have a meeting in Ethiopia, you'd better double
|
||||
# check the time. PRI's The World. 2015-01-30 15:15 -05.
|
||||
# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time
|
||||
|
||||
# Gabon
|
||||
# See Africa/Lagos.
|
||||
|
||||
# The Gambia
|
||||
# Ghana
|
||||
# Guinea
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Guinea-Bissau
|
||||
#
|
||||
# From Paul Eggert (2018-02-16):
|
||||
@@ -398,7 +358,16 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u
|
||||
-1:00 - -01 1975
|
||||
0:00 - GMT
|
||||
|
||||
# Comoros
|
||||
# Djibouti
|
||||
# Eritrea
|
||||
# Ethiopia
|
||||
# Kenya
|
||||
# Madagascar
|
||||
# Mayotte
|
||||
# Somalia
|
||||
# Tanzania
|
||||
# Uganda
|
||||
|
||||
# From P Chan (2020-10-24):
|
||||
#
|
||||
@@ -441,6 +410,14 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u
|
||||
# The 1908-05-01 announcement does not give an effective date,
|
||||
# so just say "1908 May".
|
||||
|
||||
# From Paul Eggert (2018-09-11):
|
||||
# Unfortunately tzdb records only Western clock time in use in Ethiopia,
|
||||
# as the tzdb format is not up to properly recording a common Ethiopian
|
||||
# timekeeping practice that is based on solar time. See:
|
||||
# Mortada D. If you have a meeting in Ethiopia, you'd better double
|
||||
# check the time. PRI's The World. 2015-01-30 15:15 -05.
|
||||
# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Nairobi 2:27:16 - LMT 1908 May
|
||||
2:30 - +0230 1928 Jun 30 24:00
|
||||
@@ -448,18 +425,6 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May
|
||||
2:30 - +0230 1936 Dec 31 24:00
|
||||
2:45 - +0245 1942 Jul 31 24:00
|
||||
3:00 - EAT
|
||||
Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia
|
||||
Link Africa/Nairobi Africa/Asmara # Eritrea
|
||||
Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania
|
||||
Link Africa/Nairobi Africa/Djibouti
|
||||
Link Africa/Nairobi Africa/Kampala # Uganda
|
||||
Link Africa/Nairobi Africa/Mogadishu # Somalia
|
||||
Link Africa/Nairobi Indian/Antananarivo # Madagascar
|
||||
Link Africa/Nairobi Indian/Comoro
|
||||
Link Africa/Nairobi Indian/Mayotte
|
||||
|
||||
# Lesotho
|
||||
# See Africa/Johannesburg.
|
||||
|
||||
# Liberia
|
||||
#
|
||||
@@ -474,7 +439,7 @@ Link Africa/Nairobi Indian/Mayotte
|
||||
# President William R. Tolbert, Jr., July 23, 1971-July 31, 1972.
|
||||
# Monrovia: Executive Mansion.
|
||||
#
|
||||
# Use the abbreviation "MMT" before 1972, as the more-accurate numeric
|
||||
# Use the abbreviation "MMT" before 1972, as the more accurate numeric
|
||||
# abbreviation "-004430" would be one byte over the POSIX limit.
|
||||
#
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
@@ -540,16 +505,6 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
|
||||
1:00 Libya CE%sT 2013 Oct 25 2:00
|
||||
2:00 - EET
|
||||
|
||||
# Madagascar
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Malawi
|
||||
# See Africa/Maputo.
|
||||
|
||||
# Mali
|
||||
# Mauritania
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Mauritius
|
||||
|
||||
# From Steffen Thorsen (2008-06-25):
|
||||
@@ -621,8 +576,8 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
|
||||
# DST the coming summer...
|
||||
#
|
||||
# Some sources, in French:
|
||||
# http://www.defimedia.info/news/946/Rashid-Beebeejaun-:-%C2%AB-L%E2%80%99heure-d%E2%80%99%C3%A9t%C3%A9-ne-sera-pas-appliqu%C3%A9e-cette-ann%C3%A9e-%C2%BB
|
||||
# http://lexpress.mu/Story/3398~Beebeejaun---Les-objectifs-d-%C3%A9conomie-d-%C3%A9nergie-de-l-heure-d-%C3%A9t%C3%A9-ont-%C3%A9t%C3%A9-atteints-
|
||||
# http://www.defimedia.info/news/946/Rashid-Beebeejaun-:-«-L%E2%80%99heure-d%E2%80%99été-ne-sera-pas-appliquée-cette-année-»
|
||||
# http://lexpress.mu/Story/3398~Beebeejaun---Les-objectifs-d-économie-d-énergie-de-l-heure-d-été-ont-été-atteints-
|
||||
#
|
||||
# Our wrap-up:
|
||||
# https://www.timeanddate.com/news/time/mauritius-dst-will-not-repeat.html
|
||||
@@ -643,8 +598,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# Agalega Is, Rodriguez
|
||||
# no information; probably like Indian/Mauritius
|
||||
|
||||
# Mayotte
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Morocco
|
||||
# See Africa/Ceuta for Spanish Morocco.
|
||||
@@ -755,7 +708,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# More articles in the press
|
||||
# https://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-leve.html
|
||||
# http://www.lematin.ma/Actualite/Express/Article.asp?id=148923
|
||||
# http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT%2B1-a-partir-de-dim
|
||||
# http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT+1-a-partir-de-dim
|
||||
|
||||
# From Petr Machata (2011-03-30):
|
||||
# They have it written in English here:
|
||||
@@ -770,7 +723,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# According to Infomédiaire web site from Morocco (infomediaire.ma),
|
||||
# on March 9, 2012, (in French) Heure légale:
|
||||
# Le Maroc adopte officiellement l'heure d'été
|
||||
# http://www.infomediaire.ma/news/maroc/heure-l%C3%A9gale-le-maroc-adopte-officiellement-lheure-d%C3%A9t%C3%A9
|
||||
# http://www.infomediaire.ma/news/maroc/heure-légale-le-maroc-adopte-officiellement-lheure-dété
|
||||
# Governing Council adopted draft decree, that Morocco DST starts on
|
||||
# the last Sunday of March (March 25, 2012) and ends on
|
||||
# last Sunday of September (September 30, 2012)
|
||||
@@ -894,19 +847,28 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# Friday or Saturday (and so the 2 days off are on a weekend), the next time
|
||||
# shift will be the next weekend.
|
||||
#
|
||||
# From Paul Eggert (2020-05-31):
|
||||
# From Milamber (2021-03-31, 2022-03-10):
|
||||
# https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076
|
||||
# https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/
|
||||
#
|
||||
# From Milamber (2023-03-14, 2023-03-15):
|
||||
# The return to legal GMT time will take place this Sunday, March 19 at 3 a.m.
|
||||
# ... the return to GMT+1 will be made on Sunday April 23, 2023 at 2 a.m.
|
||||
# https://www.mmsp.gov.ma/fr/actualites/passage-à-l%E2%80%99heure-gmt-à-partir-du-dimanche-19-mars-2023
|
||||
#
|
||||
# From Paul Eggert (2023-03-14):
|
||||
# For now, guess that in the future Morocco will fall back at 03:00
|
||||
# the last Sunday before Ramadan, and spring forward at 02:00 the
|
||||
# first Sunday after two days after Ramadan. To implement this,
|
||||
# first Sunday after one day after Ramadan. To implement this,
|
||||
# transition dates and times for 2019 through 2087 were determined by
|
||||
# running the following program under GNU Emacs 26.3. (This algorithm
|
||||
# running the following program under GNU Emacs 28.2. (This algorithm
|
||||
# also produces the correct transition dates for 2016 through 2018,
|
||||
# though the times differ due to Morocco's time zone change in 2018.)
|
||||
# (let ((islamic-year 1440))
|
||||
# (require 'cal-islam)
|
||||
# (while (< islamic-year 1511)
|
||||
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
|
||||
# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
|
||||
# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
|
||||
# (sunday 0))
|
||||
# (while (/= sunday (mod (setq a (1- a)) 7)))
|
||||
# (while (/= sunday (mod b 7))
|
||||
@@ -920,10 +882,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
|
||||
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
|
||||
# (setq islamic-year (+ 1 islamic-year))))
|
||||
#
|
||||
# From Milamber (2021-03-31, 2022-03-10), confirming these predictions:
|
||||
# https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076
|
||||
# https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Morocco 1939 only - Sep 12 0:00 1:00 -
|
||||
@@ -976,7 +934,7 @@ Rule Morocco 2021 only - May 16 2:00 0 -
|
||||
Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
|
||||
Rule Morocco 2022 only - May 8 2:00 0 -
|
||||
Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
|
||||
Rule Morocco 2023 only - Apr 30 2:00 0 -
|
||||
Rule Morocco 2023 only - Apr 23 2:00 0 -
|
||||
Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
|
||||
Rule Morocco 2024 only - Apr 14 2:00 0 -
|
||||
Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
|
||||
@@ -992,7 +950,7 @@ Rule Morocco 2029 only - Feb 18 2:00 0 -
|
||||
Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
|
||||
Rule Morocco 2030 only - Feb 10 2:00 0 -
|
||||
Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
|
||||
Rule Morocco 2031 only - Feb 2 2:00 0 -
|
||||
Rule Morocco 2031 only - Jan 26 2:00 0 -
|
||||
Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
|
||||
Rule Morocco 2032 only - Jan 18 2:00 0 -
|
||||
Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
|
||||
@@ -1008,7 +966,7 @@ Rule Morocco 2036 only - Nov 23 2:00 0 -
|
||||
Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
|
||||
Rule Morocco 2037 only - Nov 15 2:00 0 -
|
||||
Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
|
||||
Rule Morocco 2038 only - Nov 7 2:00 0 -
|
||||
Rule Morocco 2038 only - Oct 31 2:00 0 -
|
||||
Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
|
||||
Rule Morocco 2039 only - Oct 23 2:00 0 -
|
||||
Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
|
||||
@@ -1024,7 +982,7 @@ Rule Morocco 2044 only - Aug 28 2:00 0 -
|
||||
Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
|
||||
Rule Morocco 2045 only - Aug 20 2:00 0 -
|
||||
Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
|
||||
Rule Morocco 2046 only - Aug 12 2:00 0 -
|
||||
Rule Morocco 2046 only - Aug 5 2:00 0 -
|
||||
Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
|
||||
Rule Morocco 2047 only - Jul 28 2:00 0 -
|
||||
Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
|
||||
@@ -1040,7 +998,7 @@ Rule Morocco 2052 only - Jun 2 2:00 0 -
|
||||
Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
|
||||
Rule Morocco 2053 only - May 25 2:00 0 -
|
||||
Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
|
||||
Rule Morocco 2054 only - May 17 2:00 0 -
|
||||
Rule Morocco 2054 only - May 10 2:00 0 -
|
||||
Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
|
||||
Rule Morocco 2055 only - May 2 2:00 0 -
|
||||
Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
|
||||
@@ -1056,7 +1014,7 @@ Rule Morocco 2060 only - Mar 7 2:00 0 -
|
||||
Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
|
||||
Rule Morocco 2061 only - Feb 27 2:00 0 -
|
||||
Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
|
||||
Rule Morocco 2062 only - Feb 19 2:00 0 -
|
||||
Rule Morocco 2062 only - Feb 12 2:00 0 -
|
||||
Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
|
||||
Rule Morocco 2063 only - Feb 4 2:00 0 -
|
||||
Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
|
||||
@@ -1072,7 +1030,7 @@ Rule Morocco 2067 only - Dec 11 2:00 0 -
|
||||
Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
|
||||
Rule Morocco 2068 only - Dec 2 2:00 0 -
|
||||
Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
|
||||
Rule Morocco 2069 only - Nov 24 2:00 0 -
|
||||
Rule Morocco 2069 only - Nov 17 2:00 0 -
|
||||
Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
|
||||
Rule Morocco 2070 only - Nov 9 2:00 0 -
|
||||
Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
|
||||
@@ -1088,7 +1046,7 @@ Rule Morocco 2075 only - Sep 15 2:00 0 -
|
||||
Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
|
||||
Rule Morocco 2076 only - Sep 6 2:00 0 -
|
||||
Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
|
||||
Rule Morocco 2077 only - Aug 29 2:00 0 -
|
||||
Rule Morocco 2077 only - Aug 22 2:00 0 -
|
||||
Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
|
||||
Rule Morocco 2078 only - Aug 14 2:00 0 -
|
||||
Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
|
||||
@@ -1098,13 +1056,13 @@ Rule Morocco 2080 only - Jul 21 2:00 0 -
|
||||
Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
|
||||
Rule Morocco 2081 only - Jul 13 2:00 0 -
|
||||
Rule Morocco 2082 only - May 24 3:00 -1:00 -
|
||||
Rule Morocco 2082 only - Jul 5 2:00 0 -
|
||||
Rule Morocco 2082 only - Jun 28 2:00 0 -
|
||||
Rule Morocco 2083 only - May 16 3:00 -1:00 -
|
||||
Rule Morocco 2083 only - Jun 20 2:00 0 -
|
||||
Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
|
||||
Rule Morocco 2084 only - Jun 11 2:00 0 -
|
||||
Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
|
||||
Rule Morocco 2085 only - Jun 3 2:00 0 -
|
||||
Rule Morocco 2085 only - May 27 2:00 0 -
|
||||
Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
|
||||
Rule Morocco 2086 only - May 19 2:00 0 -
|
||||
Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
|
||||
@@ -1137,7 +1095,14 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
|
||||
0:00 Morocco +00/+01 2018 Oct 28 3:00
|
||||
1:00 Morocco +01/+00
|
||||
|
||||
# Botswana
|
||||
# Burundi
|
||||
# Democratic Republic of the Congo (eastern)
|
||||
# Malawi
|
||||
# Mozambique
|
||||
# Rwanda
|
||||
# Zambia
|
||||
# Zimbabwe
|
||||
#
|
||||
# Shanks gives 1903-03-01 for the transition to CAT.
|
||||
# Perhaps the 1911-05-26 Portuguese decree
|
||||
@@ -1147,14 +1112,6 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Maputo 2:10:20 - LMT 1903 Mar
|
||||
2:00 - CAT
|
||||
Link Africa/Maputo Africa/Blantyre # Malawi
|
||||
Link Africa/Maputo Africa/Bujumbura # Burundi
|
||||
Link Africa/Maputo Africa/Gaborone # Botswana
|
||||
Link Africa/Maputo Africa/Harare # Zimbabwe
|
||||
Link Africa/Maputo Africa/Kigali # Rwanda
|
||||
Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo
|
||||
Link Africa/Maputo Africa/Lusaka # Zambia
|
||||
|
||||
|
||||
# Namibia
|
||||
|
||||
@@ -1233,23 +1190,30 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# 2:00 - CAT
|
||||
# End of rearguard section.
|
||||
|
||||
# Niger
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Angola
|
||||
# Benin
|
||||
# Cameroon
|
||||
# Central African Republic
|
||||
# Democratic Republic of the Congo (western)
|
||||
# Republic of the Congo
|
||||
# Equatorial Guinea
|
||||
# Gabon
|
||||
# Niger
|
||||
# Nigeria
|
||||
|
||||
# From P Chan (2020-12-03):
|
||||
# GMT was adopted as the standard time of Lagos on 1905-07-01.
|
||||
# Lagos Weekly Record, 1905-06-24, p 3
|
||||
# http://ddsnext.crl.edu/titles/31558#?c=0&m=668&s=0&cv=2&r=0&xywh=1446%2C5221%2C1931%2C1235
|
||||
# http://ddsnext.crl.edu/titles/31558#?c=0&m=668&s=0&cv=2&r=0&xywh=1446,5221,1931,1235
|
||||
# says "It is officially notified that on and after the 1st of July 1905
|
||||
# Greenwich Mean Solar Time will be adopted thought the Colony and
|
||||
# Greenwich Mean Solar Time will be adopted throughout the Colony and
|
||||
# Protectorate, and that it will be necessary to put all clocks 13 minutes and
|
||||
# 35 seconds back, recording local mean time."
|
||||
#
|
||||
# It seemed that Lagos returned to LMT on 1908-07-01.
|
||||
# [The Lagos Standard], 1908-07-01, p 5
|
||||
# http://ddsnext.crl.edu/titles/31556#?c=0&m=78&s=0&cv=4&r=0&xywh=-92%2C3590%2C3944%2C2523
|
||||
# http://ddsnext.crl.edu/titles/31556#?c=0&m=78&s=0&cv=4&r=0&xywh=-92,3590,3944,2523
|
||||
# says "Scarcely have the people become accustomed to this new time, when
|
||||
# another official notice has now appeared announcing that from and after the
|
||||
# 1st July next, return will be made to local mean time."
|
||||
@@ -1261,7 +1225,7 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# https://libsysdigi.library.illinois.edu/ilharvest/Africana/Books2011-05/3064634/3064634_1914/3064634_1914_opt.pdf#page=27
|
||||
# "On January 1st [1914], a universal standard time for Nigeria was adopted,
|
||||
# viz., half an hour fast on Greenwich mean time, corresponding to the meridian
|
||||
# 7 [degrees] 30' E. long."
|
||||
# 7° 30' E. long."
|
||||
# Lloyd's Register of Shipping (1915) says "Hitherto the time observed in Lagos
|
||||
# was the local mean time. On 1st January, 1914, standard time for the whole of
|
||||
# Nigeria was introduced ... Lagos time has been advanced about 16 minutes
|
||||
@@ -1279,7 +1243,7 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8
|
||||
# The Lagos Weekly Record, 1919-09-20, p 3 details discussion on the first
|
||||
# reading of this Bill by the Legislative Council of the Colony of Nigeria on
|
||||
# Thursday 1919-08-28:
|
||||
# http://ddsnext.crl.edu/titles/31558?terms&item_id=303484#?m=1118&c=1&s=0&cv=2&r=0&xywh=1261%2C3408%2C2994%2C1915
|
||||
# http://ddsnext.crl.edu/titles/31558?terms&item_id=303484#?m=1118&c=1&s=0&cv=2&r=0&xywh=1261,3408,2994,1915
|
||||
# "The proposal is that the Globe should be divided into twelve zones East and
|
||||
# West of Greenwich, of one hour each, Nigeria falling into the zone with a
|
||||
# standard of one hour fast on Greenwich Mean Time. Nigeria standard time is
|
||||
@@ -1301,32 +1265,6 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1
|
||||
0:13:35 - LMT 1914 Jan 1
|
||||
0:30 - +0030 1919 Sep 1
|
||||
1:00 - WAT
|
||||
Link Africa/Lagos Africa/Bangui # Central African Republic
|
||||
Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo
|
||||
Link Africa/Lagos Africa/Douala # Cameroon
|
||||
Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west)
|
||||
Link Africa/Lagos Africa/Libreville # Gabon
|
||||
Link Africa/Lagos Africa/Luanda # Angola
|
||||
Link Africa/Lagos Africa/Malabo # Equatorial Guinea
|
||||
Link Africa/Lagos Africa/Niamey # Niger
|
||||
Link Africa/Lagos Africa/Porto-Novo # Benin
|
||||
|
||||
# Réunion
|
||||
# See Asia/Dubai.
|
||||
#
|
||||
# The Crozet Islands also observe Réunion time; see the 'antarctica' file.
|
||||
|
||||
# Rwanda
|
||||
# See Africa/Maputo.
|
||||
|
||||
# St Helena
|
||||
# See Africa/Abidjan.
|
||||
# The other parts of the St Helena territory are similar:
|
||||
# Tristan da Cunha: on GMT, say Whitman and the CIA
|
||||
# Ascension: on GMT, say the USNO (1995-12-21) and the CIA
|
||||
# Gough (scientific station since 1955; sealers wintered previously):
|
||||
# on GMT, says the CIA
|
||||
# Inaccessible, Nightingale: uninhabited
|
||||
|
||||
# São Tomé and Príncipe
|
||||
|
||||
@@ -1355,19 +1293,10 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884
|
||||
1:00 - WAT 2019 Jan 1 02:00
|
||||
0:00 - GMT
|
||||
|
||||
# Senegal
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Seychelles
|
||||
# See Asia/Dubai.
|
||||
|
||||
# Sierra Leone
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Somalia
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Eswatini (Swaziland)
|
||||
# Lesotho
|
||||
# South Africa
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
|
||||
Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
|
||||
@@ -1375,8 +1304,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
|
||||
Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8
|
||||
1:30 - SAST 1903 Mar
|
||||
2:00 SA SAST
|
||||
Link Africa/Johannesburg Africa/Maseru # Lesotho
|
||||
Link Africa/Johannesburg Africa/Mbabane # Eswatini
|
||||
#
|
||||
# Marion and Prince Edward Is
|
||||
# scientific station since 1947
|
||||
@@ -1425,12 +1352,6 @@ Zone Africa/Juba 2:06:28 - LMT 1931
|
||||
3:00 - EAT 2021 Feb 1 00:00
|
||||
2:00 - CAT
|
||||
|
||||
# Tanzania
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Togo
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Tunisia
|
||||
|
||||
# From Gwillim Law (2005-04-30):
|
||||
@@ -1528,10 +1449,3 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
|
||||
Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
|
||||
0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
|
||||
1:00 Tunisia CE%sT
|
||||
|
||||
# Uganda
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Zambia
|
||||
# Zimbabwe
|
||||
# See Africa/Maputo.
|
||||
@@ -292,7 +292,7 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1
|
||||
# but that he found it more convenient to keep GMT+12
|
||||
# as supplies for the station were coming from McMurdo Sound,
|
||||
# which was on GMT+12 because New Zealand was on GMT+12 all year
|
||||
# at that time (1957). (Source: Siple's book 90 Degrees South.)
|
||||
# at that time (1957). (Source: Siple's book 90° South.)
|
||||
#
|
||||
# From Susan Smith
|
||||
# http://www.cybertours.com/whs/pole10.html
|
||||
@@ -306,4 +306,4 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1
|
||||
# we have to go around and set them back 5 minutes or so.
|
||||
# Maybe if we let them run fast all of the time, we'd get to leave here sooner!!
|
||||
#
|
||||
# See 'australasia' for Antarctica/McMurdo.
|
||||
# See Pacific/Auckland.
|
||||
+178
-57
@@ -149,9 +149,6 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2
|
||||
4:00 EUAsia +04/+05 1997
|
||||
4:00 Azer +04/+05
|
||||
|
||||
# Bahrain
|
||||
# See Asia/Qatar.
|
||||
|
||||
# Bangladesh
|
||||
# From Alexander Krivenyshev (2009-05-13):
|
||||
# According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce
|
||||
@@ -254,10 +251,8 @@ Zone Indian/Chagos 4:49:40 - LMT 1907
|
||||
5:00 - +05 1996
|
||||
6:00 - +06
|
||||
|
||||
# Brunei
|
||||
# See Asia/Kuching.
|
||||
|
||||
# Burma / Myanmar
|
||||
# Cocos (Keeling) Islands
|
||||
# Myanmar (Burma)
|
||||
|
||||
# Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon.
|
||||
|
||||
@@ -273,11 +268,6 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon
|
||||
6:30 - +0630 1942 May
|
||||
9:00 - +09 1945 May 3
|
||||
6:30 - +0630
|
||||
Link Asia/Yangon Indian/Cocos
|
||||
|
||||
# Cambodia
|
||||
# See Asia/Bangkok.
|
||||
|
||||
|
||||
# China
|
||||
|
||||
@@ -665,10 +655,9 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901
|
||||
8:00 PRC C%sT
|
||||
# Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi
|
||||
# / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.)
|
||||
# Vostok base in Antarctica matches this since 1970.
|
||||
Zone Asia/Urumqi 5:50:20 - LMT 1928
|
||||
6:00 - +06
|
||||
Link Asia/Urumqi Antarctica/Vostok
|
||||
|
||||
|
||||
# Hong Kong
|
||||
|
||||
@@ -1172,10 +1161,6 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14
|
||||
3:00 - +03 2017 Oct 29 1:00u
|
||||
2:00 EUAsia EE%sT
|
||||
|
||||
# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72.
|
||||
# However, for various reasons many users expect to find it under Europe.
|
||||
Link Asia/Nicosia Europe/Nicosia
|
||||
|
||||
# Georgia
|
||||
# From Paul Eggert (1994-11-19):
|
||||
# Today's _Economist_ (p 60) reports that Georgia moved its clocks forward
|
||||
@@ -2704,16 +2689,42 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1
|
||||
8:30 - KST 2018 May 4 23:30
|
||||
9:00 - KST
|
||||
|
||||
###############################################################################
|
||||
|
||||
# Kuwait
|
||||
# See Asia/Riyadh.
|
||||
|
||||
# Laos
|
||||
# See Asia/Bangkok.
|
||||
|
||||
|
||||
# Lebanon
|
||||
#
|
||||
# From Saadallah Itani (2023-03-23):
|
||||
# Lebanon ... announced today delay of Spring forward from March 25 to April 20.
|
||||
#
|
||||
# From Paul Eggert (2023-03-27):
|
||||
# This announcement was by the Lebanese caretaker prime minister Najib Mikati.
|
||||
# https://www.mtv.com.lb/en/News/Local/1352516/lebanon-postpones-daylight-saving-time-adoption
|
||||
# A video was later leaked to the media of parliament speaker Nabih Berri
|
||||
# asking Mikati to postpone DST to aid observance of Ramadan, Mikati objecting
|
||||
# that this would cause problems such as scheduling airline flights, to which
|
||||
# Berri interjected, "What flights?"
|
||||
#
|
||||
# The change was controversial and led to a partly-sectarian divide.
|
||||
# Many Lebanese institutions, including the education ministry, the Maronite
|
||||
# church, and two news channels LCBI and MTV, ignored the announcement and
|
||||
# went ahead with the long-scheduled spring-forward on March 25/26, some
|
||||
# arguing that the prime minister had not followed the law because the change
|
||||
# had not been approved by the cabinet. Google went with the announcement;
|
||||
# Apple ignored it. At least one bank followed the announcement for its doors,
|
||||
# but ignored the announcement in internal computer systems.
|
||||
# Beirut international airport listed two times for each departure.
|
||||
# Dan Azzi wrote "My view is that this whole thing is a Dumb and Dumber movie."
|
||||
# Eventually the prime minister backed down, said the cabinet had decided to
|
||||
# stick with its 1998 decision, and that DST would begin midnight March 29/30.
|
||||
# https://www.nna-leb.gov.lb/en/miscellaneous/604093/lebanon-has-two-times-of-day-amid-daylight-savings
|
||||
# https://www.cnbc.com/2023/03/27/lebanon-in-two-different-time-zones-as-government-disagrees-on-daylight-savings.html
|
||||
#
|
||||
# Although we could model the chaos with two Zones, that would likely cause
|
||||
# more trouble than it would cure. Since so many manual clocks and
|
||||
# computer-based timestamps ignored the announcement, stick with official
|
||||
# cabinet resolutions in the data while recording the prime minister's
|
||||
# announcement as a comment. This is how we treated a similar situation in
|
||||
# Rio de Janeiro in spring 1993.
|
||||
#
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
|
||||
Rule Lebanon 1920 only - Oct 25 0:00 0 -
|
||||
@@ -2739,11 +2750,17 @@ Rule Lebanon 1992 only - Oct 4 0:00 0 -
|
||||
Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
|
||||
Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
|
||||
Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
|
||||
# This one-time rule, announced by the prime minister first for April 21
|
||||
# then for March 30, is commented out for reasons described above.
|
||||
#Rule Lebanon 2023 only - Mar 30 0:00 1:00 S
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Beirut 2:22:00 - LMT 1880
|
||||
2:00 Lebanon EE%sT
|
||||
|
||||
# Malaysia
|
||||
# Brunei
|
||||
# Malaysia (eastern)
|
||||
#
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
|
||||
Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
|
||||
@@ -2760,14 +2777,12 @@ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar
|
||||
8:00 NBorneo +08/+0820 1942 Feb 16
|
||||
9:00 - +09 1945 Sep 12
|
||||
8:00 - +08
|
||||
Link Asia/Kuching Asia/Brunei
|
||||
|
||||
# Maldives
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé
|
||||
4:54:00 - MMT 1960 # Malé Mean Time
|
||||
5:00 - +05
|
||||
Link Indian/Maldives Indian/Kerguelen
|
||||
|
||||
# Mongolia
|
||||
|
||||
@@ -2930,9 +2945,6 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920
|
||||
5:30 - +0530 1986
|
||||
5:45 - +0545
|
||||
|
||||
# Oman
|
||||
# See Asia/Dubai.
|
||||
|
||||
# Pakistan
|
||||
|
||||
# From Rives McDow (2002-03-13):
|
||||
@@ -2980,7 +2992,7 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920
|
||||
# 9pm and moving clocks forward by one hour for the next three months. ...."
|
||||
#
|
||||
# http://www.worldtimezone.com/dst_news/dst_news_pakistan01.html
|
||||
# http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4
|
||||
# http://www.dailytimes.com.pk/default.asp?page=2008\05\15\story_15-5-2008_pg1_4
|
||||
|
||||
# From Arthur David Olson (2008-05-19):
|
||||
# XXX--midnight transitions is a guess; 2008 only is a guess.
|
||||
@@ -3303,7 +3315,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# Some of many sources in Arabic:
|
||||
# http://www.samanews.com/index.php?act=Show&id=122638
|
||||
#
|
||||
# http://safa.ps/details/news/74352/%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-%D8%A8%D8%A7%D9%84%D8%B6%D9%81%D8%A9-%D9%88%D8%BA%D8%B2%D8%A9-%D9%84%D9%8A%D9%84%D8%A9-%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D8%A9.html
|
||||
# http://safa.ps/details/news/74352/بدء-التوقيت-الصيفي-بالضفة-وغزة-ليلة-الجمعة.html
|
||||
#
|
||||
# Our brief summary:
|
||||
# https://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html
|
||||
@@ -3313,7 +3325,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# time from midnight on Friday, March 29, 2013" (translated).
|
||||
# [These are in Arabic and are for Gaza and for Ramallah, respectively.]
|
||||
# http://www.samanews.com/index.php?act=Show&id=154120
|
||||
# http://safa.ps/details/news/99844/%D8%B1%D8%A7%D9%85-%D8%A7%D9%84%D9%84%D9%87-%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-29-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A.html
|
||||
# http://safa.ps/details/news/99844/رام-الله-بدء-التوقيت-الصيفي-29-الجاري.html
|
||||
|
||||
# From Steffen Thorsen (2013-09-24):
|
||||
# The Gaza and West Bank are ending DST Thursday at midnight
|
||||
@@ -3411,9 +3423,41 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
|
||||
# (2022-08-31): ... the Saturday before the last Sunday in March and October
|
||||
# at 2:00 AM ,for the years from 2023 to 2026.
|
||||
# (2022-09-05): https://mtit.pna.ps/Site/New/1453
|
||||
|
||||
# From Heba Hamad (2023-03-22):
|
||||
# ... summer time will begin in Palestine from Saturday 04-29-2023,
|
||||
# 02:00 AM by 60 minutes forward.
|
||||
#
|
||||
# From Paul Eggert (2022-08-31):
|
||||
# For now, assume that this rule will also be used after 2026.
|
||||
# From Paul Eggert (2023-03-22):
|
||||
# For now, guess that spring and fall transitions will normally
|
||||
# continue to use 2022's rules, that during DST Palestine will switch
|
||||
# to standard time at 02:00 the last Saturday before Ramadan and back
|
||||
# to DST at 02:00 the first Saturday after Ramadan, and that
|
||||
# if the normal spring-forward or fall-back transition occurs during
|
||||
# Ramadan the former is delayed and the latter advanced.
|
||||
# To implement this, I predicted Ramadan-oriented transition dates for
|
||||
# 2023 through 2086 by running the following program under GNU Emacs 28.2,
|
||||
# with the results integrated by hand into the table below.
|
||||
# Predictions after 2086 are approximated without Ramadan.
|
||||
#
|
||||
# (let ((islamic-year 1444))
|
||||
# (require 'cal-islam)
|
||||
# (while (< islamic-year 1510)
|
||||
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
|
||||
# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
|
||||
# (saturday 6))
|
||||
# (while (/= saturday (mod (setq a (1- a)) 7)))
|
||||
# (while (/= saturday (mod b 7))
|
||||
# (setq b (1+ b)))
|
||||
# (setq a (calendar-gregorian-from-absolute a))
|
||||
# (setq b (calendar-gregorian-from-absolute b))
|
||||
# (insert
|
||||
# (format
|
||||
# (concat "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t0\t-\n"
|
||||
# "Rule Palestine\t%d\tonly\t-\t%s\t%2d\t2:00\t1:00\tS\n")
|
||||
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
|
||||
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
|
||||
# (setq islamic-year (+ 1 islamic-year))))
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
|
||||
@@ -3453,8 +3497,86 @@ Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
|
||||
Rule Palestine 2020 only - Oct 24 1:00 0 -
|
||||
Rule Palestine 2021 only - Oct 29 1:00 0 -
|
||||
Rule Palestine 2022 only - Mar 27 0:00 1:00 S
|
||||
Rule Palestine 2022 max - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2023 only - Apr 29 2:00 1:00 S
|
||||
Rule Palestine 2024 only - Apr 13 2:00 1:00 S
|
||||
Rule Palestine 2025 only - Apr 5 2:00 1:00 S
|
||||
Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2036 only - Oct 18 2:00 0 -
|
||||
Rule Palestine 2037 only - Oct 10 2:00 0 -
|
||||
Rule Palestine 2038 only - Sep 25 2:00 0 -
|
||||
Rule Palestine 2039 only - Sep 17 2:00 0 -
|
||||
Rule Palestine 2039 only - Oct 22 2:00 1:00 S
|
||||
Rule Palestine 2039 2067 - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2040 only - Sep 1 2:00 0 -
|
||||
Rule Palestine 2040 only - Oct 13 2:00 1:00 S
|
||||
Rule Palestine 2041 only - Aug 24 2:00 0 -
|
||||
Rule Palestine 2041 only - Sep 28 2:00 1:00 S
|
||||
Rule Palestine 2042 only - Aug 16 2:00 0 -
|
||||
Rule Palestine 2042 only - Sep 20 2:00 1:00 S
|
||||
Rule Palestine 2043 only - Aug 1 2:00 0 -
|
||||
Rule Palestine 2043 only - Sep 12 2:00 1:00 S
|
||||
Rule Palestine 2044 only - Jul 23 2:00 0 -
|
||||
Rule Palestine 2044 only - Aug 27 2:00 1:00 S
|
||||
Rule Palestine 2045 only - Jul 15 2:00 0 -
|
||||
Rule Palestine 2045 only - Aug 19 2:00 1:00 S
|
||||
Rule Palestine 2046 only - Jun 30 2:00 0 -
|
||||
Rule Palestine 2046 only - Aug 11 2:00 1:00 S
|
||||
Rule Palestine 2047 only - Jun 22 2:00 0 -
|
||||
Rule Palestine 2047 only - Jul 27 2:00 1:00 S
|
||||
Rule Palestine 2048 only - Jun 6 2:00 0 -
|
||||
Rule Palestine 2048 only - Jul 18 2:00 1:00 S
|
||||
Rule Palestine 2049 only - May 29 2:00 0 -
|
||||
Rule Palestine 2049 only - Jul 3 2:00 1:00 S
|
||||
Rule Palestine 2050 only - May 21 2:00 0 -
|
||||
Rule Palestine 2050 only - Jun 25 2:00 1:00 S
|
||||
Rule Palestine 2051 only - May 6 2:00 0 -
|
||||
Rule Palestine 2051 only - Jun 17 2:00 1:00 S
|
||||
Rule Palestine 2052 only - Apr 27 2:00 0 -
|
||||
Rule Palestine 2052 only - Jun 1 2:00 1:00 S
|
||||
Rule Palestine 2053 only - Apr 12 2:00 0 -
|
||||
Rule Palestine 2053 only - May 24 2:00 1:00 S
|
||||
Rule Palestine 2054 only - Apr 4 2:00 0 -
|
||||
Rule Palestine 2054 only - May 16 2:00 1:00 S
|
||||
Rule Palestine 2055 only - May 1 2:00 1:00 S
|
||||
Rule Palestine 2056 only - Apr 22 2:00 1:00 S
|
||||
Rule Palestine 2057 only - Apr 7 2:00 1:00 S
|
||||
Rule Palestine 2058 max - Mar Sat<=30 2:00 1:00 S
|
||||
Rule Palestine 2068 only - Oct 20 2:00 0 -
|
||||
Rule Palestine 2069 only - Oct 12 2:00 0 -
|
||||
Rule Palestine 2070 only - Oct 4 2:00 0 -
|
||||
Rule Palestine 2071 only - Sep 19 2:00 0 -
|
||||
Rule Palestine 2072 only - Sep 10 2:00 0 -
|
||||
Rule Palestine 2072 only - Oct 15 2:00 1:00 S
|
||||
Rule Palestine 2073 only - Sep 2 2:00 0 -
|
||||
Rule Palestine 2073 only - Oct 7 2:00 1:00 S
|
||||
Rule Palestine 2074 only - Aug 18 2:00 0 -
|
||||
Rule Palestine 2074 only - Sep 29 2:00 1:00 S
|
||||
Rule Palestine 2075 only - Aug 10 2:00 0 -
|
||||
Rule Palestine 2075 only - Sep 14 2:00 1:00 S
|
||||
Rule Palestine 2075 max - Oct Sat<=30 2:00 0 -
|
||||
Rule Palestine 2076 only - Jul 25 2:00 0 -
|
||||
Rule Palestine 2076 only - Sep 5 2:00 1:00 S
|
||||
Rule Palestine 2077 only - Jul 17 2:00 0 -
|
||||
Rule Palestine 2077 only - Aug 28 2:00 1:00 S
|
||||
Rule Palestine 2078 only - Jul 9 2:00 0 -
|
||||
Rule Palestine 2078 only - Aug 13 2:00 1:00 S
|
||||
Rule Palestine 2079 only - Jun 24 2:00 0 -
|
||||
Rule Palestine 2079 only - Aug 5 2:00 1:00 S
|
||||
Rule Palestine 2080 only - Jun 15 2:00 0 -
|
||||
Rule Palestine 2080 only - Jul 20 2:00 1:00 S
|
||||
Rule Palestine 2081 only - Jun 7 2:00 0 -
|
||||
Rule Palestine 2081 only - Jul 12 2:00 1:00 S
|
||||
Rule Palestine 2082 only - May 23 2:00 0 -
|
||||
Rule Palestine 2082 only - Jul 4 2:00 1:00 S
|
||||
Rule Palestine 2083 only - May 15 2:00 0 -
|
||||
Rule Palestine 2083 only - Jun 19 2:00 1:00 S
|
||||
Rule Palestine 2084 only - Apr 29 2:00 0 -
|
||||
Rule Palestine 2084 only - Jun 10 2:00 1:00 S
|
||||
Rule Palestine 2085 only - Apr 21 2:00 0 -
|
||||
Rule Palestine 2085 only - Jun 2 2:00 1:00 S
|
||||
Rule Palestine 2086 only - Apr 13 2:00 0 -
|
||||
Rule Palestine 2086 only - May 18 2:00 1:00 S
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
|
||||
@@ -3543,14 +3665,18 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
|
||||
9:00 - JST 1944 Nov
|
||||
8:00 Phil P%sT
|
||||
|
||||
# Bahrain
|
||||
# Qatar
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha
|
||||
4:00 - +04 1972 Jun
|
||||
3:00 - +03
|
||||
Link Asia/Qatar Asia/Bahrain
|
||||
|
||||
# Kuwait
|
||||
# Saudi Arabia
|
||||
# Yemen
|
||||
#
|
||||
# Japan's year-round bases in Antarctica match this since 1970.
|
||||
#
|
||||
# From Paul Eggert (2018-08-29):
|
||||
# Time in Saudi Arabia and other countries in the Arabian peninsula was not
|
||||
@@ -3595,9 +3721,6 @@ Link Asia/Qatar Asia/Bahrain
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14
|
||||
3:00 - +03
|
||||
Link Asia/Riyadh Antarctica/Syowa
|
||||
Link Asia/Riyadh Asia/Aden # Yemen
|
||||
Link Asia/Riyadh Asia/Kuwait
|
||||
|
||||
# Singapore
|
||||
# taken from Mok Ly Yng (2003-10-30)
|
||||
@@ -3610,9 +3733,8 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1
|
||||
7:20 - +0720 1941 Sep 1
|
||||
7:30 - +0730 1942 Feb 16
|
||||
9:00 - +09 1945 Sep 12
|
||||
7:30 - +0730 1982 Jan 1
|
||||
7:30 - +0730 1981 Dec 31 16:00u
|
||||
8:00 - +08
|
||||
Link Asia/Singapore Asia/Kuala_Lumpur
|
||||
|
||||
# Spratly Is
|
||||
# no information
|
||||
@@ -3658,7 +3780,7 @@ Link Asia/Singapore Asia/Kuala_Lumpur
|
||||
# standard time is SLST.
|
||||
#
|
||||
# From Paul Eggert (2016-10-18):
|
||||
# "SLST" seems to be reasonably recent and rarely-used outside time
|
||||
# "SLST" seems to be reasonably recent and rarely used outside time
|
||||
# zone nerd sources. I searched Google News and found three uses of
|
||||
# it in the International Business Times of India in February and
|
||||
# March of this year when discussing cricket match times, but nothing
|
||||
@@ -3858,14 +3980,15 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
|
||||
5:00 1:00 +06 1991 Sep 9 2:00s
|
||||
5:00 - +05
|
||||
|
||||
# Cambodia
|
||||
# Christmas I
|
||||
# Laos
|
||||
# Thailand
|
||||
# Vietnam (northern)
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Bangkok 6:42:04 - LMT 1880
|
||||
6:42:04 - BMT 1920 Apr # Bangkok Mean Time
|
||||
7:00 - +07
|
||||
Link Asia/Bangkok Asia/Phnom_Penh # Cambodia
|
||||
Link Asia/Bangkok Asia/Vientiane # Laos
|
||||
Link Asia/Bangkok Indian/Christmas
|
||||
|
||||
# Turkmenistan
|
||||
# From Shanks & Pottenger.
|
||||
@@ -3876,13 +3999,15 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad
|
||||
4:00 RussiaAsia +04/+05 1992 Jan 19 2:00
|
||||
5:00 - +05
|
||||
|
||||
# Oman
|
||||
# Réunion
|
||||
# Seychelles
|
||||
# United Arab Emirates
|
||||
#
|
||||
# The Crozet Is also observe Réunion time; see the 'antarctica' file.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Dubai 3:41:12 - LMT 1920
|
||||
4:00 - +04
|
||||
Link Asia/Dubai Asia/Muscat # Oman
|
||||
Link Asia/Dubai Indian/Mahe
|
||||
Link Asia/Dubai Indian/Reunion
|
||||
|
||||
# Uzbekistan
|
||||
# Byalokoz 1919 says Uzbekistan was 4:27:53.
|
||||
@@ -3902,7 +4027,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
|
||||
5:00 RussiaAsia +05/+06 1992
|
||||
5:00 - +05
|
||||
|
||||
# Vietnam
|
||||
# Vietnam (southern)
|
||||
|
||||
# From Paul Eggert (2014-10-04):
|
||||
# Milne gives 7:16:56 for the meridian of Saigon in 1899, as being
|
||||
@@ -3976,7 +4101,3 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1
|
||||
# For timestamps in north Vietnam back to 1970 (the tzdb cutoff),
|
||||
# use Asia/Bangkok; see the VN entries in the file zone1970.tab.
|
||||
# For timestamps before 1970, see Asia/Hanoi in the file 'backzone'.
|
||||
|
||||
|
||||
# Yemen
|
||||
# See Asia/Riyadh.
|
||||
+39
-61
@@ -251,13 +251,6 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov
|
||||
10:00 1:00 AEDT 2011
|
||||
10:00 AT AE%sT
|
||||
|
||||
# Christmas
|
||||
# See Asia/Bangkok.
|
||||
|
||||
# Cocos (Keeling) Is
|
||||
# See Asia/Yangon.
|
||||
|
||||
|
||||
# Fiji
|
||||
|
||||
# Milne gives 11:55:44 for Suva.
|
||||
@@ -330,7 +323,7 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov
|
||||
|
||||
# From Steffen Thorsen (2013-01-10):
|
||||
# Fiji will end DST on 2014-01-19 02:00:
|
||||
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-%281%29.aspx
|
||||
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-(1).aspx
|
||||
|
||||
# From Ken Rylander (2014-10-20):
|
||||
# DST will start Nov. 2 this year.
|
||||
@@ -393,8 +386,14 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov
|
||||
# concerned shifting arrival and departure times, which may look like a simple
|
||||
# thing but requires some significant logistical adjustments domestically and
|
||||
# internationally."
|
||||
# Assume for now that DST will resume with the recent pre-2020 rules for the
|
||||
# 2022/2023 season.
|
||||
|
||||
# From Shalvin Narayan (2022-10-27):
|
||||
# Please note that there will not be any daylight savings time change
|
||||
# in Fiji for 2022-2023....
|
||||
# https://www.facebook.com/FijianGovernment/posts/pfbid0mmWVTYmTibn66ybpFda75pDcf34SSpoSaskJW5gXwaKo5Sgc7273Q4fXWc6kQV6Hl
|
||||
#
|
||||
# From Paul Eggert (2022-10-27):
|
||||
# For now, assume DST is suspended indefinitely.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
|
||||
@@ -409,8 +408,6 @@ Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
|
||||
Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
|
||||
Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
|
||||
Rule Fiji 2020 only - Dec 20 2:00 1:00 -
|
||||
Rule Fiji 2022 max - Nov Sun>=8 2:00 1:00 -
|
||||
Rule Fiji 2023 max - Jan Sun>=12 3:00 0 -
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
|
||||
12:00 Fiji +12/+13
|
||||
@@ -426,7 +423,9 @@ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete
|
||||
# Clipperton (near North America) is administered from French Polynesia;
|
||||
# it is uninhabited.
|
||||
|
||||
|
||||
# Guam
|
||||
# N Mariana Is
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
# http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
|
||||
@@ -466,17 +465,20 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31
|
||||
9:00 - +09 1944 Jul 31
|
||||
10:00 Guam G%sT 2000 Dec 23
|
||||
10:00 - ChST # Chamorro Standard Time
|
||||
Link Pacific/Guam Pacific/Saipan # N Mariana Is
|
||||
|
||||
# Kiribati
|
||||
|
||||
# Kiribati (Gilbert Is)
|
||||
# Marshall Is
|
||||
# Tuvalu
|
||||
# Wake
|
||||
# Wallis & Futuna
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki
|
||||
12:00 - +12
|
||||
Link Pacific/Tarawa Pacific/Funafuti
|
||||
Link Pacific/Tarawa Pacific/Majuro
|
||||
Link Pacific/Tarawa Pacific/Wake
|
||||
Link Pacific/Tarawa Pacific/Wallis
|
||||
|
||||
# Kiribati (except Gilbert Is)
|
||||
# See Pacific/Tarawa for the Gilbert Is.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Kanton 0 - -00 1937 Aug 31
|
||||
-12:00 - -12 1979 Oct
|
||||
-11:00 - -11 1994 Dec 31
|
||||
@@ -486,9 +488,6 @@ Zone Pacific/Kiritimati -10:29:20 - LMT 1901
|
||||
-10:00 - -10 1994 Dec 31
|
||||
14:00 - +14
|
||||
|
||||
# N Mariana Is
|
||||
# See Pacific/Guam.
|
||||
|
||||
# Marshall Is
|
||||
# See Pacific/Tarawa for most locations.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
@@ -538,6 +537,7 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa
|
||||
###############################################################################
|
||||
|
||||
# New Zealand
|
||||
# McMurdo Station and Scott Base in Antarctica use Auckland time.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule NZ 1927 only - Nov 6 2:00 1:00 S
|
||||
@@ -573,7 +573,6 @@ Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
|
||||
Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2
|
||||
11:30 NZ NZ%sT 1946 Jan 1
|
||||
12:00 NZ NZ%sT
|
||||
Link Pacific/Auckland Antarctica/McMurdo
|
||||
|
||||
Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2
|
||||
12:15 - +1215 1946 Jan 1
|
||||
@@ -672,8 +671,6 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror
|
||||
Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
|
||||
9:48:32 - PMMT 1895 # Port Moresby Mean Time
|
||||
10:00 - +10
|
||||
Link Pacific/Port_Moresby Antarctica/DumontDUrville
|
||||
Link Pacific/Port_Moresby Pacific/Chuuk
|
||||
#
|
||||
# From Paul Eggert (2014-10-13):
|
||||
# Base the Bougainville entry on the Arawa-Kieta region, which appears to have
|
||||
@@ -706,10 +703,10 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown
|
||||
-8:00 - -08
|
||||
|
||||
# American Samoa
|
||||
# Midway
|
||||
Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5
|
||||
-11:22:48 - LMT 1911
|
||||
-11:00 - SST # S=Samoa
|
||||
Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
|
||||
|
||||
# Samoa (formerly and also known as Western Samoa)
|
||||
|
||||
@@ -726,7 +723,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
|
||||
#
|
||||
# Samoa's Daylight Saving Time Act 2009 is available here, but does not
|
||||
# contain any dates:
|
||||
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
|
||||
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20(English)%20-%20Final%207-7-091.pdf
|
||||
|
||||
# From Laupue Raymond Hughes (2010-10-07):
|
||||
# Please see
|
||||
@@ -801,7 +798,6 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara
|
||||
11:00 - +11
|
||||
Link Pacific/Guadalcanal Pacific/Pohnpei
|
||||
|
||||
# Tokelau
|
||||
#
|
||||
@@ -841,9 +837,6 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10
|
||||
13:00 - +13 1999
|
||||
13:00 Tonga +13/+14
|
||||
|
||||
# Tuvalu
|
||||
# See Pacific/Tarawa.
|
||||
|
||||
|
||||
# US minor outlying islands
|
||||
|
||||
@@ -894,15 +887,9 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10
|
||||
# Kingman
|
||||
# uninhabited
|
||||
|
||||
# Midway
|
||||
# See Pacific/Pago_Pago.
|
||||
|
||||
# Palmyra
|
||||
# uninhabited since World War II; was probably like Pacific/Kiritimati
|
||||
|
||||
# Wake
|
||||
# See Pacific/Tarawa.
|
||||
|
||||
|
||||
# Vanuatu
|
||||
|
||||
@@ -939,9 +926,6 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 -
|
||||
Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
11:00 Vanuatu +11/+12
|
||||
|
||||
# Wallis and Futuna
|
||||
# See Pacific/Tarawa.
|
||||
|
||||
###############################################################################
|
||||
|
||||
# NOTES
|
||||
@@ -1824,7 +1808,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# period. It would probably be reasonable to assume Guam use GMT+9 during
|
||||
# that period of time like the surrounding area.
|
||||
|
||||
# From Paul Eggert (2018-11-18):
|
||||
# From Paul Eggert (2023-01-23):
|
||||
# Howse writes (p 153) "The Spaniards, on the other hand, reached the
|
||||
# Philippines and the Ladrones from America," and implies that the Ladrones
|
||||
# (now called the Marianas) kept American date for quite some time.
|
||||
@@ -1837,7 +1821,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# they did as that avoids the need for a separate zone due to our 1970 cutoff.
|
||||
#
|
||||
# US Public Law 106-564 (2000-12-23) made UT +10 the official standard time,
|
||||
# under the name "Chamorro Standard Time". There is no official abbreviation,
|
||||
# under the name "Chamorro standard time". There is no official abbreviation,
|
||||
# but Congressman Robert A. Underwood, author of the bill that became law,
|
||||
# wrote in a press release (2000-12-27) that he will seek the use of "ChST".
|
||||
|
||||
@@ -2215,24 +2199,18 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
|
||||
# an international standard, there are some places on the high seas where the
|
||||
# correct date is ambiguous.
|
||||
|
||||
# From Wikipedia <https://en.wikipedia.org/wiki/Time_zone> (2005-08-31):
|
||||
# Before 1920, all ships kept local apparent time on the high seas by setting
|
||||
# their clocks at night or at the morning sight so that, given the ship's
|
||||
# speed and direction, it would be 12 o'clock when the Sun crossed the ship's
|
||||
# meridian (12 o'clock = local apparent noon). During 1917, at the
|
||||
# Anglo-French Conference on Time-keeping at Sea, it was recommended that all
|
||||
# ships, both military and civilian, should adopt hourly standard time zones
|
||||
# on the high seas. Whenever a ship was within the territorial waters of any
|
||||
# nation it would use that nation's standard time. The captain was permitted
|
||||
# to change his ship's clocks at a time of his choice following his ship's
|
||||
# entry into another zone time - he often chose midnight. These zones were
|
||||
# adopted by all major fleets between 1920 and 1925 but not by many
|
||||
# independent merchant ships until World War II.
|
||||
# From Wikipedia <https://en.wikipedia.org/wiki/Nautical_time> (2023-01-23):
|
||||
# The nautical time zone system is analogous to the terrestrial time zone
|
||||
# system for use on high seas. Under the system time changes are required for
|
||||
# changes of longitude in one-hour steps. The one-hour step corresponds to a
|
||||
# time zone width of 15° longitude. The 15° gore that is offset from GMT or
|
||||
# UT1 (not UTC) by twelve hours is bisected by the nautical date line into two
|
||||
# 7°30' gores that differ from GMT by ±12 hours. A nautical date line is
|
||||
# implied but not explicitly drawn on time zone maps. It follows the 180th
|
||||
# meridian except where it is interrupted by territorial waters adjacent to
|
||||
# land, forming gaps: it is a pole-to-pole dashed line.
|
||||
|
||||
# From Paul Eggert, using references suggested by Oscar van Vlijmen
|
||||
# (2005-03-20):
|
||||
#
|
||||
# The American Practical Navigator (2002)
|
||||
# http://pollux.nss.nima.mil/pubs/pubs_j_apn_sections.html?rid=187
|
||||
# talks only about the 180-degree meridian with respect to ships in
|
||||
# international waters; it ignores the international date line.
|
||||
# From Paul Eggert (2023-01-23):
|
||||
# The American Practical Navigator <https://msi.nga.mil/Publications/APN>,
|
||||
# 2019 edition, merely says that the International Date Line
|
||||
# "coincides with the 180th meridian over most of its length."
|
||||
+234
-59
@@ -4,7 +4,7 @@
|
||||
# 2009-05-17 by Arthur David Olson.
|
||||
|
||||
# This file provides links from old or merged timezone names to current ones.
|
||||
# Many names changed in late 1993, and many merged names moved here
|
||||
# Many names changed in 1993 and in 1995, and many merged names moved here
|
||||
# in the period from 2013 through 2022. Several of these names are
|
||||
# also present in the file 'backzone', which has data important only
|
||||
# for pre-1970 timestamps and so is out of scope for tzdb proper.
|
||||
@@ -13,50 +13,24 @@
|
||||
# building with 'make BACKWARD=', in practice downstream users
|
||||
# typically use this file for backward compatibility.
|
||||
|
||||
# Link TARGET LINK-NAME
|
||||
Link Africa/Nairobi Africa/Asmera
|
||||
Link Africa/Abidjan Africa/Timbuktu
|
||||
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||
Link America/Adak America/Atka
|
||||
Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||
Link America/Argentina/Catamarca America/Catamarca
|
||||
Link America/Panama America/Coral_Harbour
|
||||
Link America/Argentina/Cordoba America/Cordoba
|
||||
Link America/Tijuana America/Ensenada
|
||||
Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||
Link America/Nuuk America/Godthab
|
||||
Link America/Indiana/Indianapolis America/Indianapolis
|
||||
Link America/Argentina/Jujuy America/Jujuy
|
||||
Link America/Indiana/Knox America/Knox_IN
|
||||
Link America/Kentucky/Louisville America/Louisville
|
||||
Link America/Argentina/Mendoza America/Mendoza
|
||||
Link America/Toronto America/Montreal
|
||||
Link America/Rio_Branco America/Porto_Acre
|
||||
Link America/Argentina/Cordoba America/Rosario
|
||||
Link America/Tijuana America/Santa_Isabel
|
||||
Link America/Denver America/Shiprock
|
||||
Link America/Puerto_Rico America/Virgin
|
||||
Link Pacific/Auckland Antarctica/South_Pole
|
||||
Link Asia/Ashgabat Asia/Ashkhabad
|
||||
Link Asia/Kolkata Asia/Calcutta
|
||||
Link Asia/Shanghai Asia/Chongqing
|
||||
Link Asia/Shanghai Asia/Chungking
|
||||
Link Asia/Dhaka Asia/Dacca
|
||||
Link Asia/Shanghai Asia/Harbin
|
||||
Link Asia/Urumqi Asia/Kashgar
|
||||
Link Asia/Kathmandu Asia/Katmandu
|
||||
Link Asia/Macau Asia/Macao
|
||||
Link Asia/Yangon Asia/Rangoon
|
||||
Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||
Link Asia/Jerusalem Asia/Tel_Aviv
|
||||
Link Asia/Thimphu Asia/Thimbu
|
||||
Link Asia/Makassar Asia/Ujung_Pandang
|
||||
Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||
Link Atlantic/Faroe Atlantic/Faeroe
|
||||
Link Europe/Berlin Atlantic/Jan_Mayen
|
||||
Link Australia/Sydney Australia/ACT
|
||||
Link Australia/Sydney Australia/Canberra
|
||||
Link Australia/Hobart Australia/Currie
|
||||
# This file is divided into sections, one for each major reason for a
|
||||
# backward compatibility link. Each section is sorted by link name.
|
||||
|
||||
# A "#= TARGET1" comment labels each link inserted only because some
|
||||
# .zi parsers (including tzcode through 2022e) mishandle links to links.
|
||||
# The comment says what the target would be if these parsers were fixed
|
||||
# so that data could contain links to links. For example, the line
|
||||
# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be
|
||||
# "Link Australia/Canberra Australia/ACT" were it not that data lines
|
||||
# refrain from linking to links like Australia/Canberra, which means
|
||||
# the Australia/ACT line links instead to Australia/Sydney,
|
||||
# Australia/Canberra's target.
|
||||
|
||||
|
||||
# Pre-1993 naming conventions
|
||||
|
||||
# Link TARGET LINK-NAME #= TARGET1
|
||||
Link Australia/Sydney Australia/ACT #= Australia/Canberra
|
||||
Link Australia/Lord_Howe Australia/LHI
|
||||
Link Australia/Sydney Australia/NSW
|
||||
Link Australia/Darwin Australia/North
|
||||
@@ -66,7 +40,7 @@ Link Australia/Hobart Australia/Tasmania
|
||||
Link Australia/Melbourne Australia/Victoria
|
||||
Link Australia/Perth Australia/West
|
||||
Link Australia/Broken_Hill Australia/Yancowinna
|
||||
Link America/Rio_Branco Brazil/Acre
|
||||
Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre
|
||||
Link America/Noronha Brazil/DeNoronha
|
||||
Link America/Sao_Paulo Brazil/East
|
||||
Link America/Manaus Brazil/West
|
||||
@@ -86,20 +60,36 @@ Link Pacific/Easter Chile/EasterIsland
|
||||
Link America/Havana Cuba
|
||||
Link Africa/Cairo Egypt
|
||||
Link Europe/Dublin Eire
|
||||
# Vanguard section, for most .zi parsers.
|
||||
#Link GMT Etc/GMT
|
||||
#Link GMT Etc/GMT+0
|
||||
#Link GMT Etc/GMT-0
|
||||
#Link GMT Etc/GMT0
|
||||
#Link GMT Etc/Greenwich
|
||||
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||
Link Etc/GMT Etc/GMT+0
|
||||
Link Etc/GMT Etc/GMT-0
|
||||
Link Etc/GMT Etc/GMT0
|
||||
Link Etc/GMT Etc/Greenwich
|
||||
# End of rearguard section.
|
||||
Link Etc/UTC Etc/UCT
|
||||
Link Europe/London Europe/Belfast
|
||||
Link Europe/Kyiv Europe/Kiev
|
||||
Link Europe/Chisinau Europe/Tiraspol
|
||||
Link Europe/Kyiv Europe/Uzhgorod
|
||||
Link Europe/Kyiv Europe/Zaporozhye
|
||||
Link Etc/UTC Etc/Universal
|
||||
Link Etc/UTC Etc/Zulu
|
||||
Link Europe/London GB
|
||||
Link Europe/London GB-Eire
|
||||
# Vanguard section, for most .zi parsers.
|
||||
#Link GMT GMT+0
|
||||
#Link GMT GMT-0
|
||||
#Link GMT GMT0
|
||||
#Link GMT Greenwich
|
||||
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||
Link Etc/GMT GMT+0
|
||||
Link Etc/GMT GMT-0
|
||||
Link Etc/GMT GMT0
|
||||
Link Etc/GMT Greenwich
|
||||
# End of rearguard section.
|
||||
Link Asia/Hong_Kong Hongkong
|
||||
Link Africa/Abidjan Iceland
|
||||
Link Africa/Abidjan Iceland #= Atlantic/Reykjavik
|
||||
Link Asia/Tehran Iran
|
||||
Link Asia/Jerusalem Israel
|
||||
Link America/Jamaica Jamaica
|
||||
@@ -111,14 +101,8 @@ Link America/Mazatlan Mexico/BajaSur
|
||||
Link America/Mexico_City Mexico/General
|
||||
Link Pacific/Auckland NZ
|
||||
Link Pacific/Chatham NZ-CHAT
|
||||
Link America/Denver Navajo
|
||||
Link America/Denver Navajo #= America/Shiprock
|
||||
Link Asia/Shanghai PRC
|
||||
Link Pacific/Kanton Pacific/Enderbury
|
||||
Link Pacific/Honolulu Pacific/Johnston
|
||||
Link Pacific/Guadalcanal Pacific/Ponape
|
||||
Link Pacific/Pago_Pago Pacific/Samoa
|
||||
Link Pacific/Port_Moresby Pacific/Truk
|
||||
Link Pacific/Port_Moresby Pacific/Yap
|
||||
Link Europe/Warsaw Poland
|
||||
Link Europe/Lisbon Portugal
|
||||
Link Asia/Taipei ROC
|
||||
@@ -142,3 +126,194 @@ Link Etc/UTC UTC
|
||||
Link Etc/UTC Universal
|
||||
Link Europe/Moscow W-SU
|
||||
Link Etc/UTC Zulu
|
||||
|
||||
|
||||
# Two-part names that were renamed mostly to three-part names in 1995
|
||||
|
||||
# Link TARGET LINK-NAME #= TARGET1
|
||||
Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||
Link America/Argentina/Catamarca America/Catamarca
|
||||
Link America/Argentina/Cordoba America/Cordoba
|
||||
Link America/Indiana/Indianapolis America/Indianapolis
|
||||
Link America/Argentina/Jujuy America/Jujuy
|
||||
Link America/Indiana/Knox America/Knox_IN
|
||||
Link America/Kentucky/Louisville America/Louisville
|
||||
Link America/Argentina/Mendoza America/Mendoza
|
||||
Link America/Puerto_Rico America/Virgin #= America/St_Thomas
|
||||
Link Pacific/Pago_Pago Pacific/Samoa
|
||||
|
||||
|
||||
# Pre-2013 practice, which typically had a Zone per zone.tab line
|
||||
|
||||
# Link TARGET LINK-NAME
|
||||
Link Africa/Abidjan Africa/Accra
|
||||
Link Africa/Nairobi Africa/Addis_Ababa
|
||||
Link Africa/Nairobi Africa/Asmara
|
||||
Link Africa/Abidjan Africa/Bamako
|
||||
Link Africa/Lagos Africa/Bangui
|
||||
Link Africa/Abidjan Africa/Banjul
|
||||
Link Africa/Maputo Africa/Blantyre
|
||||
Link Africa/Lagos Africa/Brazzaville
|
||||
Link Africa/Maputo Africa/Bujumbura
|
||||
Link Africa/Abidjan Africa/Conakry
|
||||
Link Africa/Abidjan Africa/Dakar
|
||||
Link Africa/Nairobi Africa/Dar_es_Salaam
|
||||
Link Africa/Nairobi Africa/Djibouti
|
||||
Link Africa/Lagos Africa/Douala
|
||||
Link Africa/Abidjan Africa/Freetown
|
||||
Link Africa/Maputo Africa/Gaborone
|
||||
Link Africa/Maputo Africa/Harare
|
||||
Link Africa/Nairobi Africa/Kampala
|
||||
Link Africa/Maputo Africa/Kigali
|
||||
Link Africa/Lagos Africa/Kinshasa
|
||||
Link Africa/Lagos Africa/Libreville
|
||||
Link Africa/Abidjan Africa/Lome
|
||||
Link Africa/Lagos Africa/Luanda
|
||||
Link Africa/Maputo Africa/Lubumbashi
|
||||
Link Africa/Maputo Africa/Lusaka
|
||||
Link Africa/Lagos Africa/Malabo
|
||||
Link Africa/Johannesburg Africa/Maseru
|
||||
Link Africa/Johannesburg Africa/Mbabane
|
||||
Link Africa/Nairobi Africa/Mogadishu
|
||||
Link Africa/Lagos Africa/Niamey
|
||||
Link Africa/Abidjan Africa/Nouakchott
|
||||
Link Africa/Abidjan Africa/Ouagadougou
|
||||
Link Africa/Lagos Africa/Porto-Novo
|
||||
Link America/Puerto_Rico America/Anguilla
|
||||
Link America/Puerto_Rico America/Antigua
|
||||
Link America/Puerto_Rico America/Aruba
|
||||
Link America/Panama America/Atikokan
|
||||
Link America/Puerto_Rico America/Blanc-Sablon
|
||||
Link America/Panama America/Cayman
|
||||
Link America/Phoenix America/Creston
|
||||
Link America/Puerto_Rico America/Curacao
|
||||
Link America/Puerto_Rico America/Dominica
|
||||
Link America/Puerto_Rico America/Grenada
|
||||
Link America/Puerto_Rico America/Guadeloupe
|
||||
Link America/Puerto_Rico America/Kralendijk
|
||||
Link America/Puerto_Rico America/Lower_Princes
|
||||
Link America/Puerto_Rico America/Marigot
|
||||
Link America/Puerto_Rico America/Montserrat
|
||||
Link America/Toronto America/Nassau
|
||||
Link America/Puerto_Rico America/Port_of_Spain
|
||||
Link America/Puerto_Rico America/St_Barthelemy
|
||||
Link America/Puerto_Rico America/St_Kitts
|
||||
Link America/Puerto_Rico America/St_Lucia
|
||||
Link America/Puerto_Rico America/St_Thomas
|
||||
Link America/Puerto_Rico America/St_Vincent
|
||||
Link America/Puerto_Rico America/Tortola
|
||||
Link Pacific/Port_Moresby Antarctica/DumontDUrville
|
||||
Link Pacific/Auckland Antarctica/McMurdo
|
||||
Link Asia/Riyadh Antarctica/Syowa
|
||||
Link Asia/Urumqi Antarctica/Vostok
|
||||
Link Europe/Berlin Arctic/Longyearbyen
|
||||
Link Asia/Riyadh Asia/Aden
|
||||
Link Asia/Qatar Asia/Bahrain
|
||||
Link Asia/Kuching Asia/Brunei
|
||||
Link Asia/Singapore Asia/Kuala_Lumpur
|
||||
Link Asia/Riyadh Asia/Kuwait
|
||||
Link Asia/Dubai Asia/Muscat
|
||||
Link Asia/Bangkok Asia/Phnom_Penh
|
||||
Link Asia/Bangkok Asia/Vientiane
|
||||
Link Africa/Abidjan Atlantic/Reykjavik
|
||||
Link Africa/Abidjan Atlantic/St_Helena
|
||||
Link Europe/Brussels Europe/Amsterdam
|
||||
Link Europe/Prague Europe/Bratislava
|
||||
Link Europe/Zurich Europe/Busingen
|
||||
Link Europe/Berlin Europe/Copenhagen
|
||||
Link Europe/London Europe/Guernsey
|
||||
Link Europe/London Europe/Isle_of_Man
|
||||
Link Europe/London Europe/Jersey
|
||||
Link Europe/Belgrade Europe/Ljubljana
|
||||
Link Europe/Brussels Europe/Luxembourg
|
||||
Link Europe/Helsinki Europe/Mariehamn
|
||||
Link Europe/Paris Europe/Monaco
|
||||
Link Europe/Berlin Europe/Oslo
|
||||
Link Europe/Belgrade Europe/Podgorica
|
||||
Link Europe/Rome Europe/San_Marino
|
||||
Link Europe/Belgrade Europe/Sarajevo
|
||||
Link Europe/Belgrade Europe/Skopje
|
||||
Link Europe/Berlin Europe/Stockholm
|
||||
Link Europe/Zurich Europe/Vaduz
|
||||
Link Europe/Rome Europe/Vatican
|
||||
Link Europe/Belgrade Europe/Zagreb
|
||||
Link Africa/Nairobi Indian/Antananarivo
|
||||
Link Asia/Bangkok Indian/Christmas
|
||||
Link Asia/Yangon Indian/Cocos
|
||||
Link Africa/Nairobi Indian/Comoro
|
||||
Link Indian/Maldives Indian/Kerguelen
|
||||
Link Asia/Dubai Indian/Mahe
|
||||
Link Africa/Nairobi Indian/Mayotte
|
||||
Link Asia/Dubai Indian/Reunion
|
||||
Link Pacific/Port_Moresby Pacific/Chuuk
|
||||
Link Pacific/Tarawa Pacific/Funafuti
|
||||
Link Pacific/Tarawa Pacific/Majuro
|
||||
Link Pacific/Pago_Pago Pacific/Midway
|
||||
Link Pacific/Guadalcanal Pacific/Pohnpei
|
||||
Link Pacific/Guam Pacific/Saipan
|
||||
Link Pacific/Tarawa Pacific/Wake
|
||||
Link Pacific/Tarawa Pacific/Wallis
|
||||
|
||||
|
||||
# Non-zone.tab locations with timestamps since 1970 that duplicate
|
||||
# those of an existing location
|
||||
|
||||
# Link TARGET LINK-NAME
|
||||
Link Africa/Abidjan Africa/Timbuktu
|
||||
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||
Link America/Adak America/Atka
|
||||
Link America/Panama America/Coral_Harbour
|
||||
Link America/Tijuana America/Ensenada
|
||||
Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||
Link America/Toronto America/Montreal
|
||||
Link America/Toronto America/Nipigon
|
||||
Link America/Iqaluit America/Pangnirtung
|
||||
Link America/Rio_Branco America/Porto_Acre
|
||||
Link America/Winnipeg America/Rainy_River
|
||||
Link America/Argentina/Cordoba America/Rosario
|
||||
Link America/Tijuana America/Santa_Isabel
|
||||
Link America/Denver America/Shiprock
|
||||
Link America/Toronto America/Thunder_Bay
|
||||
Link America/Edmonton America/Yellowknife
|
||||
Link Pacific/Auckland Antarctica/South_Pole
|
||||
Link Asia/Shanghai Asia/Chongqing
|
||||
Link Asia/Shanghai Asia/Harbin
|
||||
Link Asia/Urumqi Asia/Kashgar
|
||||
Link Asia/Jerusalem Asia/Tel_Aviv
|
||||
Link Europe/Berlin Atlantic/Jan_Mayen
|
||||
Link Australia/Sydney Australia/Canberra
|
||||
Link Australia/Hobart Australia/Currie
|
||||
Link Europe/London Europe/Belfast
|
||||
Link Europe/Chisinau Europe/Tiraspol
|
||||
Link Europe/Kyiv Europe/Uzhgorod
|
||||
Link Europe/Kyiv Europe/Zaporozhye
|
||||
Link Pacific/Kanton Pacific/Enderbury
|
||||
Link Pacific/Honolulu Pacific/Johnston
|
||||
Link Pacific/Port_Moresby Pacific/Yap
|
||||
|
||||
|
||||
# Alternate names for the same location
|
||||
|
||||
# Link TARGET LINK-NAME #= TARGET1
|
||||
Link Africa/Nairobi Africa/Asmera #= Africa/Asmara
|
||||
Link America/Nuuk America/Godthab
|
||||
Link Asia/Ashgabat Asia/Ashkhabad
|
||||
Link Asia/Kolkata Asia/Calcutta
|
||||
Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing
|
||||
Link Asia/Dhaka Asia/Dacca
|
||||
# Istanbul is in both continents.
|
||||
Link Europe/Istanbul Asia/Istanbul
|
||||
Link Asia/Kathmandu Asia/Katmandu
|
||||
Link Asia/Macau Asia/Macao
|
||||
Link Asia/Yangon Asia/Rangoon
|
||||
Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||
Link Asia/Thimphu Asia/Thimbu
|
||||
Link Asia/Makassar Asia/Ujung_Pandang
|
||||
Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||
Link Atlantic/Faroe Atlantic/Faeroe
|
||||
Link Europe/Kyiv Europe/Kiev
|
||||
# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72.
|
||||
# However, for various reasons many users expect to find it under Europe.
|
||||
Link Asia/Nicosia Europe/Nicosia
|
||||
Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei
|
||||
Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk
|
||||
+131
-4
@@ -7,6 +7,10 @@
|
||||
# [email protected] for general use in the future). For more, please see
|
||||
# the file CONTRIBUTING in the tz distribution.
|
||||
|
||||
# When proposing changes to this file, please use 'git format-patch'
|
||||
# format, either by attaching the resulting .patch file to your email,
|
||||
# or by using 'git send-email'. This will help maintainers save time.
|
||||
|
||||
|
||||
# From Paul Eggert (2014-10-31):
|
||||
|
||||
@@ -165,7 +169,7 @@ Zone Africa/Accra -0:00:52 - LMT 1915 Nov 2
|
||||
# 12-hour clock starting at our 06:00, so their "8 o'clock" is our
|
||||
# 02:00 or 14:00. Keep this in mind when you ask the time in Amharic.
|
||||
#
|
||||
# Shanks & Pottenger write that Ethiopia had six narrowly-spaced time
|
||||
# Shanks & Pottenger write that Ethiopia had six narrowly spaced time
|
||||
# zones between 1870 and 1890, that they merged to 38E50 (2:35:20) in
|
||||
# 1890, and that they switched to 3:00 on 1936-05-05. Perhaps 38E50
|
||||
# was for Adis Dera. Quite likely the Shanks data entries are wrong
|
||||
@@ -495,7 +499,7 @@ Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad
|
||||
# ever since standard time was introduced, but the information from
|
||||
# McKinnon sounds more authoritative. For now, assume that Atikokan
|
||||
# switched to EST immediately after WWII era daylight saving time
|
||||
# ended. This matches the old (less-populous) America/Coral_Harbour
|
||||
# ended. This matches the old (less populous) America/Coral_Harbour
|
||||
# entry since our cutoff date of 1970, so we can move
|
||||
# America/Coral_Harbour to the 'backward' file.
|
||||
|
||||
@@ -739,6 +743,66 @@ Zone America/Nassau -5:09:30 - LMT 1912 Mar 2
|
||||
-5:00 Bahamas E%sT 1976
|
||||
-5:00 US E%sT
|
||||
|
||||
# Canada
|
||||
# From Chris Walton (2022-10-15):
|
||||
# I would also like to see America/Nipigon and America/Rainy_River converted
|
||||
# into link entries because I have zero faith in the current Shanks based data.
|
||||
# From Paul Eggert (2022-10-15):
|
||||
# These are now links in the primary data. Also see America/Thunder_Bay.
|
||||
Zone America/Nipigon -5:53:04 - LMT 1895
|
||||
-5:00 Canada E%sT 1940 Sep 29
|
||||
-5:00 1:00 EDT 1942 Feb 9 2:00s
|
||||
-5:00 Canada E%sT
|
||||
|
||||
# From Rives McDow (1999-11-08):
|
||||
# On October 31, when the rest of Nunavut went to Central time,
|
||||
# Pangnirtung wobbled. Here is the result of their wobble:
|
||||
#
|
||||
# The following businesses and organizations in Pangnirtung use Central Time:
|
||||
#
|
||||
# First Air, Power Corp, Nunavut Construction, Health Center, RCMP,
|
||||
# Eastern Arctic National Parks, A & D Specialist
|
||||
#
|
||||
# The following businesses and organizations in Pangnirtung use Eastern Time:
|
||||
#
|
||||
# Hamlet office, All other businesses, Both schools, Airport operator
|
||||
#
|
||||
# This has made for an interesting situation there, which warranted the news.
|
||||
# No one there that I spoke with seems concerned, or has plans to
|
||||
# change the local methods of keeping time, as it evidently does not
|
||||
# really interfere with any activities or make things difficult locally.
|
||||
# They plan to celebrate New Year's turn-over twice, one hour apart,
|
||||
# so it appears that the situation will last at least that long.
|
||||
# The Nunavut Intergovernmental Affairs hopes that they will "come to
|
||||
# their senses", but the locals evidently don't see any problem with
|
||||
# the current state of affairs.
|
||||
|
||||
# From Michaela Rodrigue, writing in the
|
||||
# Nunatsiaq News (1999-11-19):
|
||||
# http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html
|
||||
# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones,
|
||||
# central - or Nunavut time - for government offices, and eastern time
|
||||
# for municipal offices and schools.... Igloolik [was similar but then]
|
||||
# made the switch to central time on Saturday, Nov. 6.
|
||||
|
||||
# From Chris Walton (2022-11-06):
|
||||
# The implication is that Pangnirtung and Qikiqtarjuaq have observed Eastern
|
||||
# Time as far back as 1984 (and likely even further back than that).
|
||||
# It is possible that these communities never actually observed Atlantic
|
||||
# Time, but that would be difficult to prove.
|
||||
# From Paul Eggert (2022-11-06):
|
||||
# This is in 'backzone' as we have no good evidence that Pangnirtung differs
|
||||
# from America/Iqaluit since 1970. A Google Books snippet view of
|
||||
# volume 2, page 186 of "Pilot of Arctic Canada", published 1959 by
|
||||
# the Canadian Hydrographic Service, suggests (though does not state)
|
||||
# that Pangnirtung observed EST then.
|
||||
#
|
||||
# aka Panniqtuuq
|
||||
Zone America/Pangnirtung 0 - -00 1921 # trading post est.
|
||||
-5:00 NT_YK E%sT 1999 Oct 31 2:00
|
||||
-6:00 Canada C%sT 2000 Oct 29 2:00
|
||||
-5:00 Canada E%sT
|
||||
|
||||
# United States
|
||||
#
|
||||
# From Paul Eggert (2018-03-18):
|
||||
@@ -769,6 +833,17 @@ Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2
|
||||
Link America/Port_of_Spain America/Marigot
|
||||
Link America/Port_of_Spain America/St_Barthelemy
|
||||
|
||||
# Canada
|
||||
# From Chris Walton (2022-10-15):
|
||||
# I would also like to see America/Nipigon and America/Rainy_River converted
|
||||
# into link entries because I have zero faith in the current Shanks based data.
|
||||
# From Paul Eggert (2022-10-15):
|
||||
# These are now links in the primary data. Also see America/Thunder_Bay.
|
||||
Zone America/Rainy_River -6:18:16 - LMT 1895
|
||||
-6:00 Canada C%sT 1940 Sep 29
|
||||
-6:00 1:00 CDT 1942 Feb 9 2:00s
|
||||
-6:00 Canada C%sT
|
||||
|
||||
# Argentina
|
||||
# This entry was intended for the following areas, but has been superseded by
|
||||
# more detailed zones.
|
||||
@@ -802,10 +877,62 @@ Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown
|
||||
-4:04:56 - KMT 1912 # Kingstown Mean Time
|
||||
-4:00 - AST
|
||||
|
||||
# Canada
|
||||
#
|
||||
# From Paul Eggert (2003-07-27):
|
||||
# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and
|
||||
# Port Arthur, Ontario, the principle of the Bill has been in
|
||||
# operation for the past three years, and in the City of Moose Jaw,
|
||||
# Saskatchewan, for one year."
|
||||
#
|
||||
# From David Bryan via Tory Tronrud, Director/Curator,
|
||||
# Thunder Bay Museum (2003-11-12):
|
||||
# There is some suggestion, however, that, by-law or not, daylight
|
||||
# savings time was being practiced in Fort William and Port Arthur
|
||||
# before 1909.... [I]n 1910, the line between the Eastern and Central
|
||||
# Time Zones was permanently moved about two hundred miles west to
|
||||
# include the Thunder Bay area.... When Canada adopted daylight
|
||||
# savings time in 1916, Fort William and Port Arthur, having done so
|
||||
# already, did not change their clocks.... During the Second World
|
||||
# War,... [t]he cities agreed to implement DST during the summer
|
||||
# months for the remainder of the war years.
|
||||
#
|
||||
# From Jeffery Nichols (2020-02-06):
|
||||
# According to the [Shanks] atlas, those western Ontario zones are huge,
|
||||
# covering most of Ontario northwest of Sault Ste Marie and Timmins.
|
||||
# The zones seem to include towns bigger than the ones they're named after,
|
||||
# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in
|
||||
# America/Nipigon. I assume it's too much trouble to change the name of the
|
||||
# zone (like when you found out that America/Glace_Bay includes Sydney, Nova
|
||||
# Scotia)....
|
||||
#
|
||||
# From Chris Walton (2022-10-15):
|
||||
# The TZ database currently shows that Thunder Bay has observed daylight
|
||||
# saving every year from 1970 onwards with the exception of 1973.
|
||||
# Back in July I raised some doubts on this mailing list about the 1973 data.
|
||||
# I now have more proof that it is wrong.
|
||||
# [attached Chronicle-Journal front pages, 1973-04-28 and 1973-10-27]
|
||||
#
|
||||
# From Paul Eggert (2022-10-15):
|
||||
# This is now a link in the primary data. The following entry is
|
||||
# from Shanks & Pottenger, with corrections as noted above.
|
||||
#
|
||||
Zone America/Thunder_Bay -5:57:00 - LMT 1895
|
||||
-6:00 - CST 1910
|
||||
-5:00 - EST 1942
|
||||
-5:00 Canada E%sT 1970
|
||||
-5:00 Toronto E%sT 1974
|
||||
-5:00 Canada E%sT
|
||||
|
||||
# British Virgin Is
|
||||
Zone America/Tortola -4:18:28 - LMT 1911 Jul # Road Town
|
||||
-4:00 - AST
|
||||
|
||||
# Yellowknife, Northwest Territories
|
||||
Zone America/Yellowknife 0 - -00 1935 # Yellowknife founded?
|
||||
-7:00 NT_YK M%sT 1980
|
||||
-7:00 Canada M%sT
|
||||
|
||||
# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
|
||||
# <https://en.wikipedia.org/wiki/Dumont_d'Urville_Station> (2005-12-05)
|
||||
#
|
||||
@@ -974,7 +1101,7 @@ Zone Asia/Kuala_Lumpur 6:46:46 - LMT 1901 Jan 1
|
||||
7:20 - +0720 1941 Sep 1
|
||||
7:30 - +0730 1942 Feb 16
|
||||
9:00 - +09 1945 Sep 12
|
||||
7:30 - +0730 1982 Jan 1
|
||||
7:30 - +0730 1981 Dec 31 16:00u
|
||||
8:00 - +08
|
||||
|
||||
# Kuwait
|
||||
@@ -1634,7 +1761,7 @@ Link Pacific/Chuuk Pacific/Yap
|
||||
# Enderbury was inhabited 1860/1880s to mine guano, and 1938-03-06/1942-02-09
|
||||
# for aviation (ostensibly commercial, but military uses foreseen).
|
||||
# The 19th-century dates are approximate. See Pacific/Kanton for
|
||||
# the currently-inhabited representative for this timezone.
|
||||
# the currently inhabited representative for this timezone.
|
||||
Zone Pacific/Enderbury 0 - -00 1860
|
||||
-11:24:20 - LMT 1885
|
||||
0 - -00 1938 Mar 6
|
||||
|
||||
@@ -32,6 +32,13 @@ BEGIN {
|
||||
}
|
||||
status = 1
|
||||
}
|
||||
if (backcheck && FILENAME != backcheck && $3 != "GMT") {
|
||||
printf "%s: Link should be in '%s'\n", $3, backcheck
|
||||
status = 1
|
||||
}
|
||||
if ($4 == "#=") {
|
||||
shortcut[$5] = $3
|
||||
}
|
||||
used[$2] = 1
|
||||
defined[$3] = $2
|
||||
}
|
||||
@@ -39,10 +46,25 @@ BEGIN {
|
||||
END {
|
||||
for (tz in used) {
|
||||
if (defined[tz] != Zone) {
|
||||
printf "%s: Link to non-zone\n", tz
|
||||
if (!defined[tz]) {
|
||||
printf "%s: Link to nowhere\n", tz
|
||||
status = 1
|
||||
} else if (DATAFORM != "vanguard") {
|
||||
printf "%s: Link to link\n", tz
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
for (tz in shortcut) {
|
||||
if (defined[shortcut[tz]] != defined[tz]) {
|
||||
target = (!defined[tz] ? "absence" \
|
||||
: defined[tz] == "\n" ? "zone" \
|
||||
: defined[tz])
|
||||
printf "%s: target %s disagrees with %s's target %s\n", \
|
||||
tz, target, shortcut[tz], defined[shortcut[tz]]
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
|
||||
exit status
|
||||
}
|
||||
@@ -107,6 +107,7 @@ BEGIN {
|
||||
cc = cca[j]
|
||||
if (used_max < cc_used[cc]) {
|
||||
used_max = cc_used[cc]
|
||||
used_max_cc = cc
|
||||
}
|
||||
}
|
||||
if (used_max <= 1 && comments) {
|
||||
@@ -114,9 +115,9 @@ BEGIN {
|
||||
zone_table, i, comments \
|
||||
>>"/dev/stderr"
|
||||
status = 1
|
||||
} else if (1 < cc_used[cc] && !comments) {
|
||||
} else if (1 < used_max && !comments) {
|
||||
printf "%s:%d: missing comment for %s\n", \
|
||||
zone_table, i, cc \
|
||||
zone_table, i, used_max_cc \
|
||||
>>"/dev/stderr"
|
||||
status = 1
|
||||
}
|
||||
|
||||
+7
-10
@@ -16,26 +16,23 @@
|
||||
# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
|
||||
# behind GMT but uses the completely misleading abbreviation "GMT".
|
||||
|
||||
Zone Etc/GMT 0 - GMT
|
||||
|
||||
# The following zone is used by tzcode functions like gmtime,
|
||||
# which load the "UTC" file to handle seconds properly.
|
||||
Zone Etc/UTC 0 - UTC
|
||||
|
||||
# Functions like gmtime load the "GMT" file to handle leap seconds properly.
|
||||
# Vanguard section, which works with most .zi parsers.
|
||||
#Zone GMT 0 - GMT
|
||||
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||
Zone Etc/GMT 0 - GMT
|
||||
|
||||
# The following link uses older naming conventions,
|
||||
# but it belongs here, not in the file 'backward',
|
||||
# as it is needed for tzcode releases through 2022a,
|
||||
# where functions like gmtime load "GMT" instead of the "Etc/UTC".
|
||||
# We want this to work even on installations that omit 'backward'.
|
||||
Link Etc/GMT GMT
|
||||
|
||||
Link Etc/UTC Etc/Universal
|
||||
Link Etc/UTC Etc/Zulu
|
||||
|
||||
Link Etc/GMT Etc/Greenwich
|
||||
Link Etc/GMT Etc/GMT-0
|
||||
Link Etc/GMT Etc/GMT+0
|
||||
Link Etc/GMT Etc/GMT0
|
||||
# End of rearguard section.
|
||||
|
||||
# Be consistent with POSIX TZ settings in the Zone names,
|
||||
# even though this is the opposite of what many people expect.
|
||||
|
||||
+108
-149
@@ -504,9 +504,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1
|
||||
1:00 - BST 1971 Oct 31 2:00u
|
||||
0:00 GB-Eire %s 1996
|
||||
0:00 EU GMT/BST
|
||||
Link Europe/London Europe/Jersey
|
||||
Link Europe/London Europe/Guernsey
|
||||
Link Europe/London Europe/Isle_of_Man
|
||||
|
||||
# From Paul Eggert (2018-02-15):
|
||||
# In January 2018 we discovered that the negative SAVE values in the
|
||||
@@ -520,9 +517,7 @@ Link Europe/London Europe/Isle_of_Man
|
||||
# other form with a traditional approximation for Irish timestamps
|
||||
# after 1971-10-31 02:00 UTC; although this approximation has tm_isdst
|
||||
# flags that are reversed, its UTC offsets are correct and this often
|
||||
# suffices. This source file currently uses only nonnegative SAVE
|
||||
# values, but this is intended to change and downstream code should
|
||||
# not rely on it.
|
||||
# suffices....
|
||||
#
|
||||
# The following is like GB-Eire and EU, except with standard time in
|
||||
# summer and negative daylight saving time in winter. It is for when
|
||||
@@ -879,6 +874,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
|
||||
3:00 - +03
|
||||
|
||||
# Belgium
|
||||
# Luxembourg
|
||||
# Netherlands
|
||||
#
|
||||
# From Michael Deckers (2019-08-25):
|
||||
# The exposition in the web page
|
||||
@@ -961,11 +958,6 @@ Zone Europe/Brussels 0:17:30 - LMT 1880
|
||||
1:00 C-Eur CE%sT 1944 Sep 3
|
||||
1:00 Belgium CE%sT 1977
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Brussels Europe/Amsterdam
|
||||
Link Europe/Brussels Europe/Luxembourg
|
||||
|
||||
# Bosnia and Herzegovina
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Bulgaria
|
||||
#
|
||||
@@ -992,13 +984,11 @@ Zone Europe/Sofia 1:33:16 - LMT 1880
|
||||
2:00 E-Eur EE%sT 1997
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Croatia
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Cyprus
|
||||
# Please see the 'asia' file for Asia/Nicosia.
|
||||
|
||||
# Czech Republic / Czechia
|
||||
# Czech Republic (Czechia)
|
||||
# Slovakia
|
||||
#
|
||||
# From Paul Eggert (2018-04-15):
|
||||
# The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15.
|
||||
@@ -1025,15 +1015,14 @@ Zone Europe/Prague 0:57:44 - LMT 1850
|
||||
# End of rearguard section.
|
||||
1:00 Czech CE%sT 1979
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Prague Europe/Bratislava
|
||||
|
||||
|
||||
# Denmark, Faroe Islands, and Greenland
|
||||
# For Denmark see Europe/Berlin.
|
||||
|
||||
# Faroe Is
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn
|
||||
0:00 - WET 1981
|
||||
0:00 EU WE%sT
|
||||
|
||||
# Greenland
|
||||
#
|
||||
# From Paul Eggert (2004-10-31):
|
||||
# During World War II, Germany maintained secret manned weather stations in
|
||||
@@ -1112,7 +1101,29 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn
|
||||
# "National Park" by Executive Order:
|
||||
# http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-tekster/Legislation/Executive%20Order%20National%20Park.rtf
|
||||
# It is their only National Park.
|
||||
|
||||
# From Jonas Nyrup (2022-11-24):
|
||||
# On last Saturday in October 2023 when DST ends America/Nuuk will switch
|
||||
# from -03/-02 to -02/-01
|
||||
# https://sermitsiaq.ag/forslagtidsforskel-danmark-mindskes-sommertid-beholdes
|
||||
# ...
|
||||
# https://sermitsiaq.ag/groenland-skifte-tidszone-trods-bekymringer
|
||||
#
|
||||
# From Jürgen Appel (2022-11-25):
|
||||
# https://ina.gl/samlinger/oversigt-over-samlinger/samling/dagsordener/dagsorden.aspx?lang=da&day=24-11-2022
|
||||
#
|
||||
# From Thomas M. Steenholdt (2022-12-02):
|
||||
# - The bill to move America/Nuuk from UTC-03 to UTC-02 passed.
|
||||
# - The bill to stop observing DST did not (Greenland will stop observing DST
|
||||
# when EU does).
|
||||
# Details on the implementation are here (section 6):
|
||||
# https://ina.gl/dvd/EM%202022/pdf/media/2553529/pkt17_em2022_tidens_bestemmelse_bem_da.pdf
|
||||
# This is how the change will be implemented:
|
||||
# 1. The shift *to* DST in 2023 happens as normal.
|
||||
# 2. The shift *from* DST in 2023 happens as normal, but coincides with the
|
||||
# shift to UTC-02 normaltime (people will not change their clocks here).
|
||||
# 3. After this, DST is still observed, but as -02/-01 instead of -03/-02.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
|
||||
Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
|
||||
@@ -1135,7 +1146,8 @@ Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit
|
||||
-1:00 EU -01/+00
|
||||
Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb
|
||||
-3:00 - -03 1980 Apr 6 2:00
|
||||
-3:00 EU -03/-02
|
||||
-3:00 EU -03/-02 2023 Oct 29 1:00u
|
||||
-2:00 EU -02/-01
|
||||
Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik
|
||||
-4:00 Thule A%sT
|
||||
|
||||
@@ -1259,11 +1271,8 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31
|
||||
2:00 Finland EE%sT 1983
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Åland Is
|
||||
Link Europe/Helsinki Europe/Mariehamn
|
||||
|
||||
|
||||
# France
|
||||
# Monaco
|
||||
|
||||
# From Ciro Discepolo (2000-12-20):
|
||||
#
|
||||
@@ -1400,9 +1409,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
|
||||
0:00 France WE%sT 1945 Sep 16 3:00
|
||||
1:00 France CE%sT 1977
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Paris Europe/Monaco
|
||||
|
||||
# Denmark
|
||||
# Germany
|
||||
# Norway
|
||||
# Sweden
|
||||
|
||||
# From Markus Kuhn (1998-09-29):
|
||||
# The German time zone web site by the Physikalisch-Technische
|
||||
@@ -1420,14 +1431,61 @@ Link Europe/Paris Europe/Monaco
|
||||
# However, Moscow did not observe daylight saving in 1945, so
|
||||
# this was equivalent to UT +03, not +04.
|
||||
|
||||
# Svalbard & Jan Mayen
|
||||
|
||||
# From Steffen Thorsen (2001-05-01):
|
||||
# Although I could not find it explicitly, it seems that Jan Mayen and
|
||||
# Svalbard have been using the same time as Norway at least since the
|
||||
# time they were declared as parts of Norway. Svalbard was declared
|
||||
# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
|
||||
# Mayen by law of 1930-02-27 no 2, section 2. (From
|
||||
# <http://www.lovdata.no/all/nl-19250717-011.html> and
|
||||
# <http://www.lovdata.no/all/nl-19300227-002.html>). The law/regulation
|
||||
# for normal/standard time in Norway is from 1894-06-29 no 1 (came
|
||||
# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
|
||||
# part of this law since 1925/1930. (From
|
||||
# <http://www.lovdata.no/all/nl-18940629-001.html>) I have not been
|
||||
# able to find if Jan Mayen used a different time zone (e.g. -0100)
|
||||
# before 1930. Jan Mayen has only been "inhabited" since 1921 by
|
||||
# Norwegian meteorologists and maybe used the same time as Norway ever
|
||||
# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since
|
||||
# before 1895, and therefore probably changed the local time somewhere
|
||||
# between 1895 and 1925 (inclusive).
|
||||
|
||||
# From Paul Eggert (2013-09-04):
|
||||
#
|
||||
# Actually, Jan Mayen was never occupied by Germany during World War II,
|
||||
# so it must have diverged from Oslo time during the war, as Oslo was
|
||||
# keeping Berlin time.
|
||||
#
|
||||
# <https://www.jan-mayen.no/history.htm> says that the meteorologists
|
||||
# burned down their station in 1940 and left the island, but returned in
|
||||
# 1941 with a small Norwegian garrison and continued operations despite
|
||||
# frequent air attacks from Germans. In 1943 the Americans established a
|
||||
# radiolocating station on the island, called "Atlantic City". Possibly
|
||||
# the UT offset changed during the war, but I think it unlikely that
|
||||
# Jan Mayen used German daylight-saving rules.
|
||||
#
|
||||
# Svalbard is more complicated, as it was raided in August 1941 by an
|
||||
# Allied party that evacuated the civilian population to England (says
|
||||
# <http://www.bartleby.com/65/sv/Svalbard.html>). The Svalbard FAQ
|
||||
# <http://www.svalbard.com/SvalbardFAQ.html> says that the Germans were
|
||||
# expelled on 1942-05-14. However, small parties of Germans did return,
|
||||
# and according to Wilhelm Dege's book "War North of 80" (1954)
|
||||
# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html
|
||||
# the German armed forces at the Svalbard weather station code-named
|
||||
# Haudegen did not surrender to the Allies until September 1945.
|
||||
#
|
||||
# All these events predate our cutoff date of 1970, so use Europe/Berlin
|
||||
# for these regions.
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Germany 1946 only - Apr 14 2:00s 1:00 S
|
||||
Rule Germany 1946 only - Oct 7 2:00s 0 -
|
||||
Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
|
||||
# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
|
||||
# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
|
||||
# Go with the PTB.
|
||||
# https://www.ptb.de/cms/en/ptb/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany/dst-and-midsummer-dst-in-germany-until-1979.html
|
||||
# says the following transition occurred at 3:00 MEZ, not the 2:00 MEZ
|
||||
# given in Shanks & Pottenger. Go with the PTB.
|
||||
Rule Germany 1947 only - Apr 6 3:00s 1:00 S
|
||||
Rule Germany 1947 only - May 11 2:00s 2:00 M
|
||||
Rule Germany 1947 only - Jun 29 3:00 1:00 S
|
||||
@@ -1444,11 +1502,6 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr
|
||||
1:00 SovietZone CE%sT 1946
|
||||
1:00 Germany CE%sT 1980
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Berlin Arctic/Longyearbyen
|
||||
Link Europe/Berlin Europe/Copenhagen
|
||||
Link Europe/Berlin Europe/Oslo
|
||||
Link Europe/Berlin Europe/Stockholm
|
||||
|
||||
|
||||
# Georgia
|
||||
# Please see the "asia" file for Asia/Tbilisi.
|
||||
@@ -1567,10 +1620,9 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1
|
||||
1:00 Hungary CE%sT 1984
|
||||
1:00 EU CE%sT
|
||||
|
||||
# Iceland
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Italy
|
||||
# San Marino
|
||||
# Vatican City
|
||||
#
|
||||
# From Paul Eggert (2001-03-06):
|
||||
# Sicily and Sardinia each had their own time zones from 1866 to 1893,
|
||||
@@ -1689,13 +1741,6 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12
|
||||
1:00 C-Eur CE%sT 1944 Jun 4
|
||||
1:00 Italy CE%sT 1980
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Rome Europe/Vatican
|
||||
Link Europe/Rome Europe/San_Marino
|
||||
|
||||
|
||||
# Kosovo
|
||||
# See Europe/Belgrade.
|
||||
|
||||
|
||||
# Latvia
|
||||
|
||||
@@ -1779,10 +1824,6 @@ Zone Europe/Riga 1:36:34 - LMT 1880
|
||||
2:00 - EET 2001 Jan 2
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Liechtenstein
|
||||
# See Europe/Zurich.
|
||||
|
||||
|
||||
# Lithuania
|
||||
|
||||
# From Paul Eggert (2016-03-18):
|
||||
@@ -1835,12 +1876,6 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880
|
||||
2:00 - EET 2003 Jan 1
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Luxembourg
|
||||
# See Europe/Brussels.
|
||||
|
||||
# North Macedonia
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Malta
|
||||
#
|
||||
# From Paul Eggert (2016-10-21):
|
||||
@@ -1936,67 +1971,6 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880
|
||||
# See Romania commentary for the guessed 1997 transition to EU rules.
|
||||
2:00 Moldova EE%sT
|
||||
|
||||
# Monaco
|
||||
# See Europe/Paris.
|
||||
|
||||
# Montenegro
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Netherlands
|
||||
# See Europe/Brussels.
|
||||
|
||||
# Norway
|
||||
# See Europe/Berlin.
|
||||
|
||||
# Svalbard & Jan Mayen
|
||||
|
||||
# From Steffen Thorsen (2001-05-01):
|
||||
# Although I could not find it explicitly, it seems that Jan Mayen and
|
||||
# Svalbard have been using the same time as Norway at least since the
|
||||
# time they were declared as parts of Norway. Svalbard was declared
|
||||
# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
|
||||
# Mayen by law of 1930-02-27 no 2, section 2. (From
|
||||
# <http://www.lovdata.no/all/nl-19250717-011.html> and
|
||||
# <http://www.lovdata.no/all/nl-19300227-002.html>). The law/regulation
|
||||
# for normal/standard time in Norway is from 1894-06-29 no 1 (came
|
||||
# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
|
||||
# part of this law since 1925/1930. (From
|
||||
# <http://www.lovdata.no/all/nl-18940629-001.html>) I have not been
|
||||
# able to find if Jan Mayen used a different time zone (e.g. -0100)
|
||||
# before 1930. Jan Mayen has only been "inhabited" since 1921 by
|
||||
# Norwegian meteorologists and maybe used the same time as Norway ever
|
||||
# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since
|
||||
# before 1895, and therefore probably changed the local time somewhere
|
||||
# between 1895 and 1925 (inclusive).
|
||||
|
||||
# From Paul Eggert (2013-09-04):
|
||||
#
|
||||
# Actually, Jan Mayen was never occupied by Germany during World War II,
|
||||
# so it must have diverged from Oslo time during the war, as Oslo was
|
||||
# keeping Berlin time.
|
||||
#
|
||||
# <https://www.jan-mayen.no/history.htm> says that the meteorologists
|
||||
# burned down their station in 1940 and left the island, but returned in
|
||||
# 1941 with a small Norwegian garrison and continued operations despite
|
||||
# frequent air attacks from Germans. In 1943 the Americans established a
|
||||
# radiolocating station on the island, called "Atlantic City". Possibly
|
||||
# the UT offset changed during the war, but I think it unlikely that
|
||||
# Jan Mayen used German daylight-saving rules.
|
||||
#
|
||||
# Svalbard is more complicated, as it was raided in August 1941 by an
|
||||
# Allied party that evacuated the civilian population to England (says
|
||||
# <http://www.bartleby.com/65/sv/Svalbard.html>). The Svalbard FAQ
|
||||
# <http://www.svalbard.com/SvalbardFAQ.html> says that the Germans were
|
||||
# expelled on 1942-05-14. However, small parties of Germans did return,
|
||||
# and according to Wilhelm Dege's book "War North of 80" (1954)
|
||||
# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html
|
||||
# the German armed forces at the Svalbard weather station code-named
|
||||
# Haudegen did not surrender to the Allies until September 1945.
|
||||
#
|
||||
# All these events predate our cutoff date of 1970, so use Europe/Berlin
|
||||
# for these regions.
|
||||
|
||||
|
||||
# Poland
|
||||
|
||||
# The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
|
||||
@@ -2272,7 +2246,7 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
|
||||
# the State Duma has approved ... the draft bill on returning to
|
||||
# winter time standard and return Russia 11 time zones. The new
|
||||
# regulations will come into effect on October 26, 2014 at 02:00 ...
|
||||
# http://asozd2.duma.gov.ru/main.nsf/%28Spravka%29?OpenAgent&RN=431985-6&02
|
||||
# http://asozd2.duma.gov.ru/main.nsf/(Spravka)?OpenAgent&RN=431985-6&02
|
||||
# Here is a link where we put together table (based on approved Bill N
|
||||
# 431985-6) with proposed 11 Russian time zones and corresponding
|
||||
# areas/cities/administrative centers in the Russian Federation (in English):
|
||||
@@ -2682,13 +2656,13 @@ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
|
||||
3:00 - +03 1930 Jun 21
|
||||
4:00 - +04 1961 Nov 11
|
||||
4:00 Russia +04/+05 1988 Mar 27 2:00s
|
||||
3:00 Russia +03/+04 1991 Mar 31 2:00s
|
||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
||||
4:00 - +04 1992 Mar 29 2:00s
|
||||
3:00 Russia +03/+04 2011 Mar 27 2:00s
|
||||
4:00 - +04 2014 Oct 26 2:00s
|
||||
3:00 - +03 2018 Oct 28 2:00s
|
||||
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
|
||||
4:00 - MSK 2014 Oct 26 2:00s
|
||||
3:00 - MSK 2018 Oct 28 2:00s
|
||||
4:00 - +04 2020 Dec 27 2:00s
|
||||
3:00 - +03
|
||||
3:00 - MSK
|
||||
|
||||
# From Paul Eggert (2016-11-11):
|
||||
# Europe/Saratov covers:
|
||||
@@ -2719,11 +2693,11 @@ Zone Europe/Saratov 3:04:18 - LMT 1919 Jul 1 0:00u
|
||||
Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u
|
||||
3:00 - +03 1930 Jun 21
|
||||
4:00 Russia +04/+05 1989 Mar 26 2:00s
|
||||
3:00 Russia +03/+04 1991 Mar 31 2:00s
|
||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
||||
4:00 - +04 1992 Mar 29 2:00s
|
||||
3:00 Russia +03/+04 2011 Mar 27 2:00s
|
||||
4:00 - +04 2014 Oct 26 2:00s
|
||||
3:00 - +03
|
||||
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
|
||||
4:00 - MSK 2014 Oct 26 2:00s
|
||||
3:00 - MSK
|
||||
|
||||
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
|
||||
# Europe/Samara covers...
|
||||
@@ -3278,11 +3252,13 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
|
||||
11:00 Russia +11/+12 2011 Mar 27 2:00s
|
||||
12:00 - +12
|
||||
|
||||
|
||||
# San Marino
|
||||
# See Europe/Rome.
|
||||
|
||||
# Bosnia & Herzegovina
|
||||
# Croatia
|
||||
# Kosovo
|
||||
# Montenegro
|
||||
# North Macedonia
|
||||
# Serbia
|
||||
# Slovenia
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Europe/Belgrade 1:22:00 - LMT 1884
|
||||
1:00 - CET 1941 Apr 18 23:00
|
||||
@@ -3294,17 +3270,6 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884
|
||||
# Shanks & Pottenger don't give as much detail, so go with Koželj.
|
||||
1:00 - CET 1982 Nov 27
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Belgrade Europe/Ljubljana # Slovenia
|
||||
Link Europe/Belgrade Europe/Podgorica # Montenegro
|
||||
Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina
|
||||
Link Europe/Belgrade Europe/Skopje # North Macedonia
|
||||
Link Europe/Belgrade Europe/Zagreb # Croatia
|
||||
|
||||
# Slovakia
|
||||
# See Europe/Prague.
|
||||
|
||||
# Slovenia
|
||||
# See Europe/Belgrade.
|
||||
|
||||
# Spain
|
||||
#
|
||||
@@ -3411,10 +3376,11 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C.
|
||||
# IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
|
||||
# Ignore this for now, as the Canaries are part of the EU.
|
||||
|
||||
# Sweden
|
||||
# See Europe/Berlin.
|
||||
|
||||
# Germany (Busingen enclave)
|
||||
# Liechtenstein
|
||||
# Switzerland
|
||||
#
|
||||
# From Howse:
|
||||
# By the end of the 18th century clocks and watches became commonplace
|
||||
# and their performance improved enormously. Communities began to keep
|
||||
@@ -3527,9 +3493,6 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
|
||||
0:29:46 - BMT 1894 Jun # Bern Mean Time
|
||||
1:00 Swiss CE%sT 1981
|
||||
1:00 EU CE%sT
|
||||
Link Europe/Zurich Europe/Busingen
|
||||
Link Europe/Zurich Europe/Vaduz
|
||||
|
||||
|
||||
# Turkey
|
||||
|
||||
@@ -3734,7 +3697,6 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
|
||||
2:00 1:00 EEST 2015 Nov 8 1:00u
|
||||
2:00 EU EE%sT 2016 Sep 7
|
||||
3:00 - +03
|
||||
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
|
||||
|
||||
# Ukraine
|
||||
#
|
||||
@@ -3837,9 +3799,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880
|
||||
2:00 C-Eur EE%sT 1996 May 13
|
||||
2:00 EU EE%sT
|
||||
|
||||
# Vatican City
|
||||
# See Europe/Rome.
|
||||
|
||||
###############################################################################
|
||||
|
||||
# One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from
|
||||
|
||||
@@ -204,10 +204,10 @@
|
||||
# current -- the update time stamp, the data and the name of the file
|
||||
# will not change.
|
||||
#
|
||||
# Updated through IERS Bulletin C64
|
||||
# File expires on: 28 June 2023
|
||||
# Updated through IERS Bulletin C65
|
||||
# File expires on: 28 December 2023
|
||||
#
|
||||
#@ 3896899200
|
||||
#@ 3912710400
|
||||
#
|
||||
2272060800 10 # 1 Jan 1972
|
||||
2287785600 11 # 1 Jul 1972
|
||||
@@ -252,4 +252,4 @@
|
||||
# the hash line is also ignored in the
|
||||
# computation.
|
||||
#
|
||||
#h 2c413af9 124e1031 f165174 ff527c6b 756ae00b
|
||||
#h e76a99dc 65f15cc7 e613e040 f5078b5e b23834fe
|
||||
@@ -72,11 +72,11 @@ Leap 2016 Dec 31 23:59:60 + S
|
||||
# Any additional leap seconds will come after this.
|
||||
# This Expires line is commented out for now,
|
||||
# so that pre-2020a zic implementations do not reject this file.
|
||||
#Expires 2023 Jun 28 00:00:00
|
||||
#Expires 2023 Dec 28 00:00:00
|
||||
|
||||
# POSIX timestamps for the data in this file:
|
||||
#updated 1467936000 (2016-07-08 00:00:00 UTC)
|
||||
#expires 1687910400 (2023-06-28 00:00:00 UTC)
|
||||
#expires 1703721600 (2023-12-28 00:00:00 UTC)
|
||||
|
||||
# Updated through IERS Bulletin C64
|
||||
# File expires on: 28 June 2023
|
||||
# Updated through IERS Bulletin C65
|
||||
# File expires on: 28 December 2023
|
||||
@@ -104,18 +104,23 @@ BEGIN {
|
||||
}
|
||||
|
||||
END {
|
||||
sstamp_to_ymdhMs(expires, ss_NTP)
|
||||
|
||||
print ""
|
||||
print "# UTC timestamp when this leap second list expires."
|
||||
print "# Any additional leap seconds will come after this."
|
||||
if (! EXPIRES_LINE) {
|
||||
print "# This Expires line is commented out for now,"
|
||||
print "# so that pre-2020a zic implementations do not reject this file."
|
||||
|
||||
if (expires) {
|
||||
sstamp_to_ymdhMs(expires, ss_NTP)
|
||||
|
||||
print "# UTC timestamp when this leap second list expires."
|
||||
print "# Any additional leap seconds will come after this."
|
||||
if (! EXPIRES_LINE) {
|
||||
print "# This Expires line is commented out for now,"
|
||||
print "# so that pre-2020a zic implementations do not reject this file."
|
||||
}
|
||||
printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \
|
||||
EXPIRES_LINE ? "" : "#", \
|
||||
ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec
|
||||
} else {
|
||||
print "# (No Expires line, since the expires time is unknown.)"
|
||||
}
|
||||
printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \
|
||||
EXPIRES_LINE ? "" : "#", \
|
||||
ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec
|
||||
|
||||
# The difference between the NTP and POSIX epochs is 70 years
|
||||
# (including 17 leap days), each 24 hours of 60 minutes of 60
|
||||
@@ -124,15 +129,22 @@ END {
|
||||
|
||||
print ""
|
||||
print "# POSIX timestamps for the data in this file:"
|
||||
sstamp_to_ymdhMs(updated, ss_NTP)
|
||||
printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
|
||||
updated - epoch_minus_NTP, \
|
||||
ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
|
||||
sstamp_to_ymdhMs(expires, ss_NTP)
|
||||
printf "#expires %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
|
||||
expires - epoch_minus_NTP, \
|
||||
ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
|
||||
|
||||
if (updated) {
|
||||
sstamp_to_ymdhMs(updated, ss_NTP)
|
||||
printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
|
||||
updated - epoch_minus_NTP, \
|
||||
ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
|
||||
} else {
|
||||
print "#(updated time unknown)"
|
||||
}
|
||||
if (expires) {
|
||||
sstamp_to_ymdhMs(expires, ss_NTP)
|
||||
printf "#expires %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
|
||||
expires - epoch_minus_NTP, \
|
||||
ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
|
||||
} else {
|
||||
print "#(expires time unknown)"
|
||||
}
|
||||
printf "\n%s", last_lines
|
||||
}
|
||||
|
||||
|
||||
+142
-213
@@ -276,9 +276,10 @@ Zone PST8PDT -8:00 US P%sT
|
||||
# -10 Standard Alaska Time (AST) Alaska-Hawaii standard time (AHST)
|
||||
# -11 (unofficial) Nome (NST) Bering standard time (BST)
|
||||
#
|
||||
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
|
||||
# Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time"
|
||||
# From Paul Eggert (2023-01-23), from a 2001-01-08 heads-up from Rives McDow:
|
||||
# Public law 106-564 (2000-12-23) introduced "Chamorro standard time"
|
||||
# for time in Guam and the Northern Marianas. See the file "australasia".
|
||||
# Also see 15 U.S.C. §263 <https://www.law.cornell.edu/uscode/text/15/263>.
|
||||
#
|
||||
# From Paul Eggert (2015-04-17):
|
||||
# HST and HDT are standardized abbreviations for Hawaii-Aleutian
|
||||
@@ -595,7 +596,7 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
|
||||
# local times of other Alaskan locations so that they change simultaneously.
|
||||
|
||||
# From Paul Eggert (2014-07-18):
|
||||
# One opinion of the early-1980s turmoil in Alaska over time zones and
|
||||
# One opinion of the early 1980s turmoil in Alaska over time zones and
|
||||
# daylight saving time appeared as graffiti on a Juneau airport wall:
|
||||
# "Welcome to Juneau. Please turn your watch back to the 19th century."
|
||||
# See: Turner W. Alaska's four time zones now two. NY Times 1983-11-01.
|
||||
@@ -667,6 +668,10 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
|
||||
# So they won't be waiting for Alaska to join them on 2019-03-10, but will
|
||||
# rather change their clocks twice in seven weeks.
|
||||
|
||||
# From Paul Eggert (2023-01-23):
|
||||
# America/Adak is for the Aleutian Islands that are part of Alaska
|
||||
# and are west of 169.5° W.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Juneau 15:02:19 - LMT 1867 Oct 19 15:33:32
|
||||
-8:57:41 - LMT 1900 Aug 20 12:00
|
||||
@@ -829,7 +834,6 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u
|
||||
-7:00 - MST 1967
|
||||
-7:00 US M%sT 1968 Mar 21
|
||||
-7:00 - MST
|
||||
Link America/Phoenix America/Creston
|
||||
|
||||
# From Arthur David Olson (1988-02-13):
|
||||
# A writer from the Inter Tribal Council of Arizona, Inc.,
|
||||
@@ -1603,23 +1607,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
|
||||
# Ontario
|
||||
|
||||
# From Paul Eggert (2006-07-09):
|
||||
# Shanks & Pottenger write that since 1970 most of Ontario has been like
|
||||
# Toronto.
|
||||
# Thunder Bay skipped DST in 1973.
|
||||
# Many smaller locales did not observe peacetime DST until 1974;
|
||||
# Nipigon (EST) and Rainy River (CST) are the largest that we know of.
|
||||
# Far west Ontario is like Winnipeg; far east Quebec is like Halifax.
|
||||
|
||||
# From Jeffery Nichols (2020-02-06):
|
||||
# According to the [Shanks] atlas, those western Ontario zones are huge,
|
||||
# covering most of Ontario northwest of Sault Ste Marie and Timmins.
|
||||
# The zones seem to include towns bigger than the ones they're named after,
|
||||
# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in
|
||||
# America/Nipigon. I assume it's too much trouble to change the name of the
|
||||
# zone (like when you found out that America/Glace_Bay includes Sydney, Nova
|
||||
# Scotia)....
|
||||
|
||||
# From Mark Brader (2003-07-26):
|
||||
# [According to the Toronto Star] Orillia, Ontario, adopted DST
|
||||
# effective Saturday, 1912-06-22, 22:00; the article mentions that
|
||||
@@ -1640,17 +1627,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
|
||||
# From Mark Brader (2010-03-06):
|
||||
#
|
||||
# Currently the database has:
|
||||
#
|
||||
# # Ontario
|
||||
#
|
||||
# # From Paul Eggert (2006-07-09):
|
||||
# # Shanks & Pottenger write that since 1970 most of Ontario has been like
|
||||
# # Toronto.
|
||||
# # Thunder Bay skipped DST in 1973.
|
||||
# # Many smaller locales did not observe peacetime DST until 1974;
|
||||
# # Nipigon (EST) and Rainy River (CST) are the largest that we know of.
|
||||
#
|
||||
# In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom
|
||||
# right corner of page 1, it says that Toronto will return to standard
|
||||
# time at 2 am Sunday morning (which agrees with the database), and that:
|
||||
@@ -1658,10 +1634,8 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
|
||||
# The one-hour setback will go into effect throughout most of Ontario,
|
||||
# except in areas like Windsor which remains on standard time all year.
|
||||
#
|
||||
# Windsor is, of course, a lot larger than Nipigon.
|
||||
#
|
||||
# I only came across this incidentally. I don't know if Windsor began
|
||||
# observing DST when Detroit did, or in 1974, or on some other date.
|
||||
# ... I don't know if Windsor began observing DST when Detroit did,
|
||||
# or in 1974, or on some other date.
|
||||
#
|
||||
# By the way, the article continues by noting that:
|
||||
#
|
||||
@@ -1743,23 +1717,7 @@ Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
|
||||
# Toronto Star, which said that DST was ending 1971-10-31 as usual.
|
||||
Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S
|
||||
|
||||
# From Paul Eggert (2003-07-27):
|
||||
# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and
|
||||
# Port Arthur, Ontario, the principle of the Bill has been in
|
||||
# operation for the past three years, and in the City of Moose Jaw,
|
||||
# Saskatchewan, for one year."
|
||||
|
||||
# From David Bryan via Tory Tronrud, Director/Curator,
|
||||
# Thunder Bay Museum (2003-11-12):
|
||||
# There is some suggestion, however, that, by-law or not, daylight
|
||||
# savings time was being practiced in Fort William and Port Arthur
|
||||
# before 1909.... [I]n 1910, the line between the Eastern and Central
|
||||
# Time Zones was permanently moved about two hundred miles west to
|
||||
# include the Thunder Bay area.... When Canada adopted daylight
|
||||
# savings time in 1916, Fort William and Port Arthur, having done so
|
||||
# already, did not change their clocks.... During the Second World
|
||||
# War,... [t]he cities agreed to implement DST during the summer
|
||||
# months for the remainder of the war years.
|
||||
# The Bahamas match Toronto since 1970.
|
||||
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Toronto -5:17:32 - LMT 1895
|
||||
@@ -1768,22 +1726,6 @@ Zone America/Toronto -5:17:32 - LMT 1895
|
||||
-5:00 Canada E%sT 1946
|
||||
-5:00 Toronto E%sT 1974
|
||||
-5:00 Canada E%sT
|
||||
Link America/Toronto America/Nassau
|
||||
Zone America/Thunder_Bay -5:57:00 - LMT 1895
|
||||
-6:00 - CST 1910
|
||||
-5:00 - EST 1942
|
||||
-5:00 Canada E%sT 1970
|
||||
-5:00 Toronto E%sT 1973
|
||||
-5:00 - EST 1974
|
||||
-5:00 Canada E%sT
|
||||
Zone America/Nipigon -5:53:04 - LMT 1895
|
||||
-5:00 Canada E%sT 1940 Sep 29
|
||||
-5:00 1:00 EDT 1942 Feb 9 2:00s
|
||||
-5:00 Canada E%sT
|
||||
Zone America/Rainy_River -6:18:16 - LMT 1895
|
||||
-6:00 Canada C%sT 1940 Sep 29
|
||||
-6:00 1:00 CDT 1942 Feb 9 2:00s
|
||||
-6:00 Canada C%sT
|
||||
# For Atikokan see America/Panama.
|
||||
|
||||
|
||||
@@ -2032,6 +1974,37 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||
|
||||
# Northwest Territories, Nunavut, Yukon
|
||||
|
||||
# From Chris Walton (2022-11-06):
|
||||
# Whitehorse Star - Thursday April 22, 1965 - page 1
|
||||
# title: DST Starts Monday ...
|
||||
# https://www.newspapers.com/image/578587481/
|
||||
# The title of this first article is wrong and/or misleading.
|
||||
# Also, the start time shown in the article is vague; it simply says "after
|
||||
# midnight" when it probably should have stated 2:00a.m....
|
||||
#
|
||||
# Whitehorse Star - Monday October 25, 1965 - page 15 ...
|
||||
# https://www.newspapers.com/image/578589147/
|
||||
# The 1965 Yukon Council minutes can be found here:
|
||||
# http://assets.yukonarchives.ca/PER_YG_06_1965_C20_S02_v1.pdf
|
||||
# ... I do not currently believe that NWT touched any of its clocks in 1965....
|
||||
#
|
||||
# Whitehorse Star - Thursday Feb 24,1966 - page 2
|
||||
# title: It's Time for YDT ...
|
||||
# https://www.newspapers.com/image/578575979/ ...
|
||||
# America/Whitehorse as a permanent change from UTC-9(YST) to
|
||||
# UTC-8(PST) at 00:00 on Sunday February 27, 1966....
|
||||
#
|
||||
# Whitehorse Star - Friday April 28,1972 - page 6
|
||||
# title: Daylight Saving Time for N.W.T....
|
||||
# https://www.newspapers.com/image/578701610/ ...
|
||||
# Nunavut and NWT zones ... DST starting in 1972.... Start and End ...
|
||||
# should be the same as the rest of Canada
|
||||
#
|
||||
#
|
||||
# From Paul Eggert (2022-11-06):
|
||||
# For now, assume Yukon's 1965-04-22 spring forward was 00:00 -> 02:00, as this
|
||||
# seems likely than 02:00 -> 04:00 and matches "after midnight".
|
||||
|
||||
# From Paul Eggert (2006-03-22):
|
||||
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
|
||||
# Mathew Englander (1996-10-07) gives the following refs:
|
||||
@@ -2146,52 +2119,22 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||
# * Interpretation Act, RSY 2002, c 125
|
||||
# https://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html
|
||||
|
||||
# From Chris Walton (2022-11-06):
|
||||
# The 5th edition of the Atlas of Canada contains a time zone map that
|
||||
# shows both legislated and observed time zone boundaries.
|
||||
# All communities on Baffin Island are shown to be observing Eastern time.
|
||||
# The date on the map is 1984.
|
||||
# https://ftp.maps.canada.ca/pub/nrcan_rncan/raster/atlas_5_ed/eng/other/referencemaps/mcr4056.pdf
|
||||
|
||||
# From Rives McDow (1999-09-04):
|
||||
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
|
||||
# Nunavut moves to single time zone Oct. 31
|
||||
# http://www.nunatsiaq.com/nunavut/nvt90903_13.html
|
||||
#
|
||||
# From Antoine Leca (1999-09-06):
|
||||
# We then need to create a new timezone for the Kitikmeot region of Nunavut
|
||||
# to differentiate it from the Yellowknife region.
|
||||
|
||||
# From Paul Eggert (1999-09-20):
|
||||
# Basic Facts: The New Territory
|
||||
# http://www.nunavut.com/basicfacts/english/basicfacts_1territory.html
|
||||
# (1999) reports that Pangnirtung operates on eastern time,
|
||||
# and that Coral Harbour does not observe DST. We don't know when
|
||||
# Pangnirtung switched to eastern time; we'll guess 1995.
|
||||
|
||||
# From Rives McDow (1999-11-08):
|
||||
# On October 31, when the rest of Nunavut went to Central time,
|
||||
# Pangnirtung wobbled. Here is the result of their wobble:
|
||||
#
|
||||
# The following businesses and organizations in Pangnirtung use Central Time:
|
||||
#
|
||||
# First Air, Power Corp, Nunavut Construction, Health Center, RCMP,
|
||||
# Eastern Arctic National Parks, A & D Specialist
|
||||
#
|
||||
# The following businesses and organizations in Pangnirtung use Eastern Time:
|
||||
#
|
||||
# Hamlet office, All other businesses, Both schools, Airport operator
|
||||
#
|
||||
# This has made for an interesting situation there, which warranted the news.
|
||||
# No one there that I spoke with seems concerned, or has plans to
|
||||
# change the local methods of keeping time, as it evidently does not
|
||||
# really interfere with any activities or make things difficult locally.
|
||||
# They plan to celebrate New Year's turn-over twice, one hour apart,
|
||||
# so it appears that the situation will last at least that long.
|
||||
# The Nunavut Intergovernmental Affairs hopes that they will "come to
|
||||
# their senses", but the locals evidently don't see any problem with
|
||||
# the current state of affairs.
|
||||
|
||||
# From Michaela Rodrigue, writing in the
|
||||
# Nunatsiaq News (1999-11-19):
|
||||
# http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html
|
||||
# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones,
|
||||
# central - or Nunavut time - for government offices, and eastern time
|
||||
# for municipal offices and schools.... Igloolik [was similar but then]
|
||||
# made the switch to central time on Saturday, Nov. 6.
|
||||
# (1999) reports that ... Coral Harbour does not observe DST.
|
||||
|
||||
# From Paul Eggert (2000-10-02):
|
||||
# Matthews and Vincent (1998) say the following, but we lack histories
|
||||
@@ -2350,18 +2293,12 @@ Rule NT_YK 1919 only - Nov 1 0:00 0 S
|
||||
Rule NT_YK 1942 only - Feb 9 2:00 1:00 W # War
|
||||
Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P # Peace
|
||||
Rule NT_YK 1945 only - Sep 30 2:00 0 S
|
||||
Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD
|
||||
Rule NT_YK 1965 only - Oct lastSun 2:00 0 S
|
||||
Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D
|
||||
Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S
|
||||
Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D
|
||||
Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
|
||||
Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Yukon 1965 only - Apr lastSun 0:00 2:00 DD
|
||||
Rule Yukon 1965 only - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
# aka Panniqtuuq
|
||||
Zone America/Pangnirtung 0 - -00 1921 # trading post est.
|
||||
-4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00
|
||||
-5:00 Canada E%sT 1999 Oct 31 2:00
|
||||
-6:00 Canada C%sT 2000 Oct 29 2:00
|
||||
-5:00 Canada E%sT
|
||||
# formerly Frobisher Bay
|
||||
Zone America/Iqaluit 0 - -00 1942 Aug # Frobisher Bay est.
|
||||
-5:00 NT_YK E%sT 1999 Oct 31 2:00
|
||||
@@ -2386,21 +2323,20 @@ Zone America/Cambridge_Bay 0 - -00 1920 # trading post est.?
|
||||
-5:00 - EST 2000 Nov 5 0:00
|
||||
-6:00 - CST 2001 Apr 1 3:00
|
||||
-7:00 Canada M%sT
|
||||
Zone America/Yellowknife 0 - -00 1935 # Yellowknife founded?
|
||||
-7:00 NT_YK M%sT 1980
|
||||
-7:00 Canada M%sT
|
||||
Zone America/Inuvik 0 - -00 1953 # Inuvik founded
|
||||
-8:00 NT_YK P%sT 1979 Apr lastSun 2:00
|
||||
-7:00 NT_YK M%sT 1980
|
||||
-7:00 Canada M%sT
|
||||
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
|
||||
-9:00 NT_YK Y%sT 1967 May 28 0:00
|
||||
-8:00 NT_YK P%sT 1980
|
||||
-9:00 NT_YK Y%sT 1965
|
||||
-9:00 Yukon Y%sT 1966 Feb 27 0:00
|
||||
-8:00 - PST 1980
|
||||
-8:00 Canada P%sT 2020 Nov 1
|
||||
-7:00 - MST
|
||||
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
-9:00 NT_YK Y%sT 1973 Oct 28 0:00
|
||||
-8:00 NT_YK P%sT 1980
|
||||
-9:00 NT_YK Y%sT 1965
|
||||
-9:00 Yukon Y%sT 1973 Oct 28 0:00
|
||||
-8:00 - PST 1980
|
||||
-8:00 Canada P%sT 2020 Nov 1
|
||||
-7:00 - MST
|
||||
|
||||
@@ -2616,6 +2552,20 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
|
||||
# 5- The islands, reefs and keys shall take their timezone from the
|
||||
# longitude they are located at.
|
||||
|
||||
# From Paul Eggert (2022-10-28):
|
||||
# The new Mexican law was published today:
|
||||
# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022
|
||||
# This abolishes DST except where US DST rules are observed,
|
||||
# and in addition changes all of Chihuahua to -06 with no DST.
|
||||
|
||||
# From Heitor David Pinto (2022-11-28):
|
||||
# Now the northern [municipios] want to have the same time zone as the
|
||||
# respective neighboring cities in the US, for example Juárez in UTC-7 with
|
||||
# DST, matching El Paso, and Ojinaga in UTC-6 with DST, matching Presidio....
|
||||
# the president authorized the publication of the decree for November 29,
|
||||
# so the time change would occur on November 30 at 0:00.
|
||||
# http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule Mexico 1931 only - May 1 23:00 1:00 D
|
||||
Rule Mexico 1931 only - Oct 1 0:00 0 S
|
||||
@@ -2631,8 +2581,8 @@ Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
|
||||
Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 2001 only - Sep lastSun 2:00 0 S
|
||||
Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 2002 max - Oct lastSun 2:00 0 S
|
||||
Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
# Quintana Roo; represented by Cancún
|
||||
Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u
|
||||
@@ -2646,15 +2596,13 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u
|
||||
-5:00 - EST 1982 Dec 2
|
||||
-6:00 Mexico C%sT
|
||||
# Coahuila, Nuevo León, Tamaulipas (near US border)
|
||||
# This includes the following municipalities:
|
||||
# in Coahuila: Ocampo, Acuña, Zaragoza, Jiménez, Piedras Negras, Nava,
|
||||
# Guerrero, Hidalgo.
|
||||
# in Nuevo León: Anáhuac, Los Aldama.
|
||||
# This includes the following municipios:
|
||||
# in Coahuila: Acuña, Allende, Guerrero, Hidalgo, Jiménez, Morelos, Nava,
|
||||
# Ocampo, Piedras Negras, Villa Unión, Zaragoza
|
||||
# in Nuevo León: Anáhuac
|
||||
# in Tamaulipas: Nuevo Laredo, Guerrero, Mier, Miguel Alemán, Camargo,
|
||||
# Gustavo Díaz Ordaz, Reynosa, Río Bravo, Valle Hermoso, Matamoros.
|
||||
# See: Inicia mañana Horario de Verano en zona fronteriza, El Universal,
|
||||
# 2016-03-12
|
||||
# http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza
|
||||
# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022
|
||||
Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u
|
||||
-6:00 - CST 1988
|
||||
-6:00 US C%sT 1989
|
||||
@@ -2673,10 +2621,25 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u
|
||||
-6:00 Mexico C%sT 2001 Sep 30 2:00
|
||||
-6:00 - CST 2002 Feb 20
|
||||
-6:00 Mexico C%sT
|
||||
# Chihuahua (near US border)
|
||||
# This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe,
|
||||
# Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides.
|
||||
# (See the 2016-03-12 El Universal source mentioned above.)
|
||||
# Chihuahua (near US border - western side)
|
||||
# This includes the municipios of Janos, Ascensión, Juárez, Guadalupe, and
|
||||
# Práxedis G Guerrero.
|
||||
# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf
|
||||
Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1996
|
||||
-6:00 Mexico C%sT 1998
|
||||
-6:00 - CST 1998 Apr Sun>=1 3:00
|
||||
-7:00 Mexico M%sT 2010
|
||||
-7:00 US M%sT 2022 Oct 30 2:00
|
||||
-6:00 - CST 2022 Nov 30 0:00
|
||||
-7:00 US M%sT
|
||||
# Chihuahua (near US border - eastern side)
|
||||
# This includes the municipios of Coyame del Sotol, Ojinaga, and Manuel
|
||||
# Benavides.
|
||||
# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf
|
||||
Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
@@ -2685,7 +2648,9 @@ Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u
|
||||
-6:00 Mexico C%sT 1998
|
||||
-6:00 - CST 1998 Apr Sun>=1 3:00
|
||||
-7:00 Mexico M%sT 2010
|
||||
-7:00 US M%sT
|
||||
-7:00 US M%sT 2022 Oct 30 2:00
|
||||
-6:00 - CST 2022 Nov 30 0:00
|
||||
-6:00 US C%sT
|
||||
# Chihuahua (away from US border)
|
||||
Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
@@ -2694,7 +2659,8 @@ Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u
|
||||
-6:00 - CST 1996
|
||||
-6:00 Mexico C%sT 1998
|
||||
-6:00 - CST 1998 Apr Sun>=1 3:00
|
||||
-7:00 Mexico M%sT
|
||||
-7:00 Mexico M%sT 2022 Oct 30 2:00
|
||||
-6:00 - CST
|
||||
# Sonora
|
||||
Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
@@ -2706,6 +2672,18 @@ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 Mexico M%sT 1999
|
||||
-7:00 - MST
|
||||
|
||||
# Baja California Sur, Nayarit (except Bahía de Banderas), Sinaloa
|
||||
Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1942 Apr 24
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1970
|
||||
-7:00 Mexico M%sT
|
||||
|
||||
# Bahía de Banderas
|
||||
|
||||
# From Alexander Krivenyshev (2010-04-21):
|
||||
# According to news, Bahía de Banderas (Mexican state of Nayarit)
|
||||
# changed time zone UTC-7 to new time zone UTC-6 on April 4, 2010 (to
|
||||
@@ -2733,17 +2711,6 @@ Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
|
||||
# From Arthur David Olson (2010-05-01):
|
||||
# Use "Bahia_Banderas" to keep the name to fourteen characters.
|
||||
|
||||
# Mazatlán
|
||||
Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
-7:00 Mexico M%sT 1932 Apr 1
|
||||
-6:00 - CST 1942 Apr 24
|
||||
-7:00 - MST 1949 Jan 14
|
||||
-8:00 - PST 1970
|
||||
-7:00 Mexico M%sT
|
||||
|
||||
# Bahía de Banderas
|
||||
Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u
|
||||
-7:00 - MST 1927 Jun 10 23:00
|
||||
-6:00 - CST 1930 Nov 15
|
||||
@@ -2792,20 +2759,16 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u
|
||||
# http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010
|
||||
# It has been moved to the 'backward' file.
|
||||
#
|
||||
# From Paul Eggert (2022-10-28):
|
||||
# Today's new law states that the entire state of Baja California
|
||||
# follows US DST rules, which agrees with simplifications noted above.
|
||||
#
|
||||
#
|
||||
# Revillagigedo Is
|
||||
# no information
|
||||
|
||||
###############################################################################
|
||||
|
||||
# Anguilla
|
||||
# Antigua and Barbuda
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# The Bahamas
|
||||
# See America/Toronto.
|
||||
|
||||
|
||||
# Barbados
|
||||
|
||||
# For 1899 Milne gives -3:58:29.2.
|
||||
@@ -3018,12 +2981,6 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton
|
||||
-4:00 Canada A%sT 1976
|
||||
-4:00 US A%sT
|
||||
|
||||
# Caribbean Netherlands
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Cayman Is
|
||||
# See America/Panama.
|
||||
|
||||
# Costa Rica
|
||||
|
||||
# Milne gives -5:36:13.3 as San José mean time.
|
||||
@@ -3102,7 +3059,7 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José
|
||||
#
|
||||
# He supplied these references:
|
||||
#
|
||||
# http://www.prensalatina.com.mx/article.asp?ID=%7B4CC32C1B-A9F7-42FB-8A07-8631AFC923AF%7D&language=ES
|
||||
# http://www.prensalatina.com.mx/article.asp?ID={4CC32C1B-A9F7-42FB-8A07-8631AFC923AF}&language=ES
|
||||
# http://actualidad.terra.es/sociedad/articulo/cuba_llama_ahorrar_energia_cambio_1957044.htm
|
||||
#
|
||||
# From Alex Krivenyshev (2007-10-25):
|
||||
@@ -3249,9 +3206,6 @@ Zone America/Havana -5:29:28 - LMT 1890
|
||||
-5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT
|
||||
-5:00 Cuba C%sT
|
||||
|
||||
# Dominica
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Dominican Republic
|
||||
|
||||
# From Steffen Thorsen (2000-10-30):
|
||||
@@ -3298,12 +3252,6 @@ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
|
||||
Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador
|
||||
-6:00 Salv C%sT
|
||||
|
||||
# Grenada
|
||||
# Guadeloupe
|
||||
# St Barthélemy
|
||||
# St Martin (French part)
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Guatemala
|
||||
#
|
||||
# From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen:
|
||||
@@ -3489,9 +3437,6 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France
|
||||
-4:00 1:00 ADT 1980 Sep 28
|
||||
-4:00 - AST
|
||||
|
||||
# Montserrat
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Nicaragua
|
||||
#
|
||||
# This uses Shanks & Pottenger for times before 2005.
|
||||
@@ -3557,44 +3502,39 @@ Zone America/Managua -5:45:08 - LMT 1890
|
||||
-5:00 - EST 1997
|
||||
-6:00 Nic C%sT
|
||||
|
||||
# Cayman Is
|
||||
# Panama
|
||||
#
|
||||
# Atikokan and Coral Harbour, Canada, match Panama since 1970.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Panama -5:18:08 - LMT 1890
|
||||
-5:19:36 - CMT 1908 Apr 22 # Colón Mean Time
|
||||
-5:00 - EST
|
||||
Link America/Panama America/Atikokan
|
||||
Link America/Panama America/Cayman
|
||||
|
||||
# Anguilla
|
||||
# Antigua & Barbuda
|
||||
# Aruba
|
||||
# Caribbean Netherlands
|
||||
# Curaçao
|
||||
# Dominica
|
||||
# Grenada
|
||||
# Guadeloupe
|
||||
# Montserrat
|
||||
# Puerto Rico
|
||||
# St Barthélemy
|
||||
# St Kitts-Nevis
|
||||
# Sint Maarten / St Martin
|
||||
# St Lucia
|
||||
# St Vincent & the Grenadines
|
||||
# Trinidad & Tobago
|
||||
# Virgin Is (UK & US)
|
||||
#
|
||||
# There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'.
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan
|
||||
-4:00 - AST 1942 May 3
|
||||
-4:00 US A%sT 1946
|
||||
-4:00 - AST
|
||||
Link America/Puerto_Rico America/Anguilla
|
||||
Link America/Puerto_Rico America/Antigua
|
||||
Link America/Puerto_Rico America/Aruba
|
||||
Link America/Puerto_Rico America/Curacao
|
||||
Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore)
|
||||
Link America/Puerto_Rico America/Dominica
|
||||
Link America/Puerto_Rico America/Grenada
|
||||
Link America/Puerto_Rico America/Guadeloupe
|
||||
Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands
|
||||
Link America/Puerto_Rico America/Lower_Princes # Sint Maarten
|
||||
Link America/Puerto_Rico America/Marigot # St Martin (French part)
|
||||
Link America/Puerto_Rico America/Montserrat
|
||||
Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago
|
||||
Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy
|
||||
Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis
|
||||
Link America/Puerto_Rico America/St_Lucia
|
||||
Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US)
|
||||
Link America/Puerto_Rico America/St_Vincent
|
||||
Link America/Puerto_Rico America/Tortola # Virgin Islands (UK)
|
||||
|
||||
# St Kitts-Nevis
|
||||
# St Lucia
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# St Pierre and Miquelon
|
||||
# There are too many St Pierres elsewhere, so we'll use 'Miquelon'.
|
||||
@@ -3604,12 +3544,6 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
|
||||
-3:00 - -03 1987
|
||||
-3:00 Canada -03/-02
|
||||
|
||||
# St Vincent and the Grenadines
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Sint Maarten
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Turks and Caicos
|
||||
#
|
||||
# From Chris Dunn in
|
||||
@@ -3679,11 +3613,6 @@ Zone America/Grand_Turk -4:44:32 - LMT 1890
|
||||
-4:00 - AST 2018 Mar 11 3:00
|
||||
-5:00 US E%sT
|
||||
|
||||
# British Virgin Is
|
||||
# US Virgin Is
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
|
||||
# Local Variables:
|
||||
# coding: utf-8
|
||||
# End:
|
||||
@@ -208,7 +208,7 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
|
||||
# Hora de verano para la República Argentina
|
||||
# http://buenasiembra.com.ar/esoterismo/astrologia/hora-de-verano-de-la-republica-argentina-27.html
|
||||
# says that standard time in Argentina from 1894-10-31
|
||||
# to 1920-05-01 was -4:16:48.25. Go with this more-precise value
|
||||
# to 1920-05-01 was -4:16:48.25. Go with this more precise value
|
||||
# over Shanks & Pottenger. It is upward compatible with Milne, who
|
||||
# says Córdoba time was -4:16:48.2.
|
||||
|
||||
@@ -585,9 +585,6 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
|
||||
-3:00 Arg -03/-02 2008 Oct 18
|
||||
-3:00 - -03
|
||||
|
||||
# Aruba
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Bolivia
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/La_Paz -4:32:36 - LMT 1890
|
||||
@@ -1421,9 +1418,14 @@ Zone Antarctica/Palmer 0 - -00 1965
|
||||
# Milne gives 4:56:16.4 for Bogotá time in 1899. He writes,
|
||||
# "A variation of fifteen minutes in the public clocks of Bogota is not rare."
|
||||
|
||||
# From Alois Treindl (2022-11-10):
|
||||
# End of time change in Colombia 1993 ... should be 6 February 24h ...
|
||||
# DECRETO 267 DE 1993
|
||||
# https://www.suin-juriscol.gov.co/viewDocument.asp?ruta=Decretos/1061335
|
||||
|
||||
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||
Rule CO 1992 only - May 3 0:00 1:00 -
|
||||
Rule CO 1993 only - Apr 4 0:00 0 -
|
||||
Rule CO 1992 only - May 3 0:00 1:00 -
|
||||
Rule CO 1993 only - Feb 6 24:00 0 -
|
||||
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
#STDOFF -4:56:16.4
|
||||
Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
|
||||
@@ -1432,15 +1434,6 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
|
||||
# Malpelo, Providencia, San Andres
|
||||
# no information; probably like America/Bogota
|
||||
|
||||
# Curaçao
|
||||
# See America/Puerto_Rico.
|
||||
#
|
||||
# From Arthur David Olson (2011-06-15):
|
||||
# use links for places with new iso3166 codes.
|
||||
# The name "Lower Prince's Quarter" is both longer than fourteen characters
|
||||
# and contains an apostrophe; use "Lower_Princes"....
|
||||
# From Paul Eggert (2021-09-29):
|
||||
# These backward-compatibility links now are in the 'northamerica' file.
|
||||
|
||||
# Ecuador
|
||||
#
|
||||
@@ -1756,9 +1749,6 @@ Zone America/Paramaribo -3:40:40 - LMT 1911
|
||||
-3:30 - -0330 1984 Oct
|
||||
-3:00 - -03
|
||||
|
||||
# Trinidad and Tobago
|
||||
# See America/Puerto_Rico.
|
||||
|
||||
# Uruguay
|
||||
# From Paul Eggert (1993-11-18):
|
||||
# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
|
||||
|
||||
+45
-23
@@ -23,7 +23,7 @@
|
||||
<li><a href="#stability">Interface stability</a></li>
|
||||
<li><a href="#leapsec">Leap seconds</a></li>
|
||||
<li><a href="#calendar">Calendrical issues</a></li>
|
||||
<li><a href="#planets">Time and time zones on other planets</a></li>
|
||||
<li><a href="#planets">Time and time zones off earth</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@@ -60,7 +60,6 @@ with current and future timestamps in the traditional North
|
||||
American mountain time zone can choose from the timezones
|
||||
<code>America/Denver</code> which observes US-style daylight saving
|
||||
time (<abbr>DST</abbr>),
|
||||
<code>America/Mazatlan</code> which observes Mexican-style <abbr>DST</abbr>,
|
||||
and <code>America/Phoenix</code> which does not observe <abbr>DST</abbr>.
|
||||
Applications that also deal with past timestamps in the mountain time
|
||||
zone can choose from over a dozen timezones, such as
|
||||
@@ -329,6 +328,7 @@ still supported.
|
||||
These legacy names are mostly defined in the file
|
||||
'<code>etcetera</code>'.
|
||||
Also, the file '<code>backward</code>' defines the legacy names
|
||||
'<code>Etc/GMT0</code>', '<code>Etc/GMT-0</code>', '<code>Etc/GMT+0</code>',
|
||||
'<code>GMT0</code>', '<code>GMT-0</code>' and '<code>GMT+0</code>',
|
||||
and the file '<code>northamerica</code>' defines the legacy names
|
||||
'<code>EST5EDT</code>', '<code>CST6CDT</code>',
|
||||
@@ -443,11 +443,11 @@ in decreasing order of importance:
|
||||
CAT/CAST Central Africa,
|
||||
CET/CEST/CEMT Central European,
|
||||
ChST Chamorro,
|
||||
CST/CDT/CWT/CPT/CDDT Central [North America],
|
||||
CST/CDT/CWT/CPT Central [North America],
|
||||
CST/CDT China,
|
||||
GMT/BST/IST/BDST Greenwich,
|
||||
EAT East Africa,
|
||||
EST/EDT/EWT/EPT/EDDT Eastern [North America],
|
||||
EST/EDT/EWT/EPT Eastern [North America],
|
||||
EET/EEST Eastern European,
|
||||
GST/GDT Guam,
|
||||
HST/HDT/HWT/HPT Hawaii,
|
||||
@@ -460,13 +460,13 @@ in decreasing order of importance:
|
||||
MET/MEST Middle European (a backward-compatibility alias for
|
||||
Central European),
|
||||
MSK/MSD Moscow,
|
||||
MST/MDT/MWT/MPT/MDDT Mountain,
|
||||
MST/MDT/MWT/MPT Mountain,
|
||||
NST/NDT/NWT/NPT/NDDT Newfoundland,
|
||||
NST/NDT/NWT/NPT Nome,
|
||||
NZMT/NZST New Zealand through 1945,
|
||||
NZST/NZDT New Zealand 1946–present,
|
||||
PKT/PKST Pakistan,
|
||||
PST/PDT/PWT/PPT/PDDT Pacific,
|
||||
PST/PDT/PWT/PPT Pacific,
|
||||
PST/PDT Philippine,
|
||||
SAST South Africa,
|
||||
SST Samoa,
|
||||
@@ -494,7 +494,7 @@ in decreasing order of importance:
|
||||
<p>
|
||||
<small>These abbreviations are:
|
||||
AMT Asunción, Athens;
|
||||
BMT Baghdad, Bangkok, Batavia, Bermuda, Bern, Bogotá, Bridgetown,
|
||||
BMT Baghdad, Bangkok, Batavia, Bermuda, Bern, Bogotá,
|
||||
Brussels, Bucharest;
|
||||
CMT Calamarca, Caracas, Chisinau, Colón, Córdoba;
|
||||
DMT Dublin/Dunsink;
|
||||
@@ -506,12 +506,13 @@ in decreasing order of importance:
|
||||
IMT Irkutsk, Istanbul;
|
||||
JMT Jerusalem;
|
||||
KMT Kaunas, Kyiv, Kingston;
|
||||
LMT Lima, Lisbon, local, Luanda;
|
||||
LMT Lima, Lisbon, local;
|
||||
MMT Macassar, Madras, Malé, Managua, Minsk, Monrovia, Montevideo,
|
||||
Moratuwa, Moscow;
|
||||
PLMT Phù Liễn;
|
||||
PMT Paramaribo, Paris, Perm, Pontianak, Prague;
|
||||
PMMT Port Moresby;
|
||||
PPMT Port-au-Prince;
|
||||
QMT Quito;
|
||||
RMT Rangoon, Riga, Rome;
|
||||
SDMT Santo Domingo;
|
||||
@@ -519,8 +520,7 @@ in decreasing order of importance:
|
||||
SMT Santiago, Simferopol, Singapore, Stanley;
|
||||
TBMT Tbilisi;
|
||||
TMT Tallinn, Tehran;
|
||||
WMT Warsaw;
|
||||
ZMT Zomba.</small>
|
||||
WMT Warsaw.</small>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -791,7 +791,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes
|
||||
with days starting at midnight.
|
||||
Although <abbr>UT</abbr> equals <abbr>UTC</abbr> for modern
|
||||
timestamps, <abbr>UTC</abbr> was not defined until 1960, so
|
||||
commentary uses the more-general abbreviation <abbr>UT</abbr> for
|
||||
commentary uses the more general abbreviation <abbr>UT</abbr> for
|
||||
timestamps that might predate 1960.
|
||||
Since <abbr>UT</abbr>, <abbr>UT1</abbr>, etc. disagree slightly,
|
||||
and since pre-1972 <abbr>UTC</abbr> seconds varied in length,
|
||||
@@ -818,7 +818,8 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes
|
||||
<li>
|
||||
The relationship between POSIX time (that is, <abbr>UTC</abbr> but
|
||||
ignoring <a href="https://en.wikipedia.org/wiki/Leap_second">leap
|
||||
seconds</a>) and <abbr>UTC</abbr> is not agreed upon after 1972.
|
||||
seconds</a>) and <abbr>UTC</abbr> is not agreed upon.
|
||||
This affects time stamps during the leap second era (1972–2035).
|
||||
Although the POSIX
|
||||
clock officially stops during an inserted leap second, at least one
|
||||
proposed standard has it jumping back a second instead; and in
|
||||
@@ -877,7 +878,7 @@ an older <code>zic</code>.
|
||||
is error-prone in practice.
|
||||
Also, POSIX <code>TZ</code> strings cannot deal with daylight
|
||||
saving time rules not based on the Gregorian calendar (as in
|
||||
Iran), or with situations where more than two time zone
|
||||
Morocco), or with situations where more than two time zone
|
||||
abbreviations or <abbr>UT</abbr> offsets are used in an area.
|
||||
</p>
|
||||
|
||||
@@ -913,8 +914,8 @@ an older <code>zic</code>.
|
||||
<dt><var>date</var>[<code>/</code><var>time</var>]<code>,</code><var>date</var>[<code>/</code><var>time</var>]</dt><dd>
|
||||
specifies the beginning and end of <abbr>DST</abbr>.
|
||||
If this is absent, the system supplies its own ruleset
|
||||
for <abbr>DST</abbr>, and its rules can differ from year to year;
|
||||
typically <abbr>US</abbr> <abbr>DST</abbr> rules are used.
|
||||
for <abbr>DST</abbr>, typically current <abbr>US</abbr>
|
||||
<abbr>DST</abbr> rules.
|
||||
</dd>
|
||||
<dt><var>time</var></dt><dd>
|
||||
takes the form
|
||||
@@ -974,10 +975,11 @@ an older <code>zic</code>.
|
||||
Traditionally the current <abbr>US</abbr> <abbr>DST</abbr> rules
|
||||
were used to interpret such values, but this meant that the
|
||||
<abbr>US</abbr> <abbr>DST</abbr> rules were compiled into each
|
||||
program that did time conversion. This meant that when
|
||||
time conversion package, and when
|
||||
<abbr>US</abbr> time conversion rules changed (as in the United
|
||||
States in 1987), all programs that did time conversion had to be
|
||||
recompiled to ensure proper results.
|
||||
States in 1987 and again in 2007), all packages that
|
||||
interpreted <code>TZ</code> values had to be updated
|
||||
to ensure proper results.
|
||||
</li>
|
||||
<li>
|
||||
The <code>TZ</code> environment variable is process-global, which
|
||||
@@ -1173,7 +1175,7 @@ The vestigial <abbr>API</abbr>s are:
|
||||
</li>
|
||||
<li>
|
||||
The functions that are conditionally compiled
|
||||
if <code>STD_INSPIRED</code> is defined should, at this point, be
|
||||
if <code>STD_INSPIRED</code> is nonzero should, at this point, be
|
||||
looked on primarily as food for thought.
|
||||
They are not in any sense "standard compatible" – some are
|
||||
not, in fact, specified in <em>any</em> standard.
|
||||
@@ -1240,7 +1242,7 @@ The <code><abbr>tz</abbr></code> code and data supply the following interfaces:
|
||||
Interface changes in a release attempt to preserve compatibility with
|
||||
recent releases.
|
||||
For example, <code><abbr>tz</abbr></code> data files typically do not
|
||||
rely on recently-added <code>zic</code> features, so that users can
|
||||
rely on recently added <code>zic</code> features, so that users can
|
||||
run older <code>zic</code> versions to process newer data files.
|
||||
<a href="tz-link.html#download">Downloading
|
||||
the <code><abbr>tz</abbr></code> database</a> describes how releases
|
||||
@@ -1268,6 +1270,18 @@ between now and the future time.
|
||||
|
||||
<section>
|
||||
<h2 id="leapsec">Leap seconds</h2>
|
||||
<p>
|
||||
Leap seconds were introduced in 1972 to accommodate the
|
||||
difference between atomic time and the less regular rotation of the earth.
|
||||
Unfortunately they caused so many problems with civil
|
||||
timekeeping that they
|
||||
are <a href="https://www.bipm.org/en/cgpm-2022/resolution-4">planned
|
||||
to be discontinued by 2035</a>, with some as-yet-undetermined
|
||||
mechanism replacing them, perhaps after the year 2135.
|
||||
Despite their impending obsolescence, a record of leap seconds is still
|
||||
needed to resolve timestamps from 1972 through 2035.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code><abbr>tz</abbr></code> code and data can account for leap seconds,
|
||||
thanks to code contributed by Bradley White.
|
||||
@@ -1282,12 +1296,12 @@ commonly used by
|
||||
<a href="https://www.ntp.org"><abbr title="Network Time Protocol">NTP</abbr></a>
|
||||
software that adjusts the kernel clock.
|
||||
However, kernel-clock twiddling approximates UTC only roughly,
|
||||
and systems needing more-precise UTC can use this package's leap
|
||||
and systems needing more precise UTC can use this package's leap
|
||||
second support directly.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The directly-supported mechanism assumes that <code>time_t</code>
|
||||
The directly supported mechanism assumes that <code>time_t</code>
|
||||
counts of seconds since the POSIX epoch normally include leap seconds,
|
||||
as opposed to POSIX <code>time_t</code> counts which exclude leap seconds.
|
||||
This modified timescale is converted to <abbr>UTC</abbr>
|
||||
@@ -1348,7 +1362,15 @@ They sometimes disagree.
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 id="planets">Time and time zones on other planets</h2>
|
||||
<h2 id="planets">Time and time zones off Earth</h2>
|
||||
<p>
|
||||
The European Space Agency is <a
|
||||
href='https://www.esa.int/Applications/Navigation/Telling_time_on_the_Moon'>considering</a>
|
||||
the establishment of a reference timescale for the Moon, which has
|
||||
days roughly equivalent to 29.5 Earth days, and where relativistic
|
||||
effects cause clocks to tick slightly faster than on Earth.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Some people's work schedules have used
|
||||
<a href="https://en.wikipedia.org/wiki/Timekeeping_on_Mars">Mars time</a>.
|
||||
|
||||
@@ -1 +1 @@
|
||||
2022e
|
||||
2023c
|
||||
@@ -15,6 +15,9 @@
|
||||
# after main became rearguard and vanguard became main).
|
||||
# There is no need to convert rearguard to other forms.
|
||||
#
|
||||
# When converting to vanguard form, the output can use the line
|
||||
# "Zone GMT 0 - GMT" which TZUpdater 2.3.2 mistakenly rejects.
|
||||
#
|
||||
# When converting to vanguard form, the output can use negative SAVE
|
||||
# values.
|
||||
#
|
||||
@@ -151,6 +154,17 @@ DATAFORM != "main" {
|
||||
}
|
||||
}
|
||||
|
||||
# In vanguard form, use the line "Zone GMT 0 - GMT" instead of
|
||||
# "Zone Etc/GMT 0 - GMT" and adjust Link lines accordingly.
|
||||
# This works around a bug in TZUpdater 2.3.2.
|
||||
if (/^#?(Zone|Link)[\t ]+(Etc\/)?GMT[\t ]/) {
|
||||
if (($2 == "GMT") == (DATAFORM == "vanguard")) {
|
||||
uncomment = in_comment
|
||||
} else {
|
||||
comment_out = !in_comment
|
||||
}
|
||||
}
|
||||
|
||||
if (uncomment) {
|
||||
sub(/^#/, "")
|
||||
}
|
||||
@@ -297,6 +311,39 @@ DATAFORM != "main" {
|
||||
}
|
||||
}
|
||||
|
||||
# Return a link line resulting by changing OLDLINE to link to TARGET
|
||||
# from LINKNAME, instead of linking to OLDTARGET from LINKNAME.
|
||||
# Align data columns the same as they were in OLDLINE.
|
||||
# Also, replace any existing white space followed by comment with COMMENT.
|
||||
function make_linkline(oldline, target, linkname, oldtarget, comment, \
|
||||
oldprefix, oldprefixlen, oldtargettabs, \
|
||||
replsuffix, targettabs)
|
||||
{
|
||||
oldprefix = "Link\t" oldtarget "\t"
|
||||
oldprefixlen = length(oldprefix)
|
||||
if (substr(oldline, 1, oldprefixlen) == oldprefix) {
|
||||
# Use tab stops to preserve LINKNAME's column.
|
||||
replsuffix = substr(oldline, oldprefixlen + 1)
|
||||
sub(/[\t ]*#.*/, "", replsuffix)
|
||||
oldtargettabs = int(length(oldtarget) / 8) + 1
|
||||
targettabs = int(length(target) / 8) + 1
|
||||
for (; targettabs < oldtargettabs; targettabs++) {
|
||||
replsuffix = "\t" replsuffix
|
||||
}
|
||||
for (; oldtargettabs < targettabs && replsuffix ~ /^\t/; targettabs--) {
|
||||
replsuffix = substr(replsuffix, 2)
|
||||
}
|
||||
} else {
|
||||
# Odd format line; don't bother lining up its replacement nicely.
|
||||
replsuffix = linkname
|
||||
}
|
||||
return "Link\t" target "\t" replsuffix comment
|
||||
}
|
||||
|
||||
/^Link/ && $4 == "#=" && DATAFORM == "vanguard" {
|
||||
$0 = make_linkline($0, $5, $3, $2)
|
||||
}
|
||||
|
||||
# If a Link line is followed by a Link or Zone line for the same data, comment
|
||||
# out the Link line. This can happen if backzone overrides a Link
|
||||
# with a Zone or a different Link.
|
||||
@@ -306,11 +353,34 @@ DATAFORM != "main" {
|
||||
/^Link/ {
|
||||
sub(/^Link/, "#Link", line[linkline[$3]])
|
||||
linkline[$3] = NR
|
||||
linktarget[$3] = $2
|
||||
}
|
||||
|
||||
{ line[NR] = $0 }
|
||||
|
||||
function cut_link_chains_short( \
|
||||
l, linkname, t, target)
|
||||
{
|
||||
for (linkname in linktarget) {
|
||||
target = linktarget[linkname]
|
||||
t = linktarget[target]
|
||||
if (t) {
|
||||
# TARGET is itself a link name. Replace the line "Link TARGET LINKNAME"
|
||||
# with "Link T LINKNAME #= TARGET", where T is at the end of the chain
|
||||
# of links that LINKNAME points to.
|
||||
while ((u = linktarget[t])) {
|
||||
t = u
|
||||
}
|
||||
l = linkline[linkname]
|
||||
line[l] = make_linkline(line[l], t, linkname, target, "\t#= " target)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
END {
|
||||
if (DATAFORM != "vanguard") {
|
||||
cut_link_chains_short()
|
||||
}
|
||||
for (i = 1; i <= NR; i++)
|
||||
print line[i]
|
||||
}
|
||||
+27
-31
@@ -114,20 +114,15 @@ CA +4606-06447 America/Moncton Atlantic - New Brunswick
|
||||
CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas)
|
||||
CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore)
|
||||
CA +4339-07923 America/Toronto Eastern - ON, QC (most areas)
|
||||
CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73)
|
||||
CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay)
|
||||
CA +6344-06828 America/Iqaluit Eastern - NU (most east areas)
|
||||
CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung)
|
||||
CA +6344-06828 America/Iqaluit Eastern - NU (most areas)
|
||||
CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H)
|
||||
CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba
|
||||
CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances)
|
||||
CA +744144-0944945 America/Resolute Central - NU (Resolute)
|
||||
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
|
||||
CA +5024-10439 America/Regina CST - SK (most areas)
|
||||
CA +5017-10750 America/Swift_Current CST - SK (midwest)
|
||||
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); SK (W)
|
||||
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); NT (E); SK (W)
|
||||
CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west)
|
||||
CA +6227-11421 America/Yellowknife Mountain - NT (central)
|
||||
CA +682059-1334300 America/Inuvik Mountain - NT (west)
|
||||
CA +4906-11631 America/Creston MST - BC (Creston)
|
||||
CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
|
||||
@@ -143,7 +138,7 @@ CG -0416+01517 Africa/Brazzaville
|
||||
CH +4723+00832 Europe/Zurich
|
||||
CI +0519-00402 Africa/Abidjan
|
||||
CK -2114-15946 Pacific/Rarotonga
|
||||
CL -3327-07040 America/Santiago Chile (most areas)
|
||||
CL -3327-07040 America/Santiago most of Chile
|
||||
CL -5309-07055 America/Punta_Arenas Region of Magallanes
|
||||
CL -2709-10926 Pacific/Easter Easter Island
|
||||
CM +0403+00942 Africa/Douala
|
||||
@@ -155,10 +150,10 @@ CU +2308-08222 America/Havana
|
||||
CV +1455-02331 Atlantic/Cape_Verde
|
||||
CW +1211-06900 America/Curacao
|
||||
CX -1025+10543 Indian/Christmas
|
||||
CY +3510+03322 Asia/Nicosia Cyprus (most areas)
|
||||
CY +3510+03322 Asia/Nicosia most of Cyprus
|
||||
CY +3507+03357 Asia/Famagusta Northern Cyprus
|
||||
CZ +5005+01426 Europe/Prague
|
||||
DE +5230+01322 Europe/Berlin Germany (most areas)
|
||||
DE +5230+01322 Europe/Berlin most of Germany
|
||||
DE +4742+00841 Europe/Busingen Busingen
|
||||
DJ +1136+04309 Africa/Djibouti
|
||||
DK +5540+01235 Europe/Copenhagen
|
||||
@@ -191,7 +186,7 @@ GF +0456-05220 America/Cayenne
|
||||
GG +492717-0023210 Europe/Guernsey
|
||||
GH +0533-00013 Africa/Accra
|
||||
GI +3608-00521 Europe/Gibraltar
|
||||
GL +6411-05144 America/Nuuk Greenland (most areas)
|
||||
GL +6411-05144 America/Nuuk most of Greenland
|
||||
GL +7646-01840 America/Danmarkshavn National Park (east coast)
|
||||
GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
|
||||
GL +7634-06847 America/Thule Thule/Pituffik
|
||||
@@ -239,7 +234,7 @@ KP +3901+12545 Asia/Pyongyang
|
||||
KR +3733+12658 Asia/Seoul
|
||||
KW +2920+04759 Asia/Kuwait
|
||||
KY +1918-08123 America/Cayman
|
||||
KZ +4315+07657 Asia/Almaty Kazakhstan (most areas)
|
||||
KZ +4315+07657 Asia/Almaty most of Kazakhstan
|
||||
KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda
|
||||
KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay
|
||||
KZ +5017+05710 Asia/Aqtobe Aqtobe/Aktobe
|
||||
@@ -263,12 +258,12 @@ MD +4700+02850 Europe/Chisinau
|
||||
ME +4226+01916 Europe/Podgorica
|
||||
MF +1804-06305 America/Marigot
|
||||
MG -1855+04731 Indian/Antananarivo
|
||||
MH +0709+17112 Pacific/Majuro Marshall Islands (most areas)
|
||||
MH +0709+17112 Pacific/Majuro most of Marshall Islands
|
||||
MH +0905+16720 Pacific/Kwajalein Kwajalein
|
||||
MK +4159+02126 Europe/Skopje
|
||||
ML +1239-00800 Africa/Bamako
|
||||
MM +1647+09610 Asia/Yangon
|
||||
MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas)
|
||||
MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
|
||||
MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
|
||||
MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
|
||||
MO +221150+1133230 Asia/Macau
|
||||
@@ -280,17 +275,18 @@ MT +3554+01431 Europe/Malta
|
||||
MU -2010+05730 Indian/Mauritius
|
||||
MV +0410+07330 Indian/Maldives
|
||||
MW -1547+03500 Africa/Blantyre
|
||||
MX +1924-09909 America/Mexico_City Central Time
|
||||
MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo
|
||||
MX +2058-08937 America/Merida Central Time - Campeche, Yucatan
|
||||
MX +2540-10019 America/Monterrey Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
|
||||
MX +2550-09730 America/Matamoros Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border)
|
||||
MX +2313-10625 America/Mazatlan Mountain Time - Baja California Sur, Nayarit, Sinaloa
|
||||
MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua (most areas)
|
||||
MX +2934-10425 America/Ojinaga Mountain Time US - Chihuahua (US border)
|
||||
MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
|
||||
MX +3232-11701 America/Tijuana Pacific Time US - Baja California
|
||||
MX +2048-10515 America/Bahia_Banderas Central Time - Bahia de Banderas
|
||||
MX +1924-09909 America/Mexico_City Central Mexico
|
||||
MX +2105-08646 America/Cancun Quintana Roo
|
||||
MX +2058-08937 America/Merida Campeche, Yucatan
|
||||
MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
|
||||
MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border)
|
||||
MX +2838-10605 America/Chihuahua Chihuahua (most areas)
|
||||
MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west)
|
||||
MX +2934-10425 America/Ojinaga Chihuahua (US border - east)
|
||||
MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa
|
||||
MX +2048-10515 America/Bahia_Banderas Bahia de Banderas
|
||||
MX +2904-11058 America/Hermosillo Sonora
|
||||
MX +3232-11701 America/Tijuana Baja California
|
||||
MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula)
|
||||
MY +0133+11020 Asia/Kuching Sabah, Sarawak
|
||||
MZ -2558+03235 Africa/Maputo
|
||||
@@ -305,7 +301,7 @@ NO +5955+01045 Europe/Oslo
|
||||
NP +2743+08519 Asia/Kathmandu
|
||||
NR -0031+16655 Pacific/Nauru
|
||||
NU -1901-16955 Pacific/Niue
|
||||
NZ -3652+17446 Pacific/Auckland New Zealand (most areas)
|
||||
NZ -3652+17446 Pacific/Auckland most of New Zealand
|
||||
NZ -4357-17633 Pacific/Chatham Chatham Islands
|
||||
OM +2336+05835 Asia/Muscat
|
||||
PA +0858-07932 America/Panama
|
||||
@@ -313,7 +309,7 @@ PE -1203-07703 America/Lima
|
||||
PF -1732-14934 Pacific/Tahiti Society Islands
|
||||
PF -0900-13930 Pacific/Marquesas Marquesas Islands
|
||||
PF -2308-13457 Pacific/Gambier Gambier Islands
|
||||
PG -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas)
|
||||
PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea
|
||||
PG -0613+15534 Pacific/Bougainville Bougainville
|
||||
PH +1435+12100 Asia/Manila
|
||||
PK +2452+06703 Asia/Karachi
|
||||
@@ -359,7 +355,7 @@ RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River
|
||||
RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky
|
||||
RU +5934+15048 Asia/Magadan MSK+08 - Magadan
|
||||
RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island
|
||||
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); North Kuril Is
|
||||
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); N Kuril Is
|
||||
RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka
|
||||
RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea
|
||||
RW -0157+03004 Africa/Kigali
|
||||
@@ -400,7 +396,7 @@ TT +1039-06131 America/Port_of_Spain
|
||||
TV -0831+17913 Pacific/Funafuti
|
||||
TW +2503+12130 Asia/Taipei
|
||||
TZ -0648+03917 Africa/Dar_es_Salaam
|
||||
UA +5026+03031 Europe/Kyiv Ukraine (most areas)
|
||||
UA +5026+03031 Europe/Kyiv most of Ukraine
|
||||
UG +0019+03225 Africa/Kampala
|
||||
UM +2813-17722 Pacific/Midway Midway Islands
|
||||
UM +1917+16637 Pacific/Wake Wake Island
|
||||
@@ -423,7 +419,7 @@ US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural)
|
||||
US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer)
|
||||
US +394421-1045903 America/Denver Mountain (most areas)
|
||||
US +433649-1161209 America/Boise Mountain - ID (south); OR (east)
|
||||
US +332654-1120424 America/Phoenix MST - Arizona (except Navajo)
|
||||
US +332654-1120424 America/Phoenix MST - AZ (except Navajo)
|
||||
US +340308-1181434 America/Los_Angeles Pacific
|
||||
US +611305-1495401 America/Anchorage Alaska (most areas)
|
||||
US +581807-1342511 America/Juneau Alaska - Juneau area
|
||||
@@ -431,7 +427,7 @@ US +571035-1351807 America/Sitka Alaska - Sitka area
|
||||
US +550737-1313435 America/Metlakatla Alaska - Annette Island
|
||||
US +593249-1394338 America/Yakutat Alaska - Yakutat
|
||||
US +643004-1652423 America/Nome Alaska (west)
|
||||
US +515248-1763929 America/Adak Aleutian Islands
|
||||
US +515248-1763929 America/Adak Alaska - western Aleutians
|
||||
US +211825-1575130 Pacific/Honolulu Hawaii
|
||||
UY -345433-0561245 America/Montevideo
|
||||
UZ +3940+06648 Asia/Samarkand Uzbekistan (west)
|
||||
|
||||
+43
-44
@@ -19,7 +19,10 @@
|
||||
# Please see the theory.html file for how these names are chosen.
|
||||
# If multiple timezones overlap a country, each has a row in the
|
||||
# table, with each column 1 containing the country code.
|
||||
# 4. Comments; present if and only if a country has multiple timezones.
|
||||
# 4. Comments; present if and only if countries have multiple timezones,
|
||||
# and useful only for those countries. For example, the comments
|
||||
# for the row with countries CH,DE,LI and name Europe/Zurich
|
||||
# are useful only for DE, since CH and LI have no other timezones.
|
||||
#
|
||||
# If a timezone covers multiple countries, the most-populous city is used,
|
||||
# and that country is listed first in column 1; any other countries
|
||||
@@ -35,7 +38,7 @@
|
||||
#country-
|
||||
#codes coordinates TZ comments
|
||||
AD +4230+00131 Europe/Andorra
|
||||
AE,OM,RE,SC,TF +2518+05518 Asia/Dubai UAE, Oman, Réunion, Seychelles, Crozet, Scattered Is
|
||||
AE,OM,RE,SC,TF +2518+05518 Asia/Dubai Crozet, Scattered Is
|
||||
AF +3431+06912 Asia/Kabul
|
||||
AL +4120+01950 Europe/Tirane
|
||||
AM +4011+04430 Asia/Yerevan
|
||||
@@ -46,7 +49,7 @@ AQ -6448-06406 Antarctica/Palmer Palmer
|
||||
AQ -6734-06808 Antarctica/Rothera Rothera
|
||||
AQ -720041+0023206 Antarctica/Troll Troll
|
||||
AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
|
||||
AR -3124-06411 America/Argentina/Cordoba Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)
|
||||
AR -3124-06411 America/Argentina/Cordoba most areas: CB, CC, CN, ER, FM, MN, SE, SF
|
||||
AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN)
|
||||
AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
|
||||
AR -2649-06513 America/Argentina/Tucuman Tucumán (TM)
|
||||
@@ -57,7 +60,7 @@ AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
|
||||
AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
|
||||
AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
|
||||
AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
|
||||
AS,UM -1416-17042 Pacific/Pago_Pago Samoa, Midway
|
||||
AS,UM -1416-17042 Pacific/Pago_Pago Midway
|
||||
AT +4813+01620 Europe/Vienna
|
||||
AU -3133+15905 Australia/Lord_Howe Lord Howe Island
|
||||
AU -5430+15857 Antarctica/Macquarie Macquarie Island
|
||||
@@ -102,30 +105,25 @@ CA +4439-06336 America/Halifax Atlantic - NS (most areas); PE
|
||||
CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton)
|
||||
CA +4606-06447 America/Moncton Atlantic - New Brunswick
|
||||
CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas)
|
||||
CA,BS +4339-07923 America/Toronto Eastern - ON, QC (most areas), Bahamas
|
||||
CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73)
|
||||
CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay)
|
||||
CA +6344-06828 America/Iqaluit Eastern - NU (most east areas)
|
||||
CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung)
|
||||
CA,BS +4339-07923 America/Toronto Eastern - ON, QC (most areas)
|
||||
CA +6344-06828 America/Iqaluit Eastern - NU (most areas)
|
||||
CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba
|
||||
CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances)
|
||||
CA +744144-0944945 America/Resolute Central - NU (Resolute)
|
||||
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
|
||||
CA +5024-10439 America/Regina CST - SK (most areas)
|
||||
CA +5017-10750 America/Swift_Current CST - SK (midwest)
|
||||
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); SK (W)
|
||||
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); NT (E); SK (W)
|
||||
CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west)
|
||||
CA +6227-11421 America/Yellowknife Mountain - NT (central)
|
||||
CA +682059-1334300 America/Inuvik Mountain - NT (west)
|
||||
CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
|
||||
CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson)
|
||||
CA +6043-13503 America/Whitehorse MST - Yukon (east)
|
||||
CA +6404-13925 America/Dawson MST - Yukon (west)
|
||||
CA +4916-12307 America/Vancouver Pacific - BC (most areas)
|
||||
CH,DE,LI +4723+00832 Europe/Zurich Swiss time
|
||||
CH,DE,LI +4723+00832 Europe/Zurich Büsingen
|
||||
CI,BF,GH,GM,GN,IS,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan
|
||||
CK -2114-15946 Pacific/Rarotonga
|
||||
CL -3327-07040 America/Santiago Chile (most areas)
|
||||
CL -3327-07040 America/Santiago most of Chile
|
||||
CL -5309-07055 America/Punta_Arenas Region of Magallanes
|
||||
CL -2709-10926 Pacific/Easter Easter Island
|
||||
CN +3114+12128 Asia/Shanghai Beijing Time
|
||||
@@ -134,10 +132,10 @@ CO +0436-07405 America/Bogota
|
||||
CR +0956-08405 America/Costa_Rica
|
||||
CU +2308-08222 America/Havana
|
||||
CV +1455-02331 Atlantic/Cape_Verde
|
||||
CY +3510+03322 Asia/Nicosia Cyprus (most areas)
|
||||
CY +3510+03322 Asia/Nicosia most of Cyprus
|
||||
CY +3507+03357 Asia/Famagusta Northern Cyprus
|
||||
CZ,SK +5005+01426 Europe/Prague
|
||||
DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin Germany (most areas), Scandinavia
|
||||
DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin most of Germany
|
||||
DO +1828-06954 America/Santo_Domingo
|
||||
DZ +3647+00303 Africa/Algiers
|
||||
EC -0210-07950 America/Guayaquil Ecuador (mainland)
|
||||
@@ -158,7 +156,7 @@ GB,GG,IM,JE +513030-0000731 Europe/London
|
||||
GE +4143+04449 Asia/Tbilisi
|
||||
GF +0456-05220 America/Cayenne
|
||||
GI +3608-00521 Europe/Gibraltar
|
||||
GL +6411-05144 America/Nuuk Greenland (most areas)
|
||||
GL +6411-05144 America/Nuuk most of Greenland
|
||||
GL +7646-01840 America/Danmarkshavn National Park (east coast)
|
||||
GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
|
||||
GL +7634-06847 America/Thule Thule/Pituffik
|
||||
@@ -188,12 +186,12 @@ JO +3157+03556 Asia/Amman
|
||||
JP +353916+1394441 Asia/Tokyo
|
||||
KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi
|
||||
KG +4254+07436 Asia/Bishkek
|
||||
KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Tuvalu, Wallis & Futuna, Wake
|
||||
KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake
|
||||
KI -0247-17143 Pacific/Kanton Phoenix Islands
|
||||
KI +0152-15720 Pacific/Kiritimati Line Islands
|
||||
KP +3901+12545 Asia/Pyongyang
|
||||
KR +3733+12658 Asia/Seoul
|
||||
KZ +4315+07657 Asia/Almaty Kazakhstan (most areas)
|
||||
KZ +4315+07657 Asia/Almaty most of Kazakhstan
|
||||
KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda
|
||||
KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay
|
||||
KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe
|
||||
@@ -210,26 +208,27 @@ MA +3339-00735 Africa/Casablanca
|
||||
MD +4700+02850 Europe/Chisinau
|
||||
MH +0905+16720 Pacific/Kwajalein Kwajalein
|
||||
MM,CC +1647+09610 Asia/Yangon
|
||||
MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas)
|
||||
MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
|
||||
MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan
|
||||
MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar
|
||||
MO +221150+1133230 Asia/Macau
|
||||
MQ +1436-06105 America/Martinique
|
||||
MT +3554+01431 Europe/Malta
|
||||
MU -2010+05730 Indian/Mauritius
|
||||
MV,TF +0410+07330 Indian/Maldives Maldives, Kerguelen, St Paul I, Amsterdam I
|
||||
MX +1924-09909 America/Mexico_City Central Time
|
||||
MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo
|
||||
MX +2058-08937 America/Merida Central Time - Campeche, Yucatán
|
||||
MX +2540-10019 America/Monterrey Central Time - Durango; Coahuila, Nuevo León, Tamaulipas (most areas)
|
||||
MX +2550-09730 America/Matamoros Central Time US - Coahuila, Nuevo León, Tamaulipas (US border)
|
||||
MX +2313-10625 America/Mazatlan Mountain Time - Baja California Sur, Nayarit, Sinaloa
|
||||
MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua (most areas)
|
||||
MX +2934-10425 America/Ojinaga Mountain Time US - Chihuahua (US border)
|
||||
MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
|
||||
MX +3232-11701 America/Tijuana Pacific Time US - Baja California
|
||||
MX +2048-10515 America/Bahia_Banderas Central Time - Bahía de Banderas
|
||||
MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak, Brunei
|
||||
MV,TF +0410+07330 Indian/Maldives Kerguelen, St Paul I, Amsterdam I
|
||||
MX +1924-09909 America/Mexico_City Central Mexico
|
||||
MX +2105-08646 America/Cancun Quintana Roo
|
||||
MX +2058-08937 America/Merida Campeche, Yucatán
|
||||
MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo León, Tamaulipas (most areas)
|
||||
MX +2550-09730 America/Matamoros Coahuila, Nuevo León, Tamaulipas (US border)
|
||||
MX +2838-10605 America/Chihuahua Chihuahua (most areas)
|
||||
MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west)
|
||||
MX +2934-10425 America/Ojinaga Chihuahua (US border - east)
|
||||
MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa
|
||||
MX +2048-10515 America/Bahia_Banderas Bahía de Banderas
|
||||
MX +2904-11058 America/Hermosillo Sonora
|
||||
MX +3232-11701 America/Tijuana Baja California
|
||||
MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak
|
||||
MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time
|
||||
NA -2234+01706 Africa/Windhoek
|
||||
NC -2216+16627 Pacific/Noumea
|
||||
@@ -241,7 +240,7 @@ NR -0031+16655 Pacific/Nauru
|
||||
NU -1901-16955 Pacific/Niue
|
||||
NZ,AQ -3652+17446 Pacific/Auckland New Zealand time
|
||||
NZ -4357-17633 Pacific/Chatham Chatham Islands
|
||||
PA,CA,KY +0858-07932 America/Panama EST - Panama, Cayman, ON (Atikokan), NU (Coral H)
|
||||
PA,CA,KY +0858-07932 America/Panama EST - ON (Atikokan), NU (Coral H)
|
||||
PE -1203-07703 America/Lima
|
||||
PF -1732-14934 Pacific/Tahiti Society Islands
|
||||
PF -0900-13930 Pacific/Marquesas Marquesas Islands
|
||||
@@ -289,13 +288,13 @@ RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River
|
||||
RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky
|
||||
RU +5934+15048 Asia/Magadan MSK+08 - Magadan
|
||||
RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island
|
||||
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); North Kuril Is
|
||||
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); N Kuril Is
|
||||
RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka
|
||||
RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea
|
||||
SA,AQ,KW,YE +2438+04643 Asia/Riyadh Arabia, Syowa
|
||||
SB,FM -0932+16012 Pacific/Guadalcanal Solomons, Pohnpei
|
||||
SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa
|
||||
SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei
|
||||
SD +1536+03232 Africa/Khartoum
|
||||
SG,MY +0117+10351 Asia/Singapore Singapore, peninsular Malaysia
|
||||
SG,MY +0117+10351 Asia/Singapore peninsular Malaysia
|
||||
SR +0550-05510 America/Paramaribo
|
||||
SS +0451+03137 Africa/Juba
|
||||
ST +0020+00644 Africa/Sao_Tome
|
||||
@@ -303,7 +302,7 @@ SV +1342-08912 America/El_Salvador
|
||||
SY +3330+03618 Asia/Damascus
|
||||
TC +2128-07108 America/Grand_Turk
|
||||
TD +1207+01503 Africa/Ndjamena
|
||||
TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok Indochina (most areas)
|
||||
TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok north Vietnam
|
||||
TJ +3835+06848 Asia/Dushanbe
|
||||
TK -0922-17114 Pacific/Fakaofo
|
||||
TL -0833+12535 Asia/Dili
|
||||
@@ -312,7 +311,7 @@ TN +3648+01011 Africa/Tunis
|
||||
TO -210800-1751200 Pacific/Tongatapu
|
||||
TR +4101+02858 Europe/Istanbul
|
||||
TW +2503+12130 Asia/Taipei
|
||||
UA +5026+03031 Europe/Kyiv Ukraine (most areas)
|
||||
UA +5026+03031 Europe/Kyiv most of Ukraine
|
||||
US +404251-0740023 America/New_York Eastern (most areas)
|
||||
US +421953-0830245 America/Detroit Eastern - MI (most areas)
|
||||
US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area)
|
||||
@@ -332,7 +331,7 @@ US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural)
|
||||
US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer)
|
||||
US +394421-1045903 America/Denver Mountain (most areas)
|
||||
US +433649-1161209 America/Boise Mountain - ID (south); OR (east)
|
||||
US,CA +332654-1120424 America/Phoenix MST - Arizona (except Navajo), Creston BC
|
||||
US,CA +332654-1120424 America/Phoenix MST - AZ (most areas), Creston BC
|
||||
US +340308-1181434 America/Los_Angeles Pacific
|
||||
US +611305-1495401 America/Anchorage Alaska (most areas)
|
||||
US +581807-1342511 America/Juneau Alaska - Juneau area
|
||||
@@ -340,13 +339,13 @@ US +571035-1351807 America/Sitka Alaska - Sitka area
|
||||
US +550737-1313435 America/Metlakatla Alaska - Annette Island
|
||||
US +593249-1394338 America/Yakutat Alaska - Yakutat
|
||||
US +643004-1652423 America/Nome Alaska (west)
|
||||
US +515248-1763929 America/Adak Aleutian Islands
|
||||
US,UM +211825-1575130 Pacific/Honolulu Hawaii
|
||||
US +515248-1763929 America/Adak Alaska - western Aleutians
|
||||
US +211825-1575130 Pacific/Honolulu Hawaii
|
||||
UY -345433-0561245 America/Montevideo
|
||||
UZ +3940+06648 Asia/Samarkand Uzbekistan (west)
|
||||
UZ +4120+06918 Asia/Tashkent Uzbekistan (east)
|
||||
VE +1030-06656 America/Caracas
|
||||
VN +1045+10640 Asia/Ho_Chi_Minh Vietnam (south)
|
||||
VN +1045+10640 Asia/Ho_Chi_Minh south Vietnam
|
||||
VU -1740+16825 Pacific/Efate
|
||||
WS -1350-17144 Pacific/Apia
|
||||
ZA,LS,SZ -2615+02800 Africa/Johannesburg
|
||||
|
||||
@@ -217,7 +217,6 @@ kt_change (struct change_options *opt, int argc, char **argv)
|
||||
krb5_kt_end_seq_get(context, keytab, &cursor);
|
||||
|
||||
if (ret == KRB5_KT_END) {
|
||||
ret = 0;
|
||||
for (i = 0; i < j; i++) {
|
||||
if (verbose_flag) {
|
||||
char *client_name;
|
||||
|
||||
@@ -949,7 +949,9 @@ HandleOP(WrapExt)
|
||||
memcpy(p, iov[4].buffer.value, iov[4].buffer.length);
|
||||
p += iov[4].buffer.length;
|
||||
memcpy(p, iov[5].buffer.value, iov[5].buffer.length);
|
||||
#ifndef __clang_analyzer__
|
||||
p += iov[5].buffer.length;
|
||||
#endif
|
||||
|
||||
gss_release_iov_buffer(NULL, iov, iov_len);
|
||||
|
||||
|
||||
@@ -116,7 +116,11 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
argc -= optidx;
|
||||
#ifndef __clang_analyzer__
|
||||
argv += optidx;
|
||||
#endif
|
||||
if (argc != 0)
|
||||
usage(1);
|
||||
|
||||
if (config_file == NULL) {
|
||||
asprintf(&config_file, "%s/kdc.conf", hdb_db_dir(context));
|
||||
|
||||
@@ -106,7 +106,7 @@ static void
|
||||
add_aliases(krb5_context contextp, kadm5_principal_ent_rec *princ,
|
||||
struct getarg_strings *strings)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
krb5_error_code ret = 0;
|
||||
HDB_extension ext;
|
||||
krb5_data buf;
|
||||
krb5_principal p;
|
||||
@@ -127,9 +127,16 @@ add_aliases(krb5_context contextp, kadm5_principal_ent_rec *princ,
|
||||
sizeof(ext.data.u.aliases.aliases.val[0]));
|
||||
ext.data.u.aliases.aliases.len = strings->num_strings;
|
||||
|
||||
for (i = 0; i < strings->num_strings; i++) {
|
||||
for (i = 0; ret == 0 && i < strings->num_strings; i++) {
|
||||
ret = krb5_parse_name(contextp, strings->strings[i], &p);
|
||||
ret = copy_Principal(p, &ext.data.u.aliases.aliases.val[i]);
|
||||
if (ret)
|
||||
krb5_err(contextp, 1, ret, "Could not parse alias %s",
|
||||
strings->strings[i]);
|
||||
if (ret == 0)
|
||||
ret = copy_Principal(p, &ext.data.u.aliases.aliases.val[i]);
|
||||
if (ret)
|
||||
krb5_err(contextp, 1, ret, "Could not copy parsed alias %s",
|
||||
strings->strings[i]);
|
||||
krb5_free_principal(contextp, p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +103,10 @@ stash(struct stash_options *opt, int argc, char **argv)
|
||||
}
|
||||
}
|
||||
ret = krb5_string_to_key_salt(context, enctype, buf, salt, &key);
|
||||
ret = hdb_add_master_key(context, &key, &mkey);
|
||||
if (ret == 0)
|
||||
ret = hdb_add_master_key(context, &key, &mkey);
|
||||
if (ret)
|
||||
krb5_warn(context, errno, "setting master key");
|
||||
krb5_free_keyblock_contents(context, &key);
|
||||
}
|
||||
|
||||
|
||||
@@ -423,7 +423,7 @@ kcm_op_get_principal(krb5_context context,
|
||||
free(name);
|
||||
kcm_release_ccache(context, ccache);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1467,6 +1467,10 @@ _kdc_do_digest(krb5_context context,
|
||||
ret = krb5_encrypt_EncryptedData(context, crypto, KRB5_KU_DIGEST_ENCRYPT,
|
||||
buf.data, buf.length, 0,
|
||||
&rep.innerRep);
|
||||
if (ret) {
|
||||
krb5_prepend_error_message(context, ret, "Failed to encrypt digest: ");
|
||||
goto out;
|
||||
}
|
||||
|
||||
ASN1_MALLOC_ENCODE(DigestREP, reply->data, reply->length, &rep, &size, ret);
|
||||
if (ret) {
|
||||
|
||||
@@ -107,7 +107,9 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
argc -= optidx;
|
||||
#ifndef __clang_analyzer__
|
||||
argv += optidx;
|
||||
#endif
|
||||
|
||||
if (argc != 0)
|
||||
usage(1);
|
||||
@@ -125,6 +127,7 @@ main(int argc, char **argv)
|
||||
krb5_ticket *ticket;
|
||||
char *server;
|
||||
|
||||
memset(&ss, 0, sizeof(ss));
|
||||
sock = STDIN_FILENO;
|
||||
#ifdef SUPPORT_INETD
|
||||
if (inetd_flag == -1) {
|
||||
|
||||
@@ -184,6 +184,8 @@ main(int argc, char **argv)
|
||||
unsigned int tag2;
|
||||
ret = der_get_tag (r.data, r.length,
|
||||
&cl, &ty, &tag2, NULL);
|
||||
if (ret)
|
||||
krb5_err(context, 1, ret, "Could not decode replay data");
|
||||
if (MAKE_TAG(cl, ty, 0) != clty)
|
||||
krb5_errx(context, 1, "class|type mismatch: %d != %d",
|
||||
(int)MAKE_TAG(cl, ty, 0), (int)clty);
|
||||
|
||||
@@ -1928,30 +1928,40 @@ server_lookup:
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
ret = _kdc_db_fetch(context, config, tp, HDB_F_GET_CLIENT | flags,
|
||||
NULL, &s4u2self_impersonated_clientdb,
|
||||
&s4u2self_impersonated_client);
|
||||
if (ret) {
|
||||
const char *msg;
|
||||
|
||||
/*
|
||||
* If the client belongs to the same realm as our krbtgt, it
|
||||
* should exist in the local database.
|
||||
*
|
||||
*/
|
||||
|
||||
if (ret == HDB_ERR_NOENTRY)
|
||||
ret = KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN;
|
||||
msg = krb5_get_error_message(context, ret);
|
||||
kdc_log(context, config, 2,
|
||||
"S4U2Self principal to impersonate %s not found in database: %s",
|
||||
tpn, msg);
|
||||
krb5_free_error_message(context, msg);
|
||||
goto out;
|
||||
}
|
||||
|
||||
free(s4u2self_impersonated_client->entry.pw_end);
|
||||
s4u2self_impersonated_client->entry.pw_end = NULL;
|
||||
|
||||
ret = kdc_check_flags(context, config, s4u2self_impersonated_client, tpn,
|
||||
NULL, NULL, FALSE);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
/* If we were about to put a PAC into the ticket, we better fix it to be the right PAC */
|
||||
if(rspac.data) {
|
||||
krb5_pac p = NULL;
|
||||
krb5_data_free(&rspac);
|
||||
ret = _kdc_db_fetch(context, config, tp, HDB_F_GET_CLIENT | flags,
|
||||
NULL, &s4u2self_impersonated_clientdb, &s4u2self_impersonated_client);
|
||||
if (ret) {
|
||||
const char *msg;
|
||||
|
||||
/*
|
||||
* If the client belongs to the same realm as our krbtgt, it
|
||||
* should exist in the local database.
|
||||
*
|
||||
*/
|
||||
|
||||
if (ret == HDB_ERR_NOENTRY)
|
||||
ret = KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN;
|
||||
msg = krb5_get_error_message(context, ret);
|
||||
kdc_log(context, config, 1,
|
||||
"S2U4Self principal to impersonate %s not found in database: %s",
|
||||
tpn, msg);
|
||||
krb5_free_error_message(context, msg);
|
||||
goto out;
|
||||
}
|
||||
ret = _kdc_pac_generate(context, s4u2self_impersonated_client, &p);
|
||||
if (ret) {
|
||||
kdc_log(context, config, 0, "PAC generation failed for -- %s",
|
||||
@@ -1987,10 +1997,12 @@ server_lookup:
|
||||
|
||||
/*
|
||||
* If the service isn't trusted for authentication to
|
||||
* delegation, remove the forward flag.
|
||||
* delegation or if the impersonate client is disallowed
|
||||
* forwardable, remove the forwardable flag.
|
||||
*/
|
||||
|
||||
if (client->entry.flags.trusted_for_delegation) {
|
||||
if (client->entry.flags.trusted_for_delegation &&
|
||||
s4u2self_impersonated_client->entry.flags.forwardable) {
|
||||
str = "[forwardable]";
|
||||
} else {
|
||||
b->kdc_options.forwardable = 0;
|
||||
|
||||
@@ -126,6 +126,8 @@ main(int argc, char **argv)
|
||||
krb5_string_to_key_salt(context, enctype, buf, salt, &key);
|
||||
}
|
||||
ret = hdb_add_master_key(context, &key, &mkey);
|
||||
if (ret)
|
||||
krb5_err(context, 1, ret, "hdb_add_master_key");
|
||||
|
||||
krb5_free_keyblock_contents(context, &key);
|
||||
|
||||
|
||||
@@ -249,7 +249,6 @@ generate_dh_keyblock(krb5_context context,
|
||||
memset(dh_gen_key, 0, size);
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
#ifdef HAVE_OPENSSL
|
||||
} else if (client_params->keyex == USE_ECDH) {
|
||||
|
||||
|
||||
@@ -90,7 +90,9 @@ main (int argc, char **argv)
|
||||
}
|
||||
|
||||
argc -= optidx;
|
||||
#ifndef __clang_analyzer__
|
||||
argv += optidx;
|
||||
#endif
|
||||
|
||||
if (argc != 0)
|
||||
usage (1);
|
||||
|
||||
@@ -86,14 +86,15 @@ kswitch(struct kswitch_options *opt, int argc, char **argv)
|
||||
krb5_err(kcc_context, 1, ret, "krb5_cc_cache_get_first");
|
||||
|
||||
while (krb5_cc_cache_next(kcc_context, cursor, &id) == 0) {
|
||||
krb5_principal p;
|
||||
krb5_principal p = NULL;
|
||||
char num[10];
|
||||
|
||||
ret = krb5_cc_get_principal(kcc_context, id, &p);
|
||||
if (ret == 0)
|
||||
ret = krb5_unparse_name(kcc_context, p, &name);
|
||||
if (ret)
|
||||
continue;
|
||||
|
||||
ret = krb5_unparse_name(kcc_context, p, &name);
|
||||
krb5_free_principal(kcc_context, p);
|
||||
|
||||
snprintf(num, sizeof(num), "%d", (int)(len + 1));
|
||||
|
||||
@@ -135,8 +135,12 @@ int
|
||||
der_copy_octet_string (const heim_octet_string *from, heim_octet_string *to)
|
||||
{
|
||||
to->length = from->length;
|
||||
to->data = malloc(to->length);
|
||||
if(to->length != 0 && to->data == NULL)
|
||||
if (from->data == NULL) {
|
||||
to->data = NULL;
|
||||
return 0;
|
||||
}
|
||||
to->data = malloc(to->length);
|
||||
if (to->length != 0 && to->data == NULL)
|
||||
return ENOMEM;
|
||||
memcpy(to->data, from->data, to->length);
|
||||
return 0;
|
||||
|
||||
@@ -584,14 +584,14 @@ decode_type (const char *name, const Type *t, int optional,
|
||||
classname(cl),
|
||||
ty ? "CONS" : "PRIM",
|
||||
valuename(cl, tag));
|
||||
fprintf(codefile,
|
||||
"(%s)->element = %s;\n",
|
||||
name, m->label);
|
||||
if (asprintf (&s, "%s(%s)->u.%s", m->optional ? "" : "&",
|
||||
name, m->gen_name) < 0 || s == NULL)
|
||||
errx(1, "malloc");
|
||||
decode_type (s, m->type, m->optional, forwstr, m->gen_name, NULL,
|
||||
depth + 1);
|
||||
fprintf(codefile,
|
||||
"(%s)->element = %s;\n",
|
||||
name, m->label);
|
||||
free(s);
|
||||
fprintf(codefile,
|
||||
"}\n");
|
||||
@@ -600,23 +600,23 @@ decode_type (const char *name, const Type *t, int optional,
|
||||
if (have_ellipsis) {
|
||||
fprintf(codefile,
|
||||
"else {\n"
|
||||
"(%s)->element = %s;\n"
|
||||
"(%s)->u.%s.data = calloc(1, len);\n"
|
||||
"if ((%s)->u.%s.data == NULL) {\n"
|
||||
"e = ENOMEM; %s;\n"
|
||||
"}\n"
|
||||
"(%s)->u.%s.length = len;\n"
|
||||
"memcpy((%s)->u.%s.data, p, len);\n"
|
||||
"(%s)->element = %s;\n"
|
||||
"p += len;\n"
|
||||
"ret += len;\n"
|
||||
"len = 0;\n"
|
||||
"}\n",
|
||||
name, have_ellipsis->label,
|
||||
name, have_ellipsis->gen_name,
|
||||
name, have_ellipsis->gen_name,
|
||||
forwstr,
|
||||
name, have_ellipsis->gen_name,
|
||||
name, have_ellipsis->gen_name,
|
||||
name, have_ellipsis->label);
|
||||
name, have_ellipsis->gen_name);
|
||||
} else {
|
||||
fprintf(codefile,
|
||||
"else {\n"
|
||||
|
||||
@@ -425,6 +425,7 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
||||
* lets only send the error token on clock skew, that
|
||||
* limit when send error token for non-MUTUAL.
|
||||
*/
|
||||
free_Authenticator(ctx->auth_context->authenticator);
|
||||
return send_error_token(minor_status, context, kret,
|
||||
server, &indata, output_token);
|
||||
} else if (kret) {
|
||||
|
||||
@@ -307,7 +307,7 @@ _gssapi_verify_mic_arcfour(OM_uint32 * minor_status,
|
||||
return GSS_S_FAILURE;
|
||||
}
|
||||
|
||||
cmp = ct_memcmp(cksum_data, p + 8, 8);
|
||||
cmp = (ct_memcmp(cksum_data, p + 8, 8) == 0);
|
||||
if (cmp) {
|
||||
*minor_status = 0;
|
||||
return GSS_S_BAD_MIC;
|
||||
@@ -331,9 +331,9 @@ _gssapi_verify_mic_arcfour(OM_uint32 * minor_status,
|
||||
_gsskrb5_decode_be_om_uint32(SND_SEQ, &seq_number);
|
||||
|
||||
if (context_handle->more_flags & LOCAL)
|
||||
cmp = memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4);
|
||||
cmp = (ct_memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4) != 0);
|
||||
else
|
||||
cmp = memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4);
|
||||
cmp = (ct_memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4) != 0);
|
||||
|
||||
memset(SND_SEQ, 0, sizeof(SND_SEQ));
|
||||
if (cmp != 0) {
|
||||
@@ -616,9 +616,9 @@ OM_uint32 _gssapi_unwrap_arcfour(OM_uint32 *minor_status,
|
||||
_gsskrb5_decode_be_om_uint32(SND_SEQ, &seq_number);
|
||||
|
||||
if (context_handle->more_flags & LOCAL)
|
||||
cmp = memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4);
|
||||
cmp = (ct_memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4) != 0);
|
||||
else
|
||||
cmp = memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4);
|
||||
cmp = (ct_memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4) != 0);
|
||||
|
||||
if (cmp != 0) {
|
||||
*minor_status = 0;
|
||||
@@ -695,7 +695,7 @@ OM_uint32 _gssapi_unwrap_arcfour(OM_uint32 *minor_status,
|
||||
return GSS_S_FAILURE;
|
||||
}
|
||||
|
||||
cmp = ct_memcmp(cksum_data, p0 + 16, 8); /* SGN_CKSUM */
|
||||
cmp = (ct_memcmp(cksum_data, p0 + 16, 8) == 0); /* SGN_CKSUM */
|
||||
if (cmp) {
|
||||
_gsskrb5_release_buffer(minor_status, output_message_buffer);
|
||||
*minor_status = 0;
|
||||
|
||||
@@ -54,6 +54,8 @@ _gsskrb5_get_mech (const u_char *ptr,
|
||||
e = der_get_length (p, total_len - 1, &len, &len_len);
|
||||
if (e || 1 + len_len + len != total_len)
|
||||
return -1;
|
||||
if (total_len < 1 + len_len + 1)
|
||||
return -1;
|
||||
p += len_len;
|
||||
if (*p++ != 0x06)
|
||||
return -1;
|
||||
@@ -80,6 +82,10 @@ _gssapi_verify_mech_header(u_char **str,
|
||||
|
||||
if (mech_len != mech->length)
|
||||
return GSS_S_BAD_MECH;
|
||||
if (mech_len > total_len)
|
||||
return GSS_S_BAD_MECH;
|
||||
if (p - *str > total_len - mech_len)
|
||||
return GSS_S_BAD_MECH;
|
||||
if (ct_memcmp(p,
|
||||
mech->elements,
|
||||
mech->length) != 0)
|
||||
@@ -190,13 +196,13 @@ _gssapi_verify_pad(gss_buffer_t wrapped_token,
|
||||
size_t padlength;
|
||||
int i;
|
||||
|
||||
pad = (u_char *)wrapped_token->value + wrapped_token->length - 1;
|
||||
padlength = *pad;
|
||||
pad = (u_char *)wrapped_token->value + wrapped_token->length;
|
||||
padlength = pad[-1];
|
||||
|
||||
if (padlength > datalen)
|
||||
return GSS_S_BAD_MECH;
|
||||
|
||||
for (i = padlength; i > 0 && *pad == padlength; i--, pad--)
|
||||
for (i = padlength; i > 0 && *--pad == padlength; i--)
|
||||
;
|
||||
if (i != 0)
|
||||
return GSS_S_BAD_MIC;
|
||||
|
||||
@@ -64,6 +64,8 @@ unwrap_des
|
||||
|
||||
if (IS_DCE_STYLE(context_handle)) {
|
||||
token_len = 22 + 8 + 15; /* 45 */
|
||||
if (input_message_buffer->length < token_len)
|
||||
return GSS_S_BAD_MECH;
|
||||
} else {
|
||||
token_len = input_message_buffer->length;
|
||||
}
|
||||
@@ -76,6 +78,11 @@ unwrap_des
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
len = (p - (u_char *)input_message_buffer->value)
|
||||
+ 22 + 8;
|
||||
if (input_message_buffer->length < len)
|
||||
return GSS_S_BAD_MECH;
|
||||
|
||||
if (memcmp (p, "\x00\x00", 2) != 0)
|
||||
return GSS_S_BAD_SIG;
|
||||
p += 2;
|
||||
@@ -122,7 +129,7 @@ unwrap_des
|
||||
} else {
|
||||
/* check pad */
|
||||
ret = _gssapi_verify_pad(input_message_buffer,
|
||||
input_message_buffer->length - len,
|
||||
input_message_buffer->length - len - 8,
|
||||
&padlength);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -195,9 +202,10 @@ unwrap_des
|
||||
output_message_buffer->value = malloc(output_message_buffer->length);
|
||||
if(output_message_buffer->length != 0 && output_message_buffer->value == NULL)
|
||||
return GSS_S_FAILURE;
|
||||
memcpy (output_message_buffer->value,
|
||||
p + 24,
|
||||
output_message_buffer->length);
|
||||
if (output_message_buffer->value != NULL)
|
||||
memcpy (output_message_buffer->value,
|
||||
p + 24,
|
||||
output_message_buffer->length);
|
||||
return GSS_S_COMPLETE;
|
||||
}
|
||||
#endif
|
||||
@@ -230,6 +238,8 @@ unwrap_des3
|
||||
|
||||
if (IS_DCE_STYLE(context_handle)) {
|
||||
token_len = 34 + 8 + 15; /* 57 */
|
||||
if (input_message_buffer->length < token_len)
|
||||
return GSS_S_BAD_MECH;
|
||||
} else {
|
||||
token_len = input_message_buffer->length;
|
||||
}
|
||||
@@ -242,7 +252,12 @@ unwrap_des3
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (memcmp (p, "\x04\x00", 2) != 0) /* HMAC SHA1 DES3_KD */
|
||||
len = (p - (u_char *)input_message_buffer->value)
|
||||
+ 34 + 8;
|
||||
if (input_message_buffer->length < len)
|
||||
return GSS_S_BAD_MECH;
|
||||
|
||||
if (ct_memcmp (p, "\x04\x00", 2) != 0) /* HMAC SHA1 DES3_KD */
|
||||
return GSS_S_BAD_SIG;
|
||||
p += 2;
|
||||
if (ct_memcmp (p, "\x02\x00", 2) == 0) {
|
||||
@@ -289,7 +304,7 @@ unwrap_des3
|
||||
} else {
|
||||
/* check pad */
|
||||
ret = _gssapi_verify_pad(input_message_buffer,
|
||||
input_message_buffer->length - len,
|
||||
input_message_buffer->length - len - 8,
|
||||
&padlength);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -389,9 +404,10 @@ unwrap_des3
|
||||
output_message_buffer->value = malloc(output_message_buffer->length);
|
||||
if(output_message_buffer->length != 0 && output_message_buffer->value == NULL)
|
||||
return GSS_S_FAILURE;
|
||||
memcpy (output_message_buffer->value,
|
||||
p + 36,
|
||||
output_message_buffer->length);
|
||||
if (output_message_buffer->value != NULL)
|
||||
memcpy (output_message_buffer->value,
|
||||
p + 36,
|
||||
output_message_buffer->length);
|
||||
return GSS_S_COMPLETE;
|
||||
}
|
||||
|
||||
|
||||
@@ -91,8 +91,7 @@ routine_error(OM_uint32 v)
|
||||
"Incorrect channel bindings were supplied",
|
||||
"An invalid status code was supplied",
|
||||
"A token had an invalid MIC",
|
||||
"No credentials were supplied, "
|
||||
"or the credentials were unavailable or inaccessible.",
|
||||
"No credentials were supplied, or the credentials were unavailable or inaccessible.",
|
||||
"No context has been established",
|
||||
"A token was invalid",
|
||||
"A credential was invalid",
|
||||
|
||||
@@ -113,7 +113,7 @@ _gss_import_export_name(OM_uint32 *minor_status,
|
||||
len -= t;
|
||||
|
||||
t = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
|
||||
p += 4;
|
||||
/* p += 4; */
|
||||
len -= 4;
|
||||
|
||||
if (!composite && len != t)
|
||||
|
||||
@@ -137,6 +137,8 @@ _gss_string_to_oid(const char* s, gss_OID oid)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (byte_count == 0)
|
||||
return EINVAL;
|
||||
if (!res) {
|
||||
res = malloc(byte_count);
|
||||
if (!res)
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
|
||||
#include <roken.h>
|
||||
|
||||
#include <krb5.h>
|
||||
#include <gssapi.h>
|
||||
#include <gssapi_mech.h>
|
||||
#include <gssapi_krb5.h>
|
||||
|
||||
@@ -52,6 +52,8 @@ from_file(const char *fn, const char *target_domain,
|
||||
continue;
|
||||
str = NULL;
|
||||
d = strtok_r(buf, ":", &str);
|
||||
if (!d)
|
||||
continue;
|
||||
if (d && strcasecmp(target_domain, d) != 0)
|
||||
continue;
|
||||
u = strtok_r(NULL, ":", &str);
|
||||
|
||||
@@ -619,13 +619,15 @@ acceptor_start
|
||||
if (ret == 0)
|
||||
break;
|
||||
}
|
||||
if (preferred_mech_type == GSS_C_NO_OID) {
|
||||
HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);
|
||||
free_NegotiationToken(&nt);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ctx->preferred_mech_type = preferred_mech_type;
|
||||
ctx->preferred_mech_type = preferred_mech_type;
|
||||
|
||||
if (preferred_mech_type == GSS_C_NO_OID) {
|
||||
send_reject(minor_status, output_token);
|
||||
HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);
|
||||
free_NegotiationToken(&nt);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -720,7 +720,6 @@ mdb_remove(krb5_context context, HDB *db, krb5_const_principal principal)
|
||||
krb5_error_code code;
|
||||
krb5_data key;
|
||||
|
||||
mdb_principal2key(context, principal, &key);
|
||||
code = db->hdb__del(context, db, key);
|
||||
krb5_data_free(&key);
|
||||
return code;
|
||||
|
||||
@@ -1288,6 +1288,7 @@ request_create(struct request_create_options *opt, int argc, char **argv)
|
||||
const char *outfile = argv[0];
|
||||
|
||||
memset(&key, 0, sizeof(key));
|
||||
memset(&signer, 0, sizeof(signer));
|
||||
|
||||
get_key(opt->key_string,
|
||||
opt->generate_key_string,
|
||||
|
||||
@@ -533,7 +533,7 @@ store_func(hx509_context context, void *ctx, hx509_cert c)
|
||||
{
|
||||
struct store_ctx *sc = ctx;
|
||||
heim_octet_string data;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
ret = hx509_cert_binary(context, c, &data);
|
||||
if (ret)
|
||||
@@ -554,14 +554,14 @@ store_func(hx509_context context, void *ctx, hx509_cert c)
|
||||
HX509_KEY_FORMAT_DER, &data);
|
||||
if (ret)
|
||||
break;
|
||||
hx509_pem_write(context, _hx509_private_pem_name(key), NULL, sc->f,
|
||||
data.data, data.length);
|
||||
ret = hx509_pem_write(context, _hx509_private_pem_name(key), NULL,
|
||||
sc->f, data.data, data.length);
|
||||
free(data.data);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
@@ -938,6 +938,7 @@ int
|
||||
hx509_general_name_unparse(GeneralName *name, char **str)
|
||||
{
|
||||
struct rk_strpool *strpool = NULL;
|
||||
int ret = 0;
|
||||
|
||||
*str = NULL;
|
||||
|
||||
@@ -964,7 +965,6 @@ hx509_general_name_unparse(GeneralName *name, char **str)
|
||||
case choice_GeneralName_directoryName: {
|
||||
Name dir;
|
||||
char *s;
|
||||
int ret;
|
||||
memset(&dir, 0, sizeof(dir));
|
||||
dir.element = name->u.directoryName.element;
|
||||
dir.u.rdnSequence = name->u.directoryName.u.rdnSequence;
|
||||
@@ -1017,10 +1017,9 @@ hx509_general_name_unparse(GeneralName *name, char **str)
|
||||
default:
|
||||
return EINVAL;
|
||||
}
|
||||
if (strpool == NULL)
|
||||
if (ret)
|
||||
rk_strpoolfree(strpool);
|
||||
else if (strpool == NULL || (*str = rk_strpoolcollect(strpool)) == NULL)
|
||||
return ENOMEM;
|
||||
|
||||
*str = rk_strpoolcollect(strpool);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
@@ -342,6 +342,9 @@ add_object_attribute(struct st_object *o,
|
||||
struct st_attr *a;
|
||||
int i;
|
||||
|
||||
if (pValue == NULL && ulValueLen)
|
||||
return CKR_ARGUMENTS_BAD;
|
||||
|
||||
i = o->num_attributes;
|
||||
a = realloc(o->attrs, (i + 1) * sizeof(o->attrs[0]));
|
||||
if (a == NULL)
|
||||
@@ -352,7 +355,8 @@ add_object_attribute(struct st_object *o,
|
||||
o->attrs[i].attribute.pValue = malloc(ulValueLen);
|
||||
if (o->attrs[i].attribute.pValue == NULL && ulValueLen != 0)
|
||||
return CKR_DEVICE_MEMORY;
|
||||
memcpy(o->attrs[i].attribute.pValue, pValue, ulValueLen);
|
||||
if (ulValueLen)
|
||||
memcpy(o->attrs[i].attribute.pValue, pValue, ulValueLen);
|
||||
o->attrs[i].attribute.ulValueLen = ulValueLen;
|
||||
o->num_attributes++;
|
||||
|
||||
|
||||
@@ -332,10 +332,8 @@ connect_unix(struct path_ctx *s)
|
||||
return errno;
|
||||
rk_cloexec(s->fd);
|
||||
|
||||
if (connect(s->fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) {
|
||||
close(s->fd);
|
||||
if (connect(s->fd, (struct sockaddr *)&addr, sizeof(addr)) != 0)
|
||||
return errno;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -246,7 +246,7 @@ kadm5_s_get_principal(void *server_handle,
|
||||
ret = hdb_entry_get_password(context->context,
|
||||
context->db, &ent.entry, &pw);
|
||||
if (ret == 0) {
|
||||
ret = add_tl_data(out, KRB5_TL_PASSWORD, pw, strlen(pw) + 1);
|
||||
(void) add_tl_data(out, KRB5_TL_PASSWORD, pw, strlen(pw) + 1);
|
||||
free(pw);
|
||||
}
|
||||
krb5_clear_error_message(context->context);
|
||||
|
||||
@@ -567,7 +567,7 @@ kadm5_c_init_with_context(krb5_context context,
|
||||
void **server_handle)
|
||||
{
|
||||
kadm5_ret_t ret;
|
||||
kadm5_client_context *ctx;
|
||||
kadm5_client_context *ctx = NULL;
|
||||
krb5_ccache cc;
|
||||
|
||||
ret = _kadm5_c_init_context(&ctx, realm_params, context);
|
||||
|
||||
@@ -755,7 +755,10 @@ write_stats(krb5_context context, slave *slaves, uint32_t current_version)
|
||||
rtbl_add_column_entry(tbl, SLAVE_STATUS, "Up");
|
||||
|
||||
ret = krb5_format_time(context, slaves->seen, str, sizeof(str), TRUE);
|
||||
rtbl_add_column_entry(tbl, SLAVE_SEEN, str);
|
||||
if (ret)
|
||||
rtbl_add_column_entry(tbl, SLAVE_SEEN, "<error-formatting-time>");
|
||||
else
|
||||
rtbl_add_column_entry(tbl, SLAVE_SEEN, str);
|
||||
|
||||
slaves = slaves->next;
|
||||
}
|
||||
|
||||
@@ -89,8 +89,6 @@ v5_to_kt(krb5_creds *cred, uid_t uid, struct kafs_token *kt, int local524)
|
||||
return ENOMEM;
|
||||
kt->ticket_len = cred->ticket.length;
|
||||
memcpy(kt->ticket, cred->ticket.data, kt->ticket_len);
|
||||
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ krb5_acl_match_file(krb5_context context,
|
||||
...)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
struct acl_field *acl;
|
||||
struct acl_field *acl = NULL;
|
||||
char buf[256];
|
||||
va_list ap;
|
||||
FILE *f;
|
||||
|
||||
@@ -525,7 +525,7 @@ arange_parse_addr (krb5_context context,
|
||||
return ret;
|
||||
}
|
||||
|
||||
if(high.len != 1 && high.val[0].addr_type != low.val[0].addr_type) {
|
||||
if(high.len != 1 || high.val[0].addr_type != low.val[0].addr_type) {
|
||||
krb5_free_addresses(context, &low);
|
||||
krb5_free_addresses(context, &high);
|
||||
return -1;
|
||||
|
||||
@@ -97,7 +97,7 @@ init_context_from_config_file(krb5_context context)
|
||||
krb5_error_code ret;
|
||||
const char * tmp;
|
||||
char **s;
|
||||
krb5_enctype *tmptypes;
|
||||
krb5_enctype *tmptypes = NULL;
|
||||
|
||||
INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew");
|
||||
INIT_FIELD(context, time, kdc_timeout, 3, "kdc_timeout");
|
||||
|
||||
@@ -325,15 +325,13 @@ krb5_keytab_key_proc (krb5_context context,
|
||||
|
||||
ret = krb5_kt_get_entry (context, real_keytab, principal,
|
||||
0, enctype, &entry);
|
||||
if (ret == 0) {
|
||||
ret = krb5_copy_keyblock (context, &entry.keyblock, key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
}
|
||||
|
||||
if (keytab == NULL)
|
||||
krb5_kt_close (context, real_keytab);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = krb5_copy_keyblock (context, &entry.keyblock, key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -1491,15 +1491,13 @@ keytab_key_proc(krb5_context context, krb5_enctype enctype,
|
||||
|
||||
ret = krb5_kt_get_entry (context, real_keytab, principal,
|
||||
0, enctype, &entry);
|
||||
if (ret == 0) {
|
||||
ret = krb5_copy_keyblock(context, &entry.keyblock, key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
}
|
||||
|
||||
if (keytab == NULL)
|
||||
krb5_kt_close (context, real_keytab);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = krb5_copy_keyblock (context, &entry.keyblock, key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -348,10 +348,11 @@ krb5_kt_read_service_key(krb5_context context,
|
||||
krb5_enctype enctype,
|
||||
krb5_keyblock **key)
|
||||
{
|
||||
krb5_keytab keytab;
|
||||
krb5_keytab keytab = NULL; /* Quiet lint */
|
||||
krb5_keytab_entry entry;
|
||||
krb5_error_code ret;
|
||||
|
||||
memset(&entry, 0, sizeof(entry));
|
||||
if (keyprocarg)
|
||||
ret = krb5_kt_resolve (context, keyprocarg, &keytab);
|
||||
else
|
||||
@@ -361,11 +362,11 @@ krb5_kt_read_service_key(krb5_context context,
|
||||
return ret;
|
||||
|
||||
ret = krb5_kt_get_entry (context, keytab, principal, vno, enctype, &entry);
|
||||
if (ret == 0) {
|
||||
ret = krb5_copy_keyblock (context, &entry.keyblock, key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
}
|
||||
krb5_kt_close (context, keytab);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = krb5_copy_keyblock (context, &entry.keyblock, key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -473,11 +474,13 @@ KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
|
||||
krb5_kt_close(krb5_context context,
|
||||
krb5_keytab id)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
krb5_error_code ret = 0;
|
||||
|
||||
ret = (*id->close)(context, id);
|
||||
memset(id, 0, sizeof(*id));
|
||||
free(id);
|
||||
if (id) {
|
||||
ret = (id->close)(context, id);
|
||||
memset(id, 0, sizeof(*id));
|
||||
free(id);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -620,6 +623,7 @@ krb5_kt_get_entry(krb5_context context,
|
||||
if(id->get)
|
||||
return (*id->get)(context, id, principal, kvno, enctype, entry);
|
||||
|
||||
memset(&tmp, 0, sizeof(tmp));
|
||||
ret = krb5_kt_start_seq_get (context, id, &cursor);
|
||||
if (ret) {
|
||||
/* This is needed for krb5_verify_init_creds, but keep error
|
||||
@@ -674,21 +678,21 @@ krb5_kt_copy_entry_contents(krb5_context context,
|
||||
krb5_error_code ret;
|
||||
|
||||
memset(out, 0, sizeof(*out));
|
||||
out->vno = in->vno;
|
||||
|
||||
ret = krb5_copy_principal (context, in->principal, &out->principal);
|
||||
if (ret)
|
||||
goto fail;
|
||||
return ret;
|
||||
ret = krb5_copy_keyblock_contents (context,
|
||||
&in->keyblock,
|
||||
&out->keyblock);
|
||||
if (ret)
|
||||
goto fail;
|
||||
if (ret) {
|
||||
krb5_free_principal(context, out->principal);
|
||||
memset(out, 0, sizeof(*out));
|
||||
return ret;
|
||||
}
|
||||
out->vno = in->vno;
|
||||
out->timestamp = in->timestamp;
|
||||
return 0;
|
||||
fail:
|
||||
krb5_kt_free_entry (context, out);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -869,6 +873,7 @@ krb5_kt_have_content(krb5_context context,
|
||||
krb5_error_code ret;
|
||||
char *name;
|
||||
|
||||
memset(&entry, 0, sizeof(entry));
|
||||
ret = krb5_kt_start_seq_get(context, id, &cursor);
|
||||
if (ret)
|
||||
goto notfound;
|
||||
|
||||
@@ -914,3 +914,22 @@ extern KRB5_LIB_VARIABLE const char *krb5_cc_type_scc;
|
||||
|
||||
#endif /* __KRB5_H__ */
|
||||
|
||||
/* clang analyzer workarounds */
|
||||
|
||||
#ifdef __clang_analyzer__
|
||||
/*
|
||||
* The clang analyzer (lint) can't know that krb5_enomem() always returns
|
||||
* non-zero, so code like:
|
||||
*
|
||||
* if ((x = malloc(...)) == NULL)
|
||||
* ret = krb5_enomem(context)
|
||||
* if (ret == 0)
|
||||
* *x = ...;
|
||||
*
|
||||
* causes false positives.
|
||||
*
|
||||
* The fix is to make krb5_enomem() a macro that always evaluates to ENOMEM.
|
||||
*/
|
||||
#define krb5_enomem(c) (krb5_enomem(c), ENOMEM)
|
||||
#endif
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
#include <krb5-types.h>
|
||||
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE__
|
||||
#pragma pack(push,2)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -96,6 +96,12 @@ srv_find_realm(krb5_context context, krb5_krbhst_info ***res, int *count,
|
||||
if(rr->type == rk_ns_t_srv)
|
||||
num_srv++;
|
||||
|
||||
if (num_srv == 0) {
|
||||
_krb5_debug(context, 0,
|
||||
"DNS SRV RR lookup domain nodata: %s", domain);
|
||||
return KRB5_KDC_UNREACH;
|
||||
}
|
||||
|
||||
*res = malloc(num_srv * sizeof(**res));
|
||||
if(*res == NULL) {
|
||||
rk_dns_free_data(r);
|
||||
|
||||
+150
-28
@@ -112,6 +112,56 @@ HMAC_MD5_any_checksum(krb5_context context,
|
||||
}
|
||||
|
||||
|
||||
static krb5_error_code pac_header_size(krb5_context context,
|
||||
uint32_t num_buffers,
|
||||
uint32_t *result)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
uint32_t header_size;
|
||||
|
||||
/* Guard against integer overflow on 32-bit systems. */
|
||||
if (num_buffers > 1000) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "PAC has too many buffers");
|
||||
return ret;
|
||||
}
|
||||
header_size = PAC_INFO_BUFFER_SIZE * num_buffers;
|
||||
|
||||
/* Guard against integer overflow on 32-bit systems. */
|
||||
if (header_size > UINT32_MAX - PACTYPE_SIZE) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "PAC has too many buffers");
|
||||
return ret;
|
||||
}
|
||||
header_size += PACTYPE_SIZE;
|
||||
|
||||
*result = header_size;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static krb5_error_code pac_aligned_size(krb5_context context,
|
||||
uint32_t size,
|
||||
uint32_t *aligned_size)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
|
||||
/* Guard against integer overflow on 32-bit systems. */
|
||||
if (size > UINT32_MAX - (PAC_ALIGNMENT - 1)) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
return ret;
|
||||
}
|
||||
size += PAC_ALIGNMENT - 1;
|
||||
|
||||
/* align to PAC_ALIGNMENT */
|
||||
size = (size / PAC_ALIGNMENT) * PAC_ALIGNMENT;
|
||||
|
||||
*aligned_size = size;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
@@ -153,8 +203,12 @@ krb5_pac_parse(krb5_context context, const void *ptr, size_t len,
|
||||
goto out;
|
||||
}
|
||||
|
||||
p->pac = calloc(1,
|
||||
sizeof(*p->pac) + (sizeof(p->pac->buffers[0]) * (tmp - 1)));
|
||||
ret = pac_header_size(context, tmp, &header_end);
|
||||
if (ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
p->pac = calloc(1, header_end);
|
||||
if (p->pac == NULL) {
|
||||
ret = krb5_enomem(context);
|
||||
goto out;
|
||||
@@ -163,7 +217,6 @@ krb5_pac_parse(krb5_context context, const void *ptr, size_t len,
|
||||
p->pac->numbuffers = tmp;
|
||||
p->pac->version = tmp2;
|
||||
|
||||
header_end = PACTYPE_SIZE + (PAC_INFO_BUFFER_SIZE * p->pac->numbuffers);
|
||||
if (header_end > len) {
|
||||
ret = EINVAL;
|
||||
goto out;
|
||||
@@ -292,37 +345,65 @@ krb5_pac_add_buffer(krb5_context context, krb5_pac p,
|
||||
{
|
||||
krb5_error_code ret;
|
||||
void *ptr;
|
||||
size_t len, offset, header_end, old_end;
|
||||
uint32_t unaligned_len, num_buffers, len, offset, header_end, old_end;
|
||||
uint32_t i;
|
||||
|
||||
len = p->pac->numbuffers;
|
||||
if (data->length > UINT32_MAX) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ptr = realloc(p->pac,
|
||||
sizeof(*p->pac) + (sizeof(p->pac->buffers[0]) * len));
|
||||
num_buffers = p->pac->numbuffers;
|
||||
|
||||
if (num_buffers >= UINT32_MAX) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
return ret;
|
||||
}
|
||||
ret = pac_header_size(context, num_buffers + 1, &header_end);
|
||||
if (ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
ptr = realloc(p->pac, header_end);
|
||||
if (ptr == NULL)
|
||||
return krb5_enomem(context);
|
||||
|
||||
p->pac = ptr;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
p->pac->buffers[i].offset_lo += PAC_INFO_BUFFER_SIZE;
|
||||
for (i = 0; i < num_buffers; i++) {
|
||||
if (p->pac->buffers[i].offset_lo > UINT32_MAX - PAC_INFO_BUFFER_SIZE) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
return ret;
|
||||
}
|
||||
|
||||
p->pac->buffers[i].offset_lo += PAC_INFO_BUFFER_SIZE;
|
||||
}
|
||||
|
||||
if (p->data.length > UINT32_MAX - PAC_INFO_BUFFER_SIZE) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
return ret;
|
||||
}
|
||||
offset = p->data.length + PAC_INFO_BUFFER_SIZE;
|
||||
|
||||
p->pac->buffers[len].type = type;
|
||||
p->pac->buffers[len].buffersize = data->length;
|
||||
p->pac->buffers[len].offset_lo = offset;
|
||||
p->pac->buffers[len].offset_hi = 0;
|
||||
p->pac->buffers[num_buffers].type = type;
|
||||
p->pac->buffers[num_buffers].buffersize = data->length;
|
||||
p->pac->buffers[num_buffers].offset_lo = offset;
|
||||
p->pac->buffers[num_buffers].offset_hi = 0;
|
||||
|
||||
old_end = p->data.length;
|
||||
len = p->data.length + data->length + PAC_INFO_BUFFER_SIZE;
|
||||
if (len < p->data.length) {
|
||||
if (offset > UINT32_MAX - data->length) {
|
||||
krb5_set_error_message(context, EINVAL, "integer overrun");
|
||||
return EINVAL;
|
||||
}
|
||||
unaligned_len = offset + data->length;
|
||||
|
||||
/* align to PAC_ALIGNMENT */
|
||||
len = ((len + PAC_ALIGNMENT - 1) / PAC_ALIGNMENT) * PAC_ALIGNMENT;
|
||||
ret = pac_aligned_size(context, unaligned_len, &len);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = krb5_data_realloc(&p->data, len);
|
||||
if (ret) {
|
||||
@@ -333,7 +414,7 @@ krb5_pac_add_buffer(krb5_context context, krb5_pac p,
|
||||
/*
|
||||
* make place for new PAC INFO BUFFER header
|
||||
*/
|
||||
header_end = PACTYPE_SIZE + (PAC_INFO_BUFFER_SIZE * p->pac->numbuffers);
|
||||
header_end -= PAC_INFO_BUFFER_SIZE;
|
||||
memmove((unsigned char *)p->data.data + header_end + PAC_INFO_BUFFER_SIZE,
|
||||
(unsigned char *)p->data.data + header_end ,
|
||||
old_end - header_end);
|
||||
@@ -346,7 +427,7 @@ krb5_pac_add_buffer(krb5_context context, krb5_pac p,
|
||||
memcpy((unsigned char *)p->data.data + offset,
|
||||
data->data, data->length);
|
||||
memset((unsigned char *)p->data.data + offset + data->length,
|
||||
0, p->data.length - offset - data->length);
|
||||
0, p->data.length - unaligned_len);
|
||||
|
||||
p->pac->numbuffers += 1;
|
||||
|
||||
@@ -375,8 +456,8 @@ krb5_pac_get_buffer(krb5_context context, krb5_pac p,
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < p->pac->numbuffers; i++) {
|
||||
const size_t len = p->pac->buffers[i].buffersize;
|
||||
const size_t offset = p->pac->buffers[i].offset_lo;
|
||||
const uint32_t len = p->pac->buffers[i].buffersize;
|
||||
const uint32_t offset = p->pac->buffers[i].offset_lo;
|
||||
|
||||
if (p->pac->buffers[i].type != type)
|
||||
continue;
|
||||
@@ -963,8 +1044,8 @@ _krb5_pac_sign(krb5_context context,
|
||||
size_t server_size, priv_size;
|
||||
uint32_t server_offset = 0, priv_offset = 0;
|
||||
uint32_t server_cksumtype = 0, priv_cksumtype = 0;
|
||||
int num = 0;
|
||||
size_t i;
|
||||
uint32_t num = 0;
|
||||
uint32_t i;
|
||||
krb5_data logon, d;
|
||||
|
||||
krb5_data_zero(&logon);
|
||||
@@ -978,8 +1059,18 @@ _krb5_pac_sign(krb5_context context,
|
||||
|
||||
if (num) {
|
||||
void *ptr;
|
||||
uint32_t len;
|
||||
|
||||
ptr = realloc(p->pac, sizeof(*p->pac) + (sizeof(p->pac->buffers[0]) * (p->pac->numbuffers + num - 1)));
|
||||
if (p->pac->numbuffers > UINT32_MAX - num) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
goto out;
|
||||
}
|
||||
ret = pac_header_size(context, p->pac->numbuffers + num, &len);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
ptr = realloc(p->pac, len);
|
||||
if (ptr == NULL)
|
||||
return krb5_enomem(context);
|
||||
|
||||
@@ -1032,7 +1123,9 @@ _krb5_pac_sign(krb5_context context,
|
||||
CHECK(ret, krb5_store_uint32(sp, p->pac->numbuffers), out);
|
||||
CHECK(ret, krb5_store_uint32(sp, p->pac->version), out);
|
||||
|
||||
end = PACTYPE_SIZE + (PAC_INFO_BUFFER_SIZE * p->pac->numbuffers);
|
||||
ret = pac_header_size(context, p->pac->numbuffers, &end);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
for (i = 0; i < p->pac->numbuffers; i++) {
|
||||
uint32_t len;
|
||||
@@ -1042,11 +1135,31 @@ _krb5_pac_sign(krb5_context context,
|
||||
/* store data */
|
||||
|
||||
if (p->pac->buffers[i].type == PAC_SERVER_CHECKSUM) {
|
||||
if (server_size > UINT32_MAX - 4) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
goto out;
|
||||
}
|
||||
if (end > UINT32_MAX - 4) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
goto out;
|
||||
}
|
||||
len = server_size + 4;
|
||||
server_offset = end + 4;
|
||||
CHECK(ret, krb5_store_uint32(spdata, server_cksumtype), out);
|
||||
CHECK(ret, fill_zeros(context, spdata, server_size), out);
|
||||
} else if (p->pac->buffers[i].type == PAC_PRIVSVR_CHECKSUM) {
|
||||
if (priv_size > UINT32_MAX - 4) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
goto out;
|
||||
}
|
||||
if (end > UINT32_MAX - 4) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
goto out;
|
||||
}
|
||||
len = priv_size + 4;
|
||||
priv_offset = end + 4;
|
||||
CHECK(ret, krb5_store_uint32(spdata, priv_cksumtype), out);
|
||||
@@ -1077,11 +1190,20 @@ _krb5_pac_sign(krb5_context context,
|
||||
|
||||
/* advance data endpointer and align */
|
||||
{
|
||||
int32_t e;
|
||||
uint32_t e;
|
||||
|
||||
if (end > UINT32_MAX - len) {
|
||||
ret = EINVAL;
|
||||
krb5_set_error_message(context, ret, "integer overrun");
|
||||
goto out;
|
||||
}
|
||||
end += len;
|
||||
e = ((end + PAC_ALIGNMENT - 1) / PAC_ALIGNMENT) * PAC_ALIGNMENT;
|
||||
if ((int32_t)end != e) {
|
||||
|
||||
ret = pac_aligned_size(context, end, &e);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
if (end != e) {
|
||||
CHECK(ret, fill_zeros(context, spdata, e - end), out);
|
||||
}
|
||||
end = e;
|
||||
|
||||
@@ -802,11 +802,10 @@ get_key_from_keytab(krb5_context context,
|
||||
kvno,
|
||||
ap_req->ticket.enc_part.etype,
|
||||
&entry);
|
||||
if(ret)
|
||||
goto out;
|
||||
ret = krb5_copy_keyblock(context, &entry.keyblock, out_key);
|
||||
krb5_kt_free_entry (context, &entry);
|
||||
out:
|
||||
if(ret == 0) {
|
||||
ret = krb5_copy_keyblock(context, &entry.keyblock, out_key);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
}
|
||||
if(keytab == NULL)
|
||||
krb5_kt_close(context, real_keytab);
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ test_int16(krb5_context context, krb5_storage *sp)
|
||||
krb5_error_code ret;
|
||||
int i;
|
||||
int16_t val[] = {
|
||||
0, 1, -1, 32768, -32767
|
||||
0, 1, -1, 32767, -32768
|
||||
}, v;
|
||||
|
||||
krb5_storage_truncate(sp, 0);
|
||||
|
||||
@@ -281,6 +281,7 @@ decode_realms(krb5_context context,
|
||||
r = make_realm(tmp);
|
||||
if(r == NULL){
|
||||
free_realms(*realms);
|
||||
*realms = NULL;
|
||||
return krb5_enomem(context);
|
||||
}
|
||||
*realms = append_realm(*realms, r);
|
||||
@@ -289,7 +290,8 @@ decode_realms(krb5_context context,
|
||||
}
|
||||
tmp = malloc(tr + i - start + 1);
|
||||
if(tmp == NULL){
|
||||
free(*realms);
|
||||
free_realms(*realms);
|
||||
*realms = NULL;
|
||||
return krb5_enomem(context);
|
||||
}
|
||||
memcpy(tmp, start, tr + i - start);
|
||||
@@ -297,6 +299,7 @@ decode_realms(krb5_context context,
|
||||
r = make_realm(tmp);
|
||||
if(r == NULL){
|
||||
free_realms(*realms);
|
||||
*realms = NULL;
|
||||
return krb5_enomem(context);
|
||||
}
|
||||
*realms = append_realm(*realms, r);
|
||||
|
||||
@@ -188,7 +188,7 @@ get_null (const struct addrinfo *hints,
|
||||
struct addrinfo *first = NULL;
|
||||
struct addrinfo **current = &first;
|
||||
int family = PF_UNSPEC;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
if (hints != NULL)
|
||||
family = hints->ai_family;
|
||||
@@ -209,6 +209,8 @@ get_null (const struct addrinfo *hints,
|
||||
if (family == PF_INET6 || family == PF_UNSPEC) {
|
||||
ret = add_one (port, protocol, socktype,
|
||||
¤t, const_v6, &v6_addr, NULL);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
if (family == PF_INET || family == PF_UNSPEC) {
|
||||
@@ -216,7 +218,7 @@ get_null (const struct addrinfo *hints,
|
||||
¤t, const_v4, &v4_addr, NULL);
|
||||
}
|
||||
*res = first;
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
@@ -156,7 +156,9 @@ main(int argc, char **argv)
|
||||
if (argc == 0)
|
||||
usage(1);
|
||||
|
||||
for (i = 0; i < argc; ++i)
|
||||
lookup(argv[i]);
|
||||
for (i = 0; i < argc; ++i) {
|
||||
if (argv[i][0]) /* Quiet lint */
|
||||
lookup(argv[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -227,9 +227,9 @@ find_composition(const uint32_t *in, unsigned in_len)
|
||||
unsigned i;
|
||||
|
||||
if (n % 5 == 0) {
|
||||
cur = *in++;
|
||||
if (in_len-- == 0)
|
||||
return c->val;
|
||||
cur = *in++;
|
||||
}
|
||||
|
||||
i = cur >> 16;
|
||||
|
||||
@@ -27,6 +27,7 @@ auth2-none.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-co
|
||||
auth2-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h ssherr.h log.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h monitor_wrap.h misc.h servconf.h
|
||||
auth2-pubkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h kex.h mac.h crypto_api.h sshbuf.h log.h ssherr.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h
|
||||
auth2-pubkey.o: pathnames.h uidswap.h auth-options.h canohost.h monitor_wrap.h authfile.h match.h channels.h session.h sk-api.h
|
||||
auth2-pubkeyfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh.h log.h ssherr.h misc.h compat.h sshkey.h digest.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h authfile.h match.h
|
||||
auth2.o: digest.h
|
||||
auth2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h log.h ssherr.h sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h monitor_wrap.h
|
||||
authfd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h compat.h log.h ssherr.h atomicio.h misc.h
|
||||
@@ -39,7 +40,6 @@ cipher-aes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-co
|
||||
cipher-aesctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher-aesctr.h rijndael.h
|
||||
cipher-chachapoly-libcrypto.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h
|
||||
cipher-chachapoly.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h ssherr.h sshbuf.h cipher-chachapoly.h chacha.h poly1305.h
|
||||
cipher-ctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h
|
||||
cipher.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h misc.h sshbuf.h ssherr.h digest.h openbsd-compat/openssl-compat.h
|
||||
cleanup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h ssherr.h
|
||||
clientloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h sshbuf.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h crypto_api.h
|
||||
@@ -122,7 +122,8 @@ sftp-glob.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-com
|
||||
sftp-realpath.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h
|
||||
sftp-server-main.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h ssherr.h sftp.h misc.h xmalloc.h
|
||||
sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h sshbuf.h ssherr.h log.h misc.h match.h uidswap.h sftp.h sftp-common.h
|
||||
sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h ssherr.h pathnames.h misc.h utf8.h sftp.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h
|
||||
sftp-usergroup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h log.h ssherr.h xmalloc.h sftp-common.h sftp-client.h openbsd-compat/glob.h sftp-usergroup.h
|
||||
sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h ssherr.h pathnames.h misc.h utf8.h sftp.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h sftp-usergroup.h
|
||||
sk-usbhid.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h
|
||||
sntrup761.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h
|
||||
srclimit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h addr.h canohost.h log.h ssherr.h misc.h srclimit.h xmalloc.h
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
[email protected] ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKecyjh9aNmD4rb8WblA8v91JjRb0Cd2JtkzqxcggGeG
|
||||
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBLnJo3ZVDENYZGXm5uO9lU7b0iDFq5gHpTu1MaHPWTEfPdvw+AjFQQ/q5YizuMJkXGsMdYmblJEJZYHpm9IS7ZkAAAAEc3NoOg==
|
||||
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBJoAXBTQalfg+kC5wy1vE7HkIHtVnmV6AUuuIo9KQ1P+70juHwvsFKpsGaqQbrHJkTVgYDGVP02XHj8+Fb18yBIAAAAEc3NoOg==
|
||||
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBH+z1I48s6ydOhP5SJmI02zVCLf0K15B+UMHgoTIKVfUIv5oDoVX7e9f+7QiRmTeEOdZfQydiaVqsfi7qPSve+0AAAAEc3NoOg==
|
||||
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBPM4BmUg/fMnsl42JwktTekk/mB8Be3M+yK2ayg6lqYsqEri8yhRx84gey51OHKVk1TwlGbJjcMHI4URreDBEMQAAAAEc3NoOg==
|
||||
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEcWi5g4FaXu9ZpK39Kj9BTnNgYLoFAmMMMiIACgkQKj9BTnNg
|
||||
YLpyGhAAhZ1RxmD62JnT0gnor1aD0inq1fGPRadaFvXH2OScPcxXMIZWx+otnyZ/
|
||||
H9s0bIti42dPHqurgh92KS2mDGVIW8Y8MvxFUr678+hdem1U7Xvjoo0uaveNhJhe
|
||||
GxuQDOvXKRmmfL2c6w3wnFChFA1o3K+JNshjCHhWz7u6+UmY0Q9yIxqbSi+vmEPP
|
||||
NfWPfGdu4h8r7q11UgTxRSUQkfZXMqpBtb367B9BLduGuKRFKEJNyi6WpjBrqy38
|
||||
BvEbAaL52KX8hEp3TKMjo38RbOK+veSoPV5zlLui0WlEwwasgljal3f4RkqCAJob
|
||||
hqpFJRogM5XNnA2e68TDTf3buJ3wRRjuK39/CusOJz5v4i6+VCdte+BET1Y4gD6y
|
||||
v8KV4pRyumcdbN3khFUkmaQsjo+fyQjWNrgOvv60J2xUWZdchn8lxHOxrfRVKnOi
|
||||
BD4bdks7tPQY/XsS5GNJIp21Ji9HGyBajjHo0BlesLodw7FEOf6YE18A3n9qzosR
|
||||
RliuP4Hs/Z4sCUuDTbpKtQiUVs40kBbkhEL8kS8FsXz3VO89hAWaUqNUYom8AkKv
|
||||
nfDjrZDBLXuVj1Mi8qNPXxqrB/1Cza2/W4U7SK4TlMFXfoXXWxxhefN5vIdMhAJB
|
||||
u9Mdz1pY9mowKbd0c0dR+3fauvjM133dzKuyeDHMqDa5JPyd59o=
|
||||
=kgnS
|
||||
-----END PGP SIGNATURE-----
|
||||
Vendored
+67
-8
@@ -10,6 +10,8 @@
|
||||
|
||||
config=$1
|
||||
|
||||
unset CC CFLAGS CPPFLAGS LDFLAGS LTESTS SUDO
|
||||
|
||||
TEST_TARGET="tests"
|
||||
LTESTS=""
|
||||
SKIP_LTESTS=""
|
||||
@@ -32,7 +34,9 @@ case "$config" in
|
||||
TEST_TARGET=t-exec
|
||||
;;
|
||||
cygwin-release)
|
||||
CONFIGFLAGS="--with-libedit --with-xauth=/usr/bin/xauth --disable-strip --with-security-key-builtin"
|
||||
# See https://cygwin.com/git/?p=git/cygwin-packages/openssh.git;a=blob;f=openssh.cygport;hb=HEAD
|
||||
CONFIGFLAGS="--with-xauth=/usr/bin/xauth --with-security-key-builtin"
|
||||
CONFIGFLAGS="$CONFIGFLAGS --with-kerberos5=/usr --with-libedit --disable-strip"
|
||||
;;
|
||||
clang-12-Werror)
|
||||
CC="clang-12"
|
||||
@@ -41,6 +45,57 @@ case "$config" in
|
||||
CFLAGS="-Wall -Wextra -O2 -Wno-error=implicit-fallthrough -Wno-error=unused-parameter"
|
||||
CONFIGFLAGS="--with-pam --with-Werror"
|
||||
;;
|
||||
*-sanitize-*)
|
||||
case "$config" in
|
||||
gcc-*)
|
||||
CC=gcc
|
||||
;;
|
||||
clang-*)
|
||||
# Find the newest available version of clang
|
||||
for i in `seq 10 99`; do
|
||||
clang="`which clang-$i 2>/dev/null`"
|
||||
[ -x "$clang" ] && CC="$clang"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
# Put Sanitizer logs in regress dir.
|
||||
SANLOGS=`pwd`/regress
|
||||
# - We replace chroot with chdir so that the sanitizer in the preauth
|
||||
# privsep process can read /proc.
|
||||
# - clang does not recognizes explicit_bzero so we use bzero
|
||||
# (see https://github.com/google/sanitizers/issues/1507
|
||||
# - openssl and zlib trip ASAN.
|
||||
# - sp_pwdp returned by getspnam trips ASAN, hence disabling shadow.
|
||||
case "$config" in
|
||||
*-sanitize-address)
|
||||
CFLAGS="-fsanitize=address -fno-omit-frame-pointer"
|
||||
LDFLAGS="-fsanitize=address"
|
||||
CPPFLAGS='-Dchroot=chdir -Dexplicit_bzero=bzero -D_FORTIFY_SOURCE=0 -DASAN_OPTIONS=\"detect_leaks=0:log_path='$SANLOGS'/asan.log\"'
|
||||
CONFIGFLAGS=""
|
||||
TEST_TARGET="t-exec"
|
||||
;;
|
||||
clang-sanitize-memory)
|
||||
CFLAGS="-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer"
|
||||
LDFLAGS="-fsanitize=memory"
|
||||
CPPFLAGS='-Dchroot=chdir -Dexplicit_bzero=bzero -DMSAN_OPTIONS=\"log_path='$SANLOGS'/msan.log\"'
|
||||
CONFIGFLAGS="--without-openssl --without-zlib --without-shadow"
|
||||
TEST_TARGET="t-exec"
|
||||
;;
|
||||
*-sanitize-undefined)
|
||||
CFLAGS="-fsanitize=undefined"
|
||||
LDFLAGS="-fsanitize=undefined"
|
||||
;;
|
||||
*)
|
||||
echo unknown sanitize option;
|
||||
exit 1;;
|
||||
esac
|
||||
features="--disable-security-key --disable-pkcs11"
|
||||
hardening="--without-sandbox --without-hardening --without-stackprotect"
|
||||
privsep="--with-privsep-user=root"
|
||||
CONFIGFLAGS="$CONFIGFLAGS $features $hardening $privsep"
|
||||
# Because we hobble chroot we can't test it.
|
||||
SKIP_LTESTS=sftp-chroot
|
||||
;;
|
||||
gcc-11-Werror)
|
||||
CC="gcc"
|
||||
# -Wnoformat-truncation in gcc 7.3.1 20180130 fails on fmt_scaled
|
||||
@@ -107,14 +162,15 @@ case "$config" in
|
||||
# Valgrind slows things down enough that the agent timeout test
|
||||
# won't reliably pass, and the unit tests run longer than allowed
|
||||
# by github so split into three separate tests.
|
||||
tests2="rekey integrity try-ciphers sftp"
|
||||
tests3="krl forward-control sshsig agent-restrict kextype"
|
||||
tests2="rekey integrity try-ciphers"
|
||||
tests3="krl forward-control sshsig agent-restrict kextype sftp"
|
||||
tests4="cert-userkey cert-hostkey kextype sftp-perm keygen-comment percent"
|
||||
case "$config" in
|
||||
valgrind-1)
|
||||
# All tests except agent-timeout (which is flaky under valgrind)
|
||||
#) and slow ones that run separately to increase parallelism.
|
||||
SKIP_LTESTS="agent-timeout ${tests2} ${tests3} ${tests4}"
|
||||
# and hostbased (since valgrind won't let ssh exec keysign).
|
||||
# Slow ones are run separately to increase parallelism.
|
||||
SKIP_LTESTS="agent-timeout hostbased ${tests2} ${tests3} ${tests4}"
|
||||
;;
|
||||
valgrind-2)
|
||||
LTESTS="${tests2}"
|
||||
@@ -201,10 +257,13 @@ case "${TARGET_HOST}" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# Unless specified otherwise, build without OpenSSL on Mac OS since
|
||||
# modern versions don't ship with libcrypto.
|
||||
case "`./config.guess`" in
|
||||
*cygwin)
|
||||
SUDO=""
|
||||
;;
|
||||
*-darwin*)
|
||||
# Unless specified otherwise, build without OpenSSL on Mac OS since
|
||||
# modern versions don't ship with libcrypto.
|
||||
LIBCRYPTOFLAGS="--without-openssl"
|
||||
TEST_TARGET=t-exec
|
||||
;;
|
||||
@@ -227,5 +286,5 @@ if [ -x "$(which plink 2>/dev/null)" ]; then
|
||||
export REGRESS_INTEROP_PUTTY
|
||||
fi
|
||||
|
||||
export CC CFLAGS LTESTS SUDO
|
||||
export CC CFLAGS CPPFLAGS LDFLAGS LTESTS SUDO
|
||||
export TEST_TARGET TEST_SSH_UNSAFE_PERMISSIONS TEST_SSH_FAIL_FATAL
|
||||
Vendored
+1
-1
@@ -18,4 +18,4 @@ if [ "x$LDFLAGS" != "x" ]; then
|
||||
fi
|
||||
|
||||
echo ./configure ${CONFIGFLAGS}
|
||||
./configure ${CONFIGFLAGS}
|
||||
./configure ${CONFIGFLAGS} 2>&1
|
||||
Vendored
+14
@@ -6,6 +6,20 @@
|
||||
|
||||
set -ex
|
||||
|
||||
# If we want to test hostbased auth, set up the host for it.
|
||||
if [ ! -z "$SUDO" ] && [ ! -z "$TEST_SSH_HOSTBASED_AUTH" ]; then
|
||||
sshconf=/usr/local/etc
|
||||
hostname | $SUDO tee $sshconf/shosts.equiv >/dev/null
|
||||
echo "EnableSSHKeysign yes" | $SUDO tee $sshconf/ssh_config >/dev/null
|
||||
$SUDO mkdir -p $sshconf
|
||||
$SUDO cp -p /etc/ssh/ssh_host*key* $sshconf
|
||||
$SUDO make install
|
||||
for key in $sshconf/ssh_host*key*.pub; do
|
||||
echo `hostname` `cat $key` | \
|
||||
$SUDO tee -a $sshconf/ssh_known_hosts >/dev/null
|
||||
done
|
||||
fi
|
||||
|
||||
output_failed_logs() {
|
||||
for i in regress/failed*; do
|
||||
if [ -f "$i" ]; then
|
||||
|
||||
Vendored
+55
-8
@@ -1,17 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
PACKAGES=""
|
||||
|
||||
. .github/configs $@
|
||||
|
||||
case "`./config.guess`" in
|
||||
*cygwin)
|
||||
PACKAGER=setup
|
||||
echo Setting CYGWIN sustem environment variable.
|
||||
setx CYGWIN "binmode"
|
||||
chmod -R go-rw /cygdrive/d/a
|
||||
umask 077
|
||||
PACKAGES="$PACKAGES,autoconf,automake,cygwin-devel,gcc-core"
|
||||
PACKAGES="$PACKAGES,make,openssl-devel,zlib-devel"
|
||||
;;
|
||||
*-darwin*)
|
||||
PACKAGER=brew
|
||||
brew install automake
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
PACKAGER=apt
|
||||
esac
|
||||
|
||||
TARGETS=$@
|
||||
|
||||
PACKAGES=""
|
||||
INSTALL_FIDO_PPA="no"
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@@ -19,7 +32,17 @@ export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
set -ex
|
||||
|
||||
lsb_release -a
|
||||
if [ -x "`which lsb_release 2>&1`" ]; then
|
||||
lsb_release -a
|
||||
fi
|
||||
|
||||
# Ubuntu 22.04 defaults to private home dirs which prevent the
|
||||
# agent-getpeerid test from running ssh-add as nobody. See
|
||||
# https://github.com/actions/runner-images/issues/6106
|
||||
if [ ! -z "$SUDO" ] && ! "$SUDO" -u nobody test -x ~; then
|
||||
echo ~ is not executable by nobody, adding perms.
|
||||
chmod go+x ~
|
||||
fi
|
||||
|
||||
if [ "${TARGETS}" = "kitchensink" ]; then
|
||||
TARGETS="krb5 libedit pam sk selinux"
|
||||
@@ -27,16 +50,24 @@ fi
|
||||
|
||||
for flag in $CONFIGFLAGS; do
|
||||
case "$flag" in
|
||||
--with-pam) PACKAGES="${PACKAGES} libpam0g-dev" ;;
|
||||
--with-libedit) PACKAGES="${PACKAGES} libedit-dev" ;;
|
||||
--with-pam) TARGETS="${TARGETS} pam" ;;
|
||||
--with-libedit) TARGETS="${TARGETS} libedit" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
for TARGET in $TARGETS; do
|
||||
case $TARGET in
|
||||
default|without-openssl|without-zlib|c89|libedit|*pam)
|
||||
default|without-openssl|without-zlib|c89)
|
||||
# nothing to do
|
||||
;;
|
||||
clang-sanitize*)
|
||||
PACKAGES="$PACKAGES clang-12"
|
||||
;;
|
||||
cygwin-release)
|
||||
PACKAGES="$PACKAGES libcrypt-devel libfido2-devel libkrb5-devel"
|
||||
;;
|
||||
gcc-sanitize*)
|
||||
;;
|
||||
clang-*|gcc-*)
|
||||
compiler=$(echo $TARGET | sed 's/-Werror//')
|
||||
PACKAGES="$PACKAGES $compiler"
|
||||
@@ -47,6 +78,15 @@ for TARGET in $TARGETS; do
|
||||
heimdal)
|
||||
PACKAGES="$PACKAGES heimdal-dev"
|
||||
;;
|
||||
libedit)
|
||||
case "$PACKAGER" in
|
||||
setup) PACKAGES="$PACKAGES libedit-devel" ;;
|
||||
apt) PACKAGES="$PACKAGES libedit-dev" ;;
|
||||
esac
|
||||
;;
|
||||
*pam)
|
||||
PACKAGES="$PACKAGES libpam0g-dev"
|
||||
;;
|
||||
sk)
|
||||
INSTALL_FIDO_PPA="yes"
|
||||
PACKAGES="$PACKAGES libfido2-dev libu2f-host-dev libcbor-dev"
|
||||
@@ -99,9 +139,16 @@ if [ "yes" = "$INSTALL_FIDO_PPA" ]; then
|
||||
sudo apt-add-repository -y ppa:yubico/stable
|
||||
fi
|
||||
|
||||
if [ "x" != "x$PACKAGES" ]; then
|
||||
sudo apt update -qq
|
||||
sudo apt install -qy $PACKAGES
|
||||
if [ "x" != "x$PACKAGES" ]; then
|
||||
case "$PACKAGER" in
|
||||
apt)
|
||||
sudo apt update -qq
|
||||
sudo apt install -qy $PACKAGES
|
||||
;;
|
||||
setup)
|
||||
/cygdrive/c/setup.exe -q -P `echo "$PACKAGES" | tr ' ' ,`
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "${INSTALL_HARDENED_MALLOC}" = "yes" ]; then
|
||||
|
||||
+39
-21
@@ -2,9 +2,11 @@ name: C/C++ CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master, ci ]
|
||||
branches: [ master, ci, V_9_0 ]
|
||||
paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ]
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
@@ -13,11 +15,13 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# First we test all OSes in the default configuration.
|
||||
os: [ubuntu-20.04, ubuntu-18.04, macos-10.15, macos-11.0]
|
||||
os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022]
|
||||
configs: [default]
|
||||
# Then we include any extra configs we want to test for specific VMs.
|
||||
# Valgrind slows things down quite a bit, so start them first.
|
||||
include:
|
||||
- { os: windows-2019, configs: cygwin-release }
|
||||
- { os: windows-2022, configs: cygwin-release }
|
||||
- { os: ubuntu-20.04, configs: valgrind-1 }
|
||||
- { os: ubuntu-20.04, configs: valgrind-2 }
|
||||
- { os: ubuntu-20.04, configs: valgrind-3 }
|
||||
@@ -30,6 +34,10 @@ jobs:
|
||||
- { os: ubuntu-20.04, configs: clang-10 }
|
||||
- { os: ubuntu-20.04, configs: clang-11 }
|
||||
- { os: ubuntu-20.04, configs: clang-12-Werror }
|
||||
- { os: ubuntu-20.04, configs: clang-sanitize-address }
|
||||
- { os: ubuntu-20.04, configs: clang-sanitize-undefined }
|
||||
- { os: ubuntu-20.04, configs: gcc-sanitize-address }
|
||||
- { os: ubuntu-20.04, configs: gcc-sanitize-undefined }
|
||||
- { os: ubuntu-20.04, configs: gcc-7 }
|
||||
- { os: ubuntu-20.04, configs: gcc-8 }
|
||||
- { os: ubuntu-20.04, configs: gcc-10 }
|
||||
@@ -44,9 +52,9 @@ jobs:
|
||||
- { os: ubuntu-latest, configs: libressl-2.8.3 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.0.2 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.2.6 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.3.4 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.4.1 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.5.0 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.3.6 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.4.3 }
|
||||
- { os: ubuntu-latest, configs: libressl-3.5.3 }
|
||||
- { os: ubuntu-latest, configs: openssl-master }
|
||||
- { os: ubuntu-latest, configs: openssl-noec }
|
||||
- { os: ubuntu-latest, configs: openssl-1.0.1 }
|
||||
@@ -55,30 +63,37 @@ jobs:
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.0h }
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.1 }
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.1k }
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.1m }
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.1n }
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.1p }
|
||||
- { os: ubuntu-latest, configs: openssl-3.0.0 }
|
||||
- { os: ubuntu-latest, configs: openssl-3.0.1 }
|
||||
- { os: ubuntu-latest, configs: openssl-3.0.5 }
|
||||
- { os: ubuntu-latest, configs: openssl-1.1.1_stable } # stable branch
|
||||
- { os: ubuntu-latest, configs: openssl-3.0 } # stable branch
|
||||
- { os: ubuntu-18.04, configs: pam }
|
||||
- { os: ubuntu-18.04, configs: krb5 }
|
||||
- { os: ubuntu-18.04, configs: heimdal }
|
||||
- { os: ubuntu-18.04, configs: libedit }
|
||||
- { os: ubuntu-18.04, configs: sk }
|
||||
- { os: ubuntu-18.04, configs: selinux }
|
||||
- { os: ubuntu-18.04, configs: kitchensink }
|
||||
- { os: ubuntu-18.04, configs: without-openssl }
|
||||
- { os: macos-10.15, configs: pam }
|
||||
- { os: macos-11.0, configs: pam }
|
||||
- { os: ubuntu-22.04, configs: pam }
|
||||
- { os: ubuntu-22.04, configs: krb5 }
|
||||
- { os: ubuntu-22.04, configs: heimdal }
|
||||
- { os: ubuntu-22.04, configs: libedit }
|
||||
- { os: ubuntu-22.04, configs: sk }
|
||||
- { os: ubuntu-22.04, configs: selinux }
|
||||
- { os: ubuntu-22.04, configs: kitchensink }
|
||||
- { os: ubuntu-22.04, configs: without-openssl }
|
||||
- { os: macos-11, configs: pam }
|
||||
- { os: macos-12, configs: pam }
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: set cygwin git params
|
||||
if: ${{ startsWith(matrix.os, 'windows') }}
|
||||
run: git config --global core.autocrlf input
|
||||
- name: install cygwin
|
||||
if: ${{ startsWith(matrix.os, 'windows') }}
|
||||
uses: cygwin/cygwin-install-action@master
|
||||
- uses: actions/checkout@v2
|
||||
- name: setup CI system
|
||||
run: ./.github/setup_ci.sh ${{ matrix.configs }}
|
||||
run: sh ./.github/setup_ci.sh ${{ matrix.configs }}
|
||||
- name: autoreconf
|
||||
run: autoreconf
|
||||
run: sh -c autoreconf
|
||||
- name: configure
|
||||
run: ./.github/configure.sh ${{ matrix.configs }}
|
||||
run: sh ./.github/configure.sh ${{ matrix.configs }}
|
||||
- name: save config
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@@ -89,9 +104,10 @@ jobs:
|
||||
- name: make
|
||||
run: make -j2
|
||||
- name: make tests
|
||||
run: ./.github/run_test.sh ${{ matrix.configs }}
|
||||
run: sh ./.github/run_test.sh ${{ matrix.configs }}
|
||||
env:
|
||||
TEST_SSH_UNSAFE_PERMISSIONS: 1
|
||||
TEST_SSH_HOSTBASED_AUTH: yes
|
||||
- name: save logs
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
@@ -102,3 +118,5 @@ jobs:
|
||||
config.log
|
||||
regress/*.log
|
||||
regress/valgrind-out/
|
||||
regress/asan.log.*
|
||||
regress/msan.log.*
|
||||
+6
-6
@@ -2,7 +2,8 @@ name: C/C++ CI self-hosted
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master, ci ]
|
||||
branches: [ master, ci, V_9_0 ]
|
||||
paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ]
|
||||
|
||||
jobs:
|
||||
selfhosted:
|
||||
@@ -17,15 +18,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
- aix51
|
||||
- ARM
|
||||
- ARM64
|
||||
- alpine
|
||||
- bbone
|
||||
- debian-i386
|
||||
- debian-riscv64
|
||||
- dfly30
|
||||
- dfly48
|
||||
- dfly58
|
||||
- dfly60
|
||||
- fbsd6
|
||||
- fbsd10
|
||||
- fbsd12
|
||||
- fbsd13
|
||||
@@ -58,7 +59,6 @@ jobs:
|
||||
- { os: dfly48, configs: pam }
|
||||
- { os: dfly58, configs: pam }
|
||||
- { os: dfly60, configs: pam }
|
||||
- { os: fbsd6, configs: pam }
|
||||
- { os: fbsd10, configs: pam }
|
||||
- { os: fbsd12, configs: pam }
|
||||
- { os: fbsd13, configs: pam }
|
||||
@@ -72,11 +72,11 @@ jobs:
|
||||
# - { os: sol11, configs: sol64-pam }
|
||||
- { os: win10, configs: cygwin-release }
|
||||
steps:
|
||||
- name: shutdown VM if running
|
||||
run: vmshutdown
|
||||
- uses: actions/checkout@v2
|
||||
- name: autoreconf
|
||||
run: autoreconf
|
||||
- name: shutdown VM if running
|
||||
run: vmshutdown
|
||||
- name: startup VM
|
||||
run: vmstartup
|
||||
- name: configure
|
||||
|
||||
+8
-5
@@ -3,6 +3,7 @@ name: Upstream self-hosted
|
||||
on:
|
||||
push:
|
||||
branches: [ master, ci ]
|
||||
paths: [ '**.c', '**.h', '.github/**' ]
|
||||
|
||||
jobs:
|
||||
selfhosted:
|
||||
@@ -14,7 +15,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ obsdsnap, obsdsnap-i386 ]
|
||||
configs: [ default, without-openssl ]
|
||||
configs: [ default, without-openssl, ubsan ]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: shutdown VM if running
|
||||
@@ -24,13 +25,15 @@ jobs:
|
||||
- name: update source
|
||||
run: vmrun "cd /usr/src && cvs up -dPA usr.bin/ssh regress/usr.bin/ssh"
|
||||
- name: make clean
|
||||
run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean"
|
||||
run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean && cd /usr/src/regress/usr.bin/ssh && make obj && make clean"
|
||||
- name: make
|
||||
run: vmrun "cd /usr/src/usr.bin/ssh && if test '${{ matrix.configs }}' = 'without-openssl'; then make OPENSSL=no; else make; fi"
|
||||
run: vmrun "cd /usr/src/usr.bin/ssh && case ${{ matrix.configs }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac"
|
||||
- name: make install
|
||||
run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install"
|
||||
- name: make tests
|
||||
run: vmrun "cd /usr/src/regress/usr.bin/ssh && make obj && make clean && if test '${{ matrix.configs }}' = 'without-openssl'; then make SUDO=sudo OPENSSL=no; else make SUDO=sudo; fi"
|
||||
- name: make tests`
|
||||
run: vmrun "cd /usr/src/regress/usr.bin/ssh && case ${{ matrix.configs }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac"
|
||||
env:
|
||||
SUDO: sudo
|
||||
timeout-minutes: 300
|
||||
- name: save logs
|
||||
if: failure()
|
||||
|
||||
@@ -24,6 +24,7 @@ d9b910e412d139141b072a905e66714870c38ac0 Makefile.inc
|
||||
cc12a9029833d222043aecd252d654965c351a69 moduli-gen Makefile
|
||||
7ac6c252d2a5be8fbad4c66d9d35db507c9dac5b moduli update
|
||||
6b52cd2b637f3d29ef543f0ce532a2bce6d86af5 makefile change
|
||||
f9a0726d957cf10692a231996a1f34e7f9cdfeb0 moduli update
|
||||
|
||||
Old upstream tree:
|
||||
|
||||
|
||||
+2035
-2610
File diff suppressed because it is too large.
Load diff
@@ -1,9 +1,10 @@
|
||||
1. Prerequisites
|
||||
----------------
|
||||
|
||||
A C compiler. Any C89 or better compiler should work. Where supported,
|
||||
configure will attempt to enable the compiler's run-time integrity checking
|
||||
options. Some notes about specific compilers:
|
||||
A C compiler. Any C89 or better compiler that supports variadic macros
|
||||
should work. Where supported, configure will attempt to enable the
|
||||
compiler's run-time integrity checking options. Some notes about
|
||||
specific compilers:
|
||||
- clang: -ftrapv and -sanitize=integer require the compiler-rt runtime
|
||||
(CC=clang LDFLAGS=--rtlib=compiler-rt ./configure)
|
||||
|
||||
|
||||
Loaded 100 of 263 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user