diff --git a/website/data/security/advisories.toml b/website/data/security/advisories.toml index f7562432bd..8e676bbf20 100644 --- a/website/data/security/advisories.toml +++ b/website/data/security/advisories.toml @@ -1,2771 +1,2787 @@ # Sort advisories by year, month and day # $FreeBSD$ +[[advisories]] +name = "FreeBSD-SA-25:04.ktrace" +date = "2025-01-29" + +[[advisories]] +name = "FreeBSD-SA-25:03.etcupdate" +date = "2025-01-29" + +[[advisories]] +name = "FreeBSD-SA-25:02.fs" +date = "2025-01-29" + +[[advisories]] +name = "FreeBSD-SA-25:01.openssh" +date = "2025-01-29" + [[advisories]] name = "FreeBSD-SA-24:19.fetch" date = "2024-10-29" [[advisories]] name = "FreeBSD-SA-24:18.ctl" date = "2024-10-29" [[advisories]] name = "FreeBSD-SA-24:17.bhyve" date = "2024-10-29" [[advisories]] name = "FreeBSD-SA-24:16.libnv" date = "2024-09-19" [[advisories]] name = "FreeBSD-SA-24:15.bhyve" date = "2024-09-19" [[advisories]] name = "FreeBSD-SA-24:14.umtx" date = "2024-09-04" [[advisories]] name = "FreeBSD-SA-24:13.openssl" date = "2024-09-04" [[advisories]] name = "FreeBSD-SA-24:12.bhyve" date = "2024-09-04" [[advisories]] name = "FreeBSD-SA-24:11.ctl" date = "2024-09-04" [[advisories]] name = "FreeBSD-SA-24:10.bhyve" date = "2024-09-04" [[advisories]] name = "FreeBSD-SA-24:09.libnv" date = "2024-09-04" [[advisories]] name = "FreeBSD-SA-24:08.openssh" date = "2024-08-07" [[advisories]] name = "FreeBSD-SA-24:07.nfsclient" date = "2024-08-07" [[advisories]] name = "FreeBSD-SA-24:06.ktrace" date = "2024-08-07" [[advisories]] name = "FreeBSD-SA-24:05.pf" date = "2024-08-07" [[advisories]] name = "FreeBSD-SA-24:04.openssh" date = "2024-07-01" [[advisories]] name = "FreeBSD-SA-24:03.unbound" date = "2024-03-28" [[advisories]] name = "FreeBSD-SA-24:02.tty" date = "2024-02-14" [[advisories]] name = "FreeBSD-SA-24:01.bhyveload" date = "2024-02-14" [[advisories]] name = "FreeBSD-SA-23:19.openssh" date = "2023-12-19" [[advisories]] name = "FreeBSD-SA-23:18.nfsclient" date = "2023-12-12" [[advisories]] name = "FreeBSD-SA-23:17.pf" date = "2023-12-05" [[advisories]] name = "FreeBSD-SA-23:16.cap_net" date = "2023-11-08" [[advisories]] name = "FreeBSD-SA-23:15.stdio" date = "2023-11-08" [[advisories]] name = "FreeBSD-SA-23:14.smccc" date = "2023-10-03" [[advisories]] name = "FreeBSD-SA-23:13.capsicum" date = "2023-10-03" [[advisories]] name = "FreeBSD-SA-23:12.msdosfs" date = "2023-10-03" [[advisories]] name = "FreeBSD-SA-23:11.wifi" date = "2023-09-06" [[advisories]] name = "FreeBSD-SA-23:10.pf" date = "2023-09-06" [[advisories]] name = "FreeBSD-SA-23:09.pam_krb5" date = "2023-08-01" [[advisories]] name = "FreeBSD-SA-23:08.ssh" date = "2023-08-01" [[advisories]] name = "FreeBSD-SA-23:07.bhyve" date = "2023-08-01" [[advisories]] name = "FreeBSD-SA-23:06.ipv6" date = "2023-08-01" [[advisories]] name = "FreeBSD-SA-23:05.openssh" date = "2023-06-21" [[advisories]] name = "FreeBSD-SA-23:04.pam_krb5" date = "2023-06-21" [[advisories]] name = "FreeBSD-SA-23:03.openssl" date = "2023-02-16" [[advisories]] name = "FreeBSD-SA-23:02.openssh" date = "2023-02-16" [[advisories]] name = "FreeBSD-SA-23:01.geli" date = "2023-02-08" [[advisories]] name = "FreeBSD-SA-22:15.ping" date = "2022-11-29" [[advisories]] name = "FreeBSD-SA-22:14.heimdal" date = "2022-11-15" [[advisories]] name = "FreeBSD-SA-22:13.zlib" date = "2022-08-30" [[advisories]] name = "FreeBSD-SA-22:12.lib9p" date = "2022-08-09" [[advisories]] name = "FreeBSD-SA-22:11.vm" date = "2022-08-09" [[advisories]] name = "FreeBSD-SA-22:10.aio" date = "2022-08-09" [[advisories]] name = "FreeBSD-SA-22:09.elf" date = "2022-08-09" [[advisories]] name = "FreeBSD-SA-22:08.zlib" date = "2022-04-06" [[advisories]] name = "FreeBSD-SA-22:07.wifi_meshid" date = "2022-04-06" [[advisories]] name = "FreeBSD-SA-22:06.ioctl" date = "2022-04-06" [[advisories]] name = "FreeBSD-SA-22:05.bhyve" date = "2022-04-06" [[advisories]] name = "FreeBSD-SA-22:04.netmap" date = "2022-04-06" [[advisories]] name = "FreeBSD-SA-22:03.openssl" date = "2022-03-15" [[advisories]] name = "FreeBSD-SA-22:02.wifi" date = "2022-03-15" [[advisories]] name = "FreeBSD-SA-22:01.vt" date = "2022-01-11" [[advisories]] name = "FreeBSD-SA-21:17.openssl" date = "2021-08-24" [[advisories]] name = "FreeBSD-SA-21:16.openssl" date = "2021-08-24" [[advisories]] name = "FreeBSD-SA-21:15.libfetch" date = "2021-08-24" [[advisories]] name = "FreeBSD-SA-21:14.ggatec" date = "2021-08-24" [[advisories]] name = "FreeBSD-SA-21:13.bhyve" date = "2021-08-24" [[advisories]] name = "FreeBSD-SA-21:12.libradius" date = "2021-05-26" [[advisories]] name = "FreeBSD-SA-21:11.smap" date = "2021-05-26" [[advisories]] name = "FreeBSD-SA-21:10.jail_mount" date = "2021-04-06" [[advisories]] name = "FreeBSD-SA-21:09.accept_filter" date = "2021-04-06" [[advisories]] name = "FreeBSD-SA-21:08.vm" date = "2021-04-06" [[advisories]] name = "FreeBSD-SA-21:07.openssl" date = "2021-03-25" [[advisories]] name = "FreeBSD-SA-21:06.xen" date = "2021-02-24" [[advisories]] name = "FreeBSD-SA-21:05.jail_chdir" date = "2021-02-24" [[advisories]] name = "FreeBSD-SA-21:04.jail_remove" date = "2021-02-24" [[advisories]] name = "FreeBSD-SA-21:03.pam_login_access" date = "2021-02-24" [[advisories]] name = "FreeBSD-SA-21:02.xenoom" date = "2021-01-29" [[advisories]] name = "FreeBSD-SA-21:01.fsdisclosure" date = "2021-01-29" [[advisories]] name = "FreeBSD-SA-20:33.openssl" date = "2020-12-08" [[advisories]] name = "FreeBSD-SA-20:32.rtsold" date = "2020-12-01" [[advisories]] name = "FreeBSD-SA-20:31.icmp6" date = "2020-12-01" [[advisories]] name = "FreeBSD-SA-20:30.ftpd" date = "2020-09-15" [[advisories]] name = "FreeBSD-SA-20:29.bhyve_svm" date = "2020-09-15" [[advisories]] name = "FreeBSD-SA-20:28.bhyve_vmcs" date = "2020-09-15" [[advisories]] name = "FreeBSD-SA-20:27.ure" date = "2020-09-15" [[advisories]] name = "FreeBSD-SA-20:26.dhclient" date = "2020-09-02" [[advisories]] name = "FreeBSD-SA-20:25.sctp" date = "2020-09-02" [[advisories]] name = "FreeBSD-SA-20:24.ipv6" date = "2020-09-02" [[advisories]] name = "FreeBSD-SA-20:23.sendmsg" date = "2020-08-05" [[advisories]] name = "FreeBSD-SA-20:22.sqlite" date = "2020-08-05" [[advisories]] name = "FreeBSD-SA-20:21.usb_net" date = "2020-08-05" [[advisories]] name = "FreeBSD-SA-20:20.ipv6" date = "2020-07-08" [[advisories]] name = "FreeBSD-SA-20:19.unbound" date = "2020-07-08" [[advisories]] name = "FreeBSD-SA-20:18.posix_spawnp" date = "2020-07-08" [[advisories]] name = "FreeBSD-SA-20:17.usb" date = "2020-06-09" [[advisories]] name = "FreeBSD-SA-20:16.cryptodev" date = "2020-05-12" [[advisories]] name = "FreeBSD-SA-20:15.cryptodev" date = "2020-05-12" [[advisories]] name = "FreeBSD-SA-20:14.sctp" date = "2020-05-12" [[advisories]] name = "FreeBSD-SA-20:13.libalias" date = "2020-05-12" [[advisories]] name = "FreeBSD-SA-20:12.libalias" date = "2020-05-12" [[advisories]] name = "FreeBSD-SA-20:11.openssl" date = "2020-04-21" [[advisories]] name = "FreeBSD-SA-20:10.ipfw" date = "2020-04-21" [[advisories]] name = "FreeBSD-SA-20:09.ntp" date = "2020-03-19" [[advisories]] name = "FreeBSD-SA-20:08.jail" date = "2020-03-19" [[advisories]] name = "FreeBSD-SA-20:07.epair" date = "2020-03-19" [[advisories]] name = "FreeBSD-SA-20:06.if_ixl_ioctl" date = "2020-03-19" [[advisories]] name = "FreeBSD-SA-20:05.if_oce_ioctl" date = "2020-03-19" [[advisories]] name = "FreeBSD-SA-20:04.tcp" date = "2020-03-19" [[advisories]] name = "FreeBSD-SA-20:03.thrmisc" date = "2020-01-28" [[advisories]] name = "FreeBSD-SA-20:02.ipsec" date = "2020-01-28" [[advisories]] name = "FreeBSD-SA-20:01.libfetch" date = "2020-01-28" [[advisories]] name = "FreeBSD-SA-19:26.mcu" date = "2019-11-12" [[advisories]] name = "FreeBSD-SA-19:25.mcepsc" date = "2019-11-12" [[advisories]] name = "FreeBSD-SA-19:24.mqueuefs" date = "2019-08-20" [[advisories]] name = "FreeBSD-SA-19:23.midi" date = "2019-08-20" [[advisories]] name = "FreeBSD-SA-19:22.mbuf" date = "2019-08-20" [[advisories]] name = "FreeBSD-SA-19:21.bhyve" date = "2019-08-06" [[advisories]] name = "FreeBSD-SA-19:20.bsnmp" date = "2019-08-06" [[advisories]] name = "FreeBSD-SA-19:19.mldv2" date = "2019-08-06" [[advisories]] name = "FreeBSD-SA-19:18.bzip2" date = "2019-08-06" [[advisories]] name = "FreeBSD-SA-19:17.fd" date = "2019-07-24" [[advisories]] name = "FreeBSD-SA-19:16.bhyve" date = "2019-07-24" [[advisories]] name = "FreeBSD-SA-19:15.mqueuefs" date = "2019-07-24" [[advisories]] name = "FreeBSD-SA-19:14.freebsd32" date = "2019-07-24" [[advisories]] name = "FreeBSD-SA-19:13.pts" date = "2019-07-24" [[advisories]] name = "FreeBSD-SA-19:12.telnet" date = "2019-07-24" [[advisories]] name = "FreeBSD-SA-19:11.cd_ioctl" date = "2019-07-02" [[advisories]] name = "FreeBSD-SA-19:10.ufs" date = "2019-07-02" [[advisories]] name = "FreeBSD-SA-19:09.iconv" date = "2019-07-02" [[advisories]] name = "FreeBSD-SA-19:08.rack" date = "2019-06-19" [[advisories]] name = "FreeBSD-SA-19:07.mds" date = "2019-05-14" [[advisories]] name = "FreeBSD-SA-19:06.pf" date = "2019-05-14" [[advisories]] name = "FreeBSD-SA-19:05.pf" date = "2019-05-14" [[advisories]] name = "FreeBSD-SA-19:04.ntp" date = "2019-05-14" [[advisories]] name = "FreeBSD-SA-19:03.wpa" date = "2019-05-14" [[advisories]] name = "FreeBSD-SA-19:02.fd" date = "2019-02-05" [[advisories]] name = "FreeBSD-SA-19:01.syscall" date = "2019-02-05" [[advisories]] name = "FreeBSD-SA-18:15.bootpd" date = "2018-12-19" [[advisories]] name = "FreeBSD-SA-18:14.bhyve" date = "2018-12-04" [[advisories]] name = "FreeBSD-SA-18:13.nfs" date = "2018-11-27" [[advisories]] name = "FreeBSD-SA-18:12.elf" date = "2018-09-12" [[advisories]] name = "FreeBSD-SA-18:11.hostapd" date = "2018-08-14" [[advisories]] name = "FreeBSD-SA-18:10.ip" date = "2018-08-14" [[advisories]] name = "FreeBSD-SA-18:09.l1tf" date = "2018-08-14" [[advisories]] name = "FreeBSD-SA-18:08.tcp" date = "2018-08-06" [[advisories]] name = "FreeBSD-SA-18:07.lazyfpu" date = "2018-06-21" [[advisories]] name = "FreeBSD-SA-18:06.debugreg" date = "2018-05-08" [[advisories]] name = "FreeBSD-SA-18:05.ipsec" date = "2018-04-04" [[advisories]] name = "FreeBSD-SA-18:04.vt" date = "2018-04-04" [[advisories]] name = "FreeBSD-SA-18:03.speculative_execution" date = "2018-03-14" [[advisories]] name = "FreeBSD-SA-18:02.ntp" date = "2018-03-07" [[advisories]] name = "FreeBSD-SA-18:01.ipsec" date = "2018-03-07" [[advisories]] name = "FreeBSD-SA-17:12.openssl" date = "2017-12-09" [[advisories]] name = "FreeBSD-SA-17:11.openssl" date = "2017-11-29" [[advisories]] name = "FreeBSD-SA-17:10.kldstat" date = "2017-11-15" [[advisories]] name = "FreeBSD-SA-17:09.shm" date = "2017-11-15" [[advisories]] name = "FreeBSD-SA-17:08.ptrace" date = "2017-11-15" [[advisories]] name = "FreeBSD-SA-17:07.wpa" date = "2017-10-17" [[advisories]] name = "FreeBSD-SA-17:06.openssh" date = "2017-08-10" [[advisories]] name = "FreeBSD-SA-17:05.heimdal" date = "2017-07-12" [[advisories]] name = "FreeBSD-SA-17:04.ipfilter" date = "2017-04-27" [[advisories]] name = "FreeBSD-SA-17:03.ntp" date = "2017-04-12" [[advisories]] name = "FreeBSD-SA-17:02.openssl" date = "2017-02-23" [[advisories]] name = "FreeBSD-SA-17:01.openssh" date = "2017-01-11" [[advisories]] name = "FreeBSD-SA-16:39.ntp" date = "2016-12-22" [[advisories]] name = "FreeBSD-SA-16:38.bhyve" date = "2016-12-06" [[advisories]] name = "FreeBSD-SA-16:37.libc" date = "2016-12-06" [[advisories]] name = "FreeBSD-SA-16:36.telnetd" date = "2016-12-06" [[advisories]] name = "FreeBSD-SA-16:35.openssl" date = "2016-11-02" [[advisories]] name = "FreeBSD-SA-16:34.bind" date = "2016-11-02" [[advisories]] name = "FreeBSD-SA-16:33.openssh" date = "2016-11-02" [[advisories]] name = "FreeBSD-SA-16:32.bhyve" date = "2016-10-25" [[advisories]] name = "FreeBSD-SA-16:31.libarchive" date = "2016-10-10" [[advisories]] name = "FreeBSD-SA-16:30.portsnap" date = "2016-10-10" [[advisories]] name = "FreeBSD-SA-16:29.bspatch" date = "2016-10-10" [[advisories]] name = "FreeBSD-SA-16:28.bind" date = "2016-10-10" [[advisories]] name = "FreeBSD-SA-16:27.openssl" date = "2016-10-10" [[advisories]] name = "FreeBSD-SA-16:26.openssl" date = "2016-09-23" [[advisories]] name = "FreeBSD-SA-16:25.bspatch" date = "2016-07-25" [[advisories]] name = "FreeBSD-SA-16:24.ntp" date = "2016-06-04" [[advisories]] name = "FreeBSD-SA-16:23.libarchive" date = "2016-05-31" [[advisories]] name = "FreeBSD-SA-16:22.libarchive" date = "2016-05-31" [[advisories]] name = "FreeBSD-SA-16:21.43bsd" date = "2016-05-31" [[advisories]] name = "FreeBSD-SA-16:20.linux" date = "2016-05-31" [[advisories]] name = "FreeBSD-SA-16:19.sendmsg" date = "2016-05-17" [[advisories]] name = "FreeBSD-SA-16:18.atkbd" date = "2016-05-17" [[advisories]] name = "FreeBSD-SA-16:17.openssl" date = "2016-05-04" [[advisories]] name = "FreeBSD-SA-16:16.ntp" date = "2016-04-29" [[advisories]] name = "FreeBSD-SA-16:15.sysarch" date = "2016-03-16" [[advisories]] name = "FreeBSD-SA-16:14.openssh" date = "2016-03-16" [[advisories]] name = "FreeBSD-SA-16:13.bind" date = "2016-03-10" [[advisories]] name = "FreeBSD-SA-16:12.openssl" date = "2016-03-10" [[advisories]] name = "FreeBSD-SA-16:11.openssl" date = "2016-01-30" [[advisories]] name = "FreeBSD-SA-16:10.linux" date = "2016-01-27" [[advisories]] name = "FreeBSD-SA-16:09.ntp" date = "2016-01-27" [[advisories]] name = "FreeBSD-SA-16:08.bind" date = "2016-01-27" [[advisories]] name = "FreeBSD-SA-16:07.openssh" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-16:06.bsnmpd" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-16:05.tcp" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-16:04.linux" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-16:03.linux" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-16:02.ntp" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-16:01.sctp" date = "2016-01-14" [[advisories]] name = "FreeBSD-SA-15:27.bind" date = "2015-12-16" [[advisories]] name = "FreeBSD-SA-15:26.openssl" date = "2015-12-06" [[advisories]] name = "FreeBSD-SA-15:25.ntp" date = "2015-10-26" [[advisories]] name = "FreeBSD-SA-15:24.rpcbind" date = "2015-09-29" [[advisories]] name = "FreeBSD-SA-15:23.bind" date = "2015-09-02" [[advisories]] name = "FreeBSD-SA-15:22.openssh" date = "2015-08-25" [[advisories]] name = "FreeBSD-SA-15:21.amd64" date = "2015-08-25" [[advisories]] name = "FreeBSD-SA-15:20.expat" date = "2015-08-18" [[advisories]] name = "FreeBSD-SA-15:19.routed" date = "2015-08-05" [[advisories]] name = "FreeBSD-SA-15:18.bsdpatch" date = "2015-08-05" [[advisories]] name = "FreeBSD-SA-15:17.bind" date = "2015-07-28" [[advisories]] name = "FreeBSD-SA-15:16.openssh" date = "2015-07-28" [[advisories]] name = "FreeBSD-SA-15:15.tcp" date = "2015-07-28" [[advisories]] name = "FreeBSD-SA-15:14.bsdpatch" date = "2015-07-28" [[advisories]] name = "FreeBSD-SA-15:13.tcp" date = "2015-07-21" [[advisories]] name = "FreeBSD-SA-15:12.openssl" date = "2015-07-09" [[advisories]] name = "FreeBSD-SA-15:11.bind" date = "2015-07-07" [[advisories]] name = "FreeBSD-SA-15:10.openssl" date = "2015-06-12" [[advisories]] name = "FreeBSD-SA-15:09.ipv6" date = "2015-04-07" [[advisories]] name = "FreeBSD-SA-15:08.bsdinstall" date = "2015-04-07" [[advisories]] name = "FreeBSD-SA-15:07.ntp" date = "2015-04-07" [[advisories]] name = "FreeBSD-SA-15:06.openssl" date = "2015-03-19" [[advisories]] name = "FreeBSD-SA-15:05.bind" date = "2015-02-25" [[advisories]] name = "FreeBSD-SA-15:04.igmp" date = "2015-02-25" [[advisories]] name = "FreeBSD-SA-15:03.sctp" date = "2015-01-27" [[advisories]] name = "FreeBSD-SA-15:02.kmem" date = "2015-01-27" [[advisories]] name = "FreeBSD-SA-15:01.openssl" date = "2015-01-14" [[advisories]] name = "FreeBSD-SA-14:31.ntp" date = "2014-12-23" [[advisories]] name = "FreeBSD-SA-14:30.unbound" date = "2014-12-17" [[advisories]] name = "FreeBSD-SA-14:29.bind" date = "2014-12-10" [[advisories]] name = "FreeBSD-SA-14:28.file" date = "2014-12-10" [[advisories]] name = "FreeBSD-SA-14:27.stdio" date = "2014-12-10" [[advisories]] name = "FreeBSD-SA-14:26.ftp" date = "2014-11-04" [[advisories]] name = "FreeBSD-SA-14:25.setlogin" date = "2014-11-04" [[advisories]] name = "FreeBSD-SA-14:24.sshd" date = "2014-11-04" [[advisories]] name = "FreeBSD-SA-14:23.openssl" date = "2014-10-21" [[advisories]] name = "FreeBSD-SA-14:22.namei" date = "2014-10-21" [[advisories]] name = "FreeBSD-SA-14:21.routed" date = "2014-10-21" [[advisories]] name = "FreeBSD-SA-14:20.rtsold" date = "2014-10-21" [[advisories]] name = "FreeBSD-SA-14:19.tcp" date = "2014-09-16" [[advisories]] name = "FreeBSD-SA-14:18.openssl" date = "2014-09-09" [[advisories]] name = "FreeBSD-SA-14:17.kmem" date = "2014-07-08" [[advisories]] name = "FreeBSD-SA-14:16.file" date = "2014-06-24" [[advisories]] name = "FreeBSD-SA-14:15.iconv" date = "2014-06-24" [[advisories]] name = "FreeBSD-SA-14:14.openssl" date = "2014-06-05" [[advisories]] name = "FreeBSD-SA-14:13.pam" date = "2014-06-03" [[advisories]] name = "FreeBSD-SA-14:12.ktrace" date = "2014-06-03" [[advisories]] name = "FreeBSD-SA-14:11.sendmail" date = "2014-06-03" [[advisories]] name = "FreeBSD-SA-14:10.openssl" date = "2014-05-13" [[advisories]] name = "FreeBSD-SA-14:09.openssl" date = "2014-04-30" [[advisories]] name = "FreeBSD-SA-14:08.tcp" date = "2014-04-30" [[advisories]] name = "FreeBSD-SA-14:07.devfs" date = "2014-04-30" [[advisories]] name = "FreeBSD-SA-14:06.openssl" date = "2014-04-08" [[advisories]] name = "FreeBSD-SA-14:05.nfsserver" date = "2014-04-08" [[advisories]] name = "FreeBSD-SA-14:04.bind" date = "2014-01-14" [[advisories]] name = "FreeBSD-SA-14:03.openssl" date = "2014-01-14" [[advisories]] name = "FreeBSD-SA-14:02.ntpd" date = "2014-01-14" [[advisories]] name = "FreeBSD-SA-14:01.bsnmpd" date = "2014-01-14" [[advisories]] name = "FreeBSD-SA-13:14.openssh" date = "2013-11-19" [[advisories]] name = "FreeBSD-SA-13:13.nullfs" date = "2013-09-10" [[advisories]] name = "FreeBSD-SA-13:12.ifioctl" date = "2013-09-10" [[advisories]] name = "FreeBSD-SA-13:11.sendfile" date = "2013-09-10" [[advisories]] name = "FreeBSD-SA-13:10.sctp" date = "2013-08-22" [[advisories]] name = "FreeBSD-SA-13:09.ip_multicast" date = "2013-08-22" [[advisories]] name = "FreeBSD-SA-13:08.nfsserver" date = "2013-07-26" [[advisories]] name = "FreeBSD-SA-13:07.bind" date = "2013-07-26" [[advisories]] name = "FreeBSD-SA-13:06.mmap" date = "2013-06-18" [[advisories]] name = "FreeBSD-SA-13:05.nfsserver" date = "2013-04-29" [[advisories]] name = "FreeBSD-SA-13:04.bind" date = "2013-04-02" [[advisories]] name = "FreeBSD-SA-13:03.openssl" date = "2013-04-02" [[advisories]] name = "FreeBSD-SA-13:02.libc" date = "2013-02-19" [[advisories]] name = "FreeBSD-SA-13:01.bind" date = "2013-02-19" [[advisories]] name = "FreeBSD-SA-12:08.linux" date = "2012-11-22" [[advisories]] name = "FreeBSD-SA-12:07.hostapd" date = "2012-11-22" [[advisories]] name = "FreeBSD-SA-12:06.bind" date = "2012-11-22" [[advisories]] name = "FreeBSD-SA-12:05.bind" date = "2012-08-06" [[advisories]] name = "FreeBSD-SA-12:04.sysret" date = "2012-06-12" [[advisories]] name = "FreeBSD-SA-12:03.bind" date = "2012-06-12" [[advisories]] name = "FreeBSD-SA-12:02.crypt" date = "2012-05-30" [[advisories]] name = "FreeBSD-SA-12:01.openssl" date = "2012-05-30" [[advisories]] name = "FreeBSD-SA-11:10.pam" date = "2011-12-23" [[advisories]] name = "FreeBSD-SA-11:09.pam_ssh" date = "2011-12-23" [[advisories]] name = "FreeBSD-SA-11:08.telnetd" date = "2011-12-23" [[advisories]] name = "FreeBSD-SA-11:07.chroot" date = "2011-12-23" [[advisories]] name = "FreeBSD-SA-11:06.bind" date = "2011-12-23" [[advisories]] name = "FreeBSD-SA-11:05.unix" date = "2011-09-28" [[advisories]] name = "FreeBSD-SA-11:04.compress" date = "2011-09-28" [[advisories]] name = "FreeBSD-SA-11:03.bind" date = "2011-09-28" [[advisories]] name = "FreeBSD-SA-11:02.bind" date = "2011-05-28" [[advisories]] name = "FreeBSD-SA-11:01.mountd" date = "2011-04-20" [[advisories]] name = "FreeBSD-SA-10:10.openssl" date = "2010-11-29" [[advisories]] name = "FreeBSD-SA-10:09.pseudofs" date = "2010-11-10" [[advisories]] name = "FreeBSD-SA-10:08.bzip2" date = "2010-09-20" [[advisories]] name = "FreeBSD-SA-10:07.mbuf" date = "2010-07-13" [[advisories]] name = "FreeBSD-SA-10:06.nfsclient" date = "2010-05-27" [[advisories]] name = "FreeBSD-SA-10:05.opie" date = "2010-05-27" [[advisories]] name = "FreeBSD-SA-10:04.jail" date = "2010-05-27" [[advisories]] name = "FreeBSD-SA-10:03.zfs" date = "2010-01-06" [[advisories]] name = "FreeBSD-SA-10:02.ntpd" date = "2010-01-06" [[advisories]] name = "FreeBSD-SA-10:01.bind" date = "2010-01-06" [[advisories]] name = "FreeBSD-SA-09:17.freebsd-update" date = "2009-12-03" [[advisories]] name = "FreeBSD-SA-09:16.rtld" date = "2009-12-03" [[advisories]] name = "FreeBSD-SA-09:15.ssl" date = "2009-12-03" [[advisories]] name = "FreeBSD-SA-09:14.devfs" date = "2009-10-02" [[advisories]] name = "FreeBSD-SA-09:13.pipe" date = "2009-10-02" [[advisories]] name = "FreeBSD-SA-09:12.bind" date = "2009-07-29" [[advisories]] name = "FreeBSD-SA-09:11.ntpd" date = "2009-06-10" [[advisories]] name = "FreeBSD-SA-09:10.ipv6" date = "2009-06-10" [[advisories]] name = "FreeBSD-SA-09:09.pipe" date = "2009-06-10" [[advisories]] name = "FreeBSD-SA-09:08.openssl" date = "2009-04-22" [[advisories]] name = "FreeBSD-SA-09:07.libc" date = "2009-04-22" [[advisories]] name = "FreeBSD-SA-09:06.ktimer" date = "2009-03-23" [[advisories]] name = "FreeBSD-SA-09:05.telnetd" date = "2009-02-16" [[advisories]] name = "FreeBSD-SA-09:04.bind" date = "2009-01-13" [[advisories]] name = "FreeBSD-SA-09:03.ntpd" date = "2009-01-13" [[advisories]] name = "FreeBSD-SA-09:02.openssl" date = "2009-01-07" [[advisories]] name = "FreeBSD-SA-09:01.lukemftpd" date = "2009-01-07" [[advisories]] name = "FreeBSD-SA-08:13.protosw" date = "2008-12-23" [[advisories]] name = "FreeBSD-SA-08:12.ftpd" date = "2008-12-23" [[advisories]] name = "FreeBSD-SA-08:11.arc4random" date = "2008-11-24" [[advisories]] name = "FreeBSD-SA-08:10.nd6" date = "2008-10-02" [[advisories]] name = "FreeBSD-SA-08:09.icmp6" date = "2008-09-03" [[advisories]] name = "FreeBSD-SA-08:08.nmount" date = "2008-09-03" [[advisories]] name = "FreeBSD-SA-08:07.amd64" date = "2008-09-03" [[advisories]] name = "FreeBSD-SA-08:06.bind" date = "2008-07-13" [[advisories]] name = "FreeBSD-SA-08:05.openssh" date = "2008-04-17" [[advisories]] name = "FreeBSD-SA-08:04.ipsec" date = "2008-02-14" [[advisories]] name = "FreeBSD-SA-08:03.sendfile" date = "2008-02-14" [[advisories]] name = "FreeBSD-SA-08:02.libc" date = "2008-01-14" [[advisories]] name = "FreeBSD-SA-08:01.pty" date = "2008-01-14" [[advisories]] name = "FreeBSD-SA-07:10.gtar" date = "2007-11-29" [[advisories]] name = "FreeBSD-SA-07:09.random" date = "2007-11-29" [[advisories]] name = "FreeBSD-SA-07:08.openssl" date = "2007-10-03" [[advisories]] name = "FreeBSD-SA-07:07.bind" date = "2007-08-01" [[advisories]] name = "FreeBSD-SA-07:06.tcpdump" date = "2007-08-01" [[advisories]] name = "FreeBSD-SA-07:05.libarchive" date = "2007-07-12" [[advisories]] name = "FreeBSD-SA-07:04.file" date = "2007-05-23" [[advisories]] name = "FreeBSD-SA-07:03.ipv6" date = "2007-04-26" [[advisories]] name = "FreeBSD-SA-07:02.bind" date = "2007-02-09" [[advisories]] name = "FreeBSD-SA-07:01.jail" date = "2007-01-11" [[advisories]] name = "FreeBSD-SA-06:26.gtar" date = "2006-12-06" [[advisories]] name = "FreeBSD-SA-06:25.kmem" date = "2006-12-06" [[advisories]] name = "FreeBSD-SA-06:24.libarchive" date = "2006-11-08" [[advisories]] name = "FreeBSD-SA-06:22.openssh" date = "2006-09-30" [[advisories]] name = "FreeBSD-SA-06:23.openssl" date = "2006-09-28" [[advisories]] name = "FreeBSD-SA-06:21.gzip" date = "2006-09-19" [[advisories]] name = "FreeBSD-SA-06:20.bind" date = "2006-09-06" [[advisories]] name = "FreeBSD-SA-06:19.openssl" date = "2006-09-06" [[advisories]] name = "FreeBSD-SA-06:18.ppp" date = "2006-08-23" [[advisories]] name = "FreeBSD-SA-06:17.sendmail" date = "2006-06-14" [[advisories]] name = "FreeBSD-SA-06:16.smbfs" date = "2006-05-31" [[advisories]] name = "FreeBSD-SA-06:15.ypserv" date = "2006-05-31" [[advisories]] name = "FreeBSD-SA-06:14.fpu" date = "2006-04-19" [[advisories]] name = "FreeBSD-SA-06:13.sendmail" date = "2006-03-22" [[advisories]] name = "FreeBSD-SA-06:12.opie" date = "2006-03-22" [[advisories]] name = "FreeBSD-SA-06:11.ipsec" date = "2006-03-22" [[advisories]] name = "FreeBSD-SA-06:10.nfs" date = "2006-03-01" [[advisories]] name = "FreeBSD-SA-06:09.openssh" date = "2006-03-01" [[advisories]] name = "FreeBSD-SA-06:08.sack" date = "2006-02-01" [[advisories]] name = "FreeBSD-SA-06:07.pf" date = "2006-01-25" [[advisories]] name = "FreeBSD-SA-06:06.kmem" date = "2006-01-25" [[advisories]] name = "FreeBSD-SA-06:05.80211" date = "2006-01-18" [[advisories]] name = "FreeBSD-SA-06:04.ipfw" date = "2006-01-11" [[advisories]] name = "FreeBSD-SA-06:03.cpio" date = "2006-01-11" [[advisories]] name = "FreeBSD-SA-06:02.ee" date = "2006-01-11" [[advisories]] name = "FreeBSD-SA-06:01.texindex" date = "2006-01-11" [[advisories]] name = "FreeBSD-SA-05:21.openssl" date = "2005-10-11" [[advisories]] name = "FreeBSD-SA-05:20.cvsbug" date = "2005-09-07" [[advisories]] name = "FreeBSD-SA-05:19.ipsec" date = "2005-07-27" [[advisories]] name = "FreeBSD-SA-05:18.zlib" date = "2005-07-27" [[advisories]] name = "FreeBSD-SA-05:17.devfs" date = "2005-07-20" [[advisories]] name = "FreeBSD-SA-05:16.zlib" date = "2005-07-06" [[advisories]] name = "FreeBSD-SA-05:15.tcp" date = "2005-06-29" [[advisories]] name = "FreeBSD-SA-05:14.bzip2" date = "2005-06-29" [[advisories]] name = "FreeBSD-SA-05:13.ipfw" date = "2005-06-29" [[advisories]] name = "FreeBSD-SA-05:12.bind9" date = "2005-06-09" [[advisories]] name = "FreeBSD-SA-05:11.gzip" date = "2005-06-09" [[advisories]] name = "FreeBSD-SA-05:10.tcpdump" date = "2005-06-09" [[advisories]] name = "FreeBSD-SA-05:09.htt" date = "2005-05-13" [[advisories]] name = "FreeBSD-SA-05:08.kmem" date = "2005-05-06" [[advisories]] name = "FreeBSD-SA-05:07.ldt" date = "2005-05-06" [[advisories]] name = "FreeBSD-SA-05:06.iir" date = "2005-05-06" [[advisories]] name = "FreeBSD-SA-05:05.cvs" date = "2005-04-22" [[advisories]] name = "FreeBSD-SA-05:04.ifconf" date = "2005-04-15" [[advisories]] name = "FreeBSD-SA-05:03.amd64" date = "2005-04-06" [[advisories]] name = "FreeBSD-SA-05:02.sendfile" date = "2005-04-04" [[advisories]] name = "FreeBSD-SA-05:01.telnet" date = "2005-03-28" [[advisories]] name = "FreeBSD-SA-04:17.procfs" date = "2004-12-01" [[advisories]] name = "FreeBSD-SA-04:16.fetch" date = "2004-11-18" [[advisories]] name = "FreeBSD-SA-04:15.syscons" date = "2004-10-04" [[advisories]] name = "FreeBSD-SA-04:14.cvs" date = "2004-09-19" [[advisories]] name = "FreeBSD-SA-04:13.linux" date = "2004-06-30" [[advisories]] name = "FreeBSD-SA-04:12.jailroute" date = "2004-06-07" [[advisories]] name = "FreeBSD-SA-04:11.msync" date = "2004-05-19" [[advisories]] name = "FreeBSD-SA-04:10.cvs" date = "2004-05-19" [[advisories]] name = "FreeBSD-SA-04:09.kadmind" date = "2004-05-05" [[advisories]] name = "FreeBSD-SA-04:08.heimdal" date = "2004-05-05" [[advisories]] name = "FreeBSD-SA-04:07.cvs" date = "2004-04-15" [[advisories]] name = "FreeBSD-SA-04:06.ipv6" date = "2004-03-29" [[advisories]] name = "FreeBSD-SA-04:05.openssl" date = "2004-03-17" [[advisories]] name = "FreeBSD-SA-04:04.tcp" date = "2004-03-02" [[advisories]] name = "FreeBSD-SA-04:03.jail" date = "2004-02-25" [[advisories]] name = "FreeBSD-SA-04:02.shmat" date = "2004-02-05" [[advisories]] name = "FreeBSD-SA-04:01.mksnap_ffs" date = "2004-01-30" [[advisories]] name = "FreeBSD-SA-03:19.bind" date = "2003-11-28" [[advisories]] name = "FreeBSD-SA-03:15.openssh" date = "2003-10-05" [[advisories]] name = "FreeBSD-SA-03:18.openssl" date = "2003-10-03" [[advisories]] name = "FreeBSD-SA-03:17.procfs" date = "2003-10-03" [[advisories]] name = "FreeBSD-SA-03:16.filedesc" date = "2003-10-02" [[advisories]] name = "FreeBSD-SA-03:14.arp" date = "2003-09-23" [[advisories]] name = "FreeBSD-SA-03:13.sendmail" date = "2003-09-17" [[advisories]] name = "FreeBSD-SA-03:12.openssh" date = "2003-09-16" [[advisories]] name = "FreeBSD-SA-03:11.sendmail" date = "2003-08-26" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1170" [[advisories]] name = "FreeBSD-SA-03:10.ibcs2" date = "2003-08-10" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1164" [[advisories]] name = "FreeBSD-SA-03:09.signal" date = "2003-08-10" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1163" [[advisories]] name = "FreeBSD-SA-03:08.realpath" date = "2003-08-03" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1158" [[advisories]] name = "FreeBSD-SN-03:02" date = "2003-04-08" [[advisories]] name = "FreeBSD-SN-03:01" date = "2003-04-07" [[advisories]] name = "FreeBSD-SA-03:07.sendmail" date = "2003-03-30" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1122" [[advisories]] name = "FreeBSD-SA-03:06.openssl" date = "2003-03-21" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1118" [[advisories]] name = "FreeBSD-SA-03:05.xdr" date = "2003-03-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1117" [[advisories]] name = "FreeBSD-SA-03:04.sendmail" date = "2003-03-03" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1112" [[advisories]] name = "FreeBSD-SA-03:03.syncookies" date = "2003-02-24" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1106" [[advisories]] name = "FreeBSD-SA-03:02.openssl" date = "2003-02-24" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1105" [[advisories]] name = "FreeBSD-SA-03:01.cvs" date = "2003-02-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1100" [[advisories]] name = "FreeBSD-SA-02:44.filedesc" date = "2003-01-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1090" [[advisories]] name = "FreeBSD-SA-02:43.bind" date = "2002-11-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1084" [[advisories]] name = "FreeBSD-SA-02:41.smrsh" date = "2002-11-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1082" [[advisories]] name = "FreeBSD-SA-02:42.resolv" date = "2002-11-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1083" [[advisories]] name = "FreeBSD-SA-02:40.kadmind" date = "2002-11-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1081" [[advisories]] name = "FreeBSD-SN-02:06" date = "2002-10-10" [[advisories]] name = "FreeBSD-SA-02:39.libkvm" date = "2002-09-16" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1051" [[advisories]] name = "FreeBSD-SN-02:05" date = "2002-08-28" [[advisories]] name = "FreeBSD-SA-02:38.signed-error" date = "2002-08-19" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1041" [[advisories]] name = "FreeBSD-SA-02:37.kqueue" date = "2002-08-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1033" [[advisories]] name = "FreeBSD-SA-02:36.nfs" date = "2002-08-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1032" [[advisories]] name = "FreeBSD-SA-02:35.ffs" date = "2002-08-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1031" [[advisories]] name = "FreeBSD-SA-02:33.openssl" date = "2002-08-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1023" [[advisories]] name = "FreeBSD-SA-02:34.rpc" date = "2002-08-01" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1024" [[advisories]] name = "FreeBSD-SA-02:32.pppd" date = "2002-07-31" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1022" [[advisories]] name = "FreeBSD-SA-02:31.openssh" date = "2002-07-15" [[advisories]] name = "FreeBSD-SA-02:30.ktrace" date = "2002-07-12" [[advisories]] name = "FreeBSD-SA-02:29.tcpdump" date = "2002-07-12" [[advisories]] name = "FreeBSD-SA-02:28.resolv" date = "2002-06-26" [[advisories]] name = "FreeBSD-SN-02:04" date = "2002-06-19" [[advisories]] name = "FreeBSD-SA-02:27.rc" date = "2002-05-29" [[advisories]] name = "FreeBSD-SA-02:26.accept" date = "2002-05-29" [[advisories]] name = "FreeBSD-SN-02:03" date = "2002-05-28" [[advisories]] name = "FreeBSD-SA-02:25.bzip2" date = "2002-05-20" [[advisories]] name = "FreeBSD-SA-02:24.k5su" date = "2002-05-20" [[advisories]] name = "FreeBSD-SN-02:02" date = "2002-05-13" [[advisories]] name = "FreeBSD-SA-02:23.stdio" date = "2002-04-22" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/1021" [[advisories]] name = "FreeBSD-SA-02:22.mmap" date = "2002-04-18" [[advisories]] name = "FreeBSD-SA-02:21.tcpip" date = "2002-04-17" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/980" [[advisories]] name = "FreeBSD-SA-02:20.syncache" date = "2002-04-16" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/979" [[advisories]] name = "FreeBSD-SN-02:01" date = "2002-03-30" [[advisories]] name = "FreeBSD-SA-02:19.squid" date = "2002-03-26" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/960" [[advisories]] name = "FreeBSD-SA-02:18.zlib" date = "2002-03-18" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/978" [[advisories]] name = "FreeBSD-SA-02:17.mod_frontpage" date = "2002-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/954" [[advisories]] name = "FreeBSD-SA-02:16.netscape" date = "2002-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/953" [[advisories]] name = "FreeBSD-SA-02:15.cyrus-sasl" date = "2002-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/952" [[advisories]] name = "FreeBSD-SA-02:14.pam-pgsql" date = "2002-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/951" [[advisories]] name = "FreeBSD-SA-02:13.openssh" date = "2002-03-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/945" [[advisories]] name = "FreeBSD-SA-02:12.squid" date = "2002-02-21" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/938" [[advisories]] name = "FreeBSD-SA-02:11.snmp" date = "2002-02-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/936" [[advisories]] name = "FreeBSD-SA-02:10.rsync" date = "2002-02-06" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/928" [[advisories]] name = "FreeBSD-SA-02:09.fstatfs" date = "2002-02-06" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/927" [[advisories]] name = "FreeBSD-SA-02:08.exec" date = "2002-01-24" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/923" [[advisories]] name = "FreeBSD-SA-02:07.k5su" date = "2002-01-18" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/912" [[advisories]] name = "FreeBSD-SA-02:06.sudo" date = "2002-01-16" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/909" [[advisories]] name = "FreeBSD-SA-02:05.pine" date = "2002-01-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/894" [[advisories]] name = "FreeBSD-SA-02:04.mutt" date = "2002-01-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/893" [[advisories]] name = "FreeBSD-SA-02:03.mod_auth_pgsql" date = "2002-01-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/892" [[advisories]] name = "FreeBSD-SA-02:02.pw" date = "2002-01-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/891" [[advisories]] name = "FreeBSD-SA-02:01.pkg_add" date = "2002-01-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/898" [[advisories]] name = "FreeBSD-SA-01:64.wu-ftpd" date = "2001-12-04" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/870" [[advisories]] name = "FreeBSD-SA-01:63.openssh" date = "2001-12-02" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/871" [[advisories]] name = "FreeBSD-SA-01:62.uucp" date = "2001-10-08" [[advisories]] name = "FreeBSD-SA-01:61.squid" date = "2001-10-08" [[advisories]] name = "FreeBSD-SA-01:60.procmail" date = "2001-09-24" [[advisories]] name = "FreeBSD-SA-01:59.rmuser" date = "2001-09-04" [[advisories]] name = "FreeBSD-SA-01:58.lpd" date = "2001-08-30" [[advisories]] name = "FreeBSD-SA-01:57.sendmail" date = "2001-08-27" [[advisories]] name = "FreeBSD-SA-01:56.tcp_wrappers" date = "2001-08-23" [[advisories]] name = "FreeBSD-SA-01:55.procfs" date = "2001-08-21" [[advisories]] name = "FreeBSD-SA-01:54.ports-telnetd" date = "2001-08-20" [[advisories]] name = "FreeBSD-SA-01:53.ipfw" date = "2001-08-17" [[advisories]] name = "FreeBSD-SA-01:52.fragment" date = "2001-08-06" [[advisories]] name = "FreeBSD-SA-01:51.openssl" date = "2001-07-30" [[advisories]] name = "FreeBSD-SA-01:50.windowmaker" date = "2001-07-27" [[advisories]] name = "FreeBSD-SA-01:49.telnetd" date = "2001-07-23" [[advisories]] name = "FreeBSD-SA-01:48.tcpdump" date = "2001-07-17" [[advisories]] name = "FreeBSD-SA-01:47.xinetd" date = "2001-07-10" [[advisories]] name = "FreeBSD-SA-01:46.w3m" date = "2001-07-10" [[advisories]] name = "FreeBSD-SA-01:45.samba" date = "2001-07-10" [[advisories]] name = "FreeBSD-SA-01:44.gnupg" date = "2001-07-10" [[advisories]] name = "FreeBSD-SA-01:43.fetchmail" date = "2001-07-10" [[advisories]] name = "FreeBSD-SA-01:42.signal" date = "2001-07-10" [[advisories]] name = "FreeBSD-SA-01:41.hanterm" date = "2001-07-09" [[advisories]] name = "FreeBSD-SA-01:40.fts" date = "2001-06-04" [[advisories]] name = "FreeBSD-SA-01:39.tcp-isn" date = "2001-05-02" [[advisories]] name = "FreeBSD-SA-01:38.sudo" date = "2001-04-23" [[advisories]] name = "FreeBSD-SA-01:37.slrn" date = "2001-04-23" [[advisories]] name = "FreeBSD-SA-01:36.samba" date = "2001-04-23" [[advisories]] name = "FreeBSD-SA-01:35.licq" date = "2001-04-23" [[advisories]] name = "FreeBSD-SA-01:34.hylafax" date = "2001-04-23" [[advisories]] name = "FreeBSD-SA-01:33.ftpd-glob" date = "2001-04-17" [[advisories]] name = "FreeBSD-SA-01:32.ipfilter" date = "2001-04-16" [[advisories]] name = "FreeBSD-SA-01:31.ntpd" date = "2001-04-06" [[advisories]] name = "FreeBSD-SA-01:30.ufs-ext2fs" date = "2001-03-22" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/738" [[advisories]] name = "FreeBSD-SA-01:29.rwhod" date = "2001-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/732" [[advisories]] name = "FreeBSD-SA-01:28.timed" date = "2001-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/731" [[advisories]] name = "FreeBSD-SA-01:27.cfengine" date = "2001-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/730" [[advisories]] name = "FreeBSD-SA-01:26.interbase" date = "2001-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/729" [[advisories]] name = "FreeBSD-SA-01:23.icecast" date = "2001-03-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/728" [[advisories]] name = "FreeBSD-SA-01:25.kerberosIV" date = "2001-02-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/716" [[advisories]] name = "FreeBSD-SA-01:24.ssh" date = "2001-02-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/715" [[advisories]] name = "FreeBSD-SA-01:22.dc20ctrl" date = "2001-02-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/714" [[advisories]] name = "FreeBSD-SA-01:21.ja-elvis" date = "2001-02-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/713" [[advisories]] name = "FreeBSD-SA-01:20.mars_nwe" date = "2001-02-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/712" [[advisories]] name = "FreeBSD-SA-01:19.ja-klock" date = "2001-02-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/707" [[advisories]] name = "FreeBSD-SA-01:18.bind" date = "2001-01-31" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/706" [[advisories]] name = "FreeBSD-SA-01:17.exmh" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/705" [[advisories]] name = "FreeBSD-SA-01:16.mysql" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/704" [[advisories]] name = "FreeBSD-SA-01:15.tinyproxy" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/703" [[advisories]] name = "FreeBSD-SA-01:14.micq" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/702" [[advisories]] name = "FreeBSD-SA-01:13.sort" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/701" [[advisories]] name = "FreeBSD-SA-01:12.periodic" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/700" [[advisories]] name = "FreeBSD-SA-01:11.inetd" date = "2001-01-29" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/699" [[advisories]] name = "FreeBSD-SA-01:10.bind" date = "2001-01-23" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/698" [[advisories]] name = "FreeBSD-SA-01:09.crontab" date = "2001-01-23" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/697" [[advisories]] name = "FreeBSD-SA-01:08.ipfw" date = "2001-01-23" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/696" [[advisories]] name = "FreeBSD-SA-01:07.xfree86" date = "2001-01-23" [[advisories]] name = "FreeBSD-SA-01:06.zope" date = "2001-01-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/669" [[advisories]] name = "FreeBSD-SA-01:05.stunnel" date = "2001-01-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/668" [[advisories]] name = "FreeBSD-SA-01:04.joe" date = "2001-01-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/667" [[advisories]] name = "FreeBSD-SA-01:03.bash1" date = "2001-01-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/666" [[advisories]] name = "FreeBSD-SA-01:02.syslog-ng" date = "2001-01-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/665" [[advisories]] name = "FreeBSD-SA-01:01.openssh" date = "2001-01-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/664" [[advisories]] name = "FreeBSD-SA-00:81.ethereal" date = "2000-12-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/651" [[advisories]] name = "FreeBSD-SA-00:80.halflifeserver" date = "2000-12-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/650" [[advisories]] name = "FreeBSD-SA-00:79.oops" date = "2000-12-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/649" [[advisories]] name = "FreeBSD-SA-00:78.bitchx" date = "2000-12-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/648" [[advisories]] name = "FreeBSD-SA-00:77.procfs" date = "2000-12-18" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/647" [[advisories]] name = "FreeBSD-SA-00:76.tcsh-csh" date = "2000-11-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/628" [[advisories]] name = "FreeBSD-SA-00:75.php" date = "2000-11-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/627" [[advisories]] name = "FreeBSD-SA-00:74.gaim" date = "2000-11-20" [[advisories]] name = "FreeBSD-SA-00:73.thttpd" date = "2000-11-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/626" [[advisories]] name = "FreeBSD-SA-00:72.curl" date = "2000-11-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/625" [[advisories]] name = "FreeBSD-SA-00:71.mgetty" date = "2000-11-20" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/624" [[advisories]] name = "FreeBSD-SA-00:70.ppp-nat" date = "2000-11-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/623" [[advisories]] name = "FreeBSD-SA-00:69.telnetd" date = "2000-11-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/622" [[advisories]] name = "FreeBSD-SA-00:68.ncurses" date = "2000-11-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/621" [[advisories]] name = "FreeBSD-SA-00:67.gnupg" date = "2000-11-10" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/620" [[advisories]] name = "FreeBSD-SA-00:66.netscape" date = "2000-11-06" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/619" [[advisories]] name = "FreeBSD-SA-00:65.xfce" date = "2000-11-06" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/618" [[advisories]] name = "FreeBSD-SA-00:64.global" date = "2000-11-06" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/617" [[advisories]] name = "FreeBSD-SA-00:63.getnameinfo" date = "2000-11-01" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/589" [[advisories]] name = "FreeBSD-SA-00:62.top" date = "2000-11-01" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/616" [[advisories]] name = "FreeBSD-SA-00:61.tcpdump" date = "2000-10-31" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/615" [[advisories]] name = "FreeBSD-SA-00:60.boa" date = "2000-10-30" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/586" [[advisories]] name = "FreeBSD-SA-00:59.pine" date = "2000-10-30" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/585" [[advisories]] name = "FreeBSD-SA-00:58.chpass" date = "2000-10-30" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/584" [[advisories]] name = "FreeBSD-SA-00:57.muh" date = "2000-10-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/570" [[advisories]] name = "FreeBSD-SA-00:56.lprng" date = "2000-10-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/569" [[advisories]] name = "FreeBSD-SA-00:55.xpdf" date = "2000-10-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/568" [[advisories]] name = "FreeBSD-SA-00:54.fingerd" date = "2000-10-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/567" [[advisories]] name = "FreeBSD-SA-00:52.tcp-iss" date = "2000-10-06" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/561" [[advisories]] name = "FreeBSD-SA-00:53.catopen" date = "2000-09-27" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/562" [[advisories]] name = "FreeBSD-SA-00:51.mailman" date = "2000-09-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/550" [[advisories]] name = "FreeBSD-SA-00:50.listmanager" date = "2000-09-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/549" [[advisories]] name = "FreeBSD-SA-00:49.eject" date = "2000-09-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/548" [[advisories]] name = "FreeBSD-SA-00:48.xchat" date = "2000-09-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/547" [[advisories]] name = "FreeBSD-SA-00:47.pine" date = "2000-09-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/546" [[advisories]] name = "FreeBSD-SA-00:46.screen" date = "2000-09-13" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/545" [[advisories]] name = "FreeBSD-SA-00:45.esound" date = "2000-08-31" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/526" [[advisories]] name = "FreeBSD-SA-00:44.xlock" date = "2000-08-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/523" [[advisories]] name = "FreeBSD-SA-00:43.brouted" date = "2000-08-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/520" [[advisories]] name = "FreeBSD-SA-00:42.linux" date = "2000-08-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/530" [[advisories]] name = "FreeBSD-SA-00:41.elf" date = "2000-08-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/527" [[advisories]] name = "FreeBSD-SA-00:40.mopd" date = "2000-08-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/521" [[advisories]] name = "FreeBSD-SA-00:39.netscape" date = "2000-08-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/528" [[advisories]] name = "FreeBSD-SA-00:38.zope" date = "2000-08-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/525" [[advisories]] name = "FreeBSD-SA-00:37.cvsweb" date = "2000-08-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/524" [[advisories]] name = "FreeBSD-SA-00:36.ntop" date = "2000-08-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/531" [[advisories]] name = "FreeBSD-SA-00:35.proftpd" date = "2000-08-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/522" [[advisories]] name = "FreeBSD-SA-00:34.dhclient" date = "2000-08-14" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/529" [[advisories]] name = "FreeBSD-SA-00:33.kerberosIV" date = "2000-07-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/488" [[advisories]] name = "FreeBSD-SA-00:32.bitchx" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/487" [[advisories]] name = "FreeBSD-SA-00:31.canna" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/486" [[advisories]] name = "FreeBSD-SA-00:30.openssh" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/485" [[advisories]] name = "FreeBSD-SA-00:29.wu-ftpd" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/489" [[advisories]] name = "FreeBSD-SA-00:28.majordomo" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/484" [[advisories]] name = "FreeBSD-SA-00:27.XFree86-4" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/483" [[advisories]] name = "FreeBSD-SA-00:26.popper" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/482" [[advisories]] name = "FreeBSD-SA-00:24.libedit" date = "2000-07-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/481" [[advisories]] name = "FreeBSD-SA-00:23.ip-options" date = "2000-06-19" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/480" [[advisories]] name = "FreeBSD-SA-00:25.alpha-random" date = "2000-06-12" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/473" [[advisories]] name = "FreeBSD-SA-00:22.apsfilter" date = "2000-06-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/461" [[advisories]] name = "FreeBSD-SA-00:21.ssh" date = "2000-06-07" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/459" [[advisories]] name = "FreeBSD-SA-00:20.krb5" date = "2000-05-26" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/452" [[advisories]] name = "FreeBSD-SA-00:19.semconfig" date = "2000-05-23" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/451" [[advisories]] name = "FreeBSD-SA-00:18.gnapster.knapster" date = "2000-05-09" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/429" [[advisories]] name = "FreeBSD-SA-00:17.libmytinfo" date = "2000-05-09" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/442" [[advisories]] name = "FreeBSD-SA-00:16.golddig" date = "2000-05-09" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/439" [[advisories]] name = "FreeBSD-SA-00:15.imap-uw" date = "2000-04-24" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/438" [[advisories]] name = "FreeBSD-SA-00:14.imap-uw" date = "2000-04-24" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/441" [[advisories]] name = "FreeBSD-SA-00:13.generic-nqs" date = "2000-04-19" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/437" [[advisories]] name = "FreeBSD-SA-00:12.healthd" date = "2000-04-10" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/436" [[advisories]] name = "FreeBSD-SA-00:11.ircii" date = "2000-04-10" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/440" [[advisories]] name = "FreeBSD-SA-00:10.orville-write" date = "2000-03-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/408" [[advisories]] name = "FreeBSD-SA-00:09.mtr" date = "2000-03-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/408" [[advisories]] name = "FreeBSD-SA-00:08.lynx" date = "2000-03-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/407" [[advisories]] name = "FreeBSD-SA-00:07.mh" date = "2000-03-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/411" [[advisories]] name = "FreeBSD-SA-00:06.htdig" date = "2000-03-01" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/403" [[advisories]] name = "FreeBSD-SA-00:05.mysql" date = "2000-02-28" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/402" [[advisories]] name = "FreeBSD-SA-00:04.delegate" date = "2000-02-19" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/392" [[advisories]] name = "FreeBSD-SA-00:03.asmon" date = "2000-02-19" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/391" [[advisories]] name = "FreeBSD-SA-00:02.procfs" date = "2000-01-24" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/380" [[advisories]] name = "FreeBSD-SA-00:01.make" date = "2000-01-19" [[advisories]] name = "FreeBSD-SA-99:06.amd" date = "1999-09-16" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/318" [[advisories]] name = "FreeBSD-SA-99:05.fts" date = "1999-09-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/313" [[advisories]] name = "FreeBSD-SA-99:04.core" date = "1999-09-15" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/312" [[advisories]] name = "FreeBSD-SA-99:03.ftpd" date = "1999-09-05" link = "http://home.jp.freebsd.org/cgi-bin/showmail/announce-jp/311" [[advisories]] name = "FreeBSD-SA-99:02.profil" date = "1999-09-04" [[advisories]] name = "FreeBSD-SA-99:01.chflags" date = "1999-09-04" [[advisories]] name = "FreeBSD-SA-98:08.fragment" date = "1998-11-04" [[advisories]] name = "FreeBSD-SA-98:07.rst" date = "1998-10-13" [[advisories]] name = "FreeBSD-SA-98:06.icmp" date = "1998-06-10" [[advisories]] name = "FreeBSD-SA-98:05.nfs" date = "1998-06-04" [[advisories]] name = "FreeBSD-SA-98:04.mmap" date = "1998-06-02" [[advisories]] name = "FreeBSD-SA-98:03.ttcp" date = "1998-05-14" [[advisories]] name = "FreeBSD-SA-98:02.mmap" date = "1998-03-12" [[advisories]] name = "FreeBSD-SA-97:06.f00f" date = "1997-12-09" [[advisories]] name = "FreeBSD-SA-98:01.land" date = "1997-12-01" [[advisories]] name = "FreeBSD-SA-97:05.open" date = "1997-10-29" [[advisories]] name = "FreeBSD-SA-97:04.procfs" date = "1997-08-19" [[advisories]] name = "FreeBSD-SA-97:03.sysinstall" date = "1997-04-07" [[advisories]] name = "FreeBSD-SA-97:02.lpd" date = "1997-03-26" [[advisories]] name = "FreeBSD-SA-97:01.setlocale" date = "1997-02-05" [[advisories]] name = "FreeBSD-SA-96:21.talkd" date = "1997-01-18" [[advisories]] name = "FreeBSD-SA-96:20.stack-overflow" date = "1996-12-16" [[advisories]] name = "FreeBSD-SA-96:19.modstat" date = "1996-12-10" [[advisories]] name = "FreeBSD-SA-96:18.lpr" date = "1996-11-25" [[advisories]] name = "FreeBSD-SA-96:17.rzsz" date = "1996-07-16" [[advisories]] name = "FreeBSD-SA-96:16.rdist" date = "1996-07-12" [[advisories]] name = "FreeBSD-SA-96:15.ppp" date = "1996-07-04" [[advisories]] name = "FreeBSD-SA-96:12.perl" date = "1996-06-28" [[advisories]] name = "FreeBSD-SA-96:14.ipfw" date = "1996-06-24" [[advisories]] name = "FreeBSD-SA-96:13.comsat" date = "1996-06-05" [[advisories]] name = "FreeBSD-SA-96:11.man" date = "1996-05-21" [[advisories]] name = "FreeBSD-SA-96:10.mount_union" date = "1996-05-17" [[advisories]] name = "FreeBSD-SA-96:09.vfsload" date = "1996-05-17" [[advisories]] name = "FreeBSD-SA-96:02.apache" date = "1996-04-22" [[advisories]] name = "FreeBSD-SA-96:08.syslog" date = "1996-04-21" [[advisories]] name = "FreeBSD-SA-96:01.sliplogin" date = "1996-04-21" [[advisories]] name = "FreeBSD-SA-96:03.sendmail-suggestion" date = "1996-04-20" diff --git a/website/data/security/errata.toml b/website/data/security/errata.toml index fc4760d668..d26f0bf3f2 100644 --- a/website/data/security/errata.toml +++ b/website/data/security/errata.toml @@ -1,987 +1,999 @@ # Sort errata notices by year, month and day # $FreeBSD$ +[[notices]] +name = "FreeBSD-EN-25:03.tzdata" +date = "2025-01-29" + +[[notices]] +name = "FreeBSD-EN-25:02.audit" +date = "2025-01-29" + +[[notices]] +name = "FreeBSD-EN-25:01.rpc" +date = "2025-01-29" + [[notices]] name = "FreeBSD-EN-24:17.pam_xdg" date = "2024-10-29" [[notices]] name = "FreeBSD-EN-24:16.pf" date = "2024-09-19" [[notices]] name = "FreeBSD-EN-24:15.calendar" date = "2024-09-04" [[notices]] name = "FreeBSD-EN-24:14.ifconfig" date = "2024-08-07" [[notices]] name = "FreeBSD-EN-24:13.libc++" date = "2024-06-19" [[notices]] name = "FreeBSD-EN-24:12.killpg" date = "2024-06-19" [[notices]] name = "FreeBSD-EN-24:11.ldns" date = "2024-06-19" [[notices]] name = "FreeBSD-EN-24:10.zfs" date = "2024-06-19" [[notices]] name = "FreeBSD-EN-24:09.zfs" date = "2024-04-24" [[notices]] name = "FreeBSD-EN-24:08.kerberos" date = "2024-03-28" [[notices]] name = "FreeBSD-EN-24:07.clang" date = "2024-03-28" [[notices]] name = "FreeBSD-EN-24:06.wireguard" date = "2024-03-28" [[notices]] name = "FreeBSD-EN-24:05.tty" date = "2024-03-28" [[notices]] name = "FreeBSD-EN-24:04.ip" date = "2024-02-14" [[notices]] name = "FreeBSD-EN-24:03.kqueue" date = "2024-02-14" [[notices]] name = "FreeBSD-EN-24:02.libutil" date = "2024-02-14" [[notices]] name = "FreeBSD-EN-24:01.tzdata" date = "2024-02-14" [[notices]] name = "FreeBSD-EN-23:22.vfs" date = "2023-12-05" [[notices]] name = "FreeBSD-EN-23:21.tty" date = "2023-12-05" [[notices]] name = "FreeBSD-EN-23:20.vm" date = "2023-12-05" [[notices]] name = "FreeBSD-EN-23:19.pkgbase" date = "2023-12-05" [[notices]] name = "FreeBSD-EN-23:18.openzfs" date = "2023-12-05" [[notices]] name = "FreeBSD-EN-23:17.ossl" date = "2023-12-05" [[notices]] name = "FreeBSD-EN-23:16.openzfs" date = "2023-12-01" [[notices]] name = "FreeBSD-EN-23:15.sanitizer" date = "2023-12-01" [[notices]] name = "FreeBSD-EN-23:14.regcomp" date = "2023-11-08" [[notices]] name = "FreeBSD-EN-23:13.freebsd-update" date = "2023-11-08" [[notices]] name = "FreeBSD-EN-23:12.freebsd-update" date = "2023-10-03" [[notices]] name = "FreeBSD-EN-23:11.caroot" date = "2023-09-06" [[notices]] name = "FreeBSD-EN-23:10.pci" date = "2023-09-06" [[notices]] name = "FreeBSD-EN-23:09.freebsd-update" date = "2023-09-06" [[notices]] name = "FreeBSD-EN-23:08.vnet" date = "2023-08-01" [[notices]] name = "FreeBSD-EN-23:07.mpr" date = "2023-06-21" [[notices]] name = "FreeBSD-EN-23:06.loader" date = "2023-06-21" [[notices]] name = "FreeBSD-EN-23:05.tzdata" date = "2023-06-21" [[notices]] name = "FreeBSD-EN-23:04.ixgbe" date = "2023-02-08" [[notices]] name = "FreeBSD-EN-23:03.ena" date = "2023-02-08" [[notices]] name = "FreeBSD-EN-23:02.sdhci" date = "2023-02-08" [[notices]] name = "FreeBSD-EN-23:01.tzdata" date = "2023-02-08" [[notices]] name = "FreeBSD-EN-22:28.heimdal" date = "2022-11-29" [[notices]] name = "FreeBSD-EN-22:27.loader" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:26.cam" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:25.tcp" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:24.zfs" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:23.vm" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:22.tzdata" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:21.zfs" date = "2022-11-01" [[notices]] name = "FreeBSD-EN-22:20.tzdata" date = "2022-08-30" [[notices]] name = "FreeBSD-EN-22:19.pam_exec" date = "2022-08-09" [[notices]] name = "FreeBSD-EN-22:18.wifi" date = "2022-08-09" [[notices]] name = "FreeBSD-EN-22:17.cam" date = "2022-08-09" [[notices]] name = "FreeBSD-EN-22:16.kqueue" date = "2022-08-09" [[notices]] name = "FreeBSD-EN-22:15.pf" date = "2022-04-06" [[notices]] name = "FreeBSD-EN-22:14.tzdata" date = "2022-03-22" [[notices]] name = "FreeBSD-EN-22:13.zfs" date = "2022-03-21" [[notices]] name = "FreeBSD-EN-22:12.zfs" date = "2022-03-15" [[notices]] name = "FreeBSD-EN-22:11.zfs" date = "2022-03-15" [[notices]] name = "FreeBSD-EN-22:10.zfs" date = "2022-03-15" [[notices]] name = "FreeBSD-EN-22:09.freebsd-update" date = "2022-03-15" [[notices]] name = "FreeBSD-EN-22:08.i386" date = "2022-02-01" [[notices]] name = "FreeBSD-EN-22:07.la57" date = "2022-02-01" [[notices]] name = "FreeBSD-EN-22:06.libalias" date = "2022-01-11" [[notices]] name = "FreeBSD-EN-22:05.tail" date = "2022-01-11" [[notices]] name = "FreeBSD-EN-22:04.pcid" date = "2022-01-11" [[notices]] name = "FreeBSD-EN-22:03.hyperv" date = "2022-01-11" [[notices]] name = "FreeBSD-EN-22:02.xsave" date = "2022-01-11" [[notices]] name = "FreeBSD-EN-22:01.fsck_ffs" date = "2022-01-11" [[notices]] name = "FreeBSD-EN-21:29.tzdata" date = "2021-11-03" [[notices]] name = "FreeBSD-EN-21:28.vmci" date = "2021-11-03" [[notices]] name = "FreeBSD-EN-21:27.caroot" date = "2021-11-03" [[notices]] name = "FreeBSD-EN-21:26.libevent" date = "2021-11-03" [[notices]] name = "FreeBSD-EN-21:25.bhyve" date = "2021-08-24" [[notices]] name = "FreeBSD-EN-21:24.libcrypto" date = "2021-08-24" [[notices]] name = "FreeBSD-EN-21:23.virtio_blk" date = "2021-08-24" [[notices]] name = "FreeBSD-EN-21:22.linux_futex" date = "2021-06-29" [[notices]] name = "FreeBSD-EN-21:21.ipfw" date = "2021-06-29" [[notices]] name = "FreeBSD-EN-21:20.vlan" date = "2021-06-29" [[notices]] name = "FreeBSD-EN-21:19.libcasper" date = "2021-06-29" [[notices]] name = "FreeBSD-EN-21:18.libc++" date = "2021-06-29" [[notices]] name = "FreeBSD-EN-21:17.libradius" date = "2021-06-01" [[notices]] name = "FreeBSD-EN-21:16.bc" date = "2021-05-26" [[notices]] name = "FreeBSD-EN-21:15.virtio" date = "2021-05-26" [[notices]] name = "FreeBSD-EN-21:14.pms" date = "2021-05-26" [[notices]] name = "FreeBSD-EN-21:13.mpt" date = "2021-05-26" [[notices]] name = "FreeBSD-EN-21:12.divert" date = "2021-05-26" [[notices]] name = "FreeBSD-EN-21:11.aesni" date = "2021-05-26" [[notices]] name = "FreeBSD-EN-21:10.lldb" date = "2021-04-06" [[notices]] name = "FreeBSD-EN-21:09.pf" date = "2021-04-06" [[notices]] name = "FreeBSD-EN-21:08.freebsd-update" date = "2021-02-24" [[notices]] name = "FreeBSD-EN-21:07.caroot" date = "2021-02-24" [[notices]] name = "FreeBSD-EN-21:06.microcode" date = "2021-02-24" [[notices]] name = "FreeBSD-EN-21:05.libatomic" date = "2021-01-29" [[notices]] name = "FreeBSD-EN-21:04.zfs" date = "2021-01-29" [[notices]] name = "FreeBSD-EN-21:03.vnet" date = "2021-01-29" [[notices]] name = "FreeBSD-EN-21:02.extattr" date = "2021-01-29" [[notices]] name = "FreeBSD-EN-21:01.tzdata" date = "2021-01-29" [[notices]] name = "FreeBSD-EN-20:22.callout" date = "2020-12-01" [[notices]] name = "FreeBSD-EN-20:21.ipfw" date = "2020-12-01" [[notices]] name = "FreeBSD-EN-20:20.tzdata" date = "2020-12-01" [[notices]] name = "FreeBSD-EN-20:19.audit" date = "2020-12-01" [[notices]] name = "FreeBSD-EN-20:18.getfsstat" date = "2020-09-02" [[notices]] name = "FreeBSD-EN-20:17.linuxthread" date = "2020-09-02" [[notices]] name = "FreeBSD-EN-20:16.vmx" date = "2020-08-05" [[notices]] name = "FreeBSD-EN-20:15.mps" date = "2020-07-08" [[notices]] name = "FreeBSD-EN-20:14.linuxkpi" date = "2020-07-08" [[notices]] name = "FreeBSD-EN-20:13.bhyve" date = "2020-07-08" [[notices]] name = "FreeBSD-EN-20:12.iflib" date = "2020-06-09" [[notices]] name = "FreeBSD-EN-20:11.ena" date = "2020-06-09" [[notices]] name = "FreeBSD-EN-20:10.build" date = "2020-05-12" [[notices]] name = "FreeBSD-EN-20:09.igb" date = "2020-05-12" [[notices]] name = "FreeBSD-EN-20:08.tzdata" date = "2020-05-12" [[notices]] name = "FreeBSD-EN-20:07.quotad" date = "2020-04-21" [[notices]] name = "FreeBSD-EN-20:06.ipv6" date = "2020-03-19" [[notices]] name = "FreeBSD-EN-20:05.mlx5en" date = "2020-03-19" [[notices]] name = "FreeBSD-EN-20:04.pfctl" date = "2020-03-19" [[notices]] name = "FreeBSD-EN-20:03.sshd" date = "2020-03-19" [[notices]] name = "FreeBSD-EN-20:02.nmount" date = "2020-01-28" [[notices]] name = "FreeBSD-EN-20:01.ssp" date = "2020-01-28" [[notices]] name = "FreeBSD-EN-19:19.loader" date = "2019-11-12" [[notices]] name = "FreeBSD-EN-19:18.tzdata" date = "2019-10-23" [[notices]] name = "FreeBSD-EN-19:17.ipfw" date = "2019-08-20" [[notices]] name = "FreeBSD-EN-19:16.bhyve" date = "2019-08-20" [[notices]] name = "FreeBSD-EN-19:15.libunwind" date = "2019-08-06" [[notices]] name = "FreeBSD-EN-19:14.epoch" date = "2019-08-06" [[notices]] name = "FreeBSD-EN-19:13.mds" date = "2019-07-24" [[notices]] name = "FreeBSD-EN-19:12.tzdata" date = "2019-07-02" [[notices]] name = "FreeBSD-EN-19:11.net" date = "2019-06-19" [[notices]] name = "FreeBSD-EN-19:10.scp" date = "2019-05-14" [[notices]] name = "FreeBSD-EN-19:09.xinstall" date = "2019-05-14" [[notices]] name = "FreeBSD-EN-19:08.tzdata" date = "2019-05-14" [[notices]] name = "FreeBSD-EN-19:07.lle" date = "2019-02-05" [[notices]] name = "FreeBSD-EN-19:06.dtrace" date = "2019-02-05" [[notices]] name = "FreeBSD-EN-19:05.kqueue" date = "2019-01-09" [[notices]] name = "FreeBSD-EN-19:04.tzdata" date = "2019-01-09" [[notices]] name = "FreeBSD-EN-19:03.sqlite" date = "2019-01-09" [[notices]] name = "FreeBSD-EN-19:02.tcp" date = "2019-01-09" [[notices]] name = "FreeBSD-EN-19:01.cc_cubic" date = "2019-01-09" [[notices]] name = "FreeBSD-EN-18:18.zfs" date = "2018-12-19" [[notices]] name = "FreeBSD-EN-18:17.vm" date = "2018-12-19" [[notices]] name = "FreeBSD-EN-18:16.ptrace" date = "2018-12-19" [[notices]] name = "FreeBSD-EN-18:15.loader" date = "2018-11-27" [[notices]] name = "FreeBSD-EN-18:14.tzdata" date = "2018-11-27" [[notices]] name = "FreeBSD-EN-18:13.icmp" date = "2018-11-27" [[notices]] name = "FreeBSD-EN-18:12.mem" date = "2018-09-27" [[notices]] name = "FreeBSD-EN-18:11.listen" date = "2018-09-27" [[notices]] name = "FreeBSD-EN-18:10.syscall" date = "2018-09-27" [[notices]] name = "FreeBSD-EN-18:09.ip" date = "2018-09-27" [[notices]] name = "FreeBSD-EN-18:08.lazyfpu" date = "2018-09-12" [[notices]] name = "FreeBSD-EN-18:07.pmap" date = "2018-06-21" [[notices]] name = "FreeBSD-EN-18:06.tzdata" date = "2018-05-08" [[notices]] name = "FreeBSD-EN-18:05.mem" date = "2018-05-08" [[notices]] name = "FreeBSD-EN-18:04.mem" date = "2018-04-04" [[notices]] name = "FreeBSD-EN-18:03.tzdata" date = "2018-04-04" [[notices]] name = "FreeBSD-EN-18:02.file" date = "2018-03-07" [[notices]] name = "FreeBSD-EN-18:01.tzdata" date = "2018-03-07" [[notices]] name = "FreeBSD-EN-17:09.tzdata" date = "2017-11-02" [[notices]] name = "FreeBSD-EN-17:08.pf" date = "2017-08-10" [[notices]] name = "FreeBSD-EN-17:07.vnet" date = "2017-08-10" [[notices]] name = "FreeBSD-EN-17:06.hyperv" date = "2017-07-12" [[notices]] name = "FreeBSD-EN-17:05.xen" date = "2017-04-12" [[notices]] name = "FreeBSD-EN-17:04.mandoc" date = "2017-02-23" [[notices]] name = "FreeBSD-EN-17:03.hyperv" date = "2017-02-23" [[notices]] name = "FreeBSD-EN-17:02.yp" date = "2017-02-23" [[notices]] name = "FreeBSD-EN-17:01.pcie" date = "2017-02-23" [[notices]] name = "FreeBSD-EN-16:21.localedef" date = "2016-12-06" [[notices]] name = "FreeBSD-EN-16:20.tzdata" date = "2016-12-06" [[notices]] name = "FreeBSD-EN-16:19.tzcode" date = "2016-12-06" [[notices]] name = "FreeBSD-EN-16:18.loader" date = "2016-10-25" [[notices]] name = "FreeBSD-EN-16:17.vm" date = "2016-10-25" [[notices]] name = "FreeBSD-EN-16:16.hv_storvsc" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:15.vmbus" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:14.hv_storvsc" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:13.vmbus" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:12.hv_storvsc" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:11.vmbus" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:10.dhclient" date = "2016-08-12" [[notices]] name = "FreeBSD-EN-16:09.freebsd-update" date = "2016-07-25" [[notices]] name = "FreeBSD-EN-16:08.zfs" date = "2016-05-04" [[notices]] name = "FreeBSD-EN-16:07.ipi" date = "2016-05-04" [[notices]] name = "FreeBSD-EN-16:06.libc" date = "2016-05-04" [[notices]] name = "FreeBSD-EN-16:05.hv_netvsc" date = "2016-03-16" [[notices]] name = "FreeBSD-EN-16:04.hyperv" date = "2016-03-16" [[notices]] name = "FreeBSD-EN-16:03.yplib" date = "2016-01-14" [[notices]] name = "FreeBSD-EN-16:02.pf" date = "2016-01-14" [[notices]] name = "FreeBSD-EN-16:01.filemon" date = "2016-01-14" [[notices]] name = "FreeBSD-EN-15:20.vm" date = "2015-11-04" [[notices]] name = "FreeBSD-EN-15:19.kqueue" date = "2015-11-04" [[notices]] name = "FreeBSD-EN-15:18.pkg" date = "2015-09-16" [[notices]] name = "FreeBSD-EN-15:17.libc" date = "2015-09-16" [[notices]] name = "FreeBSD-EN-15:16.pw" date = "2015-09-16" [[notices]] name = "FreeBSD-EN-15:15.pkg" date = "2015-08-25" [[notices]] name = "FreeBSD-EN-15:14.ixgbe" date = "2015-08-25" [[notices]] name = "FreeBSD-EN-15:13.vidcontrol" date = "2015-08-18" [[notices]] name = "FreeBSD-EN-15:12.netstat" date = "2015-08-18" [[notices]] name = "FreeBSD-EN-15:11.toolchain" date = "2015-08-18" [[notices]] name = "FreeBSD-EN-15:10.iconv" date = "2015-06-30" [[notices]] name = "FreeBSD-EN-15:09.xlocale" date = "2015-06-30" [[notices]] name = "FreeBSD-EN-15:08.sendmail" date = "2015-06-18" [[notices]] name = "FreeBSD-EN-15:07.zfs" date = "2015-06-09" [[notices]] name = "FreeBSD-EN-15:06.file" date = "2015-06-09" [[notices]] name = "FreeBSD-EN-15:05.ufs" date = "2015-05-13" [[notices]] name = "FreeBSD-EN-15:04.freebsd-update" date = "2015-05-13" [[notices]] name = "FreeBSD-EN-15:03.freebsd-update" date = "2015-02-25" [[notices]] name = "FreeBSD-EN-15:02.openssl" date = "2015-02-25" [[notices]] name = "FreeBSD-EN-15:01.vt" date = "2015-02-25" [[notices]] name = "FreeBSD-EN-14:13.freebsd-update" date = "2014-12-23" [[notices]] name = "FreeBSD-EN-14:12.zfs" date = "2014-11-04" [[notices]] name = "FreeBSD-EN-14:11.crypt" date = "2014-10-22" [[notices]] name = "FreeBSD-EN-14:10.tzdata" date = "2014-10-22" [[notices]] name = "FreeBSD-EN-14:09.jail" date = "2014-07-08" [[notices]] name = "FreeBSD-EN-14:08.heimdal" date = "2014-06-24" [[notices]] name = "FreeBSD-EN-14:07.pmap" date = "2014-06-24" [[notices]] name = "FreeBSD-EN-14:06.exec" date = "2014-06-03" [[notices]] name = "FreeBSD-EN-14:05.ciss" date = "2014-05-13" [[notices]] name = "FreeBSD-EN-14:04.kldxref" date = "2014-05-13" [[notices]] name = "FreeBSD-EN-14:03.pkg" date = "2014-05-13" [[notices]] name = "FreeBSD-EN-14:02.mmap" date = "2014-01-14" [[notices]] name = "FreeBSD-EN-14:01.random" date = "2014-01-14" [[notices]] name = "FreeBSD-EN-13:05.freebsd-update" date = "2013-11-28" [[notices]] name = "FreeBSD-EN-13:04.freebsd-update" date = "2013-10-26" [[notices]] name = "FreeBSD-EN-13:03.mfi" date = "2013-08-22" [[notices]] name = "FreeBSD-EN-13:01.fxp" date = "2013-06-28" [[notices]] name = "FreeBSD-EN-13:02.vtnet" date = "2013-06-28" [[notices]] name = "FreeBSD-EN-12:02.ipv6refcount" date = "2012-06-12" [[notices]] name = "FreeBSD-EN-12:01.freebsd-update" date = "2012-01-04" [[notices]] name = "FreeBSD-EN-10:02.sched_ule" date = "2010-02-27" [[notices]] name = "FreeBSD-EN-10:01.freebsd" date = "2010-01-06" [[notices]] name = "FreeBSD-EN-09:05.null" date = "2009-10-02" [[notices]] name = "FreeBSD-EN-09:04.fork" date = "2009-06-24" [[notices]] name = "FreeBSD-EN-09:03.fxp" date = "2009-06-24" [[notices]] name = "FreeBSD-EN-09:02.bce" date = "2009-06-24" [[notices]] name = "FreeBSD-EN-09:01.kenv" date = "2009-03-23" [[notices]] name = "FreeBSD-EN-08:02.tcp" date = "2008-06-19" [[notices]] name = "FreeBSD-EN-08:01.libpthread" date = "2008-04-17" [[notices]] name = "FreeBSD-EN-07:05.freebsd-update" date = "2007-03-15" [[notices]] name = "FreeBSD-EN-07:04.zoneinfo" date = "2007-02-28" [[notices]] name = "FreeBSD-EN-07:03.rc.d_jail" date = "2007-02-28" [[notices]] name = "FreeBSD-EN-07:02.net" date = "2007-02-28" [[notices]] name = "FreeBSD-EN-07:01.nfs" date = "2007-02-14" [[notices]] name = "FreeBSD-EN-06:02.net" date = "2006-08-28" [[notices]] name = "FreeBSD-EN-06:01.jail" date = "2006-07-07" [[notices]] name = "FreeBSD-EN-05:04.nfs" date = "2005-12-19" [[notices]] name = "FreeBSD-EN-05:03.ipi" date = "2005-01-16" [[notices]] name = "FreeBSD-EN-05:02.sk" date = "2005-01-06" [[notices]] name = "FreeBSD-EN-05:01.nfs" date = "2005-01-05" [[notices]] name = "FreeBSD-EN-04:01.twe" date = "2004-06-28" diff --git a/website/static/security/advisories/FreeBSD-EN-25:01.rpc.asc b/website/static/security/advisories/FreeBSD-EN-25:01.rpc.asc new file mode 100644 index 0000000000..08373eeea2 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:01.rpc.asc @@ -0,0 +1,137 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:01.rpc Errata Notice + The FreeBSD Project + +Topic: NULL pointer dereference in the NFSv4 client + +Category: core +Module: kernel +Announced: 2024-12-23 +Affects: FreeBSD 14.1 +Corrected: 2024-05-28 02:22:04 UTC (stable/14, 14.1-STABLE) + 2025-01-29 18:55:17 UTC (releng/14.1, 14.1-RELEASE-p7) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +. + +I. Background + +The Network File System (NFS) allows a host to export some or all of its file +systems so that other hosts can access them over the network and mount them +as if they were on local disks. NFS is built on top of the Sun Remote +Procedure Call (RPC) framework. FreeBSD includes server and client +implementations of NFS. + +NFS version 4 provides both client support and server support for delegation. +Delegation is a technique by which the server delegates the management of a +file to a client. + +II. Problem Description + +When a NFSv4.1/4.2 client callback related to delegations is handled, a +missing NULL pointer check can cause a kernel panic. + +III. Impact + +FreeBSD systems mounting a NFSv4 server with delegations enabled may cause a +kernel panic. + +IV. Workaround + +None, although NFSv4 clients mounting a server that has delegations disabled +are not affected. + +If running a FreeBSD NFSv4 server, disabling delegations by setting the +sysctl vfs.nfsd.issue_delegations to 0 (which is the default) will prevent +any affected clients from crashing. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date and reboot. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:01/rpc.patch +# fetch https://security.FreeBSD.org/patches/EN-25:01/rpc.patch.asc +# gpg --verify rpc.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 4c136aad80e6 stable/14-n269984 +releng/14.1/ 4fdb8d1ab316 releng/14.1-n267728 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKEACgkQbljekB8A +Gu+TKA/6AiM4K+rkbQVEIq7DP/Kodnl/HH03t3oMX+O6McIYnPPc0AtBflxjcGTK +JatRl4tFAkn/umXOLHw9ljqtIBz3Czj7i9mNvQ/z0j6oBZXnQLGXJdVcQLj5sZ2b +GbMFe8Pf6yhL+HZqRDK+AP0x8gx9fCRvK9N8rTnwNGk6JnJXGMhF0V7cYEsCvN29 +xZX2VxxGo6APuFuct86FpDOZMnzqvGqukI2vTxwgG3kMDY4Y5DkVEwmjWOk4rAK9 ++vGOrM+e+eUcktiIa+tFNmwhTexlXQ6LByiQKn6Py2jpcTJr2GP6AY/S4obHNGkB +prixFBP9H6CP6M27RlWGiKG+dr60tzKukWcvj+Y3Ogu9tQOY0p+RGfTY/v416aAP +VcFpxZhQc/67M45rRfPi8Ff+oXlcVXzmI1mkn4EcBcBC7DPLMD/Fvf0fixFKMLRw +tImHAIn0cKWyjfu/uXSspFo9GtuHEyfodeLhA52Fh7ulfWgjNoQDvFJE3KAD+GGo +x+GElJsO2Q+68b7b6sJPt0ZEijaDilI1d/cnwYYbXwwvnvbCPss7I9IWzB1T4xBI +dZM/ED7jPFt3cbH2btVAaHDyMsx3FW0RzjDbTMGZFbNFsF3Adbet2ds8Jym954K0 +3MPv/T4OHui8tOL4WO3WMB/X50qDwBIFZC8+kU/MOe5OAq9yVyc= +=7P47 +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:02.audit.asc b/website/static/security/advisories/FreeBSD-EN-25:02.audit.asc new file mode 100644 index 0000000000..ab45d0458f --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:02.audit.asc @@ -0,0 +1,137 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:02.audit Errata Notice + The FreeBSD Project + +Topic: System call auditing disabled by DTrace + +Category: core +Module: audit +Announced: 2025-01-29 +Credits: Joe Duin +Affects: All supported versions of FreeBSD. +Corrected: 2025-01-17 13:40:36 UTC (stable/14, 14.2-STABLE) + 2025-01-29 18:54:51 UTC (releng/14.2, 14.2-RELEASE-p1) + 2025-01-29 18:55:18 UTC (releng/14.1, 14.1-RELEASE-p7) + 2025-01-17 13:40:56 UTC (stable/13, 13.4-STABLE) + 2025-01-29 18:55:24 UTC (releng/13.4, 13.4-RELEASE-p3) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +. + +I. Background + +The audit(4) facility allows a system administrator to audit +security-relevant events. System calls are one such security-related +event, and the audit(4) facility will record whether the system call was +successful along with other important details. + +II. Problem Description + +When userspace invokes a system call, the kernel routes the call through +a common function which optionally logs an audit record for the call. +This function also calls into DTrace to implement system call tracing. +When both system call auditing and DTrace system call tracing are +enabled at the same time, a logic error causes auditing to be silently +disabled. + +III. Impact + +A privileged user can inhibit system call audit logging by running a +DTrace script which uses the "syscall" provider. Once the DTrace script +exits, system call auditing will resume without any intervention. + +IV. Workaround + +No workaround is available. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date and reboot. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:02/audit.patch +# fetch https://security.FreeBSD.org/patches/EN-25:02/audit.patch.asc +# gpg --verify audit.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 4b9ba274d736 stable/14-n270139 +releng/14.2/ 71bf983f92ba releng/14.2-n269508 +releng/14.1/ 1574c53178e9 releng/14.1-n267729 +stable/13/ 1bf531bcd791 stable/13-n259015 +releng/13.4/ f7b9cd733c39 releng/13.4-n258269 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKMACgkQbljekB8A +Gu/wIxAA38DHdcS7lmwRT/rYyuUICRW7v51RU/FMzbxJ/F0Aovh+mhKUjI3IU6Ym +HEfJpu0o0bRN+tf2cCz4JEO881NhipNsmZlZ62W1Rz3bIG0MmcCQ+9bYMlLcCKrB +V1GR/kve5ENZRi9R4eQ+zzrIMXnrL18QOY1BMxnuqT/QmA18LPx0XPGhecKj4L0+ +brD7xvg8cGd6QYKz56PVKqgPSJtN6gl9qgiIb2jtTNoz9lyXf/88N4nvFTGB86Mj +wVQy9J/fdiHU6154xQq8HaIEk2q0kQsOM7fuEwms1yCgOKiOyYOL2Ohn1KDRD1Vh +ECWLldc2l67ioLY2o3I15O4gSPa+/NcEgtGxrgCcUbp6cWHAMYbDw8/Oth7eIdjB +tuv0Hu27ADJH9RawmrgziD9BzQzSK1qzzBLvic20pvU3tqlSTDWyrTfLYkkFoqjg +8tL3PULNtHgcoP1VwfhQjVZAB5XzCDvuxTOOG6po6Hp02zdLmuQzQ7M+p/Fz1Cf1 +rftSNXfXS5vXnX18j51/I6KZaqRg039RVotVy7Pjy/+FWD5y8UGqp5QqPBlOvjve +62R+FKVVr/Ki17kuQMayCc2hoWS4nKirQK1Kb2AoKIur5HoIM7urUnIIanzLvmIT +tSJxvh1msNsOf2Q+1Yo6IP27Q9yjDTPZA+jFTzSL9lGiJAXoiVQ= +=DEwx +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:03.tzdata.asc b/website/static/security/advisories/FreeBSD-EN-25:03.tzdata.asc new file mode 100644 index 0000000000..58e884e6ef --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:03.tzdata.asc @@ -0,0 +1,167 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:03.tzdata Errata Notice + The FreeBSD Project + +Topic: Timezone database information update + +Category: contrib +Module: zoneinfo +Announced: 2025-01-29 +Affects: All supported versions of FreeBSD +Corrected: 2025-01-20 00:25:35 UTC (stable/14, 14.2-STABLE) + 2025-01-29 18:54:53 UTC (releng/14.2, 14.2-RELEASE-p1) + 2025-01-29 18:55:24 UTC (releng/14.1, 14.1-RELEASE-p7) + 2025-01-20 00:26:44 UTC (stable/13, 13.4-STABLE) + 2025-01-29 18:55:26 UTC (releng/13.4, 13.4-RELEASE-p3) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +. + +I. Background + +The IANA Time Zone Database (often called tz or zoneinfo) contains code and +data that represent the history of local time for many representative +locations around the globe. It is updated periodically to reflect changes +made by political bodies to time zone boundaries, UTC offsets, and +daylight-saving rules. + +FreeBSD releases install the IANA Time Zone Database in /usr/share/zoneinfo. +The tzsetup(8) utility allows the user to specify the default local time +zone. Based on the selected time zone, tzsetup(8) copies one of the files +from /usr/share/zoneinfo to /etc/localtime. A time zone may also be selected +for an individual process by setting its TZ environment variable to a desired +time zone name. + +II. Problem Description + +Several changes to future and past timestamps have been recorded in the IANA +Time Zone Database after previous FreeBSD releases were released. This +affects many users in different parts of the world. Because of these +changes, the data in the zoneinfo files need to be updated. If the local +timezone on the running system is affected, tzsetup(8) needs to be run to +update /etc/localtime. + +III. Impact + +An incorrect time will be displayed on a system configured to use one of the +affected time zones if the /usr/share/zoneinfo and /etc/localtime files are +not updated, and all applications on the system that rely on the system time, +such as cron(8) and syslog(8), will be affected. + +IV. Workaround + +The system administrator can install an updated version of the IANA Time Zone +Database from the misc/zoneinfo port and run tzsetup(8). + +Applications that store and display times in Coordinated Universal Time (UTC) +are not affected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Please note that some third party software, for instance PHP, Ruby, Java, +Perl and Python, may be using different zoneinfo data sources, in such cases +this software must be updated separately. Software packages that are +installed via binary packages can be upgraded by executing 'pkg upgrade'. + +Following the instructions in this Errata Notice will only update the IANA +Time Zone Database installed in /usr/share/zoneinfo. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install + +Restart all the affected applications and daemons, or reboot the system. + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +[FreeBSD 14.2] +# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2025a.patch +# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2025a.patch.asc +# gpg --verify tzdata-2025a.patch.asc + +[FreeBSD 14.1, FreeBSD 13.4] +# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2024b-2025a.patch +# fetch https://security.FreeBSD.org/patches/EN-25:03/tzdata-2024b-2025a.patch.asc +# gpg --verify tzdata-2024b-2025a.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in . + +Restart all the affected applications and daemons, or reboot the system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ a158d26e89f2 stable/14-n270163 +releng/14.2/ b9149a3af722 releng/14.2-n269509 +releng/14.1/ 40928c124157 releng/14.1-n267734 +stable/13/ 2d6dcb4f97f8 stable/13-n259027 +releng/13.4/ eb9d8bafa485 releng/13.4-n258271 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKUACgkQbljekB8A +Gu9cFhAAuGVUEwz0fggS27AahJHjh1a7SCwCh0lqRqedqsyRwJ4hoMoU2D7u5MCa +w6uhBGHP5WeaKhKjMuZy339qE1mDrlm07uaoAdoum1BcmbdPIbUBrnXVYyPXuaCo +ao92VBXRjDYaPlWtiK2z8DUyzYorHyH8TPtI64T05AnbkgblZl7jzwK/QLljqo0X +33VhZF5ZGpHhdEr5lmx1Rx7dKfItgX7WGjnWFwQ7Y3J9pieCXggNjiHwjoXxz3Vz +mZoRntnQ1JNTxEyPb69vokNCpOg03ateUTqGz/6JSR3quHqt78hXns4sVwYF9aSh +A486DFzSHhW7Wl5moGSTl28GYFiU4mB7775Ui3wBEC2hI+UrH5etnmXjsr0kVOxE +gmjLPwFcNqUZE+u3TmLTn7oRxftziwQ2qCWsfORyKfOP3fU0CrR41eOPWmNeCaVn +rP5dmkYP857CcPjzDdt0UwI0ZSpirc304HxU9H4J69BBe2CLS4IC74SEr5hloZnY +QNF66nyZ0dfU2Rf2ojwJ9FdHS9DyB5cnG7yMp6rn74ORrz7Gug2UO4UHVJwQ58Ji +GWgZhENaGDbA8PO3X9ptoNAtmuYG4XFn4AxzqQ6cUfnveItVzRZr10qGE7WMhNjH +/yVAV6swGSZWFdl05Km+75WHX/+7cQrGOgsWJt1yHkzRsYVS8K0= +=x7nl +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-SA-25.03.etcupdate.asc b/website/static/security/advisories/FreeBSD-SA-25.03.etcupdate.asc new file mode 100644 index 0000000000..5809240dac --- /dev/null +++ b/website/static/security/advisories/FreeBSD-SA-25.03.etcupdate.asc @@ -0,0 +1,141 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-25:03.etcupdate Security Advisory + The FreeBSD Project + +Topic: Unprivileged access to system files + +Category: core +Module: etcupdate +Announced: 2025-01-29 +Credits: Christos Chatzaras +Affects: All supported versions of FreeBSD. +Corrected: 2025-01-28 16:07:18 UTC (stable/14, 14.2-STABLE) + 2025-01-29 18:54:57 UTC (releng/14.2, 14.2-RELEASE-p1) + 2025-01-29 18:55:26 UTC (releng/14.1, 14.1-RELEASE-p7) + 2025-01-28 16:07:34 UTC (stable/13, 13.4-STABLE) + 2025-01-29 18:55:30 UTC (releng/13.4, 13.4-RELEASE-p3) +CVE Name: CVE-2025-0374 + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit . + +I. Background + +The etcupdate(8) utility is a tool for managing updates to files that are not +updated as part of ‘make installworld’ such as files in /etc. It manages +updates by doing a three-way merge of changes made to these files against the +local versions. It is also designed to minimize the amount of user +intervention with the goal of simplifying upgrades for clusters of machines. + +II. Problem Description + +When etcupdate encounters conflicts while merging files, it saves a version +containing conflict markers in /var/db/etcupdate/conflicts. This version does +not preserve the mode of the input file, and is world-readable. This applies +to files that would normally have restricted visibility, such as +/etc/master.passwd. + +III. Impact + +An unprivileged local user may be able to read encrypted root and user +passwords from the temporary master.passwd file created in +/var/db/etcupdate/conflicts. This is possible only when conflicts within the +password file arise during an update, and the unprotected file is deleted when +conflicts are resolved. + +IV. Workaround + +No workaround is available. Systems whose files are updated using a mechanism +other than etcupdate, such as freebsd-update(8), are unaffected. + +V. Solution + +Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your vulnerable system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/SA-25:03/etcupdate.patch +# fetch https://security.FreeBSD.org/patches/SA-25:03/etcupdate.patch.asc +# gpg --verify etcupdate.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in . + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 93836ff92be8 stable/14-n270244 +releng/14.2/ c55000e7c233 releng/14.2-n269513 +releng/14.1/ b8945a926a2f releng/14.1-n267736 +stable/13/ 17e935f1f327 stable/13-n259074 +releng/13.4/ c1c180910d46 releng/13.4-n258274 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKwACgkQbljekB8A +Gu+/Zg//S1n7l9ABmKTrFKWstkDgyNplTyb8VRQ6HQtdAQSa1M5C8MUXt57wjCV0 +uOilT3GwT29IzBW2EDe3m8uOGdd3n0Ti6pCn0a11HV/VXqTt7zbbLNSPs7soTWVs +oIsig0wmw/oZ2+ZkOvZG19ae99NdLzrV6YSK8NpdnOqwnTiZtN0cxCEdzhAQVznL +omYwXjw7todZ1mskECDuaFrw+1R6K2Aw0lpauveNcsGewjV85IML6G3sPKYMJJCq +E51LZ/1AfkQ+DDae+BVrGpvocf8YtR1p9Af8nSq16/WKKn4bwsVqFDf+fDpLpHW6 +W7P+Ng4KDKMPX7D/ObzTECKJLuhP3f0yZkkOrypIXFC5M34lbmyqJvR4tB7uJeNU +uqlD9RNbKY652isbIRZKz5L8gnZpFK0IUTHhcGOpTw8dfF19CsfE2jHoI/7fs8rC +RqMRCHo2dlPMP1xHTWfsgS3BYNJgC99CF1VCgpj2PuwQ3tP+CnQ5Ed2tvdTRrPjA +/IL3DzH/5hUIhHUPPPnw7m4PHUduXJyG1gvv998oIVw4Q7AXTcTGYU4fLZrEvBY7 +r4Zgpy8WkdRYMJHfdlrmSJNf3r2isrVXosw5PLbwBRw1k+V2KlxBRo6YjglbakU/ +LEmgLL7D4BrMHUBjqe1m1wff3Urz41tRTQr/IaBjeXxI6jlwDDM= +=60Xo +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-SA-25:01.openssh.asc b/website/static/security/advisories/FreeBSD-SA-25:01.openssh.asc new file mode 100644 index 0000000000..34fdcd3af4 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-SA-25:01.openssh.asc @@ -0,0 +1,136 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-25:01.openssh Security Advisory + The FreeBSD Project + +Topic: OpenSSH Keystroke Obfuscation Bypass + +Category: contrib +Module: openssh +Announced: 2025-01-29 +Credits: Philippos Giavridis +Credits: Jacky Wei En Kung, Daniel Hugenroth and + Alastair Beresford (University of Cambridge) +Affects: FreeBSD 14.1 +Corrected: 2024-07-15 18:45:16 UTC (stable/14, 14.2-STABLE) + 2025-01-29 18:55:25 UTC (releng/14.1, 14.1-RELEASE-p7) + 2024-08-01 15:03:50 UTC (stable/13, 13.4-STABLE) +CVE Name: CVE-2024-39894 + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit . + +I. Background + +OpenSSH is an implementation of the SSH protocol suite, providing an +encrypted and authenticated transport for a variety of services, including +remote shell access. + +OpenSSH version 9.5 introduced a mechanism to mitigate keystroke timing +attacks by "sending interactive traffic at fixed intervals when there is +only a small amount of data being sent." + +II. Problem Description + +A logic error in the ssh(1) ObscureKeystrokeTiming feature (on by default) +rendered this feature ineffective. + +III. Impact + +A passive observer could detect which network packets contain real keystrokes, +and infer the specific characters being transmitted from packet timing. + +IV. Workaround + +No workaround is available. This bug does not affect connections when +ObscureKeystrokeTiming was disabled or sessions where no TTY was requested. + +V. Solution + +Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your vulnerable system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +[FreeBSD 14.1] +# fetch https://security.FreeBSD.org/patches/SA-25:01/openssh.patch +# fetch https://security.FreeBSD.org/patches/SA-25:01/openssh.patch.asc +# gpg --verify openssh.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in . + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ bf9a275b24f6 stable/14-n268158 +releng/14.1/ 88d5d8108711 releng/14.1-n267735 +stable/13/ 79853e40abd8 stable/13-n258171 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKgACgkQbljekB8A +Gu8WORAAl3zgLVz40e7nhduuV4eZlnvWAc6sruSap5f80ikGLRDfuzgKugWdOvTA +i+bSZuZkGPx444uyC0JcN016+oUpd/1Xzr4/KQ7BL0ZYmgxQn/O8jfPbEiSloXpG +Vgn8ZXYh1EKilhIw6n79yZN6WSY/gAfMZzeY/R7v1n7WaBnUYaUB8fl94CoTxf1j +qQfmngBi6GU52OqirqBI4OYozJ2dkhRK/epvFUxMPGFVKa7wj4GChrQFW+PCyvHE +TPg4H37kbSC37LbCn2Y/vjs8WcAr/xI68AGkalANgqVvtIpA0+tO7hn5gqgevbc8 +xO1xDvy38mlgX1CIdRD/Ur857z3P23mVfPhHkXX+85mbH/8QRbMJuB88zrhS9pcY +V+dq23r0ALRCo8t8Sab5xukZhuK2rxFfXvfF2YT920Vd7LgCsA9MjTCdU/IfNpH0 +Ax5Lq1bm4cv9DT47XBRn+0QDZU0TSq0uJ8YLrusfS67ikzdbSBqL3tOAXtz6DeCL +UDqSg3Ohw4HFn+DNMOdmESWO/t5LesEY/nB/vGSQYNYQMqlednwAPVhp6D8jvcgE +Wi26qTLo4SgcvfDUk4EfDeLp90pgCXkBn5Zo9eTdOlyY/aMzvFcI7EKbsSAkX1Cg +zus5DrcA9BTu2Wp9xWTUHLBC65ecHy6/xXSubjL4GCbYcPcjxQI= +=oskq +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-SA-25:02.fs.asc b/website/static/security/advisories/FreeBSD-SA-25:02.fs.asc new file mode 100644 index 0000000000..daf046b3b2 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-SA-25:02.fs.asc @@ -0,0 +1,151 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-25:02.fs Security Advisory + The FreeBSD Project + +Topic: Buffer overflow in some filesystems via NFS + +Category: core +Module: fs +Announced: 2025-01-29 +Credits: Kevin Miller +Affects: All supported versions of FreeBSD. +Corrected: 2025-01-17 13:53:10 UTC (stable/14, 14.2-STABLE) + 2025-01-29 18:54:56 UTC (releng/14.2, 14.2-RELEASE-p1) + 2025-01-29 18:55:22 UTC (releng/14.1, 14.1-RELEASE-p7) + 2025-01-17 14:00:40 UTC (stable/13, 13.4-STABLE) + 2025-01-29 18:55:29 UTC (releng/13.4, 13.4-RELEASE-p3) +CVE Name: CVE-2025-0373 + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit . + +I. Background + +FreeBSD provides a number of filesystem implementations for different +purposes. cd9660 is used to mount ISO 9660 images; tarfs is used to mount +POSIX tar archives; ext2fs is used to mount ext2, ext3, and ext4 filesystems. + +II. Problem Description + +In order to export a file system via NFS, the file system must define a file +system identifier (FID) for all exported files. Each FreeBSD file system +implements operations to translate between FIDs and vnodes, the kernel's +in-memory representation of files. These operations are VOP_VPTOFH(9) and +VFS_FHTOVP(9). + +On 64-bit systems, the implementation of VOP_VPTOFH() in the cd9660, tarfs and +ext2fs filesystems overflows the destination FID buffer by 4 bytes, a stack +buffer overflow. + +III. Impact + +A NFS server that exports a cd9660, tarfs, or ext2fs file system can be made +to panic by mounting and accessing the export with an NFS client. Further +exploitation (e.g., bypassing file permission checking or remote kernel code +execution) is potentially possible, though this has not been demonstrated. In +particular, release kernels are compiled with stack protection enabled, and +some instances of the overflow are caught by this mechanism, causing a panic. + +IV. Workaround + +No workaround is available, however, only systems which export a cd9660, +tarfs, or ext2fs filesystem via NFS are affected. + +V. Solution + +Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your vulnerable system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +[FreeBSD 14.x] +# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-14.patch +# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-14.patch.asc +# gpg --verify fs-14.patch.asc + +[FreeBSD 13.x] +# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-13.patch +# fetch https://security.FreeBSD.org/patches/SA-25:02/fs-13.patch.asc +# gpg --verify fs-13.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 7a3a0402aeb6 stable/14-n270143 +releng/14.2/ faa47d299a0e releng/14.2-n269512 +releng/14.1/ c90866090517 releng/14.1-n267732 +stable/13/ ee931cf4a49c stable/13-n259016 +releng/13.4/ 0365b776f1b1 releng/13.4-n258273 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKoACgkQbljekB8A +Gu8JFw/7Bq7C56cUeMwxb6I7BU3U2/DNjKLAR3bymrYqqJberyyyfUtgCcaTyz2q +uCOAlK8xSbOVwX4WYb4pygR/uxRCPBaooTLpIZBPTCT5TxyTeLqQWfedeVMgYHgd +zkuS4cG97IACiS9Zey6xFO5Rati0QoSuhEf36rvJXO/E7HQHARe954G7FDWvTi3W +Snn5MvWYFwCvcL7gtthaoXtxS/FFRv+ht+cv6u/k6BNQXU7QFhF5qfFxM5rFczhO ++TTFMoizAxLyirZNPy2n2jg9u+vrh2LKmfwiuMxX3zUeNI8/7yNZJ7ea+VGoRAxh +OEXXPLbNPVtJdi6qvZ+3D0HUw/3aRjg/i0/Qe+5KXFC7OLBxksM5vyOC+eAjoyQW +Y489eI7B5tV1td52wotZ1bIyt3GHmKtFxOt2kajPaR0vjuaYtdUb85PtT2QGjnRJ +XbzmwrCM1YsBKANUHdh7sP5Bx1UI6dlQS2dgRQdbz43378lM1XND3RidioAdbYe6 +SyDyFnZPypHaQfZVdlepnYxActqvhKeeq0aWkgqymaeL78sqmF4AARFVSqep8MXL +boUkn3tMp1rojKH87Hk8saqRepZfX3DuwONsz++mgKEmqgnb8zKYI0Q4Gq6nYgcr +d8UxaWQz1mkiPfaqDvUOmAYWoWIiA+KsfIZIKj7+vrMEH32QzaA= +=vbcl +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-SA-25:04.ktrace.asc b/website/static/security/advisories/FreeBSD-SA-25:04.ktrace.asc new file mode 100644 index 0000000000..37a3d79df7 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-SA-25:04.ktrace.asc @@ -0,0 +1,135 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-25:04.ktrace Security Advisory + The FreeBSD Project + +Topic: Uninitialized kernel memory disclosure via ktrace(2) + +Category: core +Module: ktrace +Announced: 2025-01-29 +Credits: Yichen Chai and Zhuo Ying Jiang Li +Affects: FreeBSD 14.2 +Corrected: 2025-01-20 22:09:53 UTC (stable/14, 14.2-STABLE) + 2025-01-29 18:54:50 UTC (releng/14.2, 14.2-RELEASE-p1) +CVE Name: CVE-2025-0662 + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit . + +I. Background + +The ktrace utility enables kernel trace logging for the specified +processes, commonly used for diagnostic or debugging purposes. The +kernel operations that are traced include system calls, namei +translations, signal processing, and I/O as well as data associated with +these operations. + +II. Problem Description + +In some cases, the ktrace facility will log the contents of kernel +structures to userspace. In one such case, ktrace dumps a +variable-sized sockaddr to userspace. There, the full sockaddr is +copied, even when it is shorter than the full size. This can result in +up to 14 uninitialized bytes of kernel memory being copied out to +userspace. + +III. Impact + +It is possible for an unprivileged userspace program to leak 14 bytes of +a kernel heap allocation to userspace. + +IV. Workaround + +No workaround is available. + +V. Solution + + + +Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your vulnerable system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/SA-25:04/ktrace.patch +# fetch https://security.FreeBSD.org/patches/SA-25:04/ktrace.patch.asc +# gpg --verify ktrace.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 99d5ee8738a3 stable/14-n270190 +releng/14.2/ 10f8a9df522f releng/14.2-n269507 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajK4ACgkQbljekB8A +Gu84pQ//WXxC3kW+JP6R73oQ3s5hhokCE7FjwlRj6QhkblmgBdRrwwFzkR0nLfSK +TUirfyYikaCtw3K/FpAYfm4VSJR3MlFhjUXhU+4KWBnJHf0t6NYEJP6MixsDFMvn +IZWZsrLs8Ryl03kKiH3EWfA9KVqx0OI0Cj9LOLo5nBzZjR0auUxYRdNrYuEq4i9n +OxMRbB3i5C3oy+I8ZW6fAAyYRb008oLDZmMBluIybCH01B35NQP/iAjpO6HQT5rt +fvHlo/kEOGSqBrwcnJXzLiJE4uKtiS4CDBltEN1WpP3N1MBqbLj6GO5uEWQGA73F +MhOzeCd3kM+41KQjdtxvIJ9yc0i/m0VLOnBTaKCqAS4bGTOl5FIIZEaY3J3+7dOP +wkcdFTOxl9K+RZ5CERAUxoGqgS9r+HOvWBIQcQoD9j4UCBocwyZn8fvp6niK0CWl +TR4T7UE8nAiK/QqBQ7DTqKlAkrMC3+FS5XVfw6GXJ7NFMP/HFh/AIE7oEYN+h/rQ +JXPmuU9Ml0ZHuy4PLcX16YSX+T+fdNWMxL1eomHE/FUwZoNP2RC0Wi9nGxEKtLun +JLGFkfQzuwfIItGYICvvOKw6Ry9Q1WYJFTdrNLCn7upUW0BnXVDVzRz7X68FJgtO +uXQGChtW/PfG/KoMY544eX5lL27Kxi5oBNS/VzDtCPG0bHAAgMw= +=ErDS +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:01/rpc.patch b/website/static/security/patches/EN-25:01/rpc.patch new file mode 100644 index 0000000000..2012a35475 --- /dev/null +++ b/website/static/security/patches/EN-25:01/rpc.patch @@ -0,0 +1,10 @@ +--- sys/rpc/svc.c.orig ++++ sys/rpc/svc.c +@@ -1000,6 +1000,7 @@ + * enable TLS offload first. + */ + if (xprt->xp_doneddp == 0 && r->rq_proc != NULLPROC && ++ xprt->xp_socket != NULL && + atomic_cmpset_int(&xprt->xp_doneddp, 0, 1)) { + if (xprt->xp_socket->so_proto->pr_protocol == + IPPROTO_TCP) { diff --git a/website/static/security/patches/EN-25:01/rpc.patch.asc b/website/static/security/patches/EN-25:01/rpc.patch.asc new file mode 100644 index 0000000000..11289b7703 --- /dev/null +++ b/website/static/security/patches/EN-25:01/rpc.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKIACgkQbljekB8A +Gu8h3xAA4IYXD/fdZW1z47Sb0u6K2f8RUKGNHYlJE6zrFJIv2hqObZhIpzTwY4rf +iS2HqgrBJmk641UCceVw13FCsolybViKKk+fCnt0ioNHGoDHeDTM7/yOBcooz7dC +gC28HbK2CuH5jNJUYMz+UH5y+dVobNXFyw+5lI+H67+/4n5o31v8CCv92Ir/a8WD +7ylxTs/r24HAZLnn0qYFrv3WyYGxx0seu2EWzhANVT6yKT0RnfeMBz7rUSLp85GA +7Wgw2PSwlpjQ4iKESTIZI2/eujjZEVm59NUjwCXVq7Zloso8Zg9Fy6KACxKkKkej +upFLiB1o20yA1sWc7MiwUCcXCylH7LzPYaU5Tv+Ad9GtJ1aVmuTqNvUqtaWQfLEO +maLxQODfu7hKU4Chf7C1YatyjtuU2+f6K85um1kNXGxRS6DI4b9y2DxUW7G7n3z1 +Lmmqwehfwht9E9j/mOjS8oeQJiKMYxzV/IKjfpjfnz8ZI0EdOr/VQp2J+UReFt8C +M2TFogLk5ytmjCHbhk3z0qK7EMk51fbE7uymjf2o9KZs/t99Gi09co40LZYXC7aK +ri7aoR3w9msS9BC1I8xURDXZDeueZ1JCf1XPYNhvWo7qQYMLrjFlGeZPf4+z+I/L +IruTM1QUmy9hUPoXJPQwwYaul6wf9AAP986qfpoJHMmCi+xoDp8= +=Zx+r +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:02/audit.patch b/website/static/security/patches/EN-25:02/audit.patch new file mode 100644 index 0000000000..43a8d6484d --- /dev/null +++ b/website/static/security/patches/EN-25:02/audit.patch @@ -0,0 +1,47 @@ +--- sys/kern/subr_syscall.c.orig ++++ sys/kern/subr_syscall.c +@@ -141,9 +141,8 @@ + + sy_thr_static = (se->sy_thrcnt & SY_THR_STATIC) != 0; + +- if (__predict_false(SYSTRACE_ENABLED() || +- AUDIT_SYSCALL_ENTER(sa->code, td) || +- !sy_thr_static)) { ++ if (__predict_false(AUDIT_SYSCALL_ENABLED() || ++ SYSTRACE_ENABLED() || !sy_thr_static)) { + if (!sy_thr_static) { + error = syscall_thread_enter(td, &se); + sy_thr_static = (se->sy_thrcnt & SY_THR_STATIC) != 0; +@@ -158,6 +157,9 @@ + if (__predict_false(se->sy_entry != 0)) + (*systrace_probe_func)(sa, SYSTRACE_ENTRY, 0); + #endif ++ ++ AUDIT_SYSCALL_ENTER(sa->code, td); ++ + error = (se->sy_call)(td, sa->args); + /* Save the latest error return value. */ + if (__predict_false((td->td_pflags & TDP_NERRNO) != 0)) +--- sys/security/audit/audit.h.orig ++++ sys/security/audit/audit.h +@@ -389,9 +389,11 @@ + audit_arg_vnode2((vp)); \ + } while (0) + ++#define AUDIT_SYSCALL_ENABLED() audit_syscalls_enabled ++ + #define AUDIT_SYSCALL_ENTER(code, td) ({ \ + bool _audit_entered = false; \ +- if (__predict_false(audit_syscalls_enabled)) { \ ++ if (audit_syscalls_enabled) { \ + audit_syscall_enter(code, td); \ + _audit_entered = true; \ + } \ +@@ -468,6 +470,7 @@ + + #define AUDITING_TD(td) 0 + ++#define AUDIT_SYSCALL_ENABLED() 0 + #define AUDIT_SYSCALL_ENTER(code, td) 0 + #define AUDIT_SYSCALL_EXIT(error, td) + diff --git a/website/static/security/patches/EN-25:02/audit.patch.asc b/website/static/security/patches/EN-25:02/audit.patch.asc new file mode 100644 index 0000000000..8530c925e3 --- /dev/null +++ b/website/static/security/patches/EN-25:02/audit.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKQACgkQbljekB8A +Gu/Hnw//cLD49S4YDLzrbP+jX69eMmbq5A572LY6+DPD1/rWwdI4ickT7Y33yoXG +NRHoExnhVgyfqcjkScZQWoqxeYcVyFbtvGejbziTC5dwrh2DtZr+N3iFQW/xON4Q +HFZGSo50jaZhJ0Q/x376lZemy/4EYI+t0XUle9pKvMRPBpTcy0yyS12tZrM7aue1 +iQc8gd1nANUPOMZ+r7tSuDVVxl+41jHzRIE+zFePE4T5xdw6/vyuF5pGQovc3Tu9 +SYQurIElH0ou8o8YP1r3P3kciG44Ugsxzp3/b8pmgSZZS9TJ+lIeCnriwbAAHJ1z +v2N/GzZhqL9s/NViJmLObyuQlMxxJEZJSA96zj/71GmriRTexVsWnkWHFoRFySLn +lkf5Z8Ah4doJ+1WbRFnIb7nJsWsYtFd8pXcRRyWqcr2AQXtHTUpC/0pNeYtn4qEP +UConT11a8b8dM+uYJP12IMTwfB8v0ElM+Vt51Nz5SNzIsM7kULAdxLx6IsPfT/M7 +NCekD8E+xZgQ2VdkrgpTjxxF/OD74xAnHYHP3/8uYM5qG/l28ea9FDoPdCcqDS5P +he6PTWbtlyUB0oOrXIijcLBzHMits7rX91Bz8HwEr2E/QsXMMlWLRANA6R9/EbAS +so5v2KtR8mbWl0RsMjZfvPBisHDxkNu+SF0YDTeHTL0Yx5fCdYU= +=9rOG +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch new file mode 100644 index 0000000000..b36fb946dd --- /dev/null +++ b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch @@ -0,0 +1,5905 @@ +--- contrib/tzdata/CONTRIBUTING.orig ++++ contrib/tzdata/CONTRIBUTING +@@ -23,10 +23,10 @@ + "Theory and pragmatics of the tz code and data" + . + It is also good to browse the mailing list archives +- for examples of patches that tend +-to work well. Additions to data should contain commentary citing +-reliable sources as justification. Citations should use "https:" URLs +-if available. ++ ++for examples of patches that tend to work well. ++Changes should contain commentary citing reliable sources. ++Citations should use "https:" URLs if available. + + For changes that fix sensitive security-related bugs, please see the + distribution's 'SECURITY' file. +@@ -63,12 +63,16 @@ + * Edit source files. Include commentary that justifies the + changes by citing reliable sources. + +- * Debug the changes, e.g.: ++ * Debug the changes locally, e.g.: + +- make check +- make install ++ make TOPDIR=$PWD/tz clean check install + ./zdump -v America/Los_Angeles + ++ Although builds assume only basic POSIX, they use extra features ++ if available. 'make check' accesses validator.w3.org unless you ++ lack 'curl' or use 'make CURL=:'. If you have the latest GCC, ++ "make CFLAGS='$(GCC_DEBUG_FLAGS)'" does extra checking. ++ + * For each separable change, commit it in the new branch, e.g.: + + git add northamerica +--- contrib/tzdata/Makefile.orig ++++ contrib/tzdata/Makefile +@@ -3,17 +3,17 @@ + # 2009-05-17 by Arthur David Olson. + # Request POSIX conformance; this must be the first non-comment line. + .POSIX: +-# On older platforms you may need to scrounge for a POSIX-conforming 'make'. +-# For example, on Solaris 10 (2005), use /usr/sfw/bin/gmake or +-# /usr/xpg4/bin/make, not /usr/ccs/bin/make. ++# On older platforms you may need to scrounge for POSIX conformance. ++# For example, on Solaris 10 (2005) with Sun Studio 12 aka Sun C 5.9 (2007), ++# use 'PATH=/usr/xpg4/bin:$PATH make CC=c99'. + + # To affect how this Makefile works, you can run a shell script like this: + # + # #!/bin/sh +-# make CC='gcc -std=gnu11' "$@" ++# make CC='gcc -std=gnu23' "$@" + # +-# This example script is appropriate for a pre-2017 GNU/Linux system +-# where a non-default setting is needed to support this package's use of C99. ++# This example script is appropriate for a circa 2024 GNU/Linux system ++# where a non-default setting enables this package's optional use of C23. + # + # Alternatively, you can simply edit this Makefile to tailor the following + # macro definitions. +@@ -53,7 +53,7 @@ + + LOCALTIME= Factory + +-# The POSIXRULES macro controls interpretation of POSIX-2017.1-like TZ ++# 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: +@@ -132,11 +132,12 @@ + + # Types to try, as an alternative to time_t. + TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL) +-TIME_T_ALTERNATIVES_HEAD = int_least64_t +-TIME_T_ALTERNATIVES_TAIL = int_least32_t uint_least32_t uint_least64_t ++TIME_T_ALTERNATIVES_HEAD = int_least64_t.ck ++TIME_T_ALTERNATIVES_TAIL = int_least32_t.ck uint_least32_t.ck \ ++ uint_least64_t.ck + + # What kind of TZif data files to generate. (TZif is the binary time +-# zone data format that zic generates; see Internet RFC 8536.) ++# zone data format that zic generates; see Internet RFC 9636.) + # If you want only POSIX time, with time values interpreted as + # seconds since the epoch (not counting leap seconds), use + # REDO= posix_only +@@ -219,6 +220,7 @@ + # than what POSIX specifies, assuming local time is UT. + # For example, N is 252460800 on AmigaOS. + # -DHAVE_DECL_ASCTIME_R=0 if does not declare asctime_r ++# on POSIX platforms predating POSIX.1-2024 + # -DHAVE_DECL_ENVIRON if declares 'environ' + # -DHAVE_DECL_TIMEGM=0 if does not declare timegm + # -DHAVE_DIRECT_H if mkdir needs (MS-Windows) +@@ -229,7 +231,7 @@ + # 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 ++# ctime_r and asctime_r incompatibly with POSIX.1-2017 and earlier + # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). + # -DHAVE_INTTYPES_H=0 if does not work*+ + # -DHAVE_LINK=0 if your system lacks a link function +@@ -253,6 +255,7 @@ + # -DHAVE_UNISTD_H=0 if does not work* + # -DHAVE_UTMPX_H=0 if does not work* + # -Dlocale_t=XXX if your system uses XXX instead of locale_t ++# -DMKTIME_MIGHT_OVERFLOW if mktime might fail due to time_t overflow + # -DPORT_TO_C89 if tzcode should also run on mostly-C89 platforms+ + # Typically it is better to use a later standard. For example, + # with GCC 4.9.4 (2016), prefer '-std=gnu11' to '-DPORT_TO_C89'. +@@ -260,9 +263,12 @@ + # feature (integers at least 64 bits wide) and maybe more. + # -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+ +-# However, this might trigger latent bugs in C99-or-later callers. ++# -Dssize_t=int on hosts like MS-Windows that lack ssize_t ++# -DSUPPORT_C89=0 if the tzcode library should not support C89 callers ++# Although -DSUPPORT_C89=0 might work around latent bugs in callers, ++# it does not conform to POSIX. ++# -DSUPPORT_POSIX2008 if the library should support older POSIX callers+ ++# However, this might cause problems in POSIX.1-2024-or-later 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; +@@ -274,13 +280,13 @@ + # -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 for POSIX.1-2017-style TZ strings lacking them, ++# DST transitions for proleptic format 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) ++# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 254) + # -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 +@@ -302,23 +308,26 @@ + # + # * 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, say in the year 2029. ++# once the code assumes C99 or later (say in the year 2029) ++# and POSIX.1-2024 or later (say in the year 2034). + # + # Select instrumentation via "make GCC_INSTRUMENT='whatever'". + GCC_INSTRUMENT = \ + -fsanitize=undefined -fsanitize-address-use-after-scope \ + -fsanitize-undefined-trap-on-error -fstack-protector + # Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow. +-GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ ++GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 \ + $(GCC_INSTRUMENT) \ + -Wall -Wextra \ + -Walloc-size-larger-than=100000 -Warray-bounds=2 \ +- -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \ ++ -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wcast-qual \ ++ -Wdate-time \ + -Wdeclaration-after-statement -Wdouble-promotion \ +- -Wduplicated-branches -Wduplicated-cond \ ++ -Wduplicated-branches -Wduplicated-cond -Wflex-array-member-not-at-end \ + -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ + -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op \ +- -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ ++ -Wmissing-declarations -Wmissing-prototypes \ ++ -Wmissing-variable-declarations -Wnested-externs \ + -Wnull-dereference \ + -Wold-style-definition -Woverlength-strings -Wpointer-arith \ + -Wshadow -Wshift-overflow=2 -Wstrict-overflow \ +@@ -327,10 +336,9 @@ + -Wsuggest-attribute=const -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ + -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ +- -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \ ++ -Wtrampolines -Wundef -Wunused-macros -Wuse-after-free=3 \ + -Wvariadic-macros -Wvla -Wwrite-strings \ +- -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ +- -Wno-type-limits ++ -Wno-format-nonliteral -Wno-sign-compare -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), +@@ -341,9 +349,8 @@ + # Similarly, if your system has a "zone abbreviation" field, define + # -DTM_ZONE=tm_zone + # and define NO_TM_ZONE to suppress any guessing. +-# Although these two fields are not required by POSIX.1-2017, +-# POSIX 202x/D4 requires them and they are widely available +-# on GNU/Linux and BSD systems. ++# Although POSIX.1-2024 requires these fields and they are widely available ++# on GNU/Linux and BSD systems, some older systems lack them. + # + # The next batch of options control support for external variables + # exported by tzcode. In practice these variables are less useful +@@ -353,7 +360,9 @@ + # # -DHAVE_TZNAME=0 # do not support "tzname" + # # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library + # # -DHAVE_TZNAME=2 # support and define "tzname" +-# # to the "CFLAGS=" line. "tzname" is required by POSIX.1-1988 and later. ++# # to the "CFLAGS=" line. Although "tzname" is required by POSIX.1-1988 ++# # and later, its contents are unspecified if you use a geographical TZ ++# # and the variable is planned to be removed in a future POSIX edition. + # # If not defined, the code attempts to guess HAVE_TZNAME from other macros. + # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause + # # crashes when combined with some platforms' standard libraries, +@@ -364,7 +373,9 @@ + # # -DUSG_COMPAT=1 # support, and variables are defined by system library + # # -DUSG_COMPAT=2 # support and define variables + # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by Unix +-# # Systems Group code and are required by POSIX.1-2008 and later (with XSI). ++# # Systems Group code and are required by POSIX.1-2008 and later (with XSI), ++# # although their contents are unspecified if you use a geographical TZ ++# # and the variables are planned to be removed in a future edition of POSIX. + # # If not defined, the code attempts to guess USG_COMPAT from other macros. + # # + # # To support the external variable "altzone", add +@@ -428,18 +439,13 @@ + + # The name of a POSIX-like library archiver, its flags, C compiler, + # linker flags, and 'make' utility. Ordinarily the defaults suffice. +-# The commented-out values are the defaults specified by POSIX.1-202x/D4. ++# The commented-out values are the defaults specified by POSIX.1-2024. + #AR = ar + #ARFLAGS = -rv + #CC = c17 + #LDFLAGS = + #MAKE = make + +-# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in +-# submake command lines. The default is no leap seconds. +- +-LEAPSECONDS= +- + # Where to fetch leap-seconds.list from. + leaplist_URI = \ + https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list +@@ -461,7 +467,7 @@ + + # How to use zic to install TZif files. + +-ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS) ++ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)' + + # The name of a POSIX-compliant 'awk' on your system. + # mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work. +@@ -480,6 +486,7 @@ + + # Name of curl , used for HTML validation + # and to fetch leap-seconds.list from upstream. ++# Set CURL=: to disable use of the Internet. + CURL= curl + + # Name of GNU Privacy Guard , used to sign distributions. +@@ -533,21 +540,28 @@ + + # Flags to give 'tar' when making a distribution. + # Try to use flags appropriate for GNU tar. +-GNUTARFLAGS= --format=pax --pax-option='delete=atime,delete=ctime' \ ++GNUTARFLAGS= --format=pax --pax-option=delete=atime,delete=ctime \ + --numeric-owner --owner=0 --group=0 \ + --mode=go+u,go-w --sort=name +-TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \ +- then echo $(GNUTARFLAGS); \ +- else :; \ +- fi` ++SETUP_TAR= \ ++ export LC_ALL=C && \ ++ if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; then \ ++ TAR='tar $(GNUTARFLAGS)'; \ ++ else \ ++ TAR=tar; \ ++ fi + + # 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=') ++SETUP_DIFF_TZS = \ ++ if diff -u -F'^TZ=' - - <>/dev/null >&0 2>&1; then \ ++ DIFF_TZS='diff -u -F^TZ='; \ ++ else \ ++ DIFF_TZS='diff -u'; \ ++ fi + + # ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib. + RANLIB= : +@@ -561,8 +575,8 @@ + + + TZCOBJS= zic.o +-TZDOBJS= zdump.o localtime.o asctime.o strftime.o +-DATEOBJS= date.o localtime.o strftime.o asctime.o ++TZDOBJS= zdump.o localtime.o strftime.o ++DATEOBJS= date.o localtime.o strftime.o + LIBSRCS= localtime.c asctime.c difftime.c strftime.c + LIBOBJS= localtime.o asctime.o difftime.o strftime.o + HEADERS= tzfile.h private.h +@@ -579,8 +593,7 @@ + COMMON= calendars CONTRIBUTING LICENSE Makefile \ + NEWS README SECURITY theory.html version + WEB_PAGES= tz-art.html tz-how-to.html tz-link.html +-CHECK_WEB_PAGES=check_theory.html check_tz-art.html \ +- check_tz-how-to.html check_tz-link.html ++CHECK_WEB_PAGES=theory.ck tz-art.ck tz-how-to.ck tz-link.ck + DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES) + PRIMARY_YDATA= africa antarctica asia australasia \ + europe northamerica southamerica +@@ -603,8 +616,8 @@ + TZS_CUTOFF_FLAG= -c $(TZS_YEAR) + TZS= to$(TZS_YEAR).tzs + TZS_NEW= to$(TZS_YEAR)new.tzs +-TZS_DEPS= $(YDATA) asctime.c localtime.c \ +- private.h tzfile.h zdump.c zic.c ++TZS_DEPS= $(YDATA) localtime.c private.h \ ++ strftime.c tzfile.h zdump.c zic.c + TZDATA_DIST = $(COMMON) $(DATA) $(MISC) + # EIGHT_YARDS is just a yard short of the whole ENCHILADA. + EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi +@@ -641,8 +654,7 @@ + '$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \ + '$(DESTDIR)$(MANDIR)/man8' + $(ZIC_INSTALL) -l $(LOCALTIME) \ +- `case '$(POSIXRULES)' in ?*) echo '-p';; esac \ +- ` $(POSIXRULES) \ ++ -p $(POSIXRULES) \ + -t '$(DESTDIR)$(TZDEFAULT)' + cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.' + cp tzselect '$(DESTDIR)$(BINDIR)/.' +@@ -665,10 +677,10 @@ + # and append "-dirty" if the contents do not already end in "-dirty". + version: $(VERSION_DEPS) + { (type git) >/dev/null 2>&1 && \ +- V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ +- --abbrev=7 --dirty` || \ +- if test '$(VERSION)' = unknown && V=`cat $@`; then \ +- case $$V in *-dirty);; *) V=$$V-dirty;; esac; \ ++ V=$$(git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ ++ --abbrev=7 --dirty) || \ ++ if test '$(VERSION)' = unknown && read -r V <$@; then \ ++ V=$${V%-dirty}-dirty; \ + else \ + V='$(VERSION)'; \ + fi; } && \ +@@ -678,7 +690,7 @@ + # These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST. + vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) + $(AWK) \ +- -v DATAFORM=`expr $@ : '\(.*\).zi'` \ ++ -v DATAFORM=$(@:.zi=) \ + -v PACKRATDATA='$(PACKRATDATA)' \ + -v PACKRATLIST='$(PACKRATLIST)' \ + -f ziguard.awk \ +@@ -687,7 +699,7 @@ + # This file has a version comment that attempts to capture any tailoring + # via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO. + tzdata.zi: $(DATAFORM).zi version zishrink.awk +- version=`sed 1q version` && \ ++ read -r version $@ ++ ./zdump -i $(TZS_CUTOFF_FLAG) "$$PWD/$(@:.zd=)" >$@ + + TZS_NEW_DEPS = tzdata.zi zdump zic + $(TZS_NEW): $(TZS_NEW_DEPS) +@@ -812,20 +817,19 @@ + $(zic) -d tzs$(TZS_YEAR).dir tzdata.zi + $(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \ + tzdata.zi | LC_ALL=C sort >$@.out +- wd=`pwd` && \ +- x=`$(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \ ++ x=$$($(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \ + tzdata.zi \ +- | LC_ALL=C sort -t . -k 2,2` && \ ++ | LC_ALL=C sort -t . -k 2,2) && \ + set x $$x && \ + shift && \ + ZDS=$$* && \ +- $(MAKE) wd="$$wd" TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \ ++ $(MAKE) TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \ + ZDS="$$ZDS" $$ZDS && \ + sed 's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out + rm -fr tzs$(TZS_YEAR).dir + mv $@.out $@ + +-# If $(TZS) exists but 'make check_tzs' fails, a maintainer should inspect the ++# If $(TZS) exists but 'make tzs.ck' fails, a maintainer should inspect the + # failed output and fix the inconsistency, perhaps by running 'make force_tzs'. + $(TZS): + touch $@ +@@ -842,7 +846,7 @@ + $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS) + + tzselect: tzselect.ksh version +- VERSION=`cat version` && sed \ ++ read -r VERSION /dev/null 2>&1 \ +- || { LC_ALL='$(UTF8_LOCALE)'; export LC_ALL; false; }; } ++ || { export LC_ALL='$(UTF8_LOCALE)'; false; }; } + +-check_character_set: $(ENCHILADA) ++character-set.ck: $(ENCHILADA) + $(UTF8_LOCALE_MISSING) || { \ + sharp='#' && \ + ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ +@@ -882,48 +886,55 @@ + } + touch $@ + +-check_white_space: $(ENCHILADA) ++white-space.ck: $(ENCHILADA) + $(UTF8_LOCALE_MISSING) || { \ +- patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ ++ enchilada='$(ENCHILADA)' && \ ++ patfmt=' \t|[\f\r\v]' && pat=$$(printf "$$patfmt\\n") && \ + ! grep -En "$$pat|[$s]\$$" \ +- $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list); \ ++ $${enchilada%leap-seconds.list*} \ ++ $${enchilada#*leap-seconds.list}; \ + } + touch $@ + + PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+ + FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15} + +-check_name_lengths: $(TDATA_TO_CHECK) backzone +- ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ ++name-lengths.ck: $(TDATA_TO_CHECK) backzone ++ :;! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ + $(TDATA_TO_CHECK) backzone + touch $@ + ++mainguard.ck: main.zi ++ test '$(PACKRATLIST)' || \ ++ cat $(TDATA) $(PACKRATDATA) | diff -u - main.zi ++ touch $@ ++ + PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+ + STDOFF = [-+]?[0-9:.]+ + RULELESS_SAVE = (-|$(STDOFF)[sd]?) + RULELESS_SLASHED_ABBRS = \ + $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ + +-check_slashed_abbrs: $(TDATA_TO_CHECK) +- ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) ++slashed-abbrs.ck: $(TDATA_TO_CHECK) ++ :;! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) + touch $@ + + CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } + +-check_sorted: backward backzone ++sorted.ck: 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 ++ $(AWK) '/^Zone.*\// {print $$2}' backzone | LC_ALL=C sort -cu + touch $@ + +-check_back: checklinks.awk $(TDATA_TO_CHECK) ++back.ck: 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 ++links.ck: checklinks.awk tzdata.zi + $(AWK) \ + -v DATAFORM=$(DATAFORM) \ + -f checklinks.awk tzdata.zi +@@ -932,26 +943,36 @@ + # Check timestamps from now through 28 years from now, to make sure + # that zonenow.tab contains all sequences of planned timestamps, + # without any duplicate sequences. In theory this might require +-# 2800 years but that would take a long time to check. +-CHECK_NOW_TIMESTAMP = `./date +%s` ++# 2800+ years but that would take a long time to check. ++CHECK_NOW_TIMESTAMP = $$(./date +%s) + CHECK_NOW_FUTURE_YEARS = 28 +-CHECK_NOW_FUTURE_SECS = $(CHECK_NOW_FUTURE_YEARS) '*' 366 '*' 24 '*' 60 '*' 60 +-check_now: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab +- rm -fr $@.dir +- mkdir $@.dir +- ./zic -d $@.dir tzdata.zi ++CHECK_NOW_FUTURE_SECS = $(CHECK_NOW_FUTURE_YEARS) * 366 * 24 * 60 * 60 ++now.ck: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab ++ rm -fr $@d ++ mkdir $@d ++ ./zic -d $@d tzdata.zi + now=$(CHECK_NOW_TIMESTAMP) && \ +- future=`expr $(CHECK_NOW_FUTURE_SECS) + $$now` && \ ++ future=$$(($(CHECK_NOW_FUTURE_SECS) + $$now)) && \ + ./zdump -i -t $$now,$$future \ +- $$(find $$PWD/$@.dir/????*/ -type f) \ +- >$@.dir/zdump.tab ++ $$(find "$$PWD/$@d"/????*/ -type f) \ ++ >$@d/zdump-now.tab && \ ++ ./zdump -i -t 0,$$future \ ++ $$(find "$$PWD/$@d" -name Etc -prune \ ++ -o -type f ! -name '*.tab' -print) \ ++ >$@d/zdump-1970.tab + $(AWK) \ +- -v zdump_table=$@.dir/zdump.tab \ ++ -v zdump_table=$@d/zdump-now.tab \ + -f checknow.awk zonenow.tab +- rm -fr $@.dir ++ $(AWK) \ ++ 'BEGIN {print "-\t-\tUTC"} /^Zone/ {print "-\t-\t" $$2}' \ ++ $(PRIMARY_YDATA) backward factory | \ ++ $(AWK) \ ++ -v zdump_table=$@d/zdump-1970.tab \ ++ -f checknow.awk ++ rm -fr $@d + touch $@ + +-check_tables: checktab.awk $(YDATA) backward zone.tab zone1970.tab ++tables.ck: checktab.awk $(YDATA) backward zone.tab zone1970.tab + for tab in $(ZONETABLES); do \ + test "$$tab" = zone.tab && links='$(BACKWARD)' || links=''; \ + $(AWK) -f checktab.awk -v zone_table=$$tab $(YDATA) $$links \ +@@ -959,26 +980,24 @@ + done + touch $@ + +-check_tzs: $(TZS) $(TZS_NEW) ++tzs.ck: $(TZS) $(TZS_NEW) + if test -s $(TZS); then \ +- $(DIFF_TZS) $(TZS) $(TZS_NEW); \ ++ $(SETUP_DIFF_TZS) && $$DIFF_TZS $(TZS) $(TZS_NEW); \ + else \ + cp $(TZS_NEW) $(TZS); \ + fi + touch $@ + + check_web: $(CHECK_WEB_PAGES) +-check_theory.html: theory.html +-check_tz-art.html: tz-art.html +-check_tz-how-to.html: tz-how-to.html +-check_tz-link.html: tz-link.html +-check_theory.html check_tz-art.html check_tz-how-to.html check_tz-link.html: +- $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \ +- -F file=@$$(expr $@ : 'check_\(.*\)') -o $@.out && \ ++.SUFFIXES: .ck .html ++.html.ck: ++ { ! ($(CURL) --version) >/dev/null 2>&1 || \ ++ $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \ ++ -F file=@$<; } >$@.out && \ + test ! -s $@.out || { cat $@.out; exit 1; } + mv $@.out $@ + +-check_ziguard: rearguard.zi vanguard.zi ziguard.awk ++ziguard.ck: rearguard.zi vanguard.zi ziguard.awk + $(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \ + diff -u rearguard.zi - + $(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \ +@@ -987,36 +1006,35 @@ + + # Check that zishrink.awk does not alter the data, and that ziguard.awk + # preserves main-format data. +-check_zishrink: check_zishrink_posix check_zishrink_right +-check_zishrink_posix check_zishrink_right: \ ++check_zishrink: zishrink-posix.ck zishrink-right.ck ++zishrink-posix.ck zishrink-right.ck: \ + zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \ + $(TDATA) $(DATAFORM).zi tzdata.zi +- rm -fr $@.dir $@-t.dir $@-shrunk.dir +- mkdir $@.dir $@-t.dir $@-shrunk.dir ++ rm -fr $@d t-$@d shrunk-$@d ++ mkdir $@d t-$@d shrunk-$@d + case $@ in \ +- *_right) leap='-L leapseconds';; \ ++ *right*) leap='-L leapseconds';; \ + *) leap=;; \ + esac && \ +- $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \ +- $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \ ++ $(ZIC) $$leap -d $@d $(DATAFORM).zi && \ ++ $(ZIC) $$leap -d shrunk-$@d tzdata.zi && \ + case $(DATAFORM),$(PACKRATLIST) in \ + main,) \ +- $(ZIC) $$leap -d $@-t.dir $(TDATA) && \ ++ $(ZIC) $$leap -d t-$@d $(TDATA) && \ + $(AWK) '/^Rule/' $(TDATA) | \ +- $(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \ +- diff -r $@.dir $@-t.dir;; \ ++ $(ZIC) $$leap -d t-$@d - $(PACKRATDATA) && \ ++ diff -r $@d t-$@d;; \ + esac +- diff -r $@.dir $@-shrunk.dir +- rm -fr $@.dir $@-t.dir $@-shrunk.dir ++ diff -r $@d shrunk-$@d ++ rm -fr $@d t-$@d shrunk-$@d + touch $@ + + clean_misc: +- rm -fr check_*.dir typecheck_*.dir +- rm -f *.o *.out $(TIME_T_ALTERNATIVES) \ +- check_* core typecheck_* \ ++ rm -fr *.ckd *.dir ++ rm -f *.ck *.core *.o *.out core core.* \ + date tzdir.h tzselect version.h zdump zic libtz.a + clean: clean_misc +- rm -fr *.dir tzdb-*/ ++ rm -fr tzdb-*/ + rm -f *.zi $(TZS_NEW) + + maintainer-clean: clean +@@ -1027,7 +1045,7 @@ + names: + @echo $(ENCHILADA) + +-public: check check_public $(CHECK_TIME_T_ALTERNATIVES) \ ++public: check public.ck $(CHECK_TIME_T_ALTERNATIVES) \ + tarballs signatures + + date.1.txt: date.1 +@@ -1041,7 +1059,7 @@ + zic.8.txt: zic.8 + + $(MANTXTS): workman.sh +- LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out ++ LC_ALL=C sh workman.sh $(@:.txt=) >$@.out + mv $@.out $@ + + # Set file timestamps deterministically if possible, +@@ -1054,13 +1072,13 @@ + n=$$0 dest=$$1; shift; \ + <"$$dest" && \ + if test $$n != 0 && \ +- lsout=`ls -nt --time-style="+%s" "$$@" 2>/dev/null`; then \ ++ lsout=$$(ls -nt --time-style="+%s" "$$@" 2>/dev/null); then \ + set x $$lsout && \ +- timestamp=`expr $$7 + $$n` && \ ++ timestamp=$$(($$7 + $$n)) && \ + echo "+ touch -md @$$timestamp $$dest" && \ + touch -md @$$timestamp "$$dest"; \ + else \ +- newest=`ls -t "$$@" | sed 1q` && \ ++ newest=$$(ls -t "$$@" | sed 1q) && \ + echo "+ touch -mr $$newest $$dest" && \ + touch -mr "$$newest" "$$dest"; \ + fi' +@@ -1083,15 +1101,15 @@ + set-timestamps.out: $(EIGHT_YARDS) + rm -f $@ + if (type git) >/dev/null 2>&1 && \ +- files=`git ls-files $(EIGHT_YARDS)` && \ ++ files=$$(git ls-files $(EIGHT_YARDS)) && \ + touch -md @1 test.out; then \ + rm -f test.out && \ + for file in $$files; do \ +- if git diff --quiet $$file; then \ +- time=`TZ=UTC0 git log -1 \ ++ if git diff --quiet HEAD $$file; then \ ++ time=$$(TZ=UTC0 git log -1 \ + --format='tformat:%cd' \ + --date='format:%Y-%m-%dT%H:%M:%SZ' \ +- $$file` && \ ++ $$file) && \ + echo "+ touch -md $$time $$file" && \ + touch -md $$time $$file; \ + else \ +@@ -1100,8 +1118,8 @@ + done; \ + fi + $(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS) +- for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \ +- $(SET_TIMESTAMP_DEP) $$file.txt $$file workman.sh || \ ++ for file in $(MANTXTS); do \ ++ $(SET_TIMESTAMP_DEP) $$file $${file%.txt} workman.sh || \ + exit; \ + done + $(SET_TIMESTAMP_DEP) version $(VERSION_DEPS) +@@ -1114,30 +1132,29 @@ + # The zics below ensure that each data file can stand on its own. + # We also do an all-files run to catch links to links. + +-check_public: $(VERSION_DEPS) +- rm -fr public.dir +- mkdir public.dir +- ln $(VERSION_DEPS) public.dir +- cd public.dir \ ++public.ck: $(VERSION_DEPS) ++ rm -fr $@d ++ mkdir $@d ++ ln $(VERSION_DEPS) $@d ++ cd $@d \ + && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' TZDIR='$(TZDIR)' ALL +- for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi \ +- public.dir/vanguard.zi public.dir/main.zi \ +- public.dir/rearguard.zi; \ ++ for i in $(TDATA_TO_CHECK) \ ++ tzdata.zi vanguard.zi main.zi rearguard.zi; \ + do \ +- public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \ ++ $@d/zic -v -d $@d/zoneinfo $@d/$$i || exit; \ + done +- public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK) ++ $@d/zic -v -d $@d/zoneinfo-all $(TDATA_TO_CHECK) + : + : Also check 'backzone' syntax. +- rm public.dir/main.zi +- cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi +- public.dir/zic -d public.dir/zoneinfo main.zi +- rm public.dir/main.zi +- cd public.dir && \ ++ rm $@d/main.zi ++ cd $@d && $(MAKE) PACKRATDATA=backzone main.zi ++ $@d/zic -d $@d/zoneinfo main.zi ++ rm $@d/main.zi ++ cd $@d && \ + $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi +- public.dir/zic -d public.dir/zoneinfo main.zi ++ $@d/zic -d $@d/zoneinfo main.zi + : +- rm -fr public.dir ++ rm -fr $@d + touch $@ + + # Check that the code works under various alternative +@@ -1145,46 +1162,47 @@ + check_time_t_alternatives: $(TIME_T_ALTERNATIVES) + $(TIME_T_ALTERNATIVES_TAIL): $(TIME_T_ALTERNATIVES_HEAD) + $(TIME_T_ALTERNATIVES): $(VERSION_DEPS) +- rm -fr $@.dir +- mkdir $@.dir +- ln $(VERSION_DEPS) $@.dir ++ rm -fr $@d ++ mkdir $@d ++ ln $(VERSION_DEPS) $@d + case $@ in \ +- int*32_t) range=-2147483648,2147483648;; \ ++ *32_t*) range=-2147483648,2147483648;; \ + u*) range=0,4294967296;; \ + *) range=-4294967296,4294967296;; \ + esac && \ +- wd=`pwd` && \ +- zones=`$(AWK) '/^[^#]/ { print $$3 }' /dev/null; then \ + quiet_option='-q'; \ + else \ + quiet_option=''; \ + fi && \ +- diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD).dir/etc \ +- $@.dir/etc && \ ++ diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD)d/etc \ ++ $@d/etc && \ + diff $$quiet_option -r \ +- $(TIME_T_ALTERNATIVES_HEAD).dir/usr/share \ +- $@.dir/usr/share; \ ++ $(TIME_T_ALTERNATIVES_HEAD)d/usr/share \ ++ $@d/usr/share; \ + } + touch $@ + +@@ -1199,7 +1217,7 @@ + tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \ + signatures rearguard_signatures traditional_signatures: \ + version set-timestamps.out rearguard.zi vanguard.zi +- VERSION=`cat version` && \ ++ read -r VERSION $@.out + mv $@.out $@ + + tzdata$(VERSION).tar.gz: set-timestamps.out +- LC_ALL=C && export LC_ALL && \ +- tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \ ++ $(SETUP_TAR) && \ ++ $$TAR -cf - $(TZDATA_DIST) | \ + gzip $(GZIPFLAGS) >$@.out + mv $@.out $@ + +@@ -1251,9 +1269,9 @@ + : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. + $(CREATE_EMPTY) $@.dir/pacificnew + touch -mr version $@.dir/version +- LC_ALL=C && export LC_ALL && \ ++ $(SETUP_TAR) && \ + (cd $@.dir && \ +- tar $(TARFLAGS) -cf - \ ++ $$TAR -cf - \ + $(TZDATA_DIST) pacificnew | \ + gzip $(GZIPFLAGS)) >$@.out + mv $@.out $@ +@@ -1269,9 +1287,14 @@ + rm -fr $@.dir + mkdir $@.dir + : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. ++ if test $(DATAFORM) = vanguard; then \ ++ pacificnew=; \ ++ else \ ++ pacificnew=pacificnew; \ ++ fi && \ + cd $@.dir && \ + $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \ +- `test $(DATAFORM) = vanguard || echo pacificnew` ++ $$pacificnew + (grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \ + >$@.dir/etcetera + touch -mr tzdata.zi $@.dir/etcetera +@@ -1291,9 +1314,9 @@ + test -f $@.dir/$$file || links="$$links $$file"; \ + done && \ + ln $$links $@.dir +- LC_ALL=C && export LC_ALL && \ ++ $(SETUP_TAR) && \ + (cd $@.dir && \ +- tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >$@.out ++ $$TAR -cf - * | gzip $(GZIPFLAGS)) >$@.out + mv $@.out $@ + + tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out +@@ -1301,8 +1324,8 @@ + mkdir tzdb-$(VERSION) + ln $(ENCHILADA) tzdb-$(VERSION) + $(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/* +- LC_ALL=C && export LC_ALL && \ +- tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out ++ $(SETUP_TAR) && \ ++ $$TAR -cf - tzdb-$(VERSION) | lzip -9 >$@.out + mv $@.out $@ + + tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz +@@ -1313,41 +1336,40 @@ + $(GPG) --armor --detach-sign $? + + TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T +-typecheck: typecheck_long_long typecheck_unsigned +-typecheck_long_long typecheck_unsigned: $(VERSION_DEPS) +- rm -fr $@.dir +- mkdir $@.dir +- ln $(VERSION_DEPS) $@.dir +- cd $@.dir && \ ++typecheck: long-long.ck unsigned.ck ++long-long.ck unsigned.ck: $(VERSION_DEPS) ++ rm -fr $@d ++ mkdir $@d ++ ln $(VERSION_DEPS) $@d ++ cd $@d && \ + case $@ in \ +- *_long_long) i="long long";; \ +- *_unsigned ) i="unsigned" ;; \ ++ long-long.*) i="long long";; \ ++ unsigned.* ) i="unsigned" ;; \ + esac && \ +- typecheck_cflags='' && \ + $(MAKE) \ + CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \ +- TOPDIR="`pwd`" \ ++ TOPDIR="$$PWD" \ + install +- $@.dir/zdump -i -c 1970,1971 Europe/Rome ++ $@d/zdump -i -c 1970,1971 Europe/Rome + touch $@ + + zonenames: tzdata.zi + @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi + +-asctime.o: private.h tzfile.h ++asctime.o: private.h + date.o: private.h + difftime.o: private.h +-localtime.o: private.h tzfile.h tzdir.h +-strftime.o: private.h tzfile.h +-zdump.o: version.h +-zic.o: private.h tzfile.h tzdir.h version.h ++localtime.o: private.h tzdir.h tzfile.h ++strftime.o: localtime.c private.h tzdir.h tzfile.h ++zdump.o: private.h version.h ++zic.o: private.h tzdir.h tzfile.h version.h + + .PHONY: ALL INSTALL all + .PHONY: check check_mild check_time_t_alternatives + .PHONY: check_web check_zishrink + .PHONY: clean clean_misc commit-leap-seconds.list dummy.zd + .PHONY: fetch-leap-seconds.list force_tzs +-.PHONY: install install_data maintainer-clean names ++.PHONY: install maintainer-clean names + .PHONY: posix_only posix_right public + .PHONY: rearguard_signatures rearguard_signatures_version + .PHONY: rearguard_tarballs rearguard_tarballs_version +--- contrib/tzdata/NEWS.orig ++++ contrib/tzdata/NEWS +@@ -1,5 +1,203 @@ + News for the tz database + ++Release 2025a - 2025-01-15 10:47:24 -0800 ++ ++ Briefly: ++ Paraguay adopts permanent -03 starting spring 2024. ++ Improve pre-1991 data for the Philippines. ++ Etc/Unknown is now reserved. ++ ++ Changes to future timestamps ++ ++ Paraguay will stop changing its clocks after the spring-forward ++ transition on 2024-10-06, so it is now permanently at -03. ++ (Thanks to Heitor David Pinto and Even Scharning.) ++ This affects timestamps starting 2025-03-22, as well as the ++ obsolescent tm_isdst flags starting 2024-10-15. ++ ++ Changes to past timestamps ++ ++ Correct timestamps for the Philippines before 1900, and from 1937 ++ through 1990. (Thanks to P Chan for the heads-up and citations.) ++ This includes adjusting local mean time before 1899; fixing ++ transitions in September 1899, January 1937, and June 1954; adding ++ transitions in December 1941, November 1945, March and September ++ 1977, and May and July 1990; and removing incorrect transitions in ++ March and September 1978. ++ ++ Changes to data ++ ++ Add zone1970.tab lines for the Concordia and Eyre Bird Observatory ++ research stations. (Thanks to Derick Rethans and Jule Dabars.) ++ ++ Changes to code ++ ++ strftime %s now generates the correct numeric string even when the ++ represented number does not fit into time_t. This is better than ++ generating the numeric equivalent of (time_t) -1, as strftime did ++ in TZDB releases 96a (when %s was introduced) through 2020a and in ++ releases 2022b through 2024b. It is also better than failing and ++ returning 0, as strftime did in releases 2020b through 2022a. ++ ++ strftime now outputs an invalid conversion specifier as-is, ++ instead of eliding the leading '%', which confused debugging. ++ ++ An invalid TZ now generates the time zone abbreviation "-00", not ++ "UTC", to help the user see that an error has occurred. (Thanks ++ to Arthur David Olson for suggesting a "wrong result".) ++ ++ mktime and timeoff no longer incorrectly fail merely because a ++ struct tm component near INT_MIN or INT_MAX overflows when a ++ lower-order component carries into it. ++ ++ TZNAME_MAXIMUM, the maximum number of bytes in a proleptic TZ ++ string's time zone abbreviation, now defaults to 254 not 255. ++ This helps reduce the size of internal state from 25480 to 21384 ++ on common platforms. This change should not be a problem, as ++ nobody uses such long "abbreviations" and the longstanding tzcode ++ maximum was 16 until release 2023a. For those who prefer no ++ arbitrary limits, you can now specify TZNAME_MAXIMUM values up to ++ PTRDIFF_MAX, a limit forced by C anyway; formerly tzcode silently ++ misbehaved unless TZNAME_MAXIMUM was less than INT_MAX. ++ ++ tzset and related functions no longer leak a file descriptor if ++ another thread forks or execs at about the same time and if the ++ platform has O_CLOFORK and O_CLOEXEC respectively. Also, the ++ functions no longer let a TZif file become a controlling terminal. ++ ++ 'zdump -' now reads TZif data from /dev/stdin. ++ (From a question by Arthur David Olson.) ++ ++ Changes to documentation ++ ++ The name Etc/Unknown is now reserved: it will not be used by TZDB. ++ This is for compatibility with CLDR, which uses the string ++ "Etc/Unknown" for an unknown or invalid timezone. (Thanks to ++ Justin Grant, Mark Davis, and Guy Harris.) ++ ++ Cite Internet RFC 9636, which obsoletes RFC 8536 for TZif format. ++ ++ ++Release 2024b - 2024-09-04 12:27:47 -0700 ++ ++ Briefly: ++ Improve historical data for Mexico, Mongolia, and Portugal. ++ System V names are now obsolescent. ++ The main data form now uses %z. ++ The code now conforms to RFC 8536 for early timestamps. ++ Support POSIX.1-2024, which removes asctime_r and ctime_r. ++ Assume POSIX.2-1992 or later for shell scripts. ++ SUPPORT_C89 now defaults to 1. ++ ++ Changes to past timestamps ++ ++ Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than ++ being a separate Zone with differing behavior before April 2008. ++ This seems better given our wildly conflicting information about ++ Mongolia's time zone history. (Thanks to Heitor David Pinto.) ++ ++ Historical transitions for Mexico have been updated based on ++ official Mexican decrees. The affected timestamps occur during ++ the years 1921-1927, 1931, 1945, 1949-1970, and 1981-1997. ++ The affected zones are America/Bahia_Banderas, America/Cancun, ++ America/Chihuahua, America/Ciudad_Juarez, America/Hermosillo, ++ America/Mazatlan, America/Merida, America/Mexico_City, ++ America/Monterrey, America/Ojinaga, and America/Tijuana. ++ (Thanks to Heitor David Pinto.) ++ ++ Historical transitions for Portugal, represented by Europe/Lisbon, ++ Atlantic/Azores, and Atlantic/Madeira, have been updated based on a ++ close reading of old Portuguese legislation, replacing previous data ++ mainly originating from Whitman and Shanks & Pottenger. These ++ changes affect a few transitions in 1917-1921, 1924, and 1940 ++ throughout these regions by a few hours or days, and various ++ timestamps between 1977 and 1993 depending on the region. In ++ particular, the Azores and Madeira did not observe DST from 1977 to ++ 1981. Additionally, the adoption of standard zonal time in former ++ Portuguese colonies have been adjusted: Africa/Maputo in 1909, and ++ Asia/Dili by 22 minutes at the start of 1912. ++ (Thanks to Tim Parenti.) ++ ++ Changes to past tm_isdst flags ++ ++ The period from 1966-04-03 through 1966-10-02 in Portugal is now ++ modeled as DST, to more closely reflect how contemporaneous changes ++ in law entered into force. ++ ++ Changes to data ++ ++ Names present only for compatibility with UNIX System V ++ (last released in the 1990s) have been moved to 'backward'. ++ These names, which for post-1970 timestamps mostly just duplicate ++ data of geographical names, were confusing downstream uses. ++ Names moved to 'backward' are now links to geographical names. ++ This affects behavior for TZ='EET' for some pre-1981 timestamps, ++ for TZ='CET' for some pre-1947 timestamps, and for TZ='WET' for ++ some pre-1996 timestamps. Also, TZ='MET' now behaves like ++ TZ='CET' and so uses the abbreviation "CET" rather than "MET". ++ Those needing the previous TZDB behavior, which does not match any ++ real-world clocks, can find the old entries in 'backzone'. ++ (Problem reported by Justin Grant.) ++ ++ The main source files' time zone abbreviations now use %z, ++ supported by zic since release 2015f and used in vanguard form ++ since release 2022b. For example, America/Sao_Paulo now contains ++ the zone continuation line "-3:00 Brazil %z", which is less error ++ prone than the old "-3:00 Brazil -03/-02". This does not change ++ the represented data: the generated TZif files are unchanged. ++ Rearguard form still avoids %z, to support obsolescent parsers. ++ ++ Asia/Almaty has been removed from zonenow.tab as it now agrees ++ with Asia/Tashkent for future timestamps, due to Kazakhstan's ++ 2024-02-29 time zone change. Similarly, America/Scoresbysund ++ has been removed, as it now agrees with America/Nuuk due to ++ its 2024-03-31 time zone change. ++ ++ Changes to code ++ ++ localtime.c now always uses a TZif file's time type 0 to handle ++ timestamps before the file's first transition. Formerly, ++ localtime.c sometimes inferred a different time type, in order to ++ handle problematic data generated by zic 2018e or earlier. As it ++ is now safe to assume more recent versions of zic, there is no ++ longer a pressing need to fail to conform RFC 8536 section 3.2, ++ which requires using time type 0 in this situation. This change ++ does not affect behavior when reading TZif files generated by zic ++ 2018f and later. ++ ++ POSIX.1-2024 removes asctime_r and ctime_r and does not let ++ libraries define them, so remove them except when needed to ++ conform to earlier POSIX. These functions are dangerous as they ++ can overrun user buffers. If you still need them, add ++ -DSUPPORT_POSIX2008 to CFLAGS. ++ ++ The SUPPORT_C89 option now defaults to 1 instead of 0, fixing a ++ POSIX-conformance bug introduced in 2023a. ++ ++ tzselect now supports POSIX.1-2024 proleptic TZ strings. Also, it ++ assumes POSIX.2-1992 or later, as practical porting targets now ++ all support that, and it uses some features from POSIX.1-2024 if ++ available. ++ ++ Changes to build procedure ++ ++ 'make check' no longer requires curl and Internet access. ++ ++ The build procedure now assumes POSIX.2-1992 or later, to simplify ++ maintenance. To build on Solaris 10, the only extant system still ++ defaulting to pre-POSIX, prepend /usr/xpg4/bin to PATH. ++ ++ Changes to documentation ++ ++ The documentation now reflects POSIX.1-2024. ++ ++ Changes to commentary ++ ++ Commentary about historical transitions in Portugal and her former ++ colonies has been expanded with links to relevant legislation. ++ (Thanks to Tim Parenti.) ++ ++ + Release 2024a - 2024-02-01 09:28:56 -0800 + + Briefly: +@@ -84,10 +282,10 @@ + changing its time zone from -01/+00 to -02/-01 at the same moment + as the spring-forward transition. Its clocks will therefore not + spring forward as previously scheduled. The time zone change +- reverts to its common practice before 1981. ++ reverts to its common practice before 1981. (Thanks to Jule Dabars.) + + Fix predictions for DST transitions in Palestine in 2072-2075, +- correcting a typo introduced in 2023a. ++ correcting a typo introduced in 2023a. (Thanks to Jule Dabars.) + + Changes to past and future timestamps + +@@ -161,7 +359,7 @@ + * It uses the special .POSIX target. + * It quotes special characters more carefully. + * It no longer mishandles builds in an ISO 8859 locale. +- Due to the CC changes, TZDIR is now #defined in a file tzfile.h ++ Due to the CC changes, TZDIR is now #defined in a file tzdir.h + built by 'make', not in a $(CC) -D option. Also, TZDEFAULT is + now treated like TZDIR as they have similar roles. + +@@ -283,7 +481,7 @@ + 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. ++ Note that there are plans to discontinue leap seconds by 2035. + + + Release 2022g - 2022-11-29 08:58:31 -0800 +--- contrib/tzdata/africa.orig ++++ contrib/tzdata/africa +@@ -103,17 +103,16 @@ + + # Cape Verde / Cabo Verde + # +-# From Paul Eggert (2018-02-16): +-# Shanks gives 1907 for the transition to +02. +-# For now, ignore that and follow the 1911-05-26 Portuguese decree +-# (see Europe/Lisbon). ++# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16): ++# For timestamps before independence, see commentary for Europe/Lisbon. ++# Shanks gives 1907 instead for the transition to -02. + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia +- -2:00 - -02 1942 Sep +- -2:00 1:00 -01 1945 Oct 15 +- -2:00 - -02 1975 Nov 25 2:00 +- -1:00 - -01 ++ -2:00 - %z 1942 Sep ++ -2:00 1:00 %z 1945 Oct 15 ++ -2:00 - %z 1975 Nov 25 2:00 ++ -1:00 - %z + + # Chad + # Zone NAME STDOFF RULES FORMAT [UNTIL] +@@ -345,14 +344,12 @@ + + # Guinea-Bissau + # +-# From Paul Eggert (2018-02-16): +-# Shanks gives 1911-05-26 for the transition to WAT, +-# evidently confusing the date of the Portuguese decree +-# (see Europe/Lisbon) with the date that it took effect. ++# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16): ++# For timestamps before independence, see commentary for Europe/Lisbon. + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u +- -1:00 - -01 1975 ++ -1:00 - %z 1975 + 0:00 - GMT + + # Comoros +@@ -417,10 +414,10 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Africa/Nairobi 2:27:16 - LMT 1908 May +- 2:30 - +0230 1928 Jun 30 24:00 ++ 2:30 - %z 1928 Jun 30 24:00 + 3:00 - EAT 1930 Jan 4 24:00 +- 2:30 - +0230 1936 Dec 31 24:00 +- 2:45 - +0245 1942 Jul 31 24:00 ++ 2:30 - %z 1936 Dec 31 24:00 ++ 2:45 - %z 1942 Jul 31 24:00 + 3:00 - EAT + + # Liberia +@@ -591,7 +588,7 @@ + Rule Mauritius 2009 only - Mar lastSun 2:00 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis +- 4:00 Mauritius +04/+05 ++ 4:00 Mauritius %z + # Agalega Is, Rodriguez + # no information; probably like Indian/Mauritius + +@@ -1071,10 +1068,10 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 +- 0:00 Morocco +00/+01 1984 Mar 16 +- 1:00 - +01 1986 +- 0:00 Morocco +00/+01 2018 Oct 28 3:00 +- 1:00 Morocco +01/+00 ++ 0:00 Morocco %z 1984 Mar 16 ++ 1:00 - %z 1986 ++ 0:00 Morocco %z 2018 Oct 28 3:00 ++ 1:00 Morocco %z + + # Western Sahara + # +@@ -1088,9 +1085,9 @@ + # since most of it was then controlled by Morocco. + + Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún +- -1:00 - -01 1976 Apr 14 +- 0:00 Morocco +00/+01 2018 Oct 28 3:00 +- 1:00 Morocco +01/+00 ++ -1:00 - %z 1976 Apr 14 ++ 0:00 Morocco %z 2018 Oct 28 3:00 ++ 1:00 Morocco %z + + # Botswana + # Burundi +@@ -1101,13 +1098,27 @@ + # Zambia + # Zimbabwe + # +-# Shanks gives 1903-03-01 for the transition to CAT. +-# Perhaps the 1911-05-26 Portuguese decree +-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +-# merely made it official? ++# From Tim Parenti (2024-07-01): ++# For timestamps before Mozambique's independence, see commentary for ++# Europe/Lisbon. ++# ++# From Paul Eggert (2024-05-24): ++# The London Gazette, 1903-04-03, page 2245, says that ++# as of 1903-03-03 a time ball at the port of Lourenço Marques ++# (as Maputo was then called) was dropped daily at 13:00:00 LMT, ++# corresponding to 22:49:41.7 GMT, so local time was +02:10:18.3. ++# Conversely, the newspaper South Africa, 1909-02-09, page 321, ++# says the port had just installed an apparatus that communicated ++# "from the controlling clock in the new Observatory at Reuben Point ... ++# exact mean South African time, i.e., 30 deg., or 2 hours East of Greenwich". ++# Although Shanks gives 1903-03-01 for the transition to CAT, ++# evidently the port transitioned to CAT after 1903-03-03 but before ++# the Portuguese legal transition of 1912-01-01 (see Europe/Lisbon commentary). ++# For lack of better info, list 1909 as the transition date. + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Africa/Maputo 2:10:20 - LMT 1903 Mar ++ #STDOFF 2:10:18.3 ++Zone Africa/Maputo 2:10:18 - LMT 1909 + 2:00 - CAT + + # Namibia +@@ -1172,7 +1183,7 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 +- 1:30 - +0130 1903 Mar ++ 1:30 - %z 1903 Mar + 2:00 - SAST 1942 Sep 20 2:00 + 2:00 1:00 SAST 1943 Mar 21 2:00 + 2:00 - SAST 1990 Mar 21 # independence +@@ -1260,7 +1271,7 @@ + Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 + 0:00 - GMT 1908 Jul 1 + 0:13:35 - LMT 1914 Jan 1 +- 0:30 - +0030 1919 Sep 1 ++ 0:30 - %z 1919 Sep 1 + 1:00 - WAT + + # São Tomé and Príncipe +--- contrib/tzdata/antarctica.orig ++++ contrib/tzdata/antarctica +@@ -87,34 +87,34 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Antarctica/Casey 0 - -00 1969 +- 8:00 - +08 2009 Oct 18 2:00 +- 11:00 - +11 2010 Mar 5 2:00 +- 8:00 - +08 2011 Oct 28 2:00 +- 11:00 - +11 2012 Feb 21 17:00u +- 8:00 - +08 2016 Oct 22 +- 11:00 - +11 2018 Mar 11 4:00 +- 8:00 - +08 2018 Oct 7 4:00 +- 11:00 - +11 2019 Mar 17 3:00 +- 8:00 - +08 2019 Oct 4 3:00 +- 11:00 - +11 2020 Mar 8 3:00 +- 8:00 - +08 2020 Oct 4 0:01 +- 11:00 - +11 2021 Mar 14 0:00 +- 8:00 - +08 2021 Oct 3 0:01 +- 11:00 - +11 2022 Mar 13 0:00 +- 8:00 - +08 2022 Oct 2 0:01 +- 11:00 - +11 2023 Mar 9 3:00 +- 8:00 - +08 ++ 8:00 - %z 2009 Oct 18 2:00 ++ 11:00 - %z 2010 Mar 5 2:00 ++ 8:00 - %z 2011 Oct 28 2:00 ++ 11:00 - %z 2012 Feb 21 17:00u ++ 8:00 - %z 2016 Oct 22 ++ 11:00 - %z 2018 Mar 11 4:00 ++ 8:00 - %z 2018 Oct 7 4:00 ++ 11:00 - %z 2019 Mar 17 3:00 ++ 8:00 - %z 2019 Oct 4 3:00 ++ 11:00 - %z 2020 Mar 8 3:00 ++ 8:00 - %z 2020 Oct 4 0:01 ++ 11:00 - %z 2021 Mar 14 0:00 ++ 8:00 - %z 2021 Oct 3 0:01 ++ 11:00 - %z 2022 Mar 13 0:00 ++ 8:00 - %z 2022 Oct 2 0:01 ++ 11:00 - %z 2023 Mar 9 3:00 ++ 8:00 - %z + Zone Antarctica/Davis 0 - -00 1957 Jan 13 +- 7:00 - +07 1964 Nov ++ 7:00 - %z 1964 Nov + 0 - -00 1969 Feb +- 7:00 - +07 2009 Oct 18 2:00 +- 5:00 - +05 2010 Mar 10 20:00u +- 7:00 - +07 2011 Oct 28 2:00 +- 5:00 - +05 2012 Feb 21 20:00u +- 7:00 - +07 ++ 7:00 - %z 2009 Oct 18 2:00 ++ 5:00 - %z 2010 Mar 10 20:00u ++ 7:00 - %z 2011 Oct 28 2:00 ++ 5:00 - %z 2012 Feb 21 20:00u ++ 7:00 - %z + Zone Antarctica/Mawson 0 - -00 1954 Feb 13 +- 6:00 - +06 2009 Oct 18 2:00 +- 5:00 - +05 ++ 6:00 - %z 2009 Oct 18 2:00 ++ 5:00 - %z + # References: + # Casey Weather (1998-02-26) + # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html +@@ -174,6 +174,8 @@ + + # France & Italy - year-round base + # Concordia, -750600+1232000, since 2005 ++# https://en.wikipedia.org/wiki/Concordia_Station ++# Can use Asia/Singapore, which it has agreed with since inception. + + # Germany - year-round base + # Neumayer III, -704080-0081602, since 2009 +@@ -290,10 +292,10 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Antarctica/Vostok 0 - -00 1957 Dec 16 +- 7:00 - +07 1994 Feb ++ 7:00 - %z 1994 Feb + 0 - -00 1994 Nov +- 7:00 - +07 2023 Dec 18 2:00 +- 5:00 - +05 ++ 7:00 - %z 2023 Dec 18 2:00 ++ 5:00 - %z + + # S Africa - year-round bases + # Marion Island, -4653+03752 +@@ -326,7 +328,7 @@ + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Antarctica/Rothera 0 - -00 1976 Dec 1 +- -3:00 - -03 ++ -3:00 - %z + + # Uruguay - year round base + # Artigas, King George Island, -621104-0585107 +--- contrib/tzdata/asia.orig ++++ contrib/tzdata/asia +@@ -83,8 +83,8 @@ + # Afghanistan + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Kabul 4:36:48 - LMT 1890 +- 4:00 - +04 1945 +- 4:30 - +0430 ++ 4:00 - %z 1945 ++ 4:30 - %z + + # Armenia + # From Paul Eggert (2006-03-22): +@@ -116,12 +116,12 @@ + Rule Armenia 2011 only - Oct lastSun 2:00s 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 +- 3:00 - +03 1957 Mar +- 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s +- 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s +- 4:00 - +04 1997 +- 4:00 RussiaAsia +04/+05 2011 +- 4:00 Armenia +04/+05 ++ 3:00 - %z 1957 Mar ++ 4:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 3:00 RussiaAsia %z 1995 Sep 24 2:00s ++ 4:00 - %z 1997 ++ 4:00 RussiaAsia %z 2011 ++ 4:00 Armenia %z + + # Azerbaijan + +@@ -142,12 +142,12 @@ + Rule Azer 1997 2015 - Oct lastSun 5:00 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Baku 3:19:24 - LMT 1924 May 2 +- 3:00 - +03 1957 Mar +- 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s +- 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s +- 4:00 - +04 1996 +- 4:00 EUAsia +04/+05 1997 +- 4:00 Azer +04/+05 ++ 3:00 - %z 1957 Mar ++ 4:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 3:00 RussiaAsia %z 1992 Sep lastSun 2:00s ++ 4:00 - %z 1996 ++ 4:00 EUAsia %z 1997 ++ 4:00 Azer %z + + # Bangladesh + # From Alexander Krivenyshev (2009-05-13): +@@ -228,17 +228,17 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Dhaka 6:01:40 - LMT 1890 + 5:53:20 - HMT 1941 Oct # Howrah Mean Time? +- 6:30 - +0630 1942 May 15 +- 5:30 - +0530 1942 Sep +- 6:30 - +0630 1951 Sep 30 +- 6:00 - +06 2009 +- 6:00 Dhaka +06/+07 ++ 6:30 - %z 1942 May 15 ++ 5:30 - %z 1942 Sep ++ 6:30 - %z 1951 Sep 30 ++ 6:00 - %z 2009 ++ 6:00 Dhaka %z + + # Bhutan + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Thimphu 5:58:36 - LMT 1947 Aug 15 # or Thimbu +- 5:30 - +0530 1987 Oct +- 6:00 - +06 ++ 5:30 - %z 1987 Oct ++ 6:00 - %z + + # British Indian Ocean Territory + # Whitman and the 1995 CIA time zone map say 5:00, but the +@@ -248,8 +248,8 @@ + # then contained the Chagos Archipelago). + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Indian/Chagos 4:49:40 - LMT 1907 +- 5:00 - +05 1996 +- 6:00 - +06 ++ 5:00 - %z 1996 ++ 6:00 - %z + + # Cocos (Keeling) Islands + # Myanmar (Burma) +@@ -265,9 +265,9 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon + 6:24:47 - RMT 1920 # Rangoon local time +- 6:30 - +0630 1942 May +- 9:00 - +09 1945 May 3 +- 6:30 - +0630 ++ 6:30 - %z 1942 May ++ 9:00 - %z 1945 May 3 ++ 6:30 - %z + + # China + +@@ -656,7 +656,7 @@ + # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi + # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) + Zone Asia/Urumqi 5:50:20 - LMT 1928 +- 6:00 - +06 ++ 6:00 - %z + + # Hong Kong + +@@ -1114,7 +1114,7 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Macau 7:34:10 - LMT 1904 Oct 30 + 8:00 - CST 1941 Dec 21 23:00 +- 9:00 Macau +09/+10 1945 Sep 30 24:00 ++ 9:00 Macau %z 1945 Sep 30 24:00 + 8:00 Macau C%sT + + +@@ -1157,7 +1157,7 @@ + Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 + 2:00 Cyprus EE%sT 1998 Sep + 2:00 EUAsia EE%sT 2016 Sep 8 +- 3:00 - +03 2017 Oct 29 1:00u ++ 3:00 - %z 2017 Oct 29 1:00u + 2:00 EUAsia EE%sT + + # Georgia +@@ -1198,18 +1198,25 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Tbilisi 2:59:11 - LMT 1880 + 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time +- 3:00 - +03 1957 Mar +- 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s +- 3:00 RussiaAsia +03/+04 1992 +- 3:00 E-EurAsia +03/+04 1994 Sep lastSun +- 4:00 E-EurAsia +04/+05 1996 Oct lastSun +- 4:00 1:00 +05 1997 Mar lastSun +- 4:00 E-EurAsia +04/+05 2004 Jun 27 +- 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00 +- 4:00 - +04 ++ 3:00 - %z 1957 Mar ++ 4:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 3:00 RussiaAsia %z 1992 ++ 3:00 E-EurAsia %z 1994 Sep lastSun ++ 4:00 E-EurAsia %z 1996 Oct lastSun ++ 4:00 1:00 %z 1997 Mar lastSun ++ 4:00 E-EurAsia %z 2004 Jun 27 ++ 3:00 RussiaAsia %z 2005 Mar lastSun 2:00 ++ 4:00 - %z + + # East Timor + ++# From Tim Parenti (2024-07-01): ++# The 1912-01-01 transition occurred at 00:00 new time, per the 1911-05-24 ++# Portuguese decree (see Europe/Lisbon). A provision in article 5(c) of the ++# decree prescribed that Timor "will keep counting time in harmony with ++# neighboring foreign colonies, [for] as long as they do not adopt the time ++# that belongs to them in [the Washington Convention] system." ++ + # See Indonesia for the 1945 transition. + + # From João Carrascalão, brother of the former governor of East Timor, in +@@ -1233,11 +1240,11 @@ + # midnight on Saturday, September 16. + + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Asia/Dili 8:22:20 - LMT 1912 Jan 1 +- 8:00 - +08 1942 Feb 21 23:00 +- 9:00 - +09 1976 May 3 +- 8:00 - +08 2000 Sep 17 0:00 +- 9:00 - +09 ++Zone Asia/Dili 8:22:20 - LMT 1911 Dec 31 16:00u ++ 8:00 - %z 1942 Feb 21 23:00 ++ 9:00 - %z 1976 May 3 ++ 8:00 - %z 2000 Sep 17 0:00 ++ 9:00 - %z + + # India + +@@ -1303,9 +1310,9 @@ + 5:53:20 - HMT 1870 # Howrah Mean Time? + 5:21:10 - MMT 1906 Jan 1 # Madras local time + 5:30 - IST 1941 Oct +- 5:30 1:00 +0630 1942 May 15 ++ 5:30 1:00 %z 1942 May 15 + 5:30 - IST 1942 Sep +- 5:30 1:00 +0630 1945 Oct 15 ++ 5:30 1:00 %z 1945 Oct 15 + 5:30 - IST + # Since 1970 the following are like Asia/Kolkata: + # Andaman Is +@@ -1357,33 +1364,33 @@ + # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, + # but this must be a typo. + 7:07:12 - BMT 1923 Dec 31 16:40u # Batavia +- 7:20 - +0720 1932 Nov +- 7:30 - +0730 1942 Mar 23 +- 9:00 - +09 1945 Sep 23 +- 7:30 - +0730 1948 May +- 8:00 - +08 1950 May +- 7:30 - +0730 1964 ++ 7:20 - %z 1932 Nov ++ 7:30 - %z 1942 Mar 23 ++ 9:00 - %z 1945 Sep 23 ++ 7:30 - %z 1948 May ++ 8:00 - %z 1950 May ++ 7:30 - %z 1964 + 7:00 - WIB + # west and central Borneo + Zone Asia/Pontianak 7:17:20 - LMT 1908 May + 7:17:20 - PMT 1932 Nov # Pontianak MT +- 7:30 - +0730 1942 Jan 29 +- 9:00 - +09 1945 Sep 23 +- 7:30 - +0730 1948 May +- 8:00 - +08 1950 May +- 7:30 - +0730 1964 ++ 7:30 - %z 1942 Jan 29 ++ 9:00 - %z 1945 Sep 23 ++ 7:30 - %z 1948 May ++ 8:00 - %z 1950 May ++ 7:30 - %z 1964 + 8:00 - WITA 1988 Jan 1 + 7:00 - WIB + # Sulawesi, Lesser Sundas, east and south Borneo + Zone Asia/Makassar 7:57:36 - LMT 1920 + 7:57:36 - MMT 1932 Nov # Macassar MT +- 8:00 - +08 1942 Feb 9 +- 9:00 - +09 1945 Sep 23 ++ 8:00 - %z 1942 Feb 9 ++ 9:00 - %z 1945 Sep 23 + 8:00 - WITA + # Maluku Islands, West Papua, Papua + Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov +- 9:00 - +09 1944 Sep 1 +- 9:30 - +0930 1964 ++ 9:00 - %z 1944 Sep 1 ++ 9:30 - %z 1964 + 9:00 - WIT + + # Iran +@@ -1619,9 +1626,9 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Tehran 3:25:44 - LMT 1916 + 3:25:44 - TMT 1935 Jun 13 # Tehran Mean Time +- 3:30 Iran +0330/+0430 1977 Oct 20 24:00 +- 4:00 Iran +04/+05 1979 +- 3:30 Iran +0330/+0430 ++ 3:30 Iran %z 1977 Oct 20 24:00 ++ 4:00 Iran %z 1979 ++ 3:30 Iran %z + + + # Iraq +@@ -1664,8 +1671,8 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Baghdad 2:57:40 - LMT 1890 + 2:57:36 - BMT 1918 # Baghdad Mean Time? +- 3:00 - +03 1982 May +- 3:00 Iraq +03/+04 ++ 3:00 - %z 1982 May ++ 3:00 Iraq %z + + + ############################################################################### +@@ -2262,7 +2269,7 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Amman 2:23:44 - LMT 1931 + 2:00 Jordan EE%sT 2022 Oct 28 0:00s +- 3:00 - +03 ++ 3:00 - %z + + + # Kazakhstan +@@ -2473,88 +2480,88 @@ + # Almaty (formerly Alma-Ata), representing most locations in Kazakhstan + # This includes Abai/Abay (ISO 3166-2 code KZ-10), Aqmola/Akmola (KZ-11), + # Almaty (KZ-19), Almaty city (KZ-75), Astana city (KZ-71), +-# East Kazkhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33), ++# East Kazakhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33), + # Karaganda (KZ-35), North Kazakhstan (KZ-59), Pavlodar (KZ-55), +-# Shyumkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62). ++# Shymkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62). + Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata +- 5:00 - +05 1930 Jun 21 +- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s +- 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s +- 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s +- 6:00 - +06 2024 Mar 1 0:00 +- 5:00 - +05 ++ 5:00 - %z 1930 Jun 21 ++ 6:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 5:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 6:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 6:00 - %z 2024 Mar 1 0:00 ++ 5:00 - %z + # Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-43) + Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 +- 4:00 - +04 1930 Jun 21 +- 5:00 - +05 1981 Apr 1 +- 5:00 1:00 +06 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s +- 4:00 RussiaAsia +04/+05 1991 Sep 29 2:00s +- 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s +- 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s +- 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s +- 6:00 - +06 2018 Dec 21 0:00 +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Apr 1 ++ 5:00 1:00 %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 4:00 RussiaAsia %z 1991 Sep 29 2:00s ++ 5:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 6:00 RussiaAsia %z 1992 Mar 29 2:00s ++ 5:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 6:00 - %z 2018 Dec 21 0:00 ++ 5:00 - %z + # Qostanay (aka Kostanay, Kustanay) (KZ-39) + # The 1991/2 rules are unclear partly because of the 1997 Turgai + # reorganization. + Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2 +- 4:00 - +04 1930 Jun 21 +- 5:00 - +05 1981 Apr 1 +- 5:00 1:00 +06 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s +- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s +- 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s +- 6:00 - +06 2024 Mar 1 0:00 +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Apr 1 ++ 5:00 1:00 %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 5:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 6:00 - %z 2024 Mar 1 0:00 ++ 5:00 - %z + # Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-15) + Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 +- 4:00 - +04 1930 Jun 21 +- 5:00 - +05 1981 Apr 1 +- 5:00 1:00 +06 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s +- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s +- 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Apr 1 ++ 5:00 1:00 %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 5:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 5:00 - %z + # Mangghystaū (KZ-47) + # Aqtau was not founded until 1963, but it represents an inhabited region, + # so include timestamps before 1963. + Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 +- 4:00 - +04 1930 Jun 21 +- 5:00 - +05 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s +- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s +- 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s +- 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 5:00 RussiaAsia %z 1994 Sep 25 2:00s ++ 4:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 5:00 - %z + # Atyraū (KZ-23) is like Mangghystaū except it switched from + # +04/+05 to +05/+06 in spring 1999, not fall 1994. + Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 +- 3:00 - +03 1930 Jun 21 +- 5:00 - +05 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s +- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s +- 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s +- 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s +- 5:00 - +05 ++ 3:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 5:00 RussiaAsia %z 1999 Mar 28 2:00s ++ 4:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 5:00 - %z + # West Kazakhstan (KZ-27) + # From Paul Eggert (2016-03-18): + # The 1989 transition is from USSR act No. 227 (1989-03-14). + Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk +- 3:00 - +03 1930 Jun 21 +- 5:00 - +05 1981 Apr 1 +- 5:00 1:00 +06 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1989 Mar 26 2:00s +- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s +- 5:00 RussiaAsia +05/+06 1992 Mar 29 2:00s +- 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s +- 5:00 - +05 ++ 3:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Apr 1 ++ 5:00 1:00 %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1989 Mar 26 2:00s ++ 4:00 RussiaAsia %z 1992 Jan 19 2:00s ++ 5:00 RussiaAsia %z 1992 Mar 29 2:00s ++ 4:00 RussiaAsia %z 2004 Oct 31 2:00s ++ 5:00 - %z + + # Kyrgyzstan (Kirgizstan) + # Transitions through 1991 are from Shanks & Pottenger. +@@ -2575,11 +2582,11 @@ + Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 +- 5:00 - +05 1930 Jun 21 +- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s +- 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00 +- 5:00 Kyrgyz +05/+06 2005 Aug 12 +- 6:00 - +06 ++ 5:00 - %z 1930 Jun 21 ++ 6:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 5:00 RussiaAsia %z 1991 Aug 31 2:00 ++ 5:00 Kyrgyz %z 2005 Aug 12 ++ 6:00 - %z + + ############################################################################### + +@@ -2786,16 +2793,16 @@ + # and 1982 transition dates are from Mok Ly Yng. + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Kuching 7:21:20 - LMT 1926 Mar +- 7:30 - +0730 1933 +- 8:00 NBorneo +08/+0820 1942 Feb 16 +- 9:00 - +09 1945 Sep 12 +- 8:00 - +08 ++ 7:30 - %z 1933 ++ 8:00 NBorneo %z 1942 Feb 16 ++ 9:00 - %z 1945 Sep 12 ++ 8:00 - %z + + # 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 ++ 5:00 - %z + + # Mongolia + +@@ -2897,9 +2904,37 @@ + + # From Arthur David Olson (2008-05-19): + # Assume that Choibalsan is indeed offset by 8:00. +-# XXX--in the absence of better information, assume that transition +-# was at the start of 2008-03-31 (the day of Steffen Thorsen's report); +-# this is almost surely wrong. ++ ++# From Heitor David Pinto (2024-06-23): ++# Sources about time zones in Mongolia seem to list one of two conflicting ++# configurations. The first configuration, mentioned in a comment to the TZ ++# database in 1999, citing a Mongolian government website, lists the provinces ++# of Bayan-Ölgii, Khovd and Uvs in UTC+7, and the rest of the country in ++# UTC+8. The second configuration, mentioned in a comment to the database in ++# 2001, lists Bayan-Ölgii, Khovd, Uvs, Govi-Altai and Zavkhan in UTC+7, Dornod ++# and Sükhbaatar in UTC+9, and the rest of the country in UTC+8. ++# ++# The first configuration is still mentioned by several Mongolian travel ++# agencies: ++# https://www.adventurerider.mn/en/page/about_mongolia ++# http://www.naturetours.mn/nt/mongolia.php ++# https://www.newjuulchin.mn/web/content/7506?unique=fa24a0f6e96e022a3578ee5195ac879638c734ce ++# ++# It also matches these flight schedules in 2013: ++# http://web.archive.org/web/20130722023600/https://www.hunnuair.com/en/timetabled ++# The flight times imply that the airports of Uliastai (Zavkhan), Choibalsan ++# (Dornod) and Altai (Govi-Altai) are in the same time zone as Ulaanbaatar, ++# and Khovd is one hour behind.... ++# ++# The second configuration was mentioned by an official of the Mongolian ++# standards agency in an interview in 2014: https://ikon.mn/n/9v6 ++# And it's still listed by the Mongolian aviation agency: ++# https://ais.mn/files/aip/eAIP/2023-12-25/html/eSUP/ZM-eSUP-23-04-en-MN.html ++# ++# ... I believe that the first configuration is what is actually observed in ++# Mongolia and has been so all along, at least since 1999. The second ++# configuration closely matches the ideal time zone boundaries at 97.5° E and ++# 112.5° E but it doesn't seem to be used in practice. + + # From Ganbold Tsagaankhuu (2015-03-10): + # It seems like yesterday Mongolian Government meeting has concluded to use +@@ -2938,25 +2973,18 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta + Zone Asia/Hovd 6:06:36 - LMT 1905 Aug +- 6:00 - +06 1978 +- 7:00 Mongol +07/+08 ++ 6:00 - %z 1978 ++ 7:00 Mongol %z + # Ulaanbaatar, a.k.a. Ulan Bataar, Ulan Bator, Urga + Zone Asia/Ulaanbaatar 7:07:32 - LMT 1905 Aug +- 7:00 - +07 1978 +- 8:00 Mongol +08/+09 +-# Choibalsan, a.k.a. Bajan Tümen, Bajan Tumen, Chojbalsan, +-# Choybalsan, Sanbejse, Tchoibalsan +-Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug +- 7:00 - +07 1978 +- 8:00 - +08 1983 Apr +- 9:00 Mongol +09/+10 2008 Mar 31 +- 8:00 Mongol +08/+09 ++ 7:00 - %z 1978 ++ 8:00 Mongol %z + + # Nepal + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Kathmandu 5:41:16 - LMT 1920 +- 5:30 - +0530 1986 +- 5:45 - +0545 ++ 5:30 - %z 1986 ++ 5:45 - %z + + # Pakistan + +@@ -3102,10 +3130,10 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Karachi 4:28:12 - LMT 1907 +- 5:30 - +0530 1942 Sep +- 5:30 1:00 +0630 1945 Oct 15 +- 5:30 - +0530 1951 Sep 30 +- 5:00 - +05 1971 Mar 26 ++ 5:30 - %z 1942 Sep ++ 5:30 1:00 %z 1945 Oct 15 ++ 5:30 - %z 1951 Sep 30 ++ 5:00 - %z 1971 Mar 26 + 5:00 Pakistan PK%sT # Pakistan Time + + # Palestine +@@ -3637,30 +3665,79 @@ + # be immediately followed by 1845-01-01; see R.H. van Gent's + # History of the International Date Line + # https://webspace.science.uu.nl/~gent0113/idl/idl_philippines.htm +-# The rest of the data entries are from Shanks & Pottenger. +- +-# From Jesper Nørgaard Welen (2006-04-26): +-# ... claims that Philippines had DST last time in 1990: +-# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/ +-# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires, +-# but no details] +- +-# From Paul Eggert (2014-08-14): +-# The following source says DST may be instituted November-January and again +-# March-June, but this is not definite. It also says DST was last proclaimed +-# during the Ramos administration (1992-1998); but again, no details. +-# Carcamo D. PNoy urged to declare use of daylight saving time. +-# Philippine Star 2014-08-05 +-# http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time +- +-# From Paul Goyette (2018-06-15): ++ ++# From P Chan (2021-05-10): ++# Here's a fairly comprehensive article in Japanese: ++# https://wiki.suikawiki.org/n/Philippine%20Time ++# (2021-05-16): ++# According to the references listed in the article, ++# the periods that the Philippines (Manila) observed DST or used +9 are: ++# ++# 1936-10-31 24:00 to 1937-01-15 24:00 ++# (Proclamation No. 104, Proclamation No. 126) ++# 1941-12-15 24:00 to 1945-11-30 24:00 ++# (Proclamation No. 789, Proclamation No. 20) ++# 1954-04-11 24:00 to 1954-06-04 24:00 ++# (Proclamation No. 13, Proclamation No. 33) ++# 1977-03-27 24:00 to 1977-09-21 24:00 ++# (Proclamation No. 1629, Proclamation No. 1641) ++# 1990-05-21 00:00 to 1990-07-28 24:00 ++# (National Emergency Memorandum Order No. 17, Executive Order No. 415) ++# ++# Proclamation No. 104 ... October 30, 1936 ++# https://www.officialgazette.gov.ph/1936/10/30/proclamation-no-104-s-1936/ ++# Proclamation No. 126 ... January 15, 1937 ++# https://www.officialgazette.gov.ph/1937/01/15/proclamation-no-126-s-1937/ ++# Proclamation No. 789 ... December 13, 1941 ++# https://www.officialgazette.gov.ph/1941/12/13/proclamation-no-789-s-1941/ ++# Proclamation No. 20 ... November 11, 1945 ++# https://www.officialgazette.gov.ph/1945/11/11/proclamation-no-20-s-1945/ ++# Proclamation No. 13 ... April 6, 1954 ++# https://www.officialgazette.gov.ph/1954/04/06/proclamation-no-13-s-1954/ ++# Proclamation No. 33 ... June 3, 1954 ++# https://www.officialgazette.gov.ph/1954/06/03/proclamation-no-33-s-1954/ ++# Proclamation No. 1629 ... March 25, 1977 ++# https://www.officialgazette.gov.ph/1977/03/25/proclamation-no-1629-s-1977/ ++# Proclamation No. 1641 ...May 26, 1977 ++# https://www.officialgazette.gov.ph/1977/05/26/proclamation-no-1641-s-1977/ ++# National Emergency Memorandum Order No. 17 ... May 2, 1990 ++# https://www.officialgazette.gov.ph/1990/05/02/national-emergency-memorandum-order-no-17-s-1990/ ++# Executive Order No. 415 ... July 20, 1990 ++# https://www.officialgazette.gov.ph/1990/07/20/executive-order-no-415-s-1990/ ++# ++# During WWII, Proclamation No. 789 fixed two periods of DST. The first period ++# was set to continue only until January 31, 1942. But Manila was occupied by ++# the Japanese earlier in the month.... ++# ++# For the date of the adoption of standard time, Shank[s] gives 1899-05-11. ++# The article is not able to state the basis of that. I guess it was based on ++# a US War Department Circular issued on that date. ++# https://books.google.com/books?id=JZ1PAAAAYAAJ&pg=RA3-PA8 ++# ++# However, according to other sources, standard time was adopted on ++# 1899-09-06. Also, the LMT was GMT+8:03:52 ++# https://books.google.com/books?id=MOYIAQAAIAAJ&pg=PA521 ++# https://books.google.com/books?id=lSnqqatpYikC&pg=PA21 ++# ++# From Paul Eggert (2024-09-05): ++# The penultimate URL in P Chan's email refers to page 521 of ++# Selga M, The Time Service in the Philippines. ++# Proc Pan-Pacific Science Congress. Vol. 1 (1923), 519-532. ++# It says, "The change from the meridian 120° 58' 04" to the 120th implied a ++# change of 3 min. 52s.26 in time; consequently on 6th September, 1899, ++# Manila Observatory gave the noon signal 3 min. 52s.26 later than before". ++# ++# Wikipedia says the US declared Manila liberated on March 4, 1945; ++# this doesn't affect clocks, just our time zone abbreviation and DST flag. ++ ++# From Paul Goyette (2018-06-15) with URLs updated by Guy Harris (2024-02-15): + # In the Philippines, there is a national law, Republic Act No. 10535 + # which declares the official time here as "Philippine Standard Time". + # The act [1] even specifies use of PST as the abbreviation, although + # the FAQ provided by PAGASA [2] uses the "acronym PhST to distinguish + # it from the Pacific Standard Time (PST)." +-# [1] http://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/ +-# [2] https://www1.pagasa.dost.gov.ph/index.php/astronomy/philippine-standard-time#republic-act-10535 ++# [1] https://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/ ++# [2] https://prsd.pagasa.dost.gov.ph/index.php/28-astronomy/302-philippine-standard-time + # + # From Paul Eggert (2018-06-19): + # I surveyed recent news reports, and my impression is that "PST" is +@@ -3669,32 +3746,34 @@ + # influence of the sources. There is no current abbreviation for DST, + # so use "PDT", the usual American style. + +-# From P Chan (2021-05-10): +-# Here's a fairly comprehensive article in Japanese: +-# https://wiki.suikawiki.org/n/Philippine%20Time +-# From Paul Eggert (2021-05-10): +-# The info in the Japanese table has not been absorbed (yet) below. +- + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Phil 1936 only - Nov 1 0:00 1:00 D +-Rule Phil 1937 only - Feb 1 0:00 0 S +-Rule Phil 1954 only - Apr 12 0:00 1:00 D +-Rule Phil 1954 only - Jul 1 0:00 0 S +-Rule Phil 1978 only - Mar 22 0:00 1:00 D +-Rule Phil 1978 only - Sep 21 0:00 0 S ++Rule Phil 1936 only - Oct 31 24:00 1:00 D ++Rule Phil 1937 only - Jan 15 24:00 0 S ++Rule Phil 1941 only - Dec 15 24:00 1:00 D ++# The following three rules were canceled by Japan: ++#Rule Phil 1942 only - Jan 31 24:00 0 S ++#Rule Phil 1942 only - Mar 1 0:00 1:00 D ++#Rule Phil 1942 only - Jun 30 24:00 0 S ++Rule Phil 1945 only - Nov 30 24:00 0 S ++Rule Phil 1954 only - Apr 11 24:00 1:00 D ++Rule Phil 1954 only - Jun 4 24:00 0 S ++Rule Phil 1977 only - Mar 27 24:00 1:00 D ++Rule Phil 1977 only - Sep 21 24:00 0 S ++Rule Phil 1990 only - May 21 0:00 1:00 D ++Rule Phil 1990 only - Jul 28 24:00 0 S + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 +- 8:04:00 - LMT 1899 May 11 +- 8:00 Phil P%sT 1942 May +- 9:00 - JST 1944 Nov ++Zone Asia/Manila -15:56:08 - LMT 1844 Dec 31 ++ 8:03:52 - LMT 1899 Sep 6 4:00u ++ 8:00 Phil P%sT 1942 Feb 11 24:00 ++ 9:00 - JST 1945 Mar 4 + 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 ++ 4:00 - %z 1972 Jun ++ 3:00 - %z + + # Kuwait + # Saudi Arabia +@@ -3744,7 +3823,7 @@ + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 +- 3:00 - +03 ++ 3:00 - %z + + # Singapore + # taken from Mok Ly Yng (2003-10-30) +@@ -3752,13 +3831,13 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 + 6:55:25 - SMT 1905 Jun 1 # Singapore M.T. +- 7:00 - +07 1933 Jan 1 +- 7:00 0:20 +0720 1936 Jan 1 +- 7:20 - +0720 1941 Sep 1 +- 7:30 - +0730 1942 Feb 16 +- 9:00 - +09 1945 Sep 12 +- 7:30 - +0730 1981 Dec 31 16:00u +- 8:00 - +08 ++ 7:00 - %z 1933 Jan 1 ++ 7:00 0:20 %z 1936 Jan 1 ++ 7:20 - %z 1941 Sep 1 ++ 7:30 - %z 1942 Feb 16 ++ 9:00 - %z 1945 Sep 12 ++ 7:30 - %z 1981 Dec 31 16:00u ++ 8:00 - %z + + # Spratly Is + # no information +@@ -3816,13 +3895,13 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Colombo 5:19:24 - LMT 1880 + 5:19:32 - MMT 1906 # Moratuwa Mean Time +- 5:30 - +0530 1942 Jan 5 +- 5:30 0:30 +06 1942 Sep +- 5:30 1:00 +0630 1945 Oct 16 2:00 +- 5:30 - +0530 1996 May 25 0:00 +- 6:30 - +0630 1996 Oct 26 0:30 +- 6:00 - +06 2006 Apr 15 0:30 +- 5:30 - +0530 ++ 5:30 - %z 1942 Jan 5 ++ 5:30 0:30 %z 1942 Sep ++ 5:30 1:00 %z 1945 Oct 16 2:00 ++ 5:30 - %z 1996 May 25 0:00 ++ 6:30 - %z 1996 Oct 26 0:30 ++ 6:00 - %z 2006 Apr 15 0:30 ++ 5:30 - %z + + # Syria + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +@@ -3993,16 +4072,16 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq + 2:00 Syria EE%sT 2022 Oct 28 0:00 +- 3:00 - +03 ++ 3:00 - %z + + # Tajikistan + # From Shanks & Pottenger. + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 +- 5:00 - +05 1930 Jun 21 +- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s +- 5:00 1:00 +06 1991 Sep 9 2:00s +- 5:00 - +05 ++ 5:00 - %z 1930 Jun 21 ++ 6:00 RussiaAsia %z 1991 Mar 31 2:00s ++ 5:00 1:00 %z 1991 Sep 9 2:00s ++ 5:00 - %z + + # Cambodia + # Christmas I +@@ -4012,16 +4091,16 @@ + # 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 ++ 7:00 - %z + + # Turkmenistan + # From Shanks & Pottenger. + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad +- 4:00 - +04 1930 Jun 21 +- 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00 +- 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 RussiaAsia %z 1991 Mar 31 2:00 ++ 4:00 RussiaAsia %z 1992 Jan 19 2:00 ++ 5:00 - %z + + # Oman + # Réunion +@@ -4031,25 +4110,25 @@ + # 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 ++ 4:00 - %z + + # Uzbekistan + # Byalokoz 1919 says Uzbekistan was 4:27:53. + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 +- 4:00 - +04 1930 Jun 21 +- 5:00 - +05 1981 Apr 1 +- 5:00 1:00 +06 1981 Oct 1 +- 6:00 - +06 1982 Apr 1 +- 5:00 RussiaAsia +05/+06 1992 +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 - %z 1981 Apr 1 ++ 5:00 1:00 %z 1981 Oct 1 ++ 6:00 - %z 1982 Apr 1 ++ 5:00 RussiaAsia %z 1992 ++ 5:00 - %z + # Milne says Tashkent was 4:37:10.8. + #STDOFF 4:37:10.8 + Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 +- 5:00 - +05 1930 Jun 21 +- 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00 +- 5:00 RussiaAsia +05/+06 1992 +- 5:00 - +05 ++ 5:00 - %z 1930 Jun 21 ++ 6:00 RussiaAsia %z 1991 Mar 31 2:00 ++ 5:00 RussiaAsia %z 1992 ++ 5:00 - %z + + # Vietnam (southern) + +@@ -4107,7 +4186,7 @@ + # Võ Nguyên Giáp, Việt Nam Dân Quốc Công Báo, No. 1 (1945-09-29), page 13 + # http://baochi.nlv.gov.vn/baochi/cgi-bin/baochi?a=d&d=JwvzO19450929.2.5&dliv=none + # It says that on 1945-09-01 at 24:00, Vietnam moved back two hours, to +07. +-# It also mentions a 1945-03-29 decree (by a Japanese Goveror-General) ++# It also mentions a 1945-03-29 decree (by a Japanese Governor-General) + # to set the time zone to +09, but does not say whether that decree + # merely legalized an earlier change to +09. + # +@@ -4128,14 +4207,14 @@ + #STDOFF 7:06:30.13 + Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 + 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT +- 7:00 - +07 1942 Dec 31 23:00 +- 8:00 - +08 1945 Mar 14 23:00 +- 9:00 - +09 1945 Sep 1 24:00 +- 7:00 - +07 1947 Apr 1 +- 8:00 - +08 1955 Jul 1 01:00 +- 7:00 - +07 1959 Dec 31 23:00 +- 8:00 - +08 1975 Jun 13 +- 7:00 - +07 ++ 7:00 - %z 1942 Dec 31 23:00 ++ 8:00 - %z 1945 Mar 14 23:00 ++ 9:00 - %z 1945 Sep 1 24:00 ++ 7:00 - %z 1947 Apr 1 ++ 8:00 - %z 1955 Jul 1 01:00 ++ 7:00 - %z 1959 Dec 31 23:00 ++ 8:00 - %z 1975 Jun 13 ++ 7:00 - %z + + # From Paul Eggert (2019-02-19): + # +--- contrib/tzdata/australasia.orig ++++ contrib/tzdata/australasia +@@ -43,8 +43,8 @@ + 8:00 Aus AW%sT 1943 Jul + 8:00 AW AW%sT + Zone Australia/Eucla 8:35:28 - LMT 1895 Dec +- 8:45 Aus +0845/+0945 1943 Jul +- 8:45 AW +0845/+0945 ++ 8:45 Aus %z 1943 Jul ++ 8:45 AW %z + + # Queensland + # +@@ -209,8 +209,8 @@ + Rule LH 2008 max - Oct Sun>=1 2:00 0:30 - + Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb + 10:00 - AEST 1981 Mar +- 10:30 LH +1030/+1130 1985 Jul +- 10:30 LH +1030/+11 ++ 10:30 LH %z 1985 Jul ++ 10:30 LH %z + + # Australian miscellany + # +@@ -416,16 +416,16 @@ + Rule Fiji 2020 only - Dec 20 2:00 1:00 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva +- 12:00 Fiji +12/+13 ++ 12:00 Fiji %z + + # French Polynesia + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct 1 # Rikitea +- -9:00 - -09 ++ -9:00 - %z + Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct 1 +- -9:30 - -0930 ++ -9:30 - %z + Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct 1 # Papeete +- -10:00 - -10 ++ -10:00 - %z + # Clipperton (near North America) is administered from French Polynesia; + # it is uninhabited. + +@@ -468,7 +468,7 @@ + Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 + 9:39:00 - LMT 1901 # Agana + 10:00 - GST 1941 Dec 10 # Guam +- 9:00 - +09 1944 Jul 31 ++ 9:00 - %z 1944 Jul 31 + 10:00 Guam G%sT 2000 Dec 23 + 10:00 - ChST # Chamorro Standard Time + +@@ -480,30 +480,30 @@ + # Wallis & Futuna + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki +- 12:00 - +12 ++ 12:00 - %z + + # 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 +- 13:00 - +13 ++ -12:00 - %z 1979 Oct ++ -11:00 - %z 1994 Dec 31 ++ 13:00 - %z + Zone Pacific/Kiritimati -10:29:20 - LMT 1901 +- -10:40 - -1040 1979 Oct +- -10:00 - -10 1994 Dec 31 +- 14:00 - +14 ++ -10:40 - %z 1979 Oct ++ -10:00 - %z 1994 Dec 31 ++ 14:00 - %z + + # Marshall Is + # See Pacific/Tarawa for most locations. + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Kwajalein 11:09:20 - LMT 1901 +- 11:00 - +11 1937 +- 10:00 - +10 1941 Apr 1 +- 9:00 - +09 1944 Feb 6 +- 11:00 - +11 1969 Oct +- -12:00 - -12 1993 Aug 20 24:00 +- 12:00 - +12 ++ 11:00 - %z 1937 ++ 10:00 - %z 1941 Apr 1 ++ 9:00 - %z 1944 Feb 6 ++ 11:00 - %z 1969 Oct ++ -12:00 - %z 1993 Aug 20 24:00 ++ 12:00 - %z + + # Micronesia + # For Chuuk and Yap see Pacific/Port_Moresby. +@@ -511,22 +511,22 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Kosrae -13:08:04 - LMT 1844 Dec 31 + 10:51:56 - LMT 1901 +- 11:00 - +11 1914 Oct +- 9:00 - +09 1919 Feb 1 +- 11:00 - +11 1937 +- 10:00 - +10 1941 Apr 1 +- 9:00 - +09 1945 Aug +- 11:00 - +11 1969 Oct +- 12:00 - +12 1999 +- 11:00 - +11 ++ 11:00 - %z 1914 Oct ++ 9:00 - %z 1919 Feb 1 ++ 11:00 - %z 1937 ++ 10:00 - %z 1941 Apr 1 ++ 9:00 - %z 1945 Aug ++ 11:00 - %z 1969 Oct ++ 12:00 - %z 1999 ++ 11:00 - %z + + # Nauru + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe +- 11:30 - +1130 1942 Aug 29 +- 9:00 - +09 1945 Sep 8 +- 11:30 - +1130 1979 Feb 10 2:00 +- 12:00 - +12 ++ 11:30 - %z 1942 Aug 29 ++ 9:00 - %z 1945 Sep 8 ++ 11:30 - %z 1979 Feb 10 2:00 ++ 12:00 - %z + + # New Caledonia + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +@@ -537,7 +537,7 @@ + Rule NC 1997 only - Mar 2 2:00s 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa +- 11:00 NC +11/+12 ++ 11:00 NC %z + + + ############################################################################### +@@ -581,8 +581,8 @@ + 12:00 NZ NZ%sT + + Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 +- 12:15 - +1215 1946 Jan 1 +- 12:45 Chatham +1245/+1345 ++ 12:15 - %z 1946 Jan 1 ++ 12:45 Chatham %z + + # Auckland Is + # uninhabited; Māori and Moriori, colonial settlers, pastoralists, sealers, +@@ -635,8 +635,8 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Rarotonga 13:20:56 - LMT 1899 Dec 26 # Avarua + -10:39:04 - LMT 1952 Oct 16 +- -10:30 - -1030 1978 Nov 12 +- -10:00 Cook -10/-0930 ++ -10:30 - %z 1978 Nov 12 ++ -10:00 Cook %z + + ############################################################################### + +@@ -653,30 +653,30 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Niue -11:19:40 - LMT 1952 Oct 16 # Alofi +- -11:20 - -1120 1964 Jul +- -11:00 - -11 ++ -11:20 - %z 1964 Jul ++ -11:00 - %z + + # Norfolk + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston +- 11:12 - +1112 1951 +- 11:30 - +1130 1974 Oct 27 02:00s +- 11:30 1:00 +1230 1975 Mar 2 02:00s +- 11:30 - +1130 2015 Oct 4 02:00s +- 11:00 - +11 2019 Jul +- 11:00 AN +11/+12 ++ 11:12 - %z 1951 ++ 11:30 - %z 1974 Oct 27 02:00s ++ 11:30 1:00 %z 1975 Mar 2 02:00s ++ 11:30 - %z 2015 Oct 4 02:00s ++ 11:00 - %z 2019 Jul ++ 11:00 AN %z + + # Palau (Belau) + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror + 8:57:56 - LMT 1901 +- 9:00 - +09 ++ 9:00 - %z + + # Papua New Guinea + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 + 9:48:32 - PMMT 1895 # Port Moresby Mean Time +- 10:00 - +10 ++ 10:00 - %z + # + # From Paul Eggert (2014-10-13): + # Base the Bougainville entry on the Arawa-Kieta region, which appears to have +@@ -697,16 +697,16 @@ + # + Zone Pacific/Bougainville 10:22:16 - LMT 1880 + 9:48:32 - PMMT 1895 +- 10:00 - +10 1942 Jul +- 9:00 - +09 1945 Aug 21 +- 10:00 - +10 2014 Dec 28 2:00 +- 11:00 - +11 ++ 10:00 - %z 1942 Jul ++ 9:00 - %z 1945 Aug 21 ++ 10:00 - %z 2014 Dec 28 2:00 ++ 11:00 - %z + + # Pitcairn + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown +- -8:30 - -0830 1998 Apr 27 0:00 +- -8:00 - -08 ++ -8:30 - %z 1998 Apr 27 0:00 ++ -8:00 - %z + + # American Samoa + # Midway +@@ -795,15 +795,15 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 + -11:26:56 - LMT 1911 +- -11:30 - -1130 1950 +- -11:00 WS -11/-10 2011 Dec 29 24:00 +- 13:00 WS +13/+14 ++ -11:30 - %z 1950 ++ -11:00 WS %z 2011 Dec 29 24:00 ++ 13:00 WS %z + + # Solomon Is + # excludes Bougainville, for which see Papua New Guinea + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct 1 # Honiara +- 11:00 - +11 ++ 11:00 - %z + + # Tokelau + # +@@ -826,8 +826,8 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Fakaofo -11:24:56 - LMT 1901 +- -11:00 - -11 2011 Dec 30 +- 13:00 - +13 ++ -11:00 - %z 2011 Dec 30 ++ 13:00 - %z + + # Tonga + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +@@ -839,9 +839,9 @@ + Rule Tonga 2017 only - Jan Sun>=15 3:00 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 +- 12:20 - +1220 1961 +- 13:00 - +13 1999 +- 13:00 Tonga +13/+14 ++ 12:20 - %z 1961 ++ 13:00 - %z 1999 ++ 13:00 Tonga %z + + + # US minor outlying islands +@@ -930,7 +930,7 @@ + Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila +- 11:00 Vanuatu +11/+12 ++ 11:00 Vanuatu %z + + ############################################################################### + +@@ -1239,10 +1239,10 @@ + # The 1992 ending date used in the rules is a best guess; + # it matches what was used in the past. + +-# The Australian Bureau of Meteorology FAQ +-# http://www.bom.gov.au/faq/faqgen.htm +-# (1999-09-27) writes that Giles Meteorological Station uses +-# South Australian time even though it's located in Western Australia. ++# From Christopher Hunt (2006-11-21), after an advance warning ++# from Jesper Nørgaard Welen (2006-11-01): ++# WA are trialing DST for three years. ++# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf + + # From Paul Eggert (2018-04-01): + # The Guardian Express of Perth, Australia reported today that the +@@ -1254,54 +1254,10 @@ + # https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/ + # [The article ends with "Today's date is April 1."] + +-# Queensland +- +-# From Paul Eggert (2018-02-26): +-# I lack access to the following source for Queensland DST: +-# Pearce C. History of daylight saving time in Queensland. +-# Queensland Hist J. 2017 Aug;23(6):389-403 +-# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS +- +-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06): +-# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ] +-# # [ Dec 1990 ] +-# ... +-# Zone Australia/Queensland 10:00 AQ %sST +-# ... +-# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D +-# Rule AQ 1972 only - Feb lastSun 3:00 0 E +-# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D +-# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E +- +-# From Bradley White (1989-12-24): +-# "Australia/Queensland" now observes daylight time (i.e. from +-# October 1989). +- +-# From Bradley White (1991-03-04): +-# A recent excerpt from an Australian newspaper... +-# ...Queensland...[has] agreed to end daylight saving +-# at 3am tomorrow (March 3)... +- +-# From John Mackin (1991-03-06): +-# I can certainly confirm for my part that Daylight Saving in NSW did in fact +-# end on Sunday, 3 March. I don't know at what hour, though. (It surprised +-# me.) +- +-# From Bradley White (1992-03-08): +-# ...there was recently a referendum in Queensland which resulted +-# in the experimental daylight saving system being abandoned. So, ... +-# ... +-# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D +-# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S +-# ... +- +-# From Arthur David Olson (1992-03-08): +-# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes. +- +-# From Christopher Hunt (2006-11-21), after an advance warning +-# from Jesper Nørgaard Welen (2006-11-01): +-# WA are trialing DST for three years. +-# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf ++# The Australian Bureau of Meteorology FAQ ++# http://www.bom.gov.au/faq/faqgen.htm ++# (1999-09-27) writes that Giles Meteorological Station uses ++# South Australian time even though it's located in Western Australia. + + # From Rives McDow (2002-04-09): + # The most interesting region I have found consists of three towns on the +@@ -1359,6 +1315,59 @@ + # For lack of better info, assume the tradition dates back to the + # introduction of standard time in 1895. + ++# From Stuart Bishop (2024-11-12): ++# An article discussing the in-use but technically unofficial timezones ++# in the Western Australian portion of the Nullarbor Plain. ++# https://www.abc.net.au/news/2024-11-22/outback-wa-properties-strange-time-zones/104542494 ++# From Paul Eggert (2024-11-12): ++# As the article says, the Eyre Bird Observatory and nearby sheep stations ++# can use Tokyo time. Other possibilities include Asia/Chita, Asia/Seoul, ++# and Asia/Jayapura. ++ ++# Queensland ++ ++# From Paul Eggert (2018-02-26): ++# I lack access to the following source for Queensland DST: ++# Pearce C. History of daylight saving time in Queensland. ++# Queensland Hist J. 2017 Aug;23(6):389-403 ++# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS ++ ++# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06): ++# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ] ++# # [ Dec 1990 ] ++# ... ++# Zone Australia/Queensland 10:00 AQ %sST ++# ... ++# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D ++# Rule AQ 1972 only - Feb lastSun 3:00 0 E ++# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D ++# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E ++ ++# From Bradley White (1989-12-24): ++# "Australia/Queensland" now observes daylight time (i.e. from ++# October 1989). ++ ++# From Bradley White (1991-03-04): ++# A recent excerpt from an Australian newspaper... ++# ...Queensland...[has] agreed to end daylight saving ++# at 3am tomorrow (March 3)... ++ ++# From John Mackin (1991-03-06): ++# I can certainly confirm for my part that Daylight Saving in NSW did in fact ++# end on Sunday, 3 March. I don't know at what hour, though. (It surprised ++# me.) ++ ++# From Bradley White (1992-03-08): ++# ...there was recently a referendum in Queensland which resulted ++# in the experimental daylight saving system being abandoned. So, ... ++# ... ++# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D ++# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S ++# ... ++ ++# From Arthur David Olson (1992-03-08): ++# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes. ++ + + # southeast Australia + # +--- contrib/tzdata/backward.orig ++++ contrib/tzdata/backward +@@ -1,9 +1,10 @@ +-# tzdb links for backward compatibility ++# Links and zones for backward compatibility + + # This file is in the public domain, so clarified as of + # 2009-05-17 by Arthur David Olson. + + # This file provides links from old or merged timezone names to current ones. ++# It also provides a few zone entries for old naming conventions. + # 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 +@@ -44,6 +45,8 @@ + Link America/Noronha Brazil/DeNoronha + Link America/Sao_Paulo Brazil/East + Link America/Manaus Brazil/West ++Link Europe/Brussels CET ++Link America/Chicago CST6CDT + Link America/Halifax Canada/Atlantic + Link America/Winnipeg Canada/Central + # This line is commented out, as the name exceeded the 14-character limit +@@ -58,6 +61,9 @@ + Link America/Santiago Chile/Continental + Link Pacific/Easter Chile/EasterIsland + Link America/Havana Cuba ++Link Europe/Athens EET ++Link America/Panama EST ++Link America/New_York EST5EDT + Link Africa/Cairo Egypt + Link Europe/Dublin Eire + # Vanguard section, for most .zi parsers. +@@ -96,6 +102,9 @@ + Link Asia/Tokyo Japan + Link Pacific/Kwajalein Kwajalein + Link Africa/Tripoli Libya ++Link Europe/Brussels MET ++Link America/Phoenix MST ++Link America/Denver MST7MDT + Link America/Tijuana Mexico/BajaNorte + Link America/Mazatlan Mexico/BajaSur + Link America/Mexico_City Mexico/General +@@ -275,6 +284,7 @@ + Link America/Toronto America/Thunder_Bay + Link America/Edmonton America/Yellowknife + Link Pacific/Auckland Antarctica/South_Pole ++Link Asia/Ulaanbaatar Asia/Choibalsan + Link Asia/Shanghai Asia/Chongqing + Link Asia/Shanghai Asia/Harbin + Link Asia/Urumqi Asia/Kashgar +@@ -289,6 +299,7 @@ + Link Pacific/Kanton Pacific/Enderbury + Link Pacific/Honolulu Pacific/Johnston + Link Pacific/Port_Moresby Pacific/Yap ++Link Europe/Lisbon WET + + + # Alternate names for the same location +@@ -314,5 +325,7 @@ + # 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/Honolulu HST ++Link America/Los_Angeles PST8PDT + Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei + Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk +--- contrib/tzdata/backzone.orig ++++ contrib/tzdata/backzone +@@ -346,10 +346,8 @@ + + # Angola + # +-# From Paul Eggert (2018-02-16): +-# Shanks gives 1911-05-26 for the transition to WAT, +-# evidently confusing the date of the Portuguese decree +-# (see Europe/Lisbon) with the date that it took effect. ++# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16): ++# For timestamps before independence, see commentary for Europe/Lisbon. + # + Zone Africa/Luanda 0:52:56 - LMT 1892 + 0:52:04 - LMT 1911 Dec 31 23:00u # Luanda MT? +@@ -1086,10 +1084,10 @@ + 4:00 - +04 + + # India +-# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne: +-# According to a Portuguese decree (1911-05-26) +-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +-# Portuguese India switched to UT +05 on 1912-01-01. ++# From Tim Parenti (2024-07-01), per Paul Eggert (2014-08-11), after a ++# heads-up from Stephen Colebourne: ++# According to a Portuguese decree (1911-05-24), Portuguese India switched to ++# UT +05 on 1912-01-01 (see Europe/Lisbon). + #Zone Asia/Panaji [not enough info to complete] + + # Cambodia +@@ -1829,6 +1827,27 @@ + Zone Pacific/Wallis 12:15:20 - LMT 1901 + 12:00 - +12 + ++ ++# From Paul Eggert (2024-05-22): ++# The following zones pretend that standard time extends backward ++# indefinitely into the past, and so are ahistorical. ++# In current TZDB these entries are links to geographical locations ++# that agree with the ahistorical zones since 1970. ++# These are in numeric rather than alphabetic order. ++ ++# Zone NAME STDOFF RULES FORMAT [UNTIL] ++Zone HST -10:00 - HST ++Zone PST8PDT -8:00 US P%sT ++Zone MST -7:00 - MST ++Zone MST7MDT -7:00 US M%sT ++Zone CST6CDT -6:00 US C%sT ++Zone EST -5:00 - EST ++Zone EST5EDT -5:00 US E%sT ++Zone WET 0:00 EU WE%sT ++Zone CET 1:00 C-Eur CE%sT ++Zone MET 1:00 C-Eur ME%sT ++Zone EET 2:00 EU EE%sT ++ + # Local Variables: + # coding: utf-8 + # End: +--- contrib/tzdata/checknow.awk.orig ++++ contrib/tzdata/checknow.awk +@@ -14,7 +14,7 @@ + if ($0 ~ /^TZ/) { + record_zone(zone, data) + zone = $0 +- sub(/.*\.dir\//, "", zone) ++ sub(/.*\.ckd\//, "", zone) + sub(/\/\//, "/", zone) + sub(/"/, "", zone) + data = "" +@@ -44,8 +44,8 @@ + END { + for (zone in zone_data) { + data = zone_data[zone] +- if (!zonenow[data]) { +- printf "zonenow.tab should have one of:%s\n", zones[data] ++ if (data && !zonenow[data]) { ++ printf "Zone table should have one of:%s\n", zones[data] + zonenow[data] = zone # This suppresses duplicate diagnostics. + status = 1 + } +--- contrib/tzdata/checktab.awk.orig ++++ contrib/tzdata/checktab.awk +@@ -9,6 +9,19 @@ + if (!zone_table) zone_table = "zone1970.tab" + if (!want_warnings) want_warnings = -1 + ++ monthabbr["Jan"] = 1 ++ monthabbr["Feb"] = 1 ++ monthabbr["Mar"] = 1 ++ monthabbr["Apr"] = 1 ++ monthabbr["May"] = 1 ++ monthabbr["Jun"] = 1 ++ monthabbr["Jul"] = 1 ++ monthabbr["Aug"] = 1 ++ monthabbr["Sep"] = 1 ++ monthabbr["Oct"] = 1 ++ monthabbr["Nov"] = 1 ++ monthabbr["Dec"] = 1 ++ + while (getline >"/dev/stderr" ++ status = 1 ++ } + } else { ++ stdoff = $1 + ruleUsed[$2] = 1 + if ($3 ~ /%/) rulePercentUsed[$2] = 1 + } ++ ++ if (stdoff && stdoff !~ /^\-?1?[0-9](:[0-5][0-9](:[0-5][0-9])?)?$/) { ++ printf "%s:%d: unlikely STDOFF: %s\n", FILENAME, FNR, stdoff \ ++ >>"/dev/stderr" ++ status = 1 ++ } ++ + if (tz && tz ~ /\// && tz !~ /^Etc\//) { + if (!tztab[tz] && FILENAME != "backward" \ + && zone_table != "zonenow.tab") { +--- contrib/tzdata/etcetera.orig ++++ contrib/tzdata/etcetera +@@ -5,7 +5,7 @@ + + # These entries are for uses not otherwise covered by the tz database. + # Their main practical use is for platforms like Android that lack +-# support for POSIX.1-2017-style TZ strings. On such platforms these entries ++# support for POSIX proleptic TZ strings. On such platforms these entries + # can be useful if the timezone database is wrong or if a ship or + # aircraft at sea is not in a timezone. + +@@ -51,29 +51,33 @@ + # so we moved the names into the Etc subdirectory. + # Also, the time zone abbreviations are now compatible with %z. + +-Zone Etc/GMT-14 14 - +14 +-Zone Etc/GMT-13 13 - +13 +-Zone Etc/GMT-12 12 - +12 +-Zone Etc/GMT-11 11 - +11 +-Zone Etc/GMT-10 10 - +10 +-Zone Etc/GMT-9 9 - +09 +-Zone Etc/GMT-8 8 - +08 +-Zone Etc/GMT-7 7 - +07 +-Zone Etc/GMT-6 6 - +06 +-Zone Etc/GMT-5 5 - +05 +-Zone Etc/GMT-4 4 - +04 +-Zone Etc/GMT-3 3 - +03 +-Zone Etc/GMT-2 2 - +02 +-Zone Etc/GMT-1 1 - +01 +-Zone Etc/GMT+1 -1 - -01 +-Zone Etc/GMT+2 -2 - -02 +-Zone Etc/GMT+3 -3 - -03 +-Zone Etc/GMT+4 -4 - -04 +-Zone Etc/GMT+5 -5 - -05 +-Zone Etc/GMT+6 -6 - -06 +-Zone Etc/GMT+7 -7 - -07 +-Zone Etc/GMT+8 -8 - -08 +-Zone Etc/GMT+9 -9 - -09 +-Zone Etc/GMT+10 -10 - -10 +-Zone Etc/GMT+11 -11 - -11 +-Zone Etc/GMT+12 -12 - -12 ++# There is no "Etc/Unknown" entry, as CLDR says that "Etc/Unknown" ++# corresponds to an unknown or invalid time zone, and things would get ++# confusing if Etc/Unknown were made valid here. ++ ++Zone Etc/GMT-14 14 - %z ++Zone Etc/GMT-13 13 - %z ++Zone Etc/GMT-12 12 - %z ++Zone Etc/GMT-11 11 - %z ++Zone Etc/GMT-10 10 - %z ++Zone Etc/GMT-9 9 - %z ++Zone Etc/GMT-8 8 - %z ++Zone Etc/GMT-7 7 - %z ++Zone Etc/GMT-6 6 - %z ++Zone Etc/GMT-5 5 - %z ++Zone Etc/GMT-4 4 - %z ++Zone Etc/GMT-3 3 - %z ++Zone Etc/GMT-2 2 - %z ++Zone Etc/GMT-1 1 - %z ++Zone Etc/GMT+1 -1 - %z ++Zone Etc/GMT+2 -2 - %z ++Zone Etc/GMT+3 -3 - %z ++Zone Etc/GMT+4 -4 - %z ++Zone Etc/GMT+5 -5 - %z ++Zone Etc/GMT+6 -6 - %z ++Zone Etc/GMT+7 -7 - %z ++Zone Etc/GMT+8 -8 - %z ++Zone Etc/GMT+9 -9 - %z ++Zone Etc/GMT+10 -10 - %z ++Zone Etc/GMT+11 -11 - %z ++Zone Etc/GMT+12 -12 - %z +--- contrib/tzdata/europe.orig ++++ contrib/tzdata/europe +@@ -730,14 +730,6 @@ + # Take "abolishing daylight saving time" to mean that time is now considered + # to be standard. + +-# These are for backward compatibility with older versions. +- +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone WET 0:00 EU WE%sT +-Zone CET 1:00 C-Eur CE%sT +-Zone MET 1:00 C-Eur ME%sT +-Zone EET 2:00 EU EE%sT +- + # Previous editions of this database used abbreviations like MET DST + # for Central European Summer Time, but this didn't agree with common usage. + +@@ -871,7 +863,7 @@ + 3:00 Russia MSK/MSD 1990 + 3:00 - MSK 1991 Mar 31 2:00s + 2:00 Russia EE%sT 2011 Mar 27 2:00s +- 3:00 - +03 ++ 3:00 - %z + + # Belgium + # Luxembourg +@@ -1155,7 +1147,7 @@ + # However, Greenland will change to Daylight Saving Time again in 2024 + # and onwards. + +-# From a contributor who wishes to remain anonymous for now (2023-10-29): ++# From Jule Dabars (2023-10-29): + # https://www.dr.dk/nyheder/seneste/i-nat-skal-uret-stilles-en-time-tilbage-men-foerste-gang-sker-det-ikke-i-groenland + # with a link to that page: + # https://naalakkersuisut.gl/Nyheder/2023/10/2710_sommertid +@@ -1176,22 +1168,22 @@ + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 +- -3:00 - -03 1980 Apr 6 2:00 +- -3:00 EU -03/-02 1996 ++ -3:00 - %z 1980 Apr 6 2:00 ++ -3:00 EU %z 1996 + 0:00 - GMT + # + # Use the old name Scoresbysund, as the current name Ittoqqortoormiit + # exceeds tzdb's 14-letter limit and has no common English abbreviation. + Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit +- -2:00 - -02 1980 Apr 6 2:00 +- -2:00 C-Eur -02/-01 1981 Mar 29 +- -1:00 EU -01/+00 2024 Mar 31 +- -2:00 EU -02/-01 ++ -2:00 - %z 1980 Apr 6 2:00 ++ -2:00 C-Eur %z 1981 Mar 29 ++ -1:00 EU %z 2024 Mar 31 ++ -2:00 EU %z + 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 2023 Mar 26 1:00u +- -2:00 - -02 2023 Oct 29 1:00u +- -2:00 EU -02/-01 ++ -3:00 - %z 1980 Apr 6 2:00 ++ -3:00 EU %z 2023 Mar 26 1:00u ++ -2:00 - %z 2023 Oct 29 1:00u ++ -2:00 EU %z + Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik + -4:00 Thule A%sT + +@@ -2063,10 +2055,39 @@ + + # Portugal + +-# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne: +-# According to a Portuguese decree (1911-05-26) +-# https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf +-# Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00. ++# From Tim Parenti (2024-07-01), per Alois Treindl (2021-02-07) and Michael ++# Deckers (2021-02-10): ++# http://oal.ul.pt/documentos/2018/01/hl1911a2018.pdf/ ++# The Astronomical Observatory of Lisbon has published a list detailing the ++# historical transitions in legal time within continental Portugal. It ++# directly references many decrees and ordinances which are, in turn, ++# referenced below. They can be viewed in the public archives of the Diário da ++# República (until 1976-04-09 known as the Diário do Govêrno) at ++# https://dre.pt/ (in Portuguese). ++# ++# Most of the Rules below have been updated simply to match the Observatory's ++# listing for continental (mainland) Portugal. Although there are over 50 ++# referenced decrees and ordinances, only the handful with comments below have ++# been verified against the text, typically to provide additional confidence ++# wherever dates provided by Whitman and Shanks & Pottenger had disagreed. ++# See further below for the Azores and Madeira. ++ ++# From Tim Parenti (2024-07-01), per Paul Eggert (2014-08-11), after a ++# heads-up from Stephen Colebourne: ++# According to a 1911-05-24 Portuguese decree, Lisbon was at -0:36:44.68, but ++# switched to GMT on 1912-01-01 at 00:00. ++# https://dre.pt/dr/detalhe/decreto/593090 ++# https://dre.pt/application/conteudo/593090 ++# The decree made legal time throughout Portugal and her possessions ++# "subordinate to the Greenwich meridian, according to the principle adopted at ++# the Washington Convention in 1884" and eliminated the "difference of five ++# minutes between the internal and external clocks of railway stations". ++# ++# The decree was gazetted in the 1911-05-30 issue of Diário do Govêrno, and is ++# considered to be dated 1911-05-24 by that issue's summary; however, the text ++# of the decree itself is dated 1911-05-26. The Diário da República website ++# notes the discrepancy, but later laws and the Observatory all seem to refer ++# to this decree by the 1911-05-24 date. + # + # From Michael Deckers (2018-02-15): + # article 5 [of the 1911 decree; Deckers's translation] ...: +@@ -2074,37 +2095,62 @@ + # according to the 2nd article, the civil day January 1, 1912 begins, + # all clocks therefore having to be advanced or set back correspondingly ... + +-# From Rui Pedro Salgueiro (1992-11-12): +-# Portugal has recently (September, 27) changed timezone +-# (from WET to MET or CET) to harmonize with EEC. +-# +-# Martin Bruckmann (1996-02-29) reports via Peter Ilieve +-# that Portugal is reverting to 0:00 by not moving its clocks this spring. +-# The new Prime Minister was fed up with getting up in the dark in the winter. +-# +-# From Paul Eggert (1996-11-12): +-# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions +-# at 02:00u, not 01:00u. Assume that these are typos. +-# IATA SSIM (1991/1992) reports that the Azores were at -1:00. +-# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00. +-# Guess that the Azores changed to EU rules in 1992 (since that's when Portugal +-# harmonized with EU rules), and that they stayed +0:00 that winter. +-# + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-# DSH writes that despite Decree 1,469 (1915), the change to the clocks was not +-# done every year, depending on what Spain did, because of railroad schedules. +-# Go with Shanks & Pottenger. ++# From Tim Parenti (2024-07-01), per Paul Eggert (1999-01-30): ++# DSH writes in their history that Decreto 1469 of 1915-03-30 established ++# summer time and that, "despite" this, the change to the clocks was not done ++# every year, depending on what Spain did, because of railroad schedules. ++# In fact, that decree had nothing to do with DST; rather, it regulated the ++# sending of time signals. But we do see linkage to Spain in the 1920s below. ++# https://dre.pt/dr/detalhe/decreto/1469-1915-285721 ++# https://dre.pt/application/conteudo/285721 ++# ++# According to the Observatory, standard time was first advanced by Decreto ++# 2433 of 1916-06-09 and restored by Decreto 2712 of 1916-10-28. While Whitman ++# gives 1916-10-31 for the latter transition, Shanks & Pottenger agrees more ++# closely with the decree, which stated that its provision "will start sixty ++# minutes after the end of 31 October, according to the current time," i.e., ++# 01:00 on 1 November. ++# https://dre.pt/dr/detalhe/decreto/2433-1916-267192 ++# https://dre.pt/application/conteudo/267192 ++# https://dre.pt/dr/detalhe/decreto/2712-1916-590937 ++# https://dre.pt/application/conteudo/590937 + Rule Port 1916 only - Jun 17 23:00 1:00 S +-# Whitman gives 1916 Oct 31; go with Shanks & Pottenger. + Rule Port 1916 only - Nov 1 1:00 0 - +-Rule Port 1917 only - Feb 28 23:00s 1:00 S +-Rule Port 1917 1921 - Oct 14 23:00s 0 - +-Rule Port 1918 only - Mar 1 23:00s 1:00 S +-Rule Port 1919 only - Feb 28 23:00s 1:00 S +-Rule Port 1920 only - Feb 29 23:00s 1:00 S +-Rule Port 1921 only - Feb 28 23:00s 1:00 S ++# From Tim Parenti (2024-07-01): ++# Article 7 of Decreto 2922 of 1916-12-30 stated that "the legal time will be ++# advanced by sixty minutes from 1 March to 31 October." Per Article 15, this ++# came into force from 1917-01-01. Just before the first fall back, Decreto ++# 3446 of 1917-10-11 changed the annual end date to 14 October. ++# https://dre.pt/dr/detalhe/decreto/2922-1916-261894 ++# https://dre.pt/application/conteudo/261894 ++# https://dre.pt/dr/detalhe/decreto/3446-1917-495161 ++# https://dre.pt/application/conteudo/495161 ++# This annual change was revoked by Decreto 8038 of 1922-02-18. ++# https://dre.pt/dr/detalhe/decreto/8038-1922-569751 ++# https://dre.pt/application/conteudo/569751 ++Rule Port 1917 1921 - Mar 1 0:00 1:00 S ++Rule Port 1917 1921 - Oct 14 24:00 0 - ++# From Tim Parenti (2024-07-01): ++# Decreto 9592 of 1924-04-14 noted that "France maintains the advance of legal ++# time in the summer and Spain has now adopted it for the first time" and ++# considered "that the absence of similar measures would cause serious ++# difficulties for international rail connections with consequent repercussions ++# on domestic service hours..." along with "inconvenient analogues...for postal ++# and telegraph services." Summer time would be in effect from 17 April to 4 ++# October, with the spring change explicitly specified by bringing clocks ++# forward from 16 April 23:00. ++# https://dre.pt/dr/detalhe/decreto/9592-1924-652133 ++# https://dre.pt/application/conteudo/652133 ++# ++# Decreto 10700, issued 1925-04-16, noted that Spain had not continued summer ++# time, declared that "the current legal hour prior to 17 April remains ++# unchanged from that day forward", and revoked legislation to the contrary, ++# just a day before summer time would have otherwise resumed. ++# https://dre.pt/dr/detalhe/decreto/10700-1925-437826 ++# https://dre.pt/application/conteudo/437826 + Rule Port 1924 only - Apr 16 23:00s 1:00 S +-Rule Port 1924 only - Oct 14 23:00s 0 - ++Rule Port 1924 only - Oct 4 23:00s 0 - + Rule Port 1926 only - Apr 17 23:00s 1:00 S + Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 - + Rule Port 1927 only - Apr 9 23:00s 1:00 S +@@ -2116,6 +2162,8 @@ + Rule Port 1932 only - Apr 2 23:00s 1:00 S + Rule Port 1934 only - Apr 7 23:00s 1:00 S + # Whitman gives 1934 Oct 5; go with Shanks & Pottenger. ++# Note: The 1935 law specified 10-06 00:00, not 10-05 24:00, but the following ++# is equivalent and more succinct. + Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 - + # Shanks & Pottenger give 1935 Apr 30; go with Whitman. + Rule Port 1935 only - Mar 30 23:00s 1:00 S +@@ -2126,10 +2174,19 @@ + Rule Port 1939 only - Apr 15 23:00s 1:00 S + # Whitman gives 1939 Oct 7; go with Shanks & Pottenger. + Rule Port 1939 only - Nov 18 23:00s 0 - ++# From Tim Parenti (2024-07-01): ++# Portaria 9465 of 1940-02-17 advanced clocks from Saturday 1940-02-24 23:00. ++# The clocks were restored by Portaria 9658, issued Monday 1940-10-07, ++# effective from 24:00 that very night, which agrees with Shanks & Pottenger; ++# Whitman gives Saturday 1940-10-05 instead. ++# https://dre.pt/dr/detalhe/portaria/9465-1940-189096 ++# https://dre.pt/application/conteudo/189096 ++# https://dre.pt/dr/detalhe/portaria/9658-1940-196729 ++# https://dre.pt/application/conteudo/196729 + Rule Port 1940 only - Feb 24 23:00s 1:00 S +-# Shanks & Pottenger give 1940 Oct 7; go with Whitman. +-Rule Port 1940 1941 - Oct 5 23:00s 0 - ++Rule Port 1940 only - Oct 7 23:00s 0 - + Rule Port 1941 only - Apr 5 23:00s 1:00 S ++Rule Port 1941 only - Oct 5 23:00s 0 - + Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S + Rule Port 1942 only - Apr 25 22:00s 2:00 M # Midsummer + Rule Port 1942 only - Aug 15 22:00s 1:00 S +@@ -2139,66 +2196,195 @@ + Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 M + Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S + Rule Port 1946 only - Oct Sat>=1 23:00s 0 - +-# Whitman says DST was not observed in 1950; go with Shanks & Pottenger. +-# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger. +-Rule Port 1947 1965 - Apr Sun>=1 2:00s 1:00 S ++# From Tim Parenti (2024-07-01), per Alois Treindl (2021-02-07): ++# The Astronomical Observatory of Lisbon cites Portaria 11767 of 1947-03-28 for ++# 1947 and Portaria 12286 of 1948-02-19 for 1948. ++# https://dre.pt/dr/detalhe/portaria/11767-1947-414787 ++# https://dre.pt/application/conteudo/414787 ++# https://dre.pt/dr/detalhe/portaria/12286-1948-152953 ++# https://dre.pt/application/conteudo/152953 ++# ++# Although the latter ordinance explicitly had the 1948-10-03 transition ++# scheduled for 02:00 rather than 03:00 as had been used in 1947, Decreto-Lei ++# 37048 of 1948-09-07 recognized "that it is advisable to definitely set...the ++# 'summer time' regime", and fixed the fall transition at 03:00 moving forward. ++# https://dre.pt/dr/detalhe/decreto-lei/37048-1948-373810 ++# https://dre.pt/application/conteudo/373810 ++# While the Observatory only cites this act for 1949-1965 and not for 1948, it ++# does not appear to have had any provision delaying its effect, so assume that ++# it overrode the prior ordinance for 1948-10-03. ++# ++# Whitman says DST was not observed in 1950 and gives Oct lastSun for 1952 on. ++# The Observatory, however, agrees with Shanks & Pottenger that 1950 was not an ++# exception and that Oct Sun>=1 was maintained through 1965. ++Rule Port 1947 1966 - Apr Sun>=1 2:00s 1:00 S + Rule Port 1947 1965 - Oct Sun>=1 2:00s 0 - +-Rule Port 1977 only - Mar 27 0:00s 1:00 S +-Rule Port 1977 only - Sep 25 0:00s 0 - +-Rule Port 1978 1979 - Apr Sun>=1 0:00s 1:00 S +-Rule Port 1978 only - Oct 1 0:00s 0 - +-Rule Port 1979 1982 - Sep lastSun 1:00s 0 - +-Rule Port 1980 only - Mar lastSun 0:00s 1:00 S +-Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S +-Rule Port 1983 only - Mar lastSun 2:00s 1:00 S ++# From Tim Parenti (2024-07-01): ++# Decreto-Lei 47233 of 1966-10-01 considered that the "duality" in time was ++# "the cause of serious disturbances" and noted that "the countries with which ++# we have the most frequent contacts...have already adopted" a solution ++# coinciding with the extant "summer time". It established that the former ++# "summer time" would apply year-round on the mainland and adjacent islands ++# with immediate effect, as the fall back would have otherwise occurred later ++# that evening. ++# https://dre.pt/dr/detalhe/decreto-lei/47233-1966-293729 ++# Model this by changing zones without changing clocks at the ++# previously-appointed fall back time. ++# ++# Decreto-Lei 309/76 of 1976-04-27 acknowledged that those international ++# contacts had returned to adopting seasonal times, and considered that the ++# year-round advancement "entails considerable sacrifices for the vast majority ++# of the working population during the winter months", including morning ++# visibility concerns for schoolchildren. It specified, beginning 1976-09-26 ++# 01:00, an annual return to UT+00 on the mainland from 00:00 UT on Sep lastSun ++# to 00:00 UT on Mar lastSun (unless the latter date fell on Easter, in which ++# case it was to be brought forward to the preceding Sunday). It also assigned ++# the Permanent Time Commission to study and propose revisions for the Azores ++# and Madeira, neither of which resumed DST until 1982 (as described further ++# below). ++# https://dre.pt/dr/detalhe/decreto-lei/309-1976-502063 ++Rule Port 1976 only - Sep lastSun 1:00 0 - ++Rule Port 1977 only - Mar lastSun 0:00s 1:00 S ++Rule Port 1977 only - Sep lastSun 0:00s 0 - ++# From Tim Parenti (2024-07-01): ++# Beginning in 1978, rather than triggering the Easter rule of the 1976 decree ++# (Easter fell on 1978-03-26), Article 5 was used instead, which allowed DST ++# dates to be changed by order of the Minister of Education and Scientific ++# Research, upon consultation with the Permanent Time Commission, "whenever ++# considered convenient." As such, a series of one-off ordinances were ++# promulgated for the mainland in 1978 through 1980, after which the 1976 ++# decree naturally came back into force from 1981. ++Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S ++Rule Port 1978 only - Oct 1 1:00s 0 - ++Rule Port 1979 1980 - Sep lastSun 1:00s 0 - ++Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S ++Rule Port 1981 1985 - Sep lastSun 0:00s 0 - ++# From Tim Parenti (2024-07-01): ++# Decreto-Lei 44-B/86 of 1986-03-07 switched mainland Portugal's transition ++# times from 0:00s to 1:00u to harmonize with the EEC from 1986-03-30. ++# https://dre.pt/dr/detalhe/decreto-lei/44-b-1986-628280 ++# (Transitions of 1:00s as previously reported and used by the W-Eur rules, ++# though equivalent, appear to have been fiction here.) Madeira continued to ++# use 0:00s for spring 1986 before joining with the mainland using 1:00u in the ++# fall; meanwhile, in the Azores the two were equivalent, so the law specifying ++# 0:00s wasn't touched until 1992. (See below for more on the islands.) ++# ++# From Rui Pedro Salgueiro (1992-11-12): ++# Portugal has recently (September, 27) changed timezone ++# (from WET to MET or CET) to harmonize with EEC. ++# ++# Martin Bruckmann (1996-02-29) reports via Peter Ilieve ++# that Portugal is reverting to 0:00 by not moving its clocks this spring. ++# The new Prime Minister was fed up with getting up in the dark in the winter. ++# ++# From Paul Eggert (1996-11-12): ++# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions ++# at 02:00u, not 01:00u. Assume that these are typos. + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + #STDOFF -0:36:44.68 + Zone Europe/Lisbon -0:36:45 - LMT 1884 + -0:36:45 - LMT 1912 Jan 1 0:00u # Lisbon MT +- 0:00 Port WE%sT 1966 Apr 3 2:00 ++ 0:00 Port WE%sT 1966 Oct 2 2:00s + 1:00 - CET 1976 Sep 26 1:00 +- 0:00 Port WE%sT 1983 Sep 25 1:00s +- 0:00 W-Eur WE%sT 1992 Sep 27 1:00s ++ 0:00 Port WE%sT 1986 ++ 0:00 EU WE%sT 1992 Sep 27 1:00u + 1:00 EU CE%sT 1996 Mar 31 1:00u + 0:00 EU WE%sT ++ ++# From Tim Parenti (2024-07-01): ++# For the Azores and Madeira, legislation was followed from the laws currently ++# in force as listed at: ++# https://oal.ul.pt/hora-legal/legislacao/ ++# working backward through references of revocation and abrogation to ++# Decreto-Lei 47233 of 1966-10-01, the last time DST was abolished across the ++# mainland and its adjacent islands. Because of that reference, it is ++# therefore assumed that DST rules in the islands prior to 1966 were like that ++# of the mainland, though most legislation of the time didn't explicitly ++# specify DST practices for the islands. + Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada + -1:54:32 - HMT 1912 Jan 1 2:00u # Horta MT + # Vanguard section, for zic and other parsers that support %z. +-# -2:00 Port %z 1966 Apr 3 2:00 +-# -1:00 Port %z 1983 Sep 25 1:00s +-# -1:00 W-Eur %z 1992 Sep 27 1:00s ++ -2:00 Port %z 1966 Oct 2 2:00s ++# From Tim Parenti (2024-07-01): ++# While Decreto-Lei 309/76 of 1976-04-27 reintroduced DST on the mainland by ++# falling back on 1976-09-26, it assigned the Permanent Time Commission to ++# study and propose revisions for the Azores and Madeira. Decreto Regional ++# 9/77/A of 1977-05-17 affirmed that "the legal time remained unchanged in the ++# Azores" at UT-1, and would remain there year-round. ++# https://dre.pt/dr/detalhe/decreto-regional/9-1977-252066 ++# ++# Decreto Regional 2/82/A, published 1982-03-02, adopted DST in the same ++# fashion as the mainland used at the time. ++# https://dre.pt/dr/detalhe/decreto-regional/2-1982-599965 ++# Though transitions in the Azores officially remained at 0:00s through 1992, ++# this was equivalent to the EU-style 1:00u adopted by the mainland in 1986, so ++# model it as such. ++ -1:00 - %z 1982 Mar 28 0:00s ++ -1:00 Port %z 1986 + # Rearguard section, for parsers lacking %z; see ziguard.awk. +- -2:00 Port -02/-01 1942 Apr 25 22:00s +- -2:00 Port +00 1942 Aug 15 22:00s +- -2:00 Port -02/-01 1943 Apr 17 22:00s +- -2:00 Port +00 1943 Aug 28 22:00s +- -2:00 Port -02/-01 1944 Apr 22 22:00s +- -2:00 Port +00 1944 Aug 26 22:00s +- -2:00 Port -02/-01 1945 Apr 21 22:00s +- -2:00 Port +00 1945 Aug 25 22:00s +- -2:00 Port -02/-01 1966 Apr 3 2:00 +- -1:00 Port -01/+00 1983 Sep 25 1:00s +- -1:00 W-Eur -01/+00 1992 Sep 27 1:00s ++# -2:00 Port -02/-01 1942 Apr 25 22:00s ++# -2:00 Port +00 1942 Aug 15 22:00s ++# -2:00 Port -02/-01 1943 Apr 17 22:00s ++# -2:00 Port +00 1943 Aug 28 22:00s ++# -2:00 Port -02/-01 1944 Apr 22 22:00s ++# -2:00 Port +00 1944 Aug 26 22:00s ++# -2:00 Port -02/-01 1945 Apr 21 22:00s ++# -2:00 Port +00 1945 Aug 25 22:00s ++# -2:00 Port -02/-01 1966 Oct 2 2:00s ++# -1:00 - -01 1982 Mar 28 0:00s ++# -1:00 Port -01/+00 1986 + # End of rearguard section. +- 0:00 EU WE%sT 1993 Mar 28 1:00u +- -1:00 EU -01/+00 ++# ++# From Paul Eggert (1996-11-12): ++# IATA SSIM (1991/1992) reports that the Azores were at -1:00. ++# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00. ++# ++# From Tim Parenti (2024-07-01): ++# After mainland Portugal had shifted forward an hour from 1992-09-27, Decreto ++# Legislativo Regional 29/92/A of 1992-12-23 sought to "reduce the time ++# difference" by shifting the Azores forward as well from 1992-12-27. Just six ++# months later, this was revoked by Decreto Legislativo Regional 9/93/A, citing ++# "major changes in work habits and way of life." Though the revocation didn't ++# give a transition time, it was signed Wednesday 1993-06-16; assume it took ++# effect later that evening, and that an EU-style spring forward (to +01) was ++# still observed in the interim on 1993-03-28. ++# https://dre.pt/dr/detalhe/decreto-legislativo-regional/29-1992-621553 ++# https://dre.pt/dr/detalhe/decreto-legislativo-regional/9-1993-389633 ++ -1:00 EU %z 1992 Dec 27 1:00s ++ 0:00 EU WE%sT 1993 Jun 17 1:00u ++ -1:00 EU %z ++ + Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal + -1:07:36 - FMT 1912 Jan 1 1:00u # Funchal MT + # Vanguard section, for zic and other parsers that support %z. +-# -1:00 Port %z 1966 Apr 3 2:00 ++ -1:00 Port %z 1966 Oct 2 2:00s + # Rearguard section, for parsers lacking %z; see ziguard.awk. +- -1:00 Port -01/+00 1942 Apr 25 22:00s +- -1:00 Port +01 1942 Aug 15 22:00s +- -1:00 Port -01/+00 1943 Apr 17 22:00s +- -1:00 Port +01 1943 Aug 28 22:00s +- -1:00 Port -01/+00 1944 Apr 22 22:00s +- -1:00 Port +01 1944 Aug 26 22:00s +- -1:00 Port -01/+00 1945 Apr 21 22:00s +- -1:00 Port +01 1945 Aug 25 22:00s +- -1:00 Port -01/+00 1966 Apr 3 2:00 ++# -1:00 Port -01/+00 1942 Apr 25 22:00s ++# -1:00 Port +01 1942 Aug 15 22:00s ++# -1:00 Port -01/+00 1943 Apr 17 22:00s ++# -1:00 Port +01 1943 Aug 28 22:00s ++# -1:00 Port -01/+00 1944 Apr 22 22:00s ++# -1:00 Port +01 1944 Aug 26 22:00s ++# -1:00 Port -01/+00 1945 Apr 21 22:00s ++# -1:00 Port +01 1945 Aug 25 22:00s ++# -1:00 Port -01/+00 1966 Oct 2 2:00s + # End of rearguard section. +- 0:00 Port WE%sT 1983 Sep 25 1:00s ++# ++# From Tim Parenti (2024-07-01): ++# Decreto Regional 5/82/M, published 1982-04-03, established DST transitions at ++# 0:00u, which for Madeira is equivalent to the mainland's rules (0:00s) at the ++# time. It came into effect the day following its publication, Sunday ++# 1982-04-04, thus resuming Madeira's DST practice about a week later than the ++# mainland and the Azores. ++# https://dre.pt/dr/detalhe/decreto-regional/5-1982-608273 ++# ++# Decreto Legislativo Regional 18/86/M, published 1986-10-01, adopted EU-style ++# rules (1:00u) and entered into immediate force after being signed on ++# 1986-07-31. ++# https://dre.pt/dr/detalhe/decreto-legislativo-regional/18-1986-221705 ++ 0:00 - WET 1982 Apr 4 ++ 0:00 Port WE%sT 1986 Jul 31 + 0:00 EU WE%sT + + # Romania +@@ -2410,7 +2596,7 @@ + 2:00 Poland EE%sT 1946 Apr 7 + 3:00 Russia MSK/MSD 1989 Mar 26 2:00s + 2:00 Russia EE%sT 2011 Mar 27 2:00s +- 3:00 - +03 2014 Oct 26 2:00s ++ 3:00 - %z 2014 Oct 26 2:00s + 2:00 - EET + + +@@ -2660,14 +2846,14 @@ + # http://publication.pravo.gov.ru/Document/View/0001201602150056 + + Zone Europe/Astrakhan 3:12:12 - LMT 1924 May +- 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 +- 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 2016 Mar 27 2:00s +- 4:00 - +04 ++ 3:00 - %z 1930 Jun 21 ++ 4:00 Russia %z 1989 Mar 26 2:00s ++ 3:00 Russia %z 1991 Mar 31 2:00s ++ 4:00 - %z 1992 Mar 29 2:00s ++ 3:00 Russia %z 2011 Mar 27 2:00s ++ 4:00 - %z 2014 Oct 26 2:00s ++ 3:00 - %z 2016 Mar 27 2:00s ++ 4:00 - %z + + # From Paul Eggert (2016-11-11): + # Europe/Volgograd covers: +@@ -2697,15 +2883,15 @@ + # http://publication.pravo.gov.ru/Document/View/0001202012220002 + + 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 - %z 1930 Jun 21 ++ 4:00 - %z 1961 Nov 11 ++ 4:00 Russia %z 1988 Mar 27 2:00s + 3:00 Russia MSK/MSD 1991 Mar 31 2:00s +- 4:00 - +04 1992 Mar 29 2:00s ++ 4:00 - %z 1992 Mar 29 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 ++ 4:00 - %z 2020 Dec 27 2:00s + 3:00 - MSK + + # From Paul Eggert (2016-11-11): +@@ -2720,14 +2906,14 @@ + # http://publication.pravo.gov.ru/Document/View/0001201611220031 + + Zone Europe/Saratov 3:04:18 - LMT 1919 Jul 1 0:00u +- 3:00 - +03 1930 Jun 21 +- 4:00 Russia +04/+05 1988 Mar 27 2:00s +- 3:00 Russia +03/+04 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 2016 Dec 4 2:00s +- 4:00 - +04 ++ 3:00 - %z 1930 Jun 21 ++ 4:00 Russia %z 1988 Mar 27 2:00s ++ 3:00 Russia %z 1991 Mar 31 2:00s ++ 4:00 - %z 1992 Mar 29 2:00s ++ 3:00 Russia %z 2011 Mar 27 2:00s ++ 4:00 - %z 2014 Oct 26 2:00s ++ 3:00 - %z 2016 Dec 4 2:00s ++ 4:00 - %z + + # From Paul Eggert (2016-03-18): + # Europe/Kirov covers: +@@ -2735,10 +2921,10 @@ + # The 1989 transition is from USSR act No. 227 (1989-03-14). + # + 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 - %z 1930 Jun 21 ++ 4:00 Russia %z 1989 Mar 26 2:00s + 3:00 Russia MSK/MSD 1991 Mar 31 2:00s +- 4:00 - +04 1992 Mar 29 2:00s ++ 4:00 - %z 1992 Mar 29 2:00s + 3:00 Russia MSK/MSD 2011 Mar 27 2:00s + 4:00 - MSK 2014 Oct 26 2:00s + 3:00 - MSK +@@ -2753,15 +2939,15 @@ + # The 1989 transition is from USSR act No. 227 (1989-03-14). + + Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u +- 3:00 - +03 1930 Jun 21 +- 4:00 - +04 1935 Jan 27 +- 4:00 Russia +04/+05 1989 Mar 26 2:00s +- 3:00 Russia +03/+04 1991 Mar 31 2:00s +- 2:00 Russia +02/+03 1991 Sep 29 2:00s +- 3:00 - +03 1991 Oct 20 3:00 +- 4:00 Russia +04/+05 2010 Mar 28 2:00s +- 3:00 Russia +03/+04 2011 Mar 27 2:00s +- 4:00 - +04 ++ 3:00 - %z 1930 Jun 21 ++ 4:00 - %z 1935 Jan 27 ++ 4:00 Russia %z 1989 Mar 26 2:00s ++ 3:00 Russia %z 1991 Mar 31 2:00s ++ 2:00 Russia %z 1991 Sep 29 2:00s ++ 3:00 - %z 1991 Oct 20 3:00 ++ 4:00 Russia %z 2010 Mar 28 2:00s ++ 3:00 Russia %z 2011 Mar 27 2:00s ++ 4:00 - %z + + # From Paul Eggert (2016-03-18): + # Europe/Ulyanovsk covers: +@@ -2777,14 +2963,14 @@ + # http://publication.pravo.gov.ru/Document/View/0001201603090051 + + Zone Europe/Ulyanovsk 3:13:36 - 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 +- 2:00 Russia +02/+03 1992 Jan 19 2:00s +- 3:00 Russia +03/+04 2011 Mar 27 2:00s +- 4:00 - +04 2014 Oct 26 2:00s +- 3:00 - +03 2016 Mar 27 2:00s +- 4:00 - +04 ++ 3:00 - %z 1930 Jun 21 ++ 4:00 Russia %z 1989 Mar 26 2:00s ++ 3:00 Russia %z 1991 Mar 31 2:00s ++ 2:00 Russia %z 1992 Jan 19 2:00s ++ 3:00 Russia %z 2011 Mar 27 2:00s ++ 4:00 - %z 2014 Oct 26 2:00s ++ 3:00 - %z 2016 Mar 27 2:00s ++ 4:00 - %z + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): + # Asia/Yekaterinburg covers... +@@ -2809,12 +2995,12 @@ + #STDOFF 4:02:32.9 + Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 + 3:45:05 - PMT 1919 Jul 15 4:00 +- 4:00 - +04 1930 Jun 21 +- 5:00 Russia +05/+06 1991 Mar 31 2:00s +- 4:00 Russia +04/+05 1992 Jan 19 2:00s +- 5:00 Russia +05/+06 2011 Mar 27 2:00s +- 6:00 - +06 2014 Oct 26 2:00s +- 5:00 - +05 ++ 4:00 - %z 1930 Jun 21 ++ 5:00 Russia %z 1991 Mar 31 2:00s ++ 4:00 Russia %z 1992 Jan 19 2:00s ++ 5:00 Russia %z 2011 Mar 27 2:00s ++ 6:00 - %z 2014 Oct 26 2:00s ++ 5:00 - %z + + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): +@@ -2824,12 +3010,12 @@ + # Byalokoz 1919 says Omsk was 4:53:30. + + Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 +- 5:00 - +05 1930 Jun 21 +- 6:00 Russia +06/+07 1991 Mar 31 2:00s +- 5:00 Russia +05/+06 1992 Jan 19 2:00s +- 6:00 Russia +06/+07 2011 Mar 27 2:00s +- 7:00 - +07 2014 Oct 26 2:00s +- 6:00 - +06 ++ 5:00 - %z 1930 Jun 21 ++ 6:00 Russia %z 1991 Mar 31 2:00s ++ 5:00 Russia %z 1992 Jan 19 2:00s ++ 6:00 Russia %z 2011 Mar 27 2:00s ++ 7:00 - %z 2014 Oct 26 2:00s ++ 6:00 - %z + + # From Paul Eggert (2016-02-22): + # Asia/Barnaul covers: +@@ -2862,14 +3048,14 @@ + # http://publication.pravo.gov.ru/Document/View/0001201603090038 + + Zone Asia/Barnaul 5:35:00 - LMT 1919 Dec 10 +- 6:00 - +06 1930 Jun 21 +- 7:00 Russia +07/+08 1991 Mar 31 2:00s +- 6:00 Russia +06/+07 1992 Jan 19 2:00s +- 7:00 Russia +07/+08 1995 May 28 +- 6:00 Russia +06/+07 2011 Mar 27 2:00s +- 7:00 - +07 2014 Oct 26 2:00s +- 6:00 - +06 2016 Mar 27 2:00s +- 7:00 - +07 ++ 6:00 - %z 1930 Jun 21 ++ 7:00 Russia %z 1991 Mar 31 2:00s ++ 6:00 Russia %z 1992 Jan 19 2:00s ++ 7:00 Russia %z 1995 May 28 ++ 6:00 Russia %z 2011 Mar 27 2:00s ++ 7:00 - %z 2014 Oct 26 2:00s ++ 6:00 - %z 2016 Mar 27 2:00s ++ 7:00 - %z + + # From Paul Eggert (2016-03-18): + # Asia/Novosibirsk covers: +@@ -2883,14 +3069,14 @@ + # http://publication.pravo.gov.ru/Document/View/0001201607040064 + + Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00 +- 6:00 - +06 1930 Jun 21 +- 7:00 Russia +07/+08 1991 Mar 31 2:00s +- 6:00 Russia +06/+07 1992 Jan 19 2:00s +- 7:00 Russia +07/+08 1993 May 23 # say Shanks & P. +- 6:00 Russia +06/+07 2011 Mar 27 2:00s +- 7:00 - +07 2014 Oct 26 2:00s +- 6:00 - +06 2016 Jul 24 2:00s +- 7:00 - +07 ++ 6:00 - %z 1930 Jun 21 ++ 7:00 Russia %z 1991 Mar 31 2:00s ++ 6:00 Russia %z 1992 Jan 19 2:00s ++ 7:00 Russia %z 1993 May 23 # say Shanks & P. ++ 6:00 Russia %z 2011 Mar 27 2:00s ++ 7:00 - %z 2014 Oct 26 2:00s ++ 6:00 - %z 2016 Jul 24 2:00s ++ 7:00 - %z + + # From Paul Eggert (2016-03-18): + # Asia/Tomsk covers: +@@ -2935,14 +3121,14 @@ + # http://publication.pravo.gov.ru/Document/View/0001201604260048 + + Zone Asia/Tomsk 5:39:51 - LMT 1919 Dec 22 +- 6:00 - +06 1930 Jun 21 +- 7:00 Russia +07/+08 1991 Mar 31 2:00s +- 6:00 Russia +06/+07 1992 Jan 19 2:00s +- 7:00 Russia +07/+08 2002 May 1 3:00 +- 6:00 Russia +06/+07 2011 Mar 27 2:00s +- 7:00 - +07 2014 Oct 26 2:00s +- 6:00 - +06 2016 May 29 2:00s +- 7:00 - +07 ++ 6:00 - %z 1930 Jun 21 ++ 7:00 Russia %z 1991 Mar 31 2:00s ++ 6:00 Russia %z 1992 Jan 19 2:00s ++ 7:00 Russia %z 2002 May 1 3:00 ++ 6:00 Russia %z 2011 Mar 27 2:00s ++ 7:00 - %z 2014 Oct 26 2:00s ++ 6:00 - %z 2016 May 29 2:00s ++ 7:00 - %z + + + # From Tim Parenti (2014-07-03): +@@ -2973,12 +3159,12 @@ + # realigning itself with KRAT. + + Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1 +- 6:00 - +06 1930 Jun 21 +- 7:00 Russia +07/+08 1991 Mar 31 2:00s +- 6:00 Russia +06/+07 1992 Jan 19 2:00s +- 7:00 Russia +07/+08 2010 Mar 28 2:00s +- 6:00 Russia +06/+07 2011 Mar 27 2:00s +- 7:00 - +07 ++ 6:00 - %z 1930 Jun 21 ++ 7:00 Russia %z 1991 Mar 31 2:00s ++ 6:00 Russia %z 1992 Jan 19 2:00s ++ 7:00 Russia %z 2010 Mar 28 2:00s ++ 6:00 Russia %z 2011 Mar 27 2:00s ++ 7:00 - %z + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): + # Asia/Krasnoyarsk covers... +@@ -2992,12 +3178,12 @@ + # Byalokoz 1919 says Krasnoyarsk was 6:11:26. + + Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 +- 6:00 - +06 1930 Jun 21 +- 7:00 Russia +07/+08 1991 Mar 31 2:00s +- 6:00 Russia +06/+07 1992 Jan 19 2:00s +- 7:00 Russia +07/+08 2011 Mar 27 2:00s +- 8:00 - +08 2014 Oct 26 2:00s +- 7:00 - +07 ++ 6:00 - %z 1930 Jun 21 ++ 7:00 Russia %z 1991 Mar 31 2:00s ++ 6:00 Russia %z 1992 Jan 19 2:00s ++ 7:00 Russia %z 2011 Mar 27 2:00s ++ 8:00 - %z 2014 Oct 26 2:00s ++ 7:00 - %z + + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): +@@ -3014,12 +3200,12 @@ + + Zone Asia/Irkutsk 6:57:05 - LMT 1880 + 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time +- 7:00 - +07 1930 Jun 21 +- 8:00 Russia +08/+09 1991 Mar 31 2:00s +- 7:00 Russia +07/+08 1992 Jan 19 2:00s +- 8:00 Russia +08/+09 2011 Mar 27 2:00s +- 9:00 - +09 2014 Oct 26 2:00s +- 8:00 - +08 ++ 7:00 - %z 1930 Jun 21 ++ 8:00 Russia %z 1991 Mar 31 2:00s ++ 7:00 Russia %z 1992 Jan 19 2:00s ++ 8:00 Russia %z 2011 Mar 27 2:00s ++ 9:00 - %z 2014 Oct 26 2:00s ++ 8:00 - %z + + + # From Tim Parenti (2014-07-06): +@@ -3036,13 +3222,13 @@ + # http://publication.pravo.gov.ru/Document/View/0001201512300107 + + Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 +- 8:00 - +08 1930 Jun 21 +- 9:00 Russia +09/+10 1991 Mar 31 2:00s +- 8:00 Russia +08/+09 1992 Jan 19 2:00s +- 9:00 Russia +09/+10 2011 Mar 27 2:00s +- 10:00 - +10 2014 Oct 26 2:00s +- 8:00 - +08 2016 Mar 27 2:00 +- 9:00 - +09 ++ 8:00 - %z 1930 Jun 21 ++ 9:00 Russia %z 1991 Mar 31 2:00s ++ 8:00 Russia %z 1992 Jan 19 2:00s ++ 9:00 Russia %z 2011 Mar 27 2:00s ++ 10:00 - %z 2014 Oct 26 2:00s ++ 8:00 - %z 2016 Mar 27 2:00 ++ 9:00 - %z + + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): +@@ -3082,12 +3268,12 @@ + # Byalokoz 1919 says Yakutsk was 8:38:58. + + Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 +- 8:00 - +08 1930 Jun 21 +- 9:00 Russia +09/+10 1991 Mar 31 2:00s +- 8:00 Russia +08/+09 1992 Jan 19 2:00s +- 9:00 Russia +09/+10 2011 Mar 27 2:00s +- 10:00 - +10 2014 Oct 26 2:00s +- 9:00 - +09 ++ 8:00 - %z 1930 Jun 21 ++ 9:00 Russia %z 1991 Mar 31 2:00s ++ 8:00 Russia %z 1992 Jan 19 2:00s ++ 9:00 Russia %z 2011 Mar 27 2:00s ++ 10:00 - %z 2014 Oct 26 2:00s ++ 9:00 - %z + + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): +@@ -3105,12 +3291,12 @@ + # Go with Byalokoz. + + Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 +- 9:00 - +09 1930 Jun 21 +- 10:00 Russia +10/+11 1991 Mar 31 2:00s +- 9:00 Russia +09/+10 1992 Jan 19 2:00s +- 10:00 Russia +10/+11 2011 Mar 27 2:00s +- 11:00 - +11 2014 Oct 26 2:00s +- 10:00 - +10 ++ 9:00 - %z 1930 Jun 21 ++ 10:00 Russia %z 1991 Mar 31 2:00s ++ 9:00 Russia %z 1992 Jan 19 2:00s ++ 10:00 Russia %z 2011 Mar 27 2:00s ++ 11:00 - %z 2014 Oct 26 2:00s ++ 10:00 - %z + + + # From Tim Parenti (2014-07-03): +@@ -3128,14 +3314,14 @@ + # This transition is no doubt wrong, but we have no better info. + + Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 +- 8:00 - +08 1930 Jun 21 +- 9:00 Russia +09/+10 1991 Mar 31 2:00s +- 8:00 Russia +08/+09 1992 Jan 19 2:00s +- 9:00 Russia +09/+10 2004 +- 10:00 Russia +10/+11 2011 Mar 27 2:00s +- 11:00 - +11 2011 Sep 13 0:00s # Decree 725? +- 10:00 - +10 2014 Oct 26 2:00s +- 9:00 - +09 ++ 8:00 - %z 1930 Jun 21 ++ 9:00 Russia %z 1991 Mar 31 2:00s ++ 8:00 Russia %z 1992 Jan 19 2:00s ++ 9:00 Russia %z 2004 ++ 10:00 Russia %z 2011 Mar 27 2:00s ++ 11:00 - %z 2011 Sep 13 0:00s # Decree 725? ++ 10:00 - %z 2014 Oct 26 2:00s ++ 9:00 - %z + + + # From Tim Parenti (2014-07-03): +@@ -3151,14 +3337,14 @@ + + # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long. + Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 +- 9:00 - +09 1945 Aug 25 +- 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T +- 10:00 Russia +10/+11 1992 Jan 19 2:00s +- 11:00 Russia +11/+12 1997 Mar lastSun 2:00s +- 10:00 Russia +10/+11 2011 Mar 27 2:00s +- 11:00 - +11 2014 Oct 26 2:00s +- 10:00 - +10 2016 Mar 27 2:00s +- 11:00 - +11 ++ 9:00 - %z 1945 Aug 25 ++ 11:00 Russia %z 1991 Mar 31 2:00s # Sakhalin T ++ 10:00 Russia %z 1992 Jan 19 2:00s ++ 11:00 Russia %z 1997 Mar lastSun 2:00s ++ 10:00 Russia %z 2011 Mar 27 2:00s ++ 11:00 - %z 2014 Oct 26 2:00s ++ 10:00 - %z 2016 Mar 27 2:00s ++ 11:00 - %z + + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): +@@ -3181,13 +3367,13 @@ + # http://publication.pravo.gov.ru/Document/View/0001201604050038 + + Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 +- 10:00 - +10 1930 Jun 21 # Magadan Time +- 11:00 Russia +11/+12 1991 Mar 31 2:00s +- 10:00 Russia +10/+11 1992 Jan 19 2:00s +- 11:00 Russia +11/+12 2011 Mar 27 2:00s +- 12:00 - +12 2014 Oct 26 2:00s +- 10:00 - +10 2016 Apr 24 2:00s +- 11:00 - +11 ++ 10:00 - %z 1930 Jun 21 # Magadan Time ++ 11:00 Russia %z 1991 Mar 31 2:00s ++ 10:00 Russia %z 1992 Jan 19 2:00s ++ 11:00 Russia %z 2011 Mar 27 2:00s ++ 12:00 - %z 2014 Oct 26 2:00s ++ 10:00 - %z 2016 Apr 24 2:00s ++ 11:00 - %z + + + # From Tim Parenti (2014-07-06): +@@ -3232,12 +3418,12 @@ + # Go with Srednekolymsk. + + Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 +- 10:00 - +10 1930 Jun 21 +- 11:00 Russia +11/+12 1991 Mar 31 2:00s +- 10:00 Russia +10/+11 1992 Jan 19 2:00s +- 11:00 Russia +11/+12 2011 Mar 27 2:00s +- 12:00 - +12 2014 Oct 26 2:00s +- 11:00 - +11 ++ 10:00 - %z 1930 Jun 21 ++ 11:00 Russia %z 1991 Mar 31 2:00s ++ 10:00 Russia %z 1992 Jan 19 2:00s ++ 11:00 Russia %z 2011 Mar 27 2:00s ++ 12:00 - %z 2014 Oct 26 2:00s ++ 11:00 - %z + + + # From Tim Parenti (2014-07-03): +@@ -3255,14 +3441,14 @@ + # UTC+12 since at least then, too. + + Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 +- 8:00 - +08 1930 Jun 21 +- 9:00 Russia +09/+10 1981 Apr 1 +- 11:00 Russia +11/+12 1991 Mar 31 2:00s +- 10:00 Russia +10/+11 1992 Jan 19 2:00s +- 11:00 Russia +11/+12 2011 Mar 27 2:00s +- 12:00 - +12 2011 Sep 13 0:00s # Decree 725? +- 11:00 - +11 2014 Oct 26 2:00s +- 10:00 - +10 ++ 8:00 - %z 1930 Jun 21 ++ 9:00 Russia %z 1981 Apr 1 ++ 11:00 Russia %z 1991 Mar 31 2:00s ++ 10:00 Russia %z 1992 Jan 19 2:00s ++ 11:00 Russia %z 2011 Mar 27 2:00s ++ 12:00 - %z 2011 Sep 13 0:00s # Decree 725? ++ 11:00 - %z 2014 Oct 26 2:00s ++ 10:00 - %z + + + # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): +@@ -3275,12 +3461,12 @@ + # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps + # Asia/Petropavlovsk-Kamchatsky, but these are too long. + Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 +- 11:00 - +11 1930 Jun 21 +- 12:00 Russia +12/+13 1991 Mar 31 2:00s +- 11:00 Russia +11/+12 1992 Jan 19 2:00s +- 12:00 Russia +12/+13 2010 Mar 28 2:00s +- 11:00 Russia +11/+12 2011 Mar 27 2:00s +- 12:00 - +12 ++ 11:00 - %z 1930 Jun 21 ++ 12:00 Russia %z 1991 Mar 31 2:00s ++ 11:00 Russia %z 1992 Jan 19 2:00s ++ 12:00 Russia %z 2010 Mar 28 2:00s ++ 11:00 Russia %z 2011 Mar 27 2:00s ++ 12:00 - %z + + + # From Tim Parenti (2014-07-03): +@@ -3288,13 +3474,13 @@ + # 87 RU-CHU Chukotka Autonomous Okrug + + Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 +- 12:00 - +12 1930 Jun 21 +- 13:00 Russia +13/+14 1982 Apr 1 0:00s +- 12:00 Russia +12/+13 1991 Mar 31 2:00s +- 11:00 Russia +11/+12 1992 Jan 19 2:00s +- 12:00 Russia +12/+13 2010 Mar 28 2:00s +- 11:00 Russia +11/+12 2011 Mar 27 2:00s +- 12:00 - +12 ++ 12:00 - %z 1930 Jun 21 ++ 13:00 Russia %z 1982 Apr 1 0:00s ++ 12:00 Russia %z 1991 Mar 31 2:00s ++ 11:00 Russia %z 1992 Jan 19 2:00s ++ 12:00 Russia %z 2010 Mar 28 2:00s ++ 11:00 Russia %z 2011 Mar 27 2:00s ++ 12:00 - %z + + # Bosnia & Herzegovina + # Croatia +@@ -3413,7 +3599,7 @@ + 1:00 - CET 1986 + 1:00 EU CE%sT + Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. +- -1:00 - -01 1946 Sep 30 1:00 ++ -1:00 - %z 1946 Sep 30 1:00 + 0:00 - WET 1980 Apr 6 0:00s + 0:00 1:00 WEST 1980 Sep 28 1:00u + 0:00 EU WE%sT +@@ -3494,8 +3680,8 @@ + # but if no one is present after 11 at night, could be postponed until one + # hour before the beginning of service. + +-# From Paul Eggert (2013-09-11): +-# Round BMT to the nearest even second, 0:29:46. ++# From Paul Eggert (2024-05-24): ++# Express BMT as 0:29:45.500, approximately the same precision 7° 26' 22.50". + # + # We can find no reliable source for Shanks's assertion that all of Switzerland + # except Geneva switched to Bern Mean Time at 00:00 on 1848-09-12. This book: +@@ -3534,6 +3720,7 @@ + Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. ++ #STDOFF 0:29:45.500 + 0:29:46 - BMT 1894 Jun # Bern Mean Time + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT +@@ -3731,7 +3918,7 @@ + Zone Europe/Istanbul 1:55:52 - LMT 1880 + 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? + 2:00 Turkey EE%sT 1978 Jun 29 +- 3:00 Turkey +03/+04 1984 Nov 1 2:00 ++ 3:00 Turkey %z 1984 Nov 1 2:00 + 2:00 Turkey EE%sT 2007 + 2:00 EU EE%sT 2011 Mar 27 1:00u + 2:00 - EET 2011 Mar 28 1:00u +@@ -3740,7 +3927,7 @@ + 2:00 EU EE%sT 2015 Oct 25 1:00u + 2:00 1:00 EEST 2015 Nov 8 1:00u + 2:00 EU EE%sT 2016 Sep 7 +- 3:00 - +03 ++ 3:00 - %z + + # Ukraine + # +--- contrib/tzdata/factory.orig ++++ contrib/tzdata/factory +@@ -8,5 +8,15 @@ + # time zone abbreviation "-00", indicating that the actual time zone + # is unknown. + ++# TZ="Factory" was added to TZDB in 1989, and in 2016 its abbreviation ++# was changed to "-00" from a longish English-language error message. ++# Around 2010, CLDR added "Etc/Unknown" for use with TZDB, to stand ++# for an unknown or invalid time zone. These two notions differ: ++# TZ="Factory" is a valid timezone, so tzalloc("Factory") succeeds, whereas ++# TZ="Etc/Unknown" is invalid and tzalloc("Etc/Unknown") fails. ++# Also, a downstream distributor could modify Factory to be a ++# default timezone suitable for the devices it manufactures, ++# whereas that cannot happen for Etc/Unknown. ++ + # Zone NAME STDOFF RULES FORMAT + Zone Factory 0 - "Local time zone must be set--use tzsetup" +--- contrib/tzdata/leap-seconds.list.orig ++++ contrib/tzdata/leap-seconds.list +@@ -1,5 +1,5 @@ +-# ATOMIC TIME. +-# The Coordinated Universal Time (UTC) is the reference time scale derived ++# ATOMIC TIME ++# Coordinated Universal Time (UTC) is the reference time scale derived + # from The "Temps Atomique International" (TAI) calculated by the Bureau + # International des Poids et Mesures (BIPM) using a worldwide network of atomic + # clocks. UTC differs from TAI by an integer number of seconds; it is the basis +@@ -8,34 +8,34 @@ + # + # ASTRONOMICAL TIME (UT1) is the time scale based on the rate of rotation of the earth. + # It is now mainly derived from Very Long Baseline Interferometry (VLBI). The various +-# irregular fluctuations progressively detected in the rotation rate of the Earth lead ++# irregular fluctuations progressively detected in the rotation rate of the Earth led + # in 1972 to the replacement of UT1 by UTC as the reference time scale. + # + # + # LEAP SECOND +-# Atomic clocks are more stable than the rate of the earth rotation since the latter ++# Atomic clocks are more stable than the rate of the earth's rotation since the latter + # undergoes a full range of geophysical perturbations at various time scales: lunisolar +-# and core-mantle torques, atmospheric and oceanic effetcs, etc. ++# and core-mantle torques, atmospheric and oceanic effects, etc. + # Leap seconds are needed to keep the two time scales in agreement, i.e. UT1-UTC smaller +-# than 0.9 second. Therefore, when necessary a "leap second" is applied to UTC. ++# than 0.9 seconds. Therefore, when necessary a "leap second" is applied to UTC. + # Since the adoption of this system in 1972 it has been necessary to add a number of seconds to UTC, + # firstly due to the initial choice of the value of the second (1/86400 mean solar day of + # the year 1820) and secondly to the general slowing down of the Earth's rotation. It is +-# theorically possible to have a negative leap second (a second removed from UTC), but so far, ++# theoretically possible to have a negative leap second (a second removed from UTC), but so far, + # all leap seconds have been positive (a second has been added to UTC). Based on what we know about + # the earth's rotation, it is unlikely that we will ever have a negative leap second. + # + # + # HISTORY +-# The first leap second was added on June 30, 1972. Until yhe year 2000, it was necessary in average to add a ++# The first leap second was added on June 30, 1972. Until the year 2000, it was necessary in average to add a + # leap second at a rate of 1 to 2 years. Since the year 2000 leap seconds are introduced with an +-# average interval of 3 to 4 years due to the acceleration of the Earth rotation speed. ++# average interval of 3 to 4 years due to the acceleration of the Earth's rotation speed. + # + # +-# RESPONSABILITY OF THE DECISION TO INTRODUCE A LEAP SECOND IN UTC ++# RESPONSIBILITY OF THE DECISION TO INTRODUCE A LEAP SECOND IN UTC + # The decision to introduce a leap second in UTC is the responsibility of the Earth Orientation Center of + # the International Earth Rotation and reference System Service (IERS). This center is located at Paris +-# Observatory. According to international agreements, leap seconds should only be scheduled for certain dates: ++# Observatory. According to international agreements, leap seconds should be scheduled only for certain dates: + # first preference is given to the end of December and June, and second preference at the end of March + # and September. Since the introduction of leap seconds in 1972, only dates in June and December were used. + # +@@ -60,15 +60,15 @@ + # + # The following line shows the last update of this file in NTP timestamp: + # +-#$ 3913697179 ++#$ 3945196800 + # + # 2) Expiration date of the file given on a semi-annual basis: last June or last December + # +-# File expires on 28 December 2024 ++# File expires on 28 December 2025 + # + # Expire date in NTP timestamp: + # +-#@ 3944332800 ++#@ 3975868800 + # + # + # LIST OF LEAP SECONDS +@@ -117,4 +117,4 @@ + # please see the readme file in the 'source' directory : + # https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README + # +-#h 9dac5845 8acd32c0 2947d462 daf4a943 f58d9391 ++#h 848434d5 570f7ea8 d79ba227 a00fc821 f608e2d4 +--- contrib/tzdata/leapseconds.orig ++++ contrib/tzdata/leapseconds +@@ -69,11 +69,11 @@ + # 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 2024 Dec 28 00:00:00 ++#Expires 2025 Dec 28 00:00:00 + + # POSIX timestamps for the data in this file: +-#updated 1704708379 (2024-01-08 10:06:19 UTC) +-#expires 1735344000 (2024-12-28 00:00:00 UTC) ++#updated 1736208000 (2025-01-07 00:00:00 UTC) ++#expires 1766880000 (2025-12-28 00:00:00 UTC) + + # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) +-# File expires on 28 December 2024 ++# File expires on 28 December 2025 +--- contrib/tzdata/northamerica.orig ++++ contrib/tzdata/northamerica +@@ -27,9 +27,12 @@ + # in New York City (1869-10). His 1870 proposal was based on Washington, DC, + # but in 1872-05 he moved the proposed origin to Greenwich. + +-# From Paul Eggert (2018-03-20): ++# From Paul Eggert (2024-11-18): + # Dowd's proposal left many details unresolved, such as where to draw +-# lines between time zones. The key individual who made time zones ++# lines between time zones. Sandford Fleming of the Canadian Pacific Railway ++# argued for Dowd's proposal in 1876, and Cleveland Abbe of the American ++# Meteorology Society published a report in 1879 recommending four US time ++# zones based on GMT. However, the key individual who made time zones + # work in the US was William Frederick Allen - railway engineer, + # managing editor of the Travelers' Guide, and secretary of the + # General Time Convention, a railway standardization group. Allen +@@ -185,26 +188,6 @@ + Rule US 2007 max - Mar Sun>=8 2:00 1:00 D + Rule US 2007 max - Nov Sun>=1 2:00 0 S + +-# From Arthur David Olson, 2005-12-19 +-# We generate the files specified below to guard against old files with +-# obsolete information being left in the time zone binary directory. +-# We limit the list to names that have appeared in previous versions of +-# this time zone package. +-# We do these as separate Zones rather than as Links to avoid problems if +-# a particular place changes whether it observes DST. +-# We put these specifications here in the northamerica file both to +-# increase the chances that they'll actually get compiled and to +-# avoid the need to duplicate the US rules in another file. +- +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone EST -5:00 - EST +-Zone MST -7:00 - MST +-Zone HST -10:00 - HST +-Zone EST5EDT -5:00 US E%sT +-Zone CST6CDT -6:00 US C%sT +-Zone MST7MDT -7:00 US M%sT +-Zone PST8PDT -8:00 US P%sT +- + # From U. S. Naval Observatory (1989-01-19): + # USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON + # USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30 +@@ -2373,6 +2356,81 @@ + # the researchers who prepared the Decrees page failed to find some of + # the relevant documents. + ++# From Heitor David Pinto (2024-08-04): ++# In 1931, the decree implementing DST specified that it would take ++# effect on 30 April.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=192270&pagina=2&seccion=1 ++# ++# In 1981, the decree changing Campeche, Yucatán and Quintana Roo to UTC-5 ++# specified that it would enter into force on 26 December 1981 at 2:00.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4705667&fecha=23/12/1981&cod_diario=202796 ++# ++# In 1982, the decree returning Campeche and Yucatán to UTC-6 specified that ++# it would enter into force on 2 November 1982 at 2:00.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=205689&pagina=3&seccion=0 ++# ++# Quintana Roo changed to UTC-6 on 4 January 1983 at 0:00, and again ++# to UTC-5 on 26 October 1997 at 2:00.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4787355&fecha=28/12/1982&cod_diario=206112 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=209559&pagina=15&seccion=0 ++# ++# Durango, Coahuila, Nuevo León and Tamaulipas were set to UTC-7 on 1 January ++# 1922, and changed to UTC-6 on 10 June 1927. Then Durango, Coahuila and ++# Nuevo León (but not Tamaulipas) returned to UTC-7 on 15 November 1930, ++# observed DST in 1931, and changed again to UTC-6 on 1 April 1932.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4441846&fecha=29/12/1921&cod_diario=187468 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4541520&fecha=09/06/1927&cod_diario=193920 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4491963&fecha=15/11/1930&cod_diario=190835 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4418437&fecha=21/01/1932&cod_diario=185588 ++# ++# ... the ... 10 June 1927 ... decree only said 10 June 1927, without ++# specifying a time, so I suppose that it should be considered at 0:00. ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4541520&fecha=09/06/1927&cod_diario=193920 ++# ++# In 1942, the decree changing Baja California, Baja California Sur, Sonora, ++# Sinaloa and Nayarit to UTC-7 was published on 24 April, but it said that it ++# would apply from 1 April, so it's unclear when the change actually ++# occurred. The database currently shows 24 April 1942. ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=192203&pagina=2&seccion=1 ++# ++# Baja California Sur, Sonora, Sinaloa and Nayarit never used UTC-8. The ... ++# 14 January 1949 ... change [to UTC-8] only occurred in Baja California. ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4515613&fecha=13/01/1949&cod_diario=192309 ++# ++# In 1945, the decree changing Baja California to UTC-8 specified that it ++# would take effect on the third day from its publication. ++# It was published on 12 November, so it would take effect on 15 November.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4555049&fecha=12/11/1945&cod_diario=194763 ++# ++# In 1948, the decree changing Baja California to UTC-7 specified that it ++# would take effect on "this date". The decree was made on 13 March, ++# but published on 5 April, so it's unclear when the change actually occurred. ++# The database currently shows 5 April 1948. ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=188624&pagina=2&seccion=0 ++# ++# In 1949, the decree changing Baja California to UTC-8 was published on 13 ++# January, but it said that it would apply from 1 January, so it's unclear when ++# the change actually occurred. The database currently shows 14 January 1949. ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4515613&fecha=13/01/1949&cod_diario=192309 ++# ++# Baja California also observed UTC-7 from 1 May to 24 September 1950, ++# from 29 April to 30 September 1951 at 2:00, ++# and from 27 April to 28 September 1952 at 2:00.... ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4600403&fecha=29/04/1950&cod_diario=197505 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4623553&fecha=23/09/1950&cod_diario=198805 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4469444&fecha=27/04/1951&cod_diario=189317 ++# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4533868&fecha=10/03/1952&cod_diario=193465 ++# ++# All changes in Baja California from 1948 to 1952 match those in California, ++# on the same dates or with a difference of one day. ++# So it may be easier to implement these changes as DST with rule CA ++# during this whole period. ++# ++# From Paul Eggert (2024-08-18): ++# For now, maintain the slightly-different history for Baja California, ++# as we have no information on whether 1948/1952 clocks in Tijuana followed ++# the decrees or followed San Diego. ++ + # From Alan Perry (1996-02-15): + # A guy from our Mexico subsidiary finally found the Presidential Decree + # outlining the timezone changes in Mexico. +@@ -2576,7 +2634,7 @@ + # 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 - Apr 30 0:00 1:00 D + Rule Mexico 1931 only - Oct 1 0:00 0 S + Rule Mexico 1939 only - Feb 5 0:00 1:00 D + Rule Mexico 1939 only - Jun 25 0:00 0 S +@@ -2595,14 +2653,16 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + # Quintana Roo; represented by Cancún + Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u +- -6:00 - CST 1981 Dec 23 ++ -6:00 - CST 1981 Dec 26 2:00 ++ -5:00 - EST 1983 Jan 4 0:00 ++ -6:00 Mexico C%sT 1997 Oct 26 2:00 + -5:00 Mexico E%sT 1998 Aug 2 2:00 + -6:00 Mexico C%sT 2015 Feb 1 2:00 + -5:00 - EST + # Campeche, Yucatán; represented by Mérida + Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u +- -6:00 - CST 1981 Dec 23 +- -5:00 - EST 1982 Dec 2 ++ -6:00 - CST 1981 Dec 26 2:00 ++ -5:00 - EST 1982 Nov 2 2:00 + -6:00 Mexico C%sT + # Coahuila, Nuevo León, Tamaulipas (near US border) + # This includes the following municipios: +@@ -2619,12 +2679,15 @@ + -6:00 US C%sT + # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border) + Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u ++ -7:00 - MST 1927 Jun 10 ++ -6:00 - CST 1930 Nov 15 ++ -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1988 + -6:00 US C%sT 1989 + -6:00 Mexico C%sT + # Central Mexico + Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u +- -7:00 - MST 1927 Jun 10 23:00 ++ -7:00 - MST 1927 Jun 10 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 Mexico C%sT 2001 Sep 30 2:00 +@@ -2635,7 +2698,7 @@ + # 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 ++ -7:00 - MST 1927 Jun 10 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1996 +@@ -2650,7 +2713,7 @@ + # 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 ++ -7:00 - MST 1927 Jun 10 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1996 +@@ -2662,7 +2725,7 @@ + -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 ++ -7:00 - MST 1927 Jun 10 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 + -6:00 - CST 1996 +@@ -2672,23 +2735,21 @@ + -6:00 - CST + # Sonora + Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u +- -7:00 - MST 1927 Jun 10 23:00 ++ -7:00 - MST 1927 Jun 10 + -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 - MST 1996 + -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 ++ -7:00 - MST 1927 Jun 10 + -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 - MST 1970 + -7:00 Mexico M%sT + + # Bahía de Banderas +@@ -2721,27 +2782,32 @@ + # Use "Bahia_Banderas" to keep the name to fourteen characters. + + Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u +- -7:00 - MST 1927 Jun 10 23:00 ++ -7:00 - MST 1927 Jun 10 + -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 - MST 1970 + -7:00 Mexico M%sT 2010 Apr 4 2:00 + -6:00 Mexico C%sT + + # Baja California + Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u + -7:00 - MST 1924 +- -8:00 - PST 1927 Jun 10 23:00 ++ -8:00 - PST 1927 Jun 10 + -7:00 - MST 1930 Nov 15 + -8:00 - PST 1931 Apr 1 + -8:00 1:00 PDT 1931 Sep 30 + -8:00 - PST 1942 Apr 24 + -8:00 1:00 PWT 1945 Aug 14 23:00u +- -8:00 1:00 PPT 1945 Nov 12 # Peace ++ -8:00 1:00 PPT 1945 Nov 15 # Peace + -8:00 - PST 1948 Apr 5 + -8:00 1:00 PDT 1949 Jan 14 ++ -8:00 - PST 1950 May 1 ++ -8:00 1:00 PDT 1950 Sep 24 ++ -8:00 - PST 1951 Apr 29 2:00 ++ -8:00 1:00 PDT 1951 Sep 30 2:00 ++ -8:00 - PST 1952 Apr 27 2:00 ++ -8:00 1:00 PDT 1952 Sep 28 2:00 + -8:00 - PST 1954 + -8:00 CA P%sT 1961 + -8:00 - PST 1976 +@@ -3550,8 +3616,8 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Miquelon -3:44:40 - LMT 1911 Jun 15 # St Pierre + -4:00 - AST 1980 May +- -3:00 - -03 1987 +- -3:00 Canada -03/-02 ++ -3:00 - %z 1987 ++ -3:00 Canada %z + + # Turks and Caicos + # +--- contrib/tzdata/southamerica.orig ++++ contrib/tzdata/southamerica +@@ -402,11 +402,11 @@ + Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May # Córdoba Mean Time +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 Arg -03/-02 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 Arg %z + # + # Córdoba (CB), Santa Fe (SF), Entre Ríos (ER), Corrientes (CN), Misiones (MN), + # Chaco (CC), Formosa (FM), Santiago del Estero (SE) +@@ -421,120 +421,120 @@ + #STDOFF -4:16:48.25 + Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1991 Mar 3 +- -4:00 - -04 1991 Oct 20 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 Arg -03/-02 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1991 Mar 3 ++ -4:00 - %z 1991 Oct 20 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 Arg %z + # + # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN) + Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1991 Mar 3 +- -4:00 - -04 1991 Oct 20 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1991 Mar 3 ++ -4:00 - %z 1991 Oct 20 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # Tucumán (TM) + Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1991 Mar 3 +- -4:00 - -04 1991 Oct 20 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 Jun 1 +- -4:00 - -04 2004 Jun 13 +- -3:00 Arg -03/-02 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1991 Mar 3 ++ -4:00 - %z 1991 Oct 20 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 Jun 1 ++ -4:00 - %z 2004 Jun 13 ++ -3:00 Arg %z + # + # La Rioja (LR) + Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1991 Mar 1 +- -4:00 - -04 1991 May 7 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 Jun 1 +- -4:00 - -04 2004 Jun 20 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1991 Mar 1 ++ -4:00 - %z 1991 May 7 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 Jun 1 ++ -4:00 - %z 2004 Jun 20 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # San Juan (SJ) + Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1991 Mar 1 +- -4:00 - -04 1991 May 7 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 May 31 +- -4:00 - -04 2004 Jul 25 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1991 Mar 1 ++ -4:00 - %z 1991 May 7 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 May 31 ++ -4:00 - %z 2004 Jul 25 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # Jujuy (JY) + Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1990 Mar 4 +- -4:00 - -04 1990 Oct 28 +- -4:00 1:00 -03 1991 Mar 17 +- -4:00 - -04 1991 Oct 6 +- -3:00 1:00 -02 1992 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1990 Mar 4 ++ -4:00 - %z 1990 Oct 28 ++ -4:00 1:00 %z 1991 Mar 17 ++ -4:00 - %z 1991 Oct 6 ++ -3:00 1:00 %z 1992 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # Catamarca (CT), Chubut (CH) + Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1991 Mar 3 +- -4:00 - -04 1991 Oct 20 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 Jun 1 +- -4:00 - -04 2004 Jun 20 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1991 Mar 3 ++ -4:00 - %z 1991 Oct 20 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 Jun 1 ++ -4:00 - %z 2004 Jun 20 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # Mendoza (MZ) + Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1990 Mar 4 +- -4:00 - -04 1990 Oct 15 +- -4:00 1:00 -03 1991 Mar 1 +- -4:00 - -04 1991 Oct 15 +- -4:00 1:00 -03 1992 Mar 1 +- -4:00 - -04 1992 Oct 18 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 May 23 +- -4:00 - -04 2004 Sep 26 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1990 Mar 4 ++ -4:00 - %z 1990 Oct 15 ++ -4:00 1:00 %z 1991 Mar 1 ++ -4:00 - %z 1991 Oct 15 ++ -4:00 1:00 %z 1992 Mar 1 ++ -4:00 - %z 1992 Oct 18 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 May 23 ++ -4:00 - %z 2004 Sep 26 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # San Luis (SL) + +@@ -544,53 +544,53 @@ + Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1990 +- -3:00 1:00 -02 1990 Mar 14 +- -4:00 - -04 1990 Oct 15 +- -4:00 1:00 -03 1991 Mar 1 +- -4:00 - -04 1991 Jun 1 +- -3:00 - -03 1999 Oct 3 +- -4:00 1:00 -03 2000 Mar 3 +- -3:00 - -03 2004 May 31 +- -4:00 - -04 2004 Jul 25 +- -3:00 Arg -03/-02 2008 Jan 21 +- -4:00 SanLuis -04/-03 2009 Oct 11 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1990 ++ -3:00 1:00 %z 1990 Mar 14 ++ -4:00 - %z 1990 Oct 15 ++ -4:00 1:00 %z 1991 Mar 1 ++ -4:00 - %z 1991 Jun 1 ++ -3:00 - %z 1999 Oct 3 ++ -4:00 1:00 %z 2000 Mar 3 ++ -3:00 - %z 2004 May 31 ++ -4:00 - %z 2004 Jul 25 ++ -3:00 Arg %z 2008 Jan 21 ++ -4:00 SanLuis %z 2009 Oct 11 ++ -3:00 - %z + # + # Santa Cruz (SC) + Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 Jun 1 +- -4:00 - -04 2004 Jun 20 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 Jun 1 ++ -4:00 - %z 2004 Jun 20 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + # + # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF) + Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 + #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May +- -4:00 - -04 1930 Dec +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1999 Oct 3 +- -4:00 Arg -04/-03 2000 Mar 3 +- -3:00 - -03 2004 May 30 +- -4:00 - -04 2004 Jun 20 +- -3:00 Arg -03/-02 2008 Oct 18 +- -3:00 - -03 ++ -4:00 - %z 1930 Dec ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1999 Oct 3 ++ -4:00 Arg %z 2000 Mar 3 ++ -3:00 - %z 2004 May 30 ++ -4:00 - %z 2004 Jun 20 ++ -3:00 Arg %z 2008 Oct 18 ++ -3:00 - %z + + # Bolivia + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/La_Paz -4:32:36 - LMT 1890 + -4:32:36 - CMT 1931 Oct 15 # Calamarca MT + -4:32:36 1:00 BST 1932 Mar 21 # Bolivia ST +- -4:00 - -04 ++ -4:00 - %z + + # Brazil + +@@ -961,12 +961,12 @@ + # + # Fernando de Noronha (administratively part of PE) + Zone America/Noronha -2:09:40 - LMT 1914 +- -2:00 Brazil -02/-01 1990 Sep 17 +- -2:00 - -02 1999 Sep 30 +- -2:00 Brazil -02/-01 2000 Oct 15 +- -2:00 - -02 2001 Sep 13 +- -2:00 Brazil -02/-01 2002 Oct 1 +- -2:00 - -02 ++ -2:00 Brazil %z 1990 Sep 17 ++ -2:00 - %z 1999 Sep 30 ++ -2:00 Brazil %z 2000 Oct 15 ++ -2:00 - %z 2001 Sep 13 ++ -2:00 Brazil %z 2002 Oct 1 ++ -2:00 - %z + # Other Atlantic islands have no permanent settlement. + # These include Trindade and Martim Vaz (administratively part of ES), + # Rocas Atoll (RN), and the St Peter and St Paul Archipelago (PE). +@@ -979,119 +979,119 @@ + # In the north a very small part from the river Javary (now Jari I guess, + # the border with Amapá) to the Amazon, then to the Xingu. + Zone America/Belem -3:13:56 - LMT 1914 +- -3:00 Brazil -03/-02 1988 Sep 12 +- -3:00 - -03 ++ -3:00 Brazil %z 1988 Sep 12 ++ -3:00 - %z + # + # west Pará (PA) + # West Pará includes Altamira, Óbidos, Prainha, Oriximiná, and Santarém. + Zone America/Santarem -3:38:48 - LMT 1914 +- -4:00 Brazil -04/-03 1988 Sep 12 +- -4:00 - -04 2008 Jun 24 0:00 +- -3:00 - -03 ++ -4:00 Brazil %z 1988 Sep 12 ++ -4:00 - %z 2008 Jun 24 0:00 ++ -3:00 - %z + # + # Maranhão (MA), Piauí (PI), Ceará (CE), Rio Grande do Norte (RN), + # Paraíba (PB) + Zone America/Fortaleza -2:34:00 - LMT 1914 +- -3:00 Brazil -03/-02 1990 Sep 17 +- -3:00 - -03 1999 Sep 30 +- -3:00 Brazil -03/-02 2000 Oct 22 +- -3:00 - -03 2001 Sep 13 +- -3:00 Brazil -03/-02 2002 Oct 1 +- -3:00 - -03 ++ -3:00 Brazil %z 1990 Sep 17 ++ -3:00 - %z 1999 Sep 30 ++ -3:00 Brazil %z 2000 Oct 22 ++ -3:00 - %z 2001 Sep 13 ++ -3:00 Brazil %z 2002 Oct 1 ++ -3:00 - %z + # + # Pernambuco (PE) (except Atlantic islands) + Zone America/Recife -2:19:36 - LMT 1914 +- -3:00 Brazil -03/-02 1990 Sep 17 +- -3:00 - -03 1999 Sep 30 +- -3:00 Brazil -03/-02 2000 Oct 15 +- -3:00 - -03 2001 Sep 13 +- -3:00 Brazil -03/-02 2002 Oct 1 +- -3:00 - -03 ++ -3:00 Brazil %z 1990 Sep 17 ++ -3:00 - %z 1999 Sep 30 ++ -3:00 Brazil %z 2000 Oct 15 ++ -3:00 - %z 2001 Sep 13 ++ -3:00 Brazil %z 2002 Oct 1 ++ -3:00 - %z + # + # Tocantins (TO) + Zone America/Araguaina -3:12:48 - LMT 1914 +- -3:00 Brazil -03/-02 1990 Sep 17 +- -3:00 - -03 1995 Sep 14 +- -3:00 Brazil -03/-02 2003 Sep 24 +- -3:00 - -03 2012 Oct 21 +- -3:00 Brazil -03/-02 2013 Sep +- -3:00 - -03 ++ -3:00 Brazil %z 1990 Sep 17 ++ -3:00 - %z 1995 Sep 14 ++ -3:00 Brazil %z 2003 Sep 24 ++ -3:00 - %z 2012 Oct 21 ++ -3:00 Brazil %z 2013 Sep ++ -3:00 - %z + # + # Alagoas (AL), Sergipe (SE) + Zone America/Maceio -2:22:52 - LMT 1914 +- -3:00 Brazil -03/-02 1990 Sep 17 +- -3:00 - -03 1995 Oct 13 +- -3:00 Brazil -03/-02 1996 Sep 4 +- -3:00 - -03 1999 Sep 30 +- -3:00 Brazil -03/-02 2000 Oct 22 +- -3:00 - -03 2001 Sep 13 +- -3:00 Brazil -03/-02 2002 Oct 1 +- -3:00 - -03 ++ -3:00 Brazil %z 1990 Sep 17 ++ -3:00 - %z 1995 Oct 13 ++ -3:00 Brazil %z 1996 Sep 4 ++ -3:00 - %z 1999 Sep 30 ++ -3:00 Brazil %z 2000 Oct 22 ++ -3:00 - %z 2001 Sep 13 ++ -3:00 Brazil %z 2002 Oct 1 ++ -3:00 - %z + # + # Bahia (BA) + # There are too many Salvadors elsewhere, so use America/Bahia instead + # of America/Salvador. + Zone America/Bahia -2:34:04 - LMT 1914 +- -3:00 Brazil -03/-02 2003 Sep 24 +- -3:00 - -03 2011 Oct 16 +- -3:00 Brazil -03/-02 2012 Oct 21 +- -3:00 - -03 ++ -3:00 Brazil %z 2003 Sep 24 ++ -3:00 - %z 2011 Oct 16 ++ -3:00 Brazil %z 2012 Oct 21 ++ -3:00 - %z + # + # Goiás (GO), Distrito Federal (DF), Minas Gerais (MG), + # Espírito Santo (ES), Rio de Janeiro (RJ), São Paulo (SP), Paraná (PR), + # Santa Catarina (SC), Rio Grande do Sul (RS) + Zone America/Sao_Paulo -3:06:28 - LMT 1914 +- -3:00 Brazil -03/-02 1963 Oct 23 0:00 +- -3:00 1:00 -02 1964 +- -3:00 Brazil -03/-02 ++ -3:00 Brazil %z 1963 Oct 23 0:00 ++ -3:00 1:00 %z 1964 ++ -3:00 Brazil %z + # + # Mato Grosso do Sul (MS) + Zone America/Campo_Grande -3:38:28 - LMT 1914 +- -4:00 Brazil -04/-03 ++ -4:00 Brazil %z + # + # Mato Grosso (MT) + Zone America/Cuiaba -3:44:20 - LMT 1914 +- -4:00 Brazil -04/-03 2003 Sep 24 +- -4:00 - -04 2004 Oct 1 +- -4:00 Brazil -04/-03 ++ -4:00 Brazil %z 2003 Sep 24 ++ -4:00 - %z 2004 Oct 1 ++ -4:00 Brazil %z + # + # Rondônia (RO) + Zone America/Porto_Velho -4:15:36 - LMT 1914 +- -4:00 Brazil -04/-03 1988 Sep 12 +- -4:00 - -04 ++ -4:00 Brazil %z 1988 Sep 12 ++ -4:00 - %z + # + # Roraima (RR) + Zone America/Boa_Vista -4:02:40 - LMT 1914 +- -4:00 Brazil -04/-03 1988 Sep 12 +- -4:00 - -04 1999 Sep 30 +- -4:00 Brazil -04/-03 2000 Oct 15 +- -4:00 - -04 ++ -4:00 Brazil %z 1988 Sep 12 ++ -4:00 - %z 1999 Sep 30 ++ -4:00 Brazil %z 2000 Oct 15 ++ -4:00 - %z + # + # east Amazonas (AM): Boca do Acre, Jutaí, Manaus, Floriano Peixoto + # The great circle line from Tabatinga to Porto Acre divides + # east from west Amazonas. + Zone America/Manaus -4:00:04 - LMT 1914 +- -4:00 Brazil -04/-03 1988 Sep 12 +- -4:00 - -04 1993 Sep 28 +- -4:00 Brazil -04/-03 1994 Sep 22 +- -4:00 - -04 ++ -4:00 Brazil %z 1988 Sep 12 ++ -4:00 - %z 1993 Sep 28 ++ -4:00 Brazil %z 1994 Sep 22 ++ -4:00 - %z + # + # west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant, + # Eirunepé, Envira, Ipixuna + Zone America/Eirunepe -4:39:28 - LMT 1914 +- -5:00 Brazil -05/-04 1988 Sep 12 +- -5:00 - -05 1993 Sep 28 +- -5:00 Brazil -05/-04 1994 Sep 22 +- -5:00 - -05 2008 Jun 24 0:00 +- -4:00 - -04 2013 Nov 10 +- -5:00 - -05 ++ -5:00 Brazil %z 1988 Sep 12 ++ -5:00 - %z 1993 Sep 28 ++ -5:00 Brazil %z 1994 Sep 22 ++ -5:00 - %z 2008 Jun 24 0:00 ++ -4:00 - %z 2013 Nov 10 ++ -5:00 - %z + # + # Acre (AC) + Zone America/Rio_Branco -4:31:12 - LMT 1914 +- -5:00 Brazil -05/-04 1988 Sep 12 +- -5:00 - -05 2008 Jun 24 0:00 +- -4:00 - -04 2013 Nov 10 +- -5:00 - -05 ++ -5:00 Brazil %z 1988 Sep 12 ++ -5:00 - %z 2008 Jun 24 0:00 ++ -4:00 - %z 2013 Nov 10 ++ -5:00 - %z + + # Chile + +@@ -1359,36 +1359,36 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Santiago -4:42:45 - LMT 1890 + -4:42:45 - SMT 1910 Jan 10 # Santiago Mean Time +- -5:00 - -05 1916 Jul 1 ++ -5:00 - %z 1916 Jul 1 + -4:42:45 - SMT 1918 Sep 10 +- -4:00 - -04 1919 Jul 1 ++ -4:00 - %z 1919 Jul 1 + -4:42:45 - SMT 1927 Sep 1 +- -5:00 Chile -05/-04 1932 Sep 1 +- -4:00 - -04 1942 Jun 1 +- -5:00 - -05 1942 Aug 1 +- -4:00 - -04 1946 Jul 14 24:00 +- -4:00 1:00 -03 1946 Aug 28 24:00 # central CL +- -5:00 1:00 -04 1947 Mar 31 24:00 +- -5:00 - -05 1947 May 21 23:00 +- -4:00 Chile -04/-03 ++ -5:00 Chile %z 1932 Sep 1 ++ -4:00 - %z 1942 Jun 1 ++ -5:00 - %z 1942 Aug 1 ++ -4:00 - %z 1946 Jul 14 24:00 ++ -4:00 1:00 %z 1946 Aug 28 24:00 # central CL ++ -5:00 1:00 %z 1947 Mar 31 24:00 ++ -5:00 - %z 1947 May 21 23:00 ++ -4:00 Chile %z + Zone America/Punta_Arenas -4:43:40 - LMT 1890 + -4:42:45 - SMT 1910 Jan 10 +- -5:00 - -05 1916 Jul 1 ++ -5:00 - %z 1916 Jul 1 + -4:42:45 - SMT 1918 Sep 10 +- -4:00 - -04 1919 Jul 1 ++ -4:00 - %z 1919 Jul 1 + -4:42:45 - SMT 1927 Sep 1 +- -5:00 Chile -05/-04 1932 Sep 1 +- -4:00 - -04 1942 Jun 1 +- -5:00 - -05 1942 Aug 1 +- -4:00 - -04 1946 Aug 28 24:00 +- -5:00 1:00 -04 1947 Mar 31 24:00 +- -5:00 - -05 1947 May 21 23:00 +- -4:00 Chile -04/-03 2016 Dec 4 +- -3:00 - -03 ++ -5:00 Chile %z 1932 Sep 1 ++ -4:00 - %z 1942 Jun 1 ++ -5:00 - %z 1942 Aug 1 ++ -4:00 - %z 1946 Aug 28 24:00 ++ -5:00 1:00 %z 1947 Mar 31 24:00 ++ -5:00 - %z 1947 May 21 23:00 ++ -4:00 Chile %z 2016 Dec 4 ++ -3:00 - %z + Zone Pacific/Easter -7:17:28 - LMT 1890 + -7:17:28 - EMT 1932 Sep # Easter Mean Time +- -7:00 Chile -07/-06 1982 Mar 14 3:00u # Easter Time +- -6:00 Chile -06/-05 ++ -7:00 Chile %z 1982 Mar 14 3:00u # Easter Time ++ -6:00 Chile %z + # + # Salas y Gómez Island is uninhabited. + # Other Chilean locations, including Juan Fernández Is, Desventuradas Is, +@@ -1408,10 +1408,10 @@ + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Antarctica/Palmer 0 - -00 1965 +- -4:00 Arg -04/-03 1969 Oct 5 +- -3:00 Arg -03/-02 1982 May +- -4:00 Chile -04/-03 2016 Dec 4 +- -3:00 - -03 ++ -4:00 Arg %z 1969 Oct 5 ++ -3:00 Arg %z 1982 May ++ -4:00 Chile %z 2016 Dec 4 ++ -3:00 - %z + + # Colombia + +@@ -1430,7 +1430,7 @@ + #STDOFF -4:56:16.4 + Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 + -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time +- -5:00 CO -05/-04 ++ -5:00 CO %z + # Malpelo, Providencia, San Andres + # no information; probably like America/Bogota + +@@ -1461,10 +1461,10 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Guayaquil -5:19:20 - LMT 1890 + -5:14:00 - QMT 1931 # Quito Mean Time +- -5:00 Ecuador -05/-04 ++ -5:00 Ecuador %z + Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno +- -5:00 - -05 1986 +- -6:00 Ecuador -06/-05 ++ -5:00 - %z 1986 ++ -6:00 Ecuador %z + + # Falklands + +@@ -1564,10 +1564,10 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Atlantic/Stanley -3:51:24 - LMT 1890 + -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time +- -4:00 Falk -04/-03 1983 May +- -3:00 Falk -03/-02 1985 Sep 15 +- -4:00 Falk -04/-03 2010 Sep 5 2:00 +- -3:00 - -03 ++ -4:00 Falk %z 1983 May ++ -3:00 Falk %z 1985 Sep 15 ++ -4:00 Falk %z 2010 Sep 5 2:00 ++ -3:00 - %z + + # French Guiana + # For the 1911/1912 establishment of standard time in French possessions, see: +@@ -1575,8 +1575,8 @@ + # page 752, 18b. + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Cayenne -3:29:20 - LMT 1911 Jul 1 +- -4:00 - -04 1967 Oct +- -3:00 - -03 ++ -4:00 - %z 1967 Oct ++ -3:00 - %z + + # Guyana + +@@ -1610,10 +1610,10 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Guyana -3:52:39 - LMT 1911 Aug 1 # Georgetown +- -4:00 - -04 1915 Mar 1 +- -3:45 - -0345 1975 Aug 1 +- -3:00 - -03 1992 Mar 29 1:00 +- -4:00 - -04 ++ -4:00 - %z 1915 Mar 1 ++ -3:45 - %z 1975 Aug 1 ++ -3:00 - %z 1992 Mar 29 1:00 ++ -4:00 - %z + + # Paraguay + # +@@ -1687,7 +1687,7 @@ + # and that on the first Sunday of the month of October, it is to be set + # forward 60 minutes, in all the territory of the Paraguayan Republic. + # ... +-Rule Para 2010 max - Oct Sun>=1 0:00 1:00 - ++Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 - + Rule Para 2010 2012 - Apr Sun>=8 0:00 0 - + # + # From Steffen Thorsen (2013-03-07): +@@ -1706,14 +1706,35 @@ + # https://www.abc.com.py/politica/2023/07/12/promulgacion-el-cambio-de-hora-sera-por-ley/ + # From Carlos Raúl Perasso (2023-07-27): + # http://silpy.congreso.gov.py/descarga/ley-144138 +-Rule Para 2013 max - Mar Sun>=22 0:00 0 - ++Rule Para 2013 2024 - Mar Sun>=22 0:00 0 - ++# ++# From Heitor David Pinto (2024-09-24): ++# Today the Congress of Paraguay passed a bill to observe UTC-3 permanently.... ++# The text of the bill says that it would enter into force on the first ++# Sunday in October 2024, the same date currently scheduled to start DST.... ++# https://silpy.congreso.gov.py/web/expediente/132531 ++# (2024-10-14): ++# The president approved the law on 11 October 2024, ++# and it was officially published on 14 October 2024. ++# https://www.gacetaoficial.gov.py/index/detalle_publicacion/89723 ++# The text of the law says that it enters into force on the first ++# Sunday in October 2024 (6 October 2024). But the constitution ++# prohibits retroactive effect, and the civil code says that laws ++# enter into force on the day after their publication or on the day ++# that they specify, and it also says that they don't have retroactive ++# effect. So I think that the time change on 6 October 2024 should ++# still be considered as DST according to the previous law, and ++# permanently UTC-3 from 15 October 2024 according to the new law.... ++# https://www.constituteproject.org/constitution/Paraguay_2011 ++# https://www.oas.org/dil/esp/codigo_civil_paraguay.pdf + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Asuncion -3:50:40 - LMT 1890 + -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time +- -4:00 - -04 1972 Oct +- -3:00 - -03 1974 Apr +- -4:00 Para -04/-03 ++ -4:00 - %z 1972 Oct ++ -3:00 - %z 1974 Apr ++ -4:00 Para %z 2024 Oct 15 ++ -3:00 - %z + + # Peru + # +@@ -1740,12 +1761,12 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Lima -5:08:12 - LMT 1890 + -5:08:36 - LMT 1908 Jul 28 # Lima Mean Time? +- -5:00 Peru -05/-04 ++ -5:00 Peru %z + + # South Georgia + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken +- -2:00 - -02 ++ -2:00 - %z + + # South Sandwich Is + # uninhabited; scientific personnel have wintered +@@ -1755,8 +1776,8 @@ + Zone America/Paramaribo -3:40:40 - LMT 1911 + -3:40:52 - PMT 1935 # Paramaribo Mean Time + -3:40:36 - PMT 1945 Oct # The capital moved? +- -3:30 - -0330 1984 Oct +- -3:00 - -03 ++ -3:30 - %z 1984 Oct ++ -3:00 - %z + + # Uruguay + # From Paul Eggert (1993-11-18): +@@ -1971,15 +1992,15 @@ + # This Zone can be simplified once we assume zic %z. + Zone America/Montevideo -3:44:51 - LMT 1908 Jun 10 + -3:44:51 - MMT 1920 May 1 # Montevideo MT +- -4:00 - -04 1923 Oct 1 +- -3:30 Uruguay -0330/-03 1942 Dec 14 +- -3:00 Uruguay -03/-0230 1960 +- -3:00 Uruguay -03/-02 1968 +- -3:00 Uruguay -03/-0230 1970 +- -3:00 Uruguay -03/-02 1974 +- -3:00 Uruguay -03/-0130 1974 Mar 10 +- -3:00 Uruguay -03/-0230 1974 Dec 22 +- -3:00 Uruguay -03/-02 ++ -4:00 - %z 1923 Oct 1 ++ -3:30 Uruguay %z 1942 Dec 14 ++ -3:00 Uruguay %z 1960 ++ -3:00 Uruguay %z 1968 ++ -3:00 Uruguay %z 1970 ++ -3:00 Uruguay %z 1974 ++ -3:00 Uruguay %z 1974 Mar 10 ++ -3:00 Uruguay %z 1974 Dec 22 ++ -3:00 Uruguay %z + + # Venezuela + # +@@ -2013,7 +2034,7 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Caracas -4:27:44 - LMT 1890 + -4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time? +- -4:30 - -0430 1965 Jan 1 0:00 +- -4:00 - -04 2007 Dec 9 3:00 +- -4:30 - -0430 2016 May 1 2:30 +- -4:00 - -04 ++ -4:30 - %z 1965 Jan 1 0:00 ++ -4:00 - %z 2007 Dec 9 3:00 ++ -4:30 - %z 2016 May 1 2:30 ++ -4:00 - %z +--- contrib/tzdata/theory.html.orig ++++ contrib/tzdata/theory.html +@@ -89,13 +89,15 @@ + href="https://en.wikipedia.org/wiki/POSIX">POSIX, an international + standard for UNIX-like systems. +-As of this writing, the current edition of POSIX is: The Open + Group Base Specifications Issue 7, IEEE Std 1003.1-2017, 2018 +-Edition. +-Because the database's scope encompasses real-world changes to civil +-timekeeping, its model for describing time is more complex than the +-standard and daylight saving times supported by POSIX.1-2017. ++Edition), POSIX.1-2024 requires support for the ++tz database, which has a ++model for describing civil time that is more complex than the ++standard and daylight saving times required by POSIX.1-2017. + A tz timezone corresponds to a ruleset that can + have more than two changes per year, these changes need not merely + flip back and forth between two alternatives, and the rules themselves +@@ -121,8 +123,9 @@ + locate the user on a timezone map or prioritize names that are + geographically close. For an example selection interface, see the + tzselect program in the tz code. +-The Unicode Common Locale Data +-Repository contains data that may be useful for other selection ++Unicode's Common Locale Data ++Repository (CLDR) ++contains data that may be useful for other selection + interfaces; it maps timezone names like Europe/Prague to + locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格". +

+@@ -159,7 +162,7 @@ + + +

+-Names normally have the form ++Names normally have the format + AREA/LOCATION, where + AREA is a continent or ocean, and + LOCATION is a specific location within the area. +@@ -187,7 +190,7 @@ + href="https://en.wikipedia.org/wiki/ASCII">ASCII letters, + '.', '-' and '_'. + Do not use digits, as that might create an ambiguity with POSIX.1-2017 ++ href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03">POSIX's proleptic + TZ strings. + A file name component must not exceed 14 characters or start with + '-'. +@@ -198,6 +201,8 @@ +

  • + A name must not be empty, or contain '//', or + start or end with '/'. ++ Also, a name must not be 'Etc/Unknown', as ++ CLDR uses that string for an unknown or invalid timezone. +
  • +
  • + Do not use names that differ only in case. +@@ -218,10 +223,18 @@ + do not need locations, since local time is not defined there. +
  • +
  • +- If all the clocks in a timezone have agreed since 1970, +- do not bother to include more than one timezone +- even if some of the clocks disagreed before 1970. ++ If all clocks in a region have agreed since 1970, ++ give them just one name even if some of the clocks disagreed before 1970, ++ or reside in different countries or in notable or faraway locations. + Otherwise these tables would become annoyingly large. ++ For example, do not create a name Indian/Crozet ++ as a near-duplicate or alias of Asia/Dubai ++ merely because they are different countries or territories, ++ or their clocks disagreed before 1970, or the ++ Crozet Islands ++ are notable in their own right, ++ or the Crozet Islands are not adjacent to other locations ++ that use Asia/Dubai. +
  • +
  • + If boundaries between regions are fluid, such as during a war or +@@ -378,7 +391,8 @@ + and no great weight should be attached to whether a link + is defined in backward or in some other file. + The source file etcetera defines names that may be useful +-on platforms that do not support POSIX.1-2017-style TZ strings; ++on platforms that do not support proleptic TZ strings ++like <+08>-8; + no other source file other than backward + contains links to its zones. + One of etcetera's names is Etc/UTC, +@@ -425,8 +439,8 @@ + In other words, in the C locale the POSIX extended regular + expression [-+[:alnum:]]{3,6} should match the + abbreviation. +- This guarantees that all abbreviations could have been specified by a +- POSIX.1-2017 TZ string. ++ This guarantees that all abbreviations could have been specified ++ explicitly by a POSIX proleptic TZ string. +

    +
  • +
  • +@@ -576,8 +590,13 @@ + locations while uninhabited. + The leading '-' is a flag that the UT offset is in + some sense undefined; this notation is derived +- from Internet ++ from Internet + RFC 3339. ++ (The abbreviation 'Z' that ++ Internet ++ RFC 9557 uses for this concept ++ would violate the POSIX requirement ++ of at least three characters in an abbreviation.) +
  • + + +@@ -775,7 +794,7 @@ + the Western 06:00 to be 12:00. These practices are largely outside + the scope of the tz code and data, which + provide only limited support for date and time localization +- such as that required by POSIX.1-2017. ++ such as that required by POSIX. + If DST is not used a different time zone + can often do the trick; for example, in Kenya a TZ setting + like <-03>3 or America/Cayenne starts +@@ -866,29 +885,62 @@ + part of many platforms, where the + primary use of this package is to update obsolete time-related files. + To do this, you may need to compile the time zone compiler +-'zic' supplied with this package instead of using the +-system 'zic', since the format of zic's ++zic supplied with this package instead of using the ++system zic, since the format of zic's + input is occasionally extended, and a platform may still be shipping + an older zic. +

    + +-

    POSIX.1-2017 properties and limitations

    ++

    ++In POSIX, time display in a process is controlled by the ++environment variable TZ, which can have two forms: ++

    +
      ++
    • ++ A proleptic TZ value ++ like CET-1CEST,M3.5.0,M10.5.0/3 uses a complex ++ notation that specifies a single standard time along with daylight ++ saving rules that apply to all years past, present, and future. ++
    • ++
    • ++ A geographical TZ value ++ like Europe/Berlin names a location that stands for ++ civil time near that location, which can have more than ++ one standard time and more than one set of daylight saving rules, ++ to record timekeeping practice more accurately. ++ These names are defined by the tz database. ++
    • ++
    ++ ++

    POSIX.1-2017 properties and limitations

    ++

    ++Some platforms support only the features required by POSIX.1-2017, ++and have not yet upgraded to POSIX.1-2024. ++Code intended to be portable to these platforms must deal ++with problems that were fixed in later POSIX editions. ++

    ++ ++
      ++
    • ++ POSIX.1-2017 does not require support for geographical TZ, ++ and there is no convenient and efficient way to determine ++ the UT offset and time zone abbreviation of arbitrary ++ timestamps, particularly for timezones ++ that do not fit into the POSIX model. ++
    • +
    • +

      +- In POSIX.1-2017, time display in a process is controlled by the +- environment variable TZ. +- Unfortunately, the POSIX.1-2017 +- TZ string takes a form that is hard to describe and +- is error-prone in practice. +- Also, POSIX.1-2017 TZ strings cannot deal with daylight ++ The proleptic TZ string, ++ which is all that POSIX.1-2017 requires, ++ has a format that is hard to describe and is error-prone in practice. ++ Also, proleptic TZ strings cannot deal with daylight + saving time rules not based on the Gregorian calendar (as in + Morocco), or with situations where more than two time zone + abbreviations or UT offsets are used in an area. +

      + +

      +- The POSIX.1-2017 TZ string takes the following form: ++ A proleptic TZ string has the following format: +

      + +

      +@@ -955,7 +1007,7 @@ + + +

      +- Here is an example POSIX.1-2017 TZ string for New ++ Here is an example proleptic TZ string for New + Zealand after 2007. + It says that standard time (NZST) is 12 hours ahead + of UT, and that daylight saving time +@@ -966,26 +1018,46 @@ +

      TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'
      + +

      +- This POSIX.1-2017 TZ string is hard to remember, and ++ This proleptic TZ string is hard to remember, and + mishandles some timestamps before 2008. +- With this package you can use this instead: ++ With this package you can use a geographical TZ instead: +

      + +
      TZ='Pacific/Auckland'
      +
    • ++
    ++ ++

    ++POSIX.1-2017 also has the limitations of POSIX.1-2024, ++discussed in the next section. ++

    ++ ++

    POSIX.1-2024 properties and limitations

    ++

    ++POSIX.1-2024 extends POSIX.1-2017 in the following significant ways: ++

    ++
      +
    • +- POSIX does not define the DST transitions +- for TZ values like +- "EST5EDT". +- Traditionally the current US DST rules +- were used to interpret such values, but this meant that the +- US DST rules were compiled into each +- time conversion package, and when +- US time conversion rules changed (as in the United +- States in 1987 and again in 2007), all packages that +- interpreted TZ values had to be updated +- to ensure proper results. ++ POSIX.1-2024 requires support for geographical TZ. ++ Earlier POSIX editions require support only for proleptic TZ. ++
    • ++
    • ++ POSIX.1-2024 requires struct tm ++ to have a UT offset member tm_gmtoff ++ and a time zone abbreviation member tm_zone. ++ Earlier POSIX editions lack this requirement. ++
    • ++
    • ++ DST transition times can range from −167:59:59 ++ to 167:59:59 instead of merely from 00:00:00 to 24:59:59. ++ This allows for proleptic TZ strings ++ like "<-02>2<-01>,M3.5.0/-1,M10.5.0/0" ++ where the transition time −1:00 means 23:00 the previous day. +
    • ++
    ++

    ++However POSIX.1-2024, like earlier POSIX editions, has some limitations: ++

      +
    • + The TZ environment variable is process-global, which + makes it hard to write efficient, thread-safe applications that +@@ -1003,16 +1075,34 @@ + handling daylight saving time shifts – as might be required to + limit phone calls to off-peak hours. +
    • +-
    • +- POSIX.1-2017 provides no convenient and efficient way to determine +- the UT offset and time zone abbreviation of arbitrary +- timestamps, particularly for timezones +- that do not fit into the POSIX model. +-
    • +
    • + POSIX requires that time_t clock counts exclude leap + seconds. +
    • ++
    • ++ POSIX does not define the DST transitions ++ for TZ values like ++ "EST5EDT". ++ Traditionally the current US DST rules ++ were used to interpret such values, but this meant that the ++ US DST rules were compiled into each ++ time conversion package, and when ++ US time conversion rules changed (as in the United ++ States in 1987 and again in 2007), all packages that ++ interpreted TZ values had to be updated ++ to ensure proper results. ++
    • ++
    ++ ++

    Extensions to POSIX in the ++tz code

    ++

    ++ The tz code defines some properties ++ left unspecified by POSIX, and attempts to support some ++ extensions to POSIX. ++

    ++ ++
      +
    • + The tz code attempts to support all the + time_t implementations allowed by POSIX. +@@ -1026,25 +1116,18 @@ + and 40-bit integers are also used occasionally. + Although earlier POSIX versions allowed time_t to be a + floating-point type, this was not supported by any practical system, +- and POSIX.1-2013 and the tz code both ++ and POSIX.1-2013+ and the tz code both + require time_t to be an integer type. +
    • +-
    +- +-

    Extensions to POSIX.1-2017 in the +-tz code

    +-
      +
    • +

      +- The TZ environment variable is used in generating +- the name of a file from which time-related information is read +- (or is interpreted à la POSIX.1-2017); TZ is no longer +- constrained to be a string containing abbreviations +- and numeric data as described above. ++ If the TZ environment variable uses the geographical format, ++ it is used in generating ++ the name of a file from which time-related information is read. + The file's format is TZif, + a timezone information format that contains binary data; see +- Internet +- RFC 8536. ++ Internet ++ RFC 9636. + The daylight saving time rules to be used for a + particular timezone are encoded in the + TZif file; the format of the file allows US, +@@ -1053,10 +1136,11 @@ + abbreviations are used. +

      +

      +- It was recognized that allowing the TZ environment ++ When the tz code was developed in the 1980s, ++ it was recognized that allowing the TZ environment + variable to take on values such as 'America/New_York' + might cause "old" programs (that expect TZ to have a +- certain form) to operate incorrectly; consideration was given to using ++ certain format) to operate incorrectly; consideration was given to using + some other environment variable (for example, TIMEZONE) + to hold the string used to generate the TZif file's name. + In the end, however, it was decided to continue using +@@ -1069,15 +1153,6 @@ + assume pre-POSIX TZ values. +

      +
    • +-
    • +- The code supports platforms with a UT offset member +- in struct tm, e.g., tm_gmtoff, +- or with a time zone abbreviation member in +- struct tm, e.g., tm_zone. As noted +- in Austin +- Group defect 1533, a future version of POSIX is planned to +- require tm_gmtoff and tm_zone. +-
    • +
    • + Functions tzalloc, tzfree, + localtime_rz, and mktime_z for +@@ -1088,7 +1163,7 @@ + and localtime_rz and mktime_z are + like localtime_r and mktime with an + extra timezone_t argument. +- The functions were inspired by NetBSD. ++ The functions were inspired by NetBSD. +
    • +
    • + Negative time_t values are supported, on systems +@@ -1116,6 +1191,7 @@ +
    • + The POSIX tzname variable does not suffice and is no + longer needed. ++ It is planned to be removed in a future edition of POSIX. + To get a timestamp's time zone abbreviation, consult + the tm_zone member if available; otherwise, + use strftime's "%Z" conversion +@@ -1124,6 +1200,7 @@ +
    • + The POSIX daylight and timezone + variables do not suffice and are no longer needed. ++ They are planned to be removed in a future edition of POSIX. + To get a timestamp's UT offset, consult + the tm_gmtoff member if available; otherwise, + subtract values returned by localtime +@@ -1135,12 +1212,15 @@ + The tm_isdst member is almost never needed and most of + its uses should be discouraged in favor of the abovementioned + APIs. ++ It was intended as an index into the tzname variable, ++ but as mentioned previously that usage is obsolete. + Although it can still be used in arguments to + mktime to disambiguate timestamps near + a DST transition when the clock jumps back on + platforms lacking tm_gmtoff, this +- disambiguation does not work when standard time itself jumps back, +- which can occur when a location changes to a time zone with a ++ disambiguation works only for proleptic TZ strings; ++ it does not work in general for geographical timezones, ++ such as when a location changes to a time zone with a + lesser UT offset. +
    • +
    +@@ -1157,8 +1237,8 @@ + Programs that in the past used the timezone function + may now examine localtime(&clock)->tm_zone + (if TM_ZONE is defined) or +- tzname[localtime(&clock)->tm_isdst] +- (if HAVE_TZNAME is nonzero) to learn the correct time ++ use strftime with a %Z conversion specification ++ to learn the correct time + zone abbreviation to use. + +
  • +@@ -1278,13 +1358,13 @@ +

    + 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 planned +-to be discontinued by 2035, 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. ++Unfortunately they have caused so many problems with civil ++timekeeping that there are ++plans ++to discontinue them by 2035. ++Even if these plans come to fruition, a record of leap seconds will still be ++needed to resolve timestamps from 1972 through 2035, ++and there may also be a need to record whatever mechanism replaces them. +

    + +

    +@@ -1374,6 +1454,12 @@ + 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. ++Also, NASA ++has been ordered ++to consider the establishment of Coordinated Lunar Time (LTC). ++It is not yet known whether the US and European efforts will result in ++multiple timescales on the Moon. +

    + +

    +--- contrib/tzdata/version.orig ++++ contrib/tzdata/version +@@ -1 +1 @@ +-2024a ++2025a +--- contrib/tzdata/ziguard.awk.orig ++++ contrib/tzdata/ziguard.awk +@@ -5,14 +5,10 @@ + # This is not a general-purpose converter; it is designed for current tzdata. + # It just converts from current source to main, vanguard, and rearguard forms. + # Although it might be nice for it to be idempotent, or to be useful +-# for converting back and forth between vanguard and rearguard formats, ++# for converting back and forth between formats, + # it does not do these nonessential tasks now. + # +-# Although main and vanguard forms are currently equivalent, +-# this need not always be the case. When the two forms differ, +-# this script can convert either from main to vanguard form (needed then), +-# or from vanguard to main form (this conversion would be needed later, +-# after main became rearguard and vanguard became main). ++# This script can convert from main to vanguard form and vice versa. + # There is no need to convert rearguard to other forms. + # + # When converting to vanguard form, the output can use the line +@@ -145,12 +141,12 @@ + } + + # If this line should differ due to Portugal benefiting from %z if supported, +- # uncomment the desired version and comment out the undesired one. +- if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+Port[\t ]+[%+-]/) { +- if (($0 ~ /%z/) == (DATAFORM == "vanguard")) { +- uncomment = in_comment +- } else { ++ # comment out the undesired version and uncomment the desired one. ++ if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+((Port|W-Eur)[\t ]+[%+-]|-[\t ]+(%z|-01)[\t ]+1982 Mar 28)/) { ++ if (($0 ~ /%z/) == (DATAFORM == "rearguard")) { + comment_out = !in_comment ++ } else { ++ uncomment = in_comment + } + } + +@@ -172,13 +168,8 @@ + sub(/^/, "#") + } + +- # Prefer %z in vanguard form, explicit abbreviations otherwise. +- if (DATAFORM == "vanguard") { +- sub(/^(Zone[\t ]+[^\t ]+)?[\t ]+[^\t ]+[\t ]+[^\t ]+[\t ]+[-+][^\t ]+/, \ +- "&CHANGE-TO-%z") +- sub(/-00CHANGE-TO-%z/, "-00") +- sub(/[-+][^\t ]+CHANGE-TO-/, "") +- } else { ++ # Prefer explicit abbreviations in rearguard form, %z otherwise. ++ if (DATAFORM == "rearguard") { + if ($0 ~ /^[^#]*%z/) { + stdoff_column = 2 * ($0 ~ /^Zone/) + 1 + rules_column = stdoff_column + 1 +@@ -216,6 +207,11 @@ + } + sub(/%z/, abbr) + } ++ } else { ++ sub(/^(Zone[\t ]+[^\t ]+)?[\t ]+[^\t ]+[\t ]+[^\t ]+[\t ]+[-+][^\t ]+/, \ ++ "&CHANGE-TO-%z") ++ sub(/-00CHANGE-TO-%z/, "-00") ++ sub(/[-+][^\t ]+CHANGE-TO-/, "") + } + + # Normally, prefer whole seconds. However, prefer subseconds +--- contrib/tzdata/zone.tab.orig ++++ contrib/tzdata/zone.tab +@@ -264,8 +264,7 @@ + ML +1239-00800 Africa/Bamako + MM +1647+09610 Asia/Yangon + 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 ++MN +4801+09139 Asia/Hovd Bayan-Olgii, Hovd, Uvs + MO +221150+1133230 Asia/Macau + MP +1512+14545 Pacific/Saipan + MQ +1436-06105 America/Martinique +@@ -311,7 +310,7 @@ + PF -2308-13457 Pacific/Gambier Gambier Islands + PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea + PG -0613+15534 Pacific/Bougainville Bougainville +-PH +1435+12100 Asia/Manila ++PH +143512+1205804 Asia/Manila + PK +2452+06703 Asia/Karachi + PL +5215+02100 Europe/Warsaw + PM +4703-05620 America/Miquelon +--- contrib/tzdata/zone1970.tab.orig ++++ contrib/tzdata/zone1970.tab +@@ -184,7 +184,7 @@ + IT,SM,VA +4154+01229 Europe/Rome + JM +175805-0764736 America/Jamaica + JO +3157+03556 Asia/Amman +-JP +353916+1394441 Asia/Tokyo ++JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory + 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, Wake +@@ -210,8 +210,7 @@ + MH +0905+16720 Pacific/Kwajalein Kwajalein + MM,CC +1647+09610 Asia/Yangon + 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 ++MN +4801+09139 Asia/Hovd Bayan-Ölgii, Hovd, Uvs + MO +221150+1133230 Asia/Macau + MQ +1436-06105 America/Martinique + MT +3554+01431 Europe/Malta +@@ -248,7 +247,7 @@ + PF -2308-13457 Pacific/Gambier Gambier Islands + PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville + PG -0613+15534 Pacific/Bougainville Bougainville +-PH +1435+12100 Asia/Manila ++PH +143512+1205804 Asia/Manila + PK +2452+06703 Asia/Karachi + PL +5215+02100 Europe/Warsaw + PM +4703-05620 America/Miquelon +@@ -295,7 +294,7 @@ + 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 peninsular Malaysia ++SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia + SR +0550-05510 America/Paramaribo + SS +0451+03137 Africa/Juba + ST +0020+00644 Africa/Sao_Tome +--- contrib/tzdata/zonenow.tab.orig ++++ contrib/tzdata/zonenow.tab +@@ -5,7 +5,7 @@ + # From Paul Eggert (2023-12-18): + # This file contains a table where each row stands for a timezone + # where civil timestamps are predicted to agree from now on. +-# This file is like zone1970.tab (see zone1970.tab's coments), ++# This file is like zone1970.tab (see zone1970.tab's comments), + # but with the following changes: + # + # 1. Each timezone corresponds to a set of clocks that are planned +@@ -97,9 +97,6 @@ + # -04/-03 (Chile DST) + XX -3327-07040 America/Santiago most of Chile + # +-# -04/-03 (Paraguay DST) +-XX -2516-05740 America/Asuncion Paraguay +-# + # -04/-03 - AST/ADT (North America DST) + XX +4439-06336 America/Halifax Atlantic ("AST/ADT") - Canada; Bermuda + # +@@ -123,8 +120,6 @@ + # + # -01/+00 (EU DST) + XX +3744-02540 Atlantic/Azores Azores +-# -01/+00 (EU DST) until 2024-03-31; then -02/-01 (EU DST) +-XX +7029-02158 America/Scoresbysund Ittoqqortoormiit + # + # +00 - GMT + XX +0519-00402 Africa/Abidjan far western Africa; Iceland ("GMT") +@@ -199,7 +194,7 @@ + XX +3431+06912 Asia/Kabul Afghanistan + # + # +05 +-XX +4120+06918 Asia/Tashkent Russia; west Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives ++XX +4120+06918 Asia/Tashkent Russia; Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives + # + # +05 - PKT + XX +2452+06703 Asia/Karachi Pakistan ("PKT") +@@ -215,8 +210,6 @@ + # + # +06 + XX +2343+09025 Asia/Dhaka Russia; Kyrgyzstan; Bhutan; Bangladesh; Chagos +-# +06 until 2024-03-01; then +05 +-XX +4315+07657 Asia/Almaty Kazakhstan (except western areas) + # + # +06:30 + XX +1647+09610 Asia/Yangon Myanmar; Cocos +@@ -228,7 +221,7 @@ + XX -0610+10648 Asia/Jakarta Indonesia ("WIB") + # + # +08 +-XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore ++XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia + # + # +08 - AWST + XX -3157+11551 Australia/Perth Western Australia ("AWST") +@@ -240,7 +233,7 @@ + XX +2217+11409 Asia/Hong_Kong Hong Kong ("HKT") + # + # +08 - PHT +-XX +1435+12100 Asia/Manila Philippines ("PHT") ++XX +143512+1205804 Asia/Manila Philippines ("PHT") + # + # +08 - WITA + XX -0507+11924 Asia/Makassar Indonesia ("WITA") +@@ -252,7 +245,7 @@ + XX +5203+11328 Asia/Chita Russia; Palau; East Timor + # + # +09 - JST +-XX +353916+1394441 Asia/Tokyo Japan ("JST") ++XX +353916+1394441 Asia/Tokyo Japan ("JST"); Eyre Bird Observatory + # + # +09 - KST + XX +3733+12658 Asia/Seoul Korea ("KST") diff --git a/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch.asc b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch.asc new file mode 100644 index 0000000000..a4ca86afd8 --- /dev/null +++ b/website/static/security/patches/EN-25:03/tzdata-2024b-2025a.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKYACgkQbljekB8A +Gu/rTBAArfZClfutaM3DseJ5JQqYK9ZX8/K5bD7VXdz3ES+4+/OUq9JLS3mTDWfu +KCWzuwf90nrE4E5HSLzvNjZj20EDw+rHPg0abmxc+itmixERMRttSfnYWyNA8aTx +eqhZQpT7AyB7oEQEwl+u74Hziu04q94Dzw2uJ8Nd8wEgsOuAz5UKigiyFyzkhWJV +KZeiS5BbCAoH+/OETNHjeloe+9J8hCHP4u48JktEMjHmNKcLE0Cz1i+AdN1VzUB7 +EoGhYkQzs25avBL5gFJabR7EJh1Ui6vT58LI/k3rAsnjlynAV+OZRyzzDg0f9UID +ZqIL2PtAUI2NpF4O8H9FnlWxZXQlV8Dsu8dN0dT2nKTOicEponmlK+h7MPpIxmKc +yPSDQ8Omu1jMSCuM1uoylvwxnSvRof2eOxCvlRjhG1pOGCYmGm1JQe3yXEIb9kb9 +2iDncF+8qFh/aa16gwsjFXqdB1nj5hds+F4ZSer67sOh1+EzhuJD7JlC1DvLl9Te +C3Rdui3yLRwy3iZLodhv+OZmmUt2K0qR7Tp5+JER72iOMy4U0y9f3CwzqTNNEavm +eDVvrnWZLFj5qRY5p4nzWvfz92BMoXIqFTElmwcHs9l2RW6AZts6i9qPTYIGN8bd +c+VC4X7SRh5eRkmDQqYXOAdiBR44XygJqK6wE1Dh9IWJKkNUfxo= +=AyyE +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:03/tzdata-2025a.patch b/website/static/security/patches/EN-25:03/tzdata-2025a.patch new file mode 100644 index 0000000000..dbc93c9653 --- /dev/null +++ b/website/static/security/patches/EN-25:03/tzdata-2025a.patch @@ -0,0 +1,929 @@ +--- contrib/tzdata/Makefile.orig ++++ contrib/tzdata/Makefile +@@ -137,7 +137,7 @@ + uint_least64_t.ck + + # What kind of TZif data files to generate. (TZif is the binary time +-# zone data format that zic generates; see Internet RFC 8536.) ++# zone data format that zic generates; see Internet RFC 9636.) + # If you want only POSIX time, with time values interpreted as + # seconds since the epoch (not counting leap seconds), use + # REDO= posix_only +@@ -255,6 +255,7 @@ + # -DHAVE_UNISTD_H=0 if does not work* + # -DHAVE_UTMPX_H=0 if does not work* + # -Dlocale_t=XXX if your system uses XXX instead of locale_t ++# -DMKTIME_MIGHT_OVERFLOW if mktime might fail due to time_t overflow + # -DPORT_TO_C89 if tzcode should also run on mostly-C89 platforms+ + # Typically it is better to use a later standard. For example, + # with GCC 4.9.4 (2016), prefer '-std=gnu11' to '-DPORT_TO_C89'. +@@ -262,7 +263,7 @@ + # feature (integers at least 64 bits wide) and maybe more. + # -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 ++# -Dssize_t=int on hosts like MS-Windows that lack ssize_t + # -DSUPPORT_C89=0 if the tzcode library should not support C89 callers + # Although -DSUPPORT_C89=0 might work around latent bugs in callers, + # it does not conform to POSIX. +@@ -285,7 +286,7 @@ + # 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) ++# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 254) + # -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 +@@ -319,7 +320,8 @@ + $(GCC_INSTRUMENT) \ + -Wall -Wextra \ + -Walloc-size-larger-than=100000 -Warray-bounds=2 \ +- -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \ ++ -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wcast-qual \ ++ -Wdate-time \ + -Wdeclaration-after-statement -Wdouble-promotion \ + -Wduplicated-branches -Wduplicated-cond -Wflex-array-member-not-at-end \ + -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ +@@ -336,7 +338,7 @@ + -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ + -Wtrampolines -Wundef -Wunused-macros -Wuse-after-free=3 \ + -Wvariadic-macros -Wvla -Wwrite-strings \ +- -Wno-format-nonliteral -Wno-sign-compare ++ -Wno-format-nonliteral -Wno-sign-compare -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), +@@ -614,8 +616,8 @@ + TZS_CUTOFF_FLAG= -c $(TZS_YEAR) + TZS= to$(TZS_YEAR).tzs + TZS_NEW= to$(TZS_YEAR)new.tzs +-TZS_DEPS= $(YDATA) asctime.c localtime.c \ +- private.h tzfile.h zdump.c zic.c ++TZS_DEPS= $(YDATA) localtime.c private.h \ ++ strftime.c tzfile.h zdump.c zic.c + TZDATA_DIST = $(COMMON) $(DATA) $(MISC) + # EIGHT_YARDS is just a yard short of the whole ENCHILADA. + EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi +@@ -855,10 +857,10 @@ + chmod +x $@.out + mv $@.out $@ + +-check: check_mild back.ck ++check: check_mild back.ck now.ck + check_mild: check_web check_zishrink \ + character-set.ck white-space.ck links.ck mainguard.ck \ +- name-lengths.ck now.ck slashed-abbrs.ck sorted.ck \ ++ name-lengths.ck slashed-abbrs.ck sorted.ck \ + tables.ck ziguard.ck tzs.ck + + # True if UTF8_LOCALE does not work; +@@ -1103,7 +1105,7 @@ + touch -md @1 test.out; then \ + rm -f test.out && \ + for file in $$files; do \ +- if git diff --quiet $$file; then \ ++ if git diff --quiet HEAD $$file; then \ + time=$$(TZ=UTC0 git log -1 \ + --format='tformat:%cd' \ + --date='format:%Y-%m-%dT%H:%M:%SZ' \ +@@ -1354,13 +1356,13 @@ + zonenames: tzdata.zi + @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi + +-asctime.o: private.h tzfile.h ++asctime.o: private.h + date.o: private.h + difftime.o: private.h +-localtime.o: private.h tzfile.h tzdir.h +-strftime.o: private.h tzfile.h +-zdump.o: version.h +-zic.o: private.h tzfile.h tzdir.h version.h ++localtime.o: private.h tzdir.h tzfile.h ++strftime.o: localtime.c private.h tzdir.h tzfile.h ++zdump.o: private.h version.h ++zic.o: private.h tzdir.h tzfile.h version.h + + .PHONY: ALL INSTALL all + .PHONY: check check_mild check_time_t_alternatives +--- contrib/tzdata/NEWS.orig ++++ contrib/tzdata/NEWS +@@ -1,5 +1,83 @@ + News for the tz database + ++Release 2025a - 2025-01-15 10:47:24 -0800 ++ ++ Briefly: ++ Paraguay adopts permanent -03 starting spring 2024. ++ Improve pre-1991 data for the Philippines. ++ Etc/Unknown is now reserved. ++ ++ Changes to future timestamps ++ ++ Paraguay will stop changing its clocks after the spring-forward ++ transition on 2024-10-06, so it is now permanently at -03. ++ (Thanks to Heitor David Pinto and Even Scharning.) ++ This affects timestamps starting 2025-03-22, as well as the ++ obsolescent tm_isdst flags starting 2024-10-15. ++ ++ Changes to past timestamps ++ ++ Correct timestamps for the Philippines before 1900, and from 1937 ++ through 1990. (Thanks to P Chan for the heads-up and citations.) ++ This includes adjusting local mean time before 1899; fixing ++ transitions in September 1899, January 1937, and June 1954; adding ++ transitions in December 1941, November 1945, March and September ++ 1977, and May and July 1990; and removing incorrect transitions in ++ March and September 1978. ++ ++ Changes to data ++ ++ Add zone1970.tab lines for the Concordia and Eyre Bird Observatory ++ research stations. (Thanks to Derick Rethans and Jule Dabars.) ++ ++ Changes to code ++ ++ strftime %s now generates the correct numeric string even when the ++ represented number does not fit into time_t. This is better than ++ generating the numeric equivalent of (time_t) -1, as strftime did ++ in TZDB releases 96a (when %s was introduced) through 2020a and in ++ releases 2022b through 2024b. It is also better than failing and ++ returning 0, as strftime did in releases 2020b through 2022a. ++ ++ strftime now outputs an invalid conversion specifier as-is, ++ instead of eliding the leading '%', which confused debugging. ++ ++ An invalid TZ now generates the time zone abbreviation "-00", not ++ "UTC", to help the user see that an error has occurred. (Thanks ++ to Arthur David Olson for suggesting a "wrong result".) ++ ++ mktime and timeoff no longer incorrectly fail merely because a ++ struct tm component near INT_MIN or INT_MAX overflows when a ++ lower-order component carries into it. ++ ++ TZNAME_MAXIMUM, the maximum number of bytes in a proleptic TZ ++ string's time zone abbreviation, now defaults to 254 not 255. ++ This helps reduce the size of internal state from 25480 to 21384 ++ on common platforms. This change should not be a problem, as ++ nobody uses such long "abbreviations" and the longstanding tzcode ++ maximum was 16 until release 2023a. For those who prefer no ++ arbitrary limits, you can now specify TZNAME_MAXIMUM values up to ++ PTRDIFF_MAX, a limit forced by C anyway; formerly tzcode silently ++ misbehaved unless TZNAME_MAXIMUM was less than INT_MAX. ++ ++ tzset and related functions no longer leak a file descriptor if ++ another thread forks or execs at about the same time and if the ++ platform has O_CLOFORK and O_CLOEXEC respectively. Also, the ++ functions no longer let a TZif file become a controlling terminal. ++ ++ 'zdump -' now reads TZif data from /dev/stdin. ++ (From a question by Arthur David Olson.) ++ ++ Changes to documentation ++ ++ The name Etc/Unknown is now reserved: it will not be used by TZDB. ++ This is for compatibility with CLDR, which uses the string ++ "Etc/Unknown" for an unknown or invalid timezone. (Thanks to ++ Justin Grant, Mark Davis, and Guy Harris.) ++ ++ Cite Internet RFC 9636, which obsoletes RFC 8536 for TZif format. ++ ++ + Release 2024b - 2024-09-04 12:27:47 -0700 + + Briefly: +@@ -116,7 +194,7 @@ + Changes to commentary + + Commentary about historical transitions in Portugal and her former +- colonies has been expanded with links to many relevant legislation. ++ colonies has been expanded with links to relevant legislation. + (Thanks to Tim Parenti.) + + +@@ -204,10 +282,10 @@ + changing its time zone from -01/+00 to -02/-01 at the same moment + as the spring-forward transition. Its clocks will therefore not + spring forward as previously scheduled. The time zone change +- reverts to its common practice before 1981. ++ reverts to its common practice before 1981. (Thanks to Jule Dabars.) + + Fix predictions for DST transitions in Palestine in 2072-2075, +- correcting a typo introduced in 2023a. ++ correcting a typo introduced in 2023a. (Thanks to Jule Dabars.) + + Changes to past and future timestamps + +--- contrib/tzdata/antarctica.orig ++++ contrib/tzdata/antarctica +@@ -174,6 +174,8 @@ + + # France & Italy - year-round base + # Concordia, -750600+1232000, since 2005 ++# https://en.wikipedia.org/wiki/Concordia_Station ++# Can use Asia/Singapore, which it has agreed with since inception. + + # Germany - year-round base + # Neumayer III, -704080-0081602, since 2009 +--- contrib/tzdata/asia.orig ++++ contrib/tzdata/asia +@@ -3665,21 +3665,70 @@ + # be immediately followed by 1845-01-01; see R.H. van Gent's + # History of the International Date Line + # https://webspace.science.uu.nl/~gent0113/idl/idl_philippines.htm +-# The rest of the data entries are from Shanks & Pottenger. +- +-# From Jesper Nørgaard Welen (2006-04-26): +-# ... claims that Philippines had DST last time in 1990: +-# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/ +-# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires, +-# but no details] +- +-# From Paul Eggert (2014-08-14): +-# The following source says DST may be instituted November-January and again +-# March-June, but this is not definite. It also says DST was last proclaimed +-# during the Ramos administration (1992-1998); but again, no details. +-# Carcamo D. PNoy urged to declare use of daylight saving time. +-# Philippine Star 2014-08-05 +-# http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time ++ ++# From P Chan (2021-05-10): ++# Here's a fairly comprehensive article in Japanese: ++# https://wiki.suikawiki.org/n/Philippine%20Time ++# (2021-05-16): ++# According to the references listed in the article, ++# the periods that the Philippines (Manila) observed DST or used +9 are: ++# ++# 1936-10-31 24:00 to 1937-01-15 24:00 ++# (Proclamation No. 104, Proclamation No. 126) ++# 1941-12-15 24:00 to 1945-11-30 24:00 ++# (Proclamation No. 789, Proclamation No. 20) ++# 1954-04-11 24:00 to 1954-06-04 24:00 ++# (Proclamation No. 13, Proclamation No. 33) ++# 1977-03-27 24:00 to 1977-09-21 24:00 ++# (Proclamation No. 1629, Proclamation No. 1641) ++# 1990-05-21 00:00 to 1990-07-28 24:00 ++# (National Emergency Memorandum Order No. 17, Executive Order No. 415) ++# ++# Proclamation No. 104 ... October 30, 1936 ++# https://www.officialgazette.gov.ph/1936/10/30/proclamation-no-104-s-1936/ ++# Proclamation No. 126 ... January 15, 1937 ++# https://www.officialgazette.gov.ph/1937/01/15/proclamation-no-126-s-1937/ ++# Proclamation No. 789 ... December 13, 1941 ++# https://www.officialgazette.gov.ph/1941/12/13/proclamation-no-789-s-1941/ ++# Proclamation No. 20 ... November 11, 1945 ++# https://www.officialgazette.gov.ph/1945/11/11/proclamation-no-20-s-1945/ ++# Proclamation No. 13 ... April 6, 1954 ++# https://www.officialgazette.gov.ph/1954/04/06/proclamation-no-13-s-1954/ ++# Proclamation No. 33 ... June 3, 1954 ++# https://www.officialgazette.gov.ph/1954/06/03/proclamation-no-33-s-1954/ ++# Proclamation No. 1629 ... March 25, 1977 ++# https://www.officialgazette.gov.ph/1977/03/25/proclamation-no-1629-s-1977/ ++# Proclamation No. 1641 ...May 26, 1977 ++# https://www.officialgazette.gov.ph/1977/05/26/proclamation-no-1641-s-1977/ ++# National Emergency Memorandum Order No. 17 ... May 2, 1990 ++# https://www.officialgazette.gov.ph/1990/05/02/national-emergency-memorandum-order-no-17-s-1990/ ++# Executive Order No. 415 ... July 20, 1990 ++# https://www.officialgazette.gov.ph/1990/07/20/executive-order-no-415-s-1990/ ++# ++# During WWII, Proclamation No. 789 fixed two periods of DST. The first period ++# was set to continue only until January 31, 1942. But Manila was occupied by ++# the Japanese earlier in the month.... ++# ++# For the date of the adoption of standard time, Shank[s] gives 1899-05-11. ++# The article is not able to state the basis of that. I guess it was based on ++# a US War Department Circular issued on that date. ++# https://books.google.com/books?id=JZ1PAAAAYAAJ&pg=RA3-PA8 ++# ++# However, according to other sources, standard time was adopted on ++# 1899-09-06. Also, the LMT was GMT+8:03:52 ++# https://books.google.com/books?id=MOYIAQAAIAAJ&pg=PA521 ++# https://books.google.com/books?id=lSnqqatpYikC&pg=PA21 ++# ++# From Paul Eggert (2024-09-05): ++# The penultimate URL in P Chan's email refers to page 521 of ++# Selga M, The Time Service in the Philippines. ++# Proc Pan-Pacific Science Congress. Vol. 1 (1923), 519-532. ++# It says, "The change from the meridian 120° 58' 04" to the 120th implied a ++# change of 3 min. 52s.26 in time; consequently on 6th September, 1899, ++# Manila Observatory gave the noon signal 3 min. 52s.26 later than before". ++# ++# Wikipedia says the US declared Manila liberated on March 4, 1945; ++# this doesn't affect clocks, just our time zone abbreviation and DST flag. + + # From Paul Goyette (2018-06-15) with URLs updated by Guy Harris (2024-02-15): + # In the Philippines, there is a national law, Republic Act No. 10535 +@@ -3697,24 +3746,26 @@ + # influence of the sources. There is no current abbreviation for DST, + # so use "PDT", the usual American style. + +-# From P Chan (2021-05-10): +-# Here's a fairly comprehensive article in Japanese: +-# https://wiki.suikawiki.org/n/Philippine%20Time +-# From Paul Eggert (2021-05-10): +-# The info in the Japanese table has not been absorbed (yet) below. +- + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Phil 1936 only - Nov 1 0:00 1:00 D +-Rule Phil 1937 only - Feb 1 0:00 0 S +-Rule Phil 1954 only - Apr 12 0:00 1:00 D +-Rule Phil 1954 only - Jul 1 0:00 0 S +-Rule Phil 1978 only - Mar 22 0:00 1:00 D +-Rule Phil 1978 only - Sep 21 0:00 0 S ++Rule Phil 1936 only - Oct 31 24:00 1:00 D ++Rule Phil 1937 only - Jan 15 24:00 0 S ++Rule Phil 1941 only - Dec 15 24:00 1:00 D ++# The following three rules were canceled by Japan: ++#Rule Phil 1942 only - Jan 31 24:00 0 S ++#Rule Phil 1942 only - Mar 1 0:00 1:00 D ++#Rule Phil 1942 only - Jun 30 24:00 0 S ++Rule Phil 1945 only - Nov 30 24:00 0 S ++Rule Phil 1954 only - Apr 11 24:00 1:00 D ++Rule Phil 1954 only - Jun 4 24:00 0 S ++Rule Phil 1977 only - Mar 27 24:00 1:00 D ++Rule Phil 1977 only - Sep 21 24:00 0 S ++Rule Phil 1990 only - May 21 0:00 1:00 D ++Rule Phil 1990 only - Jul 28 24:00 0 S + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 +- 8:04:00 - LMT 1899 May 11 +- 8:00 Phil P%sT 1942 May +- 9:00 - JST 1944 Nov ++Zone Asia/Manila -15:56:08 - LMT 1844 Dec 31 ++ 8:03:52 - LMT 1899 Sep 6 4:00u ++ 8:00 Phil P%sT 1942 Feb 11 24:00 ++ 9:00 - JST 1945 Mar 4 + 8:00 Phil P%sT + + # Bahrain +--- contrib/tzdata/australasia.orig ++++ contrib/tzdata/australasia +@@ -1239,10 +1239,10 @@ + # The 1992 ending date used in the rules is a best guess; + # it matches what was used in the past. + +-# The Australian Bureau of Meteorology FAQ +-# http://www.bom.gov.au/faq/faqgen.htm +-# (1999-09-27) writes that Giles Meteorological Station uses +-# South Australian time even though it's located in Western Australia. ++# From Christopher Hunt (2006-11-21), after an advance warning ++# from Jesper Nørgaard Welen (2006-11-01): ++# WA are trialing DST for three years. ++# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf + + # From Paul Eggert (2018-04-01): + # The Guardian Express of Perth, Australia reported today that the +@@ -1254,54 +1254,10 @@ + # https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/ + # [The article ends with "Today's date is April 1."] + +-# Queensland +- +-# From Paul Eggert (2018-02-26): +-# I lack access to the following source for Queensland DST: +-# Pearce C. History of daylight saving time in Queensland. +-# Queensland Hist J. 2017 Aug;23(6):389-403 +-# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS +- +-# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06): +-# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ] +-# # [ Dec 1990 ] +-# ... +-# Zone Australia/Queensland 10:00 AQ %sST +-# ... +-# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D +-# Rule AQ 1972 only - Feb lastSun 3:00 0 E +-# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D +-# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E +- +-# From Bradley White (1989-12-24): +-# "Australia/Queensland" now observes daylight time (i.e. from +-# October 1989). +- +-# From Bradley White (1991-03-04): +-# A recent excerpt from an Australian newspaper... +-# ...Queensland...[has] agreed to end daylight saving +-# at 3am tomorrow (March 3)... +- +-# From John Mackin (1991-03-06): +-# I can certainly confirm for my part that Daylight Saving in NSW did in fact +-# end on Sunday, 3 March. I don't know at what hour, though. (It surprised +-# me.) +- +-# From Bradley White (1992-03-08): +-# ...there was recently a referendum in Queensland which resulted +-# in the experimental daylight saving system being abandoned. So, ... +-# ... +-# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D +-# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S +-# ... +- +-# From Arthur David Olson (1992-03-08): +-# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes. +- +-# From Christopher Hunt (2006-11-21), after an advance warning +-# from Jesper Nørgaard Welen (2006-11-01): +-# WA are trialing DST for three years. +-# http://www.parliament.wa.gov.au/parliament/bills.nsf/9A1B183144403DA54825721200088DF1/$File/Bill175-1B.pdf ++# The Australian Bureau of Meteorology FAQ ++# http://www.bom.gov.au/faq/faqgen.htm ++# (1999-09-27) writes that Giles Meteorological Station uses ++# South Australian time even though it's located in Western Australia. + + # From Rives McDow (2002-04-09): + # The most interesting region I have found consists of three towns on the +@@ -1359,6 +1315,59 @@ + # For lack of better info, assume the tradition dates back to the + # introduction of standard time in 1895. + ++# From Stuart Bishop (2024-11-12): ++# An article discussing the in-use but technically unofficial timezones ++# in the Western Australian portion of the Nullarbor Plain. ++# https://www.abc.net.au/news/2024-11-22/outback-wa-properties-strange-time-zones/104542494 ++# From Paul Eggert (2024-11-12): ++# As the article says, the Eyre Bird Observatory and nearby sheep stations ++# can use Tokyo time. Other possibilities include Asia/Chita, Asia/Seoul, ++# and Asia/Jayapura. ++ ++# Queensland ++ ++# From Paul Eggert (2018-02-26): ++# I lack access to the following source for Queensland DST: ++# Pearce C. History of daylight saving time in Queensland. ++# Queensland Hist J. 2017 Aug;23(6):389-403 ++# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS ++ ++# From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06): ++# # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ] ++# # [ Dec 1990 ] ++# ... ++# Zone Australia/Queensland 10:00 AQ %sST ++# ... ++# Rule AQ 1971 only - Oct lastSun 2:00 1:00 D ++# Rule AQ 1972 only - Feb lastSun 3:00 0 E ++# Rule AQ 1989 max - Oct lastSun 2:00 1:00 D ++# Rule AQ 1990 max - Mar Sun>=1 3:00 0 E ++ ++# From Bradley White (1989-12-24): ++# "Australia/Queensland" now observes daylight time (i.e. from ++# October 1989). ++ ++# From Bradley White (1991-03-04): ++# A recent excerpt from an Australian newspaper... ++# ...Queensland...[has] agreed to end daylight saving ++# at 3am tomorrow (March 3)... ++ ++# From John Mackin (1991-03-06): ++# I can certainly confirm for my part that Daylight Saving in NSW did in fact ++# end on Sunday, 3 March. I don't know at what hour, though. (It surprised ++# me.) ++ ++# From Bradley White (1992-03-08): ++# ...there was recently a referendum in Queensland which resulted ++# in the experimental daylight saving system being abandoned. So, ... ++# ... ++# Rule QLD 1989 1991 - Oct lastSun 2:00 1:00 D ++# Rule QLD 1990 1992 - Mar Sun>=1 3:00 0 S ++# ... ++ ++# From Arthur David Olson (1992-03-08): ++# The chosen rules the union of the 1971/1972 change and the 1989-1992 changes. ++ + + # southeast Australia + # +--- contrib/tzdata/checknow.awk.orig ++++ contrib/tzdata/checknow.awk +@@ -44,7 +44,7 @@ + END { + for (zone in zone_data) { + data = zone_data[zone] +- if (!zonenow[data]) { ++ if (data && !zonenow[data]) { + printf "Zone table should have one of:%s\n", zones[data] + zonenow[data] = zone # This suppresses duplicate diagnostics. + status = 1 +--- contrib/tzdata/checktab.awk.orig ++++ contrib/tzdata/checktab.awk +@@ -9,6 +9,19 @@ + if (!zone_table) zone_table = "zone1970.tab" + if (!want_warnings) want_warnings = -1 + ++ monthabbr["Jan"] = 1 ++ monthabbr["Feb"] = 1 ++ monthabbr["Mar"] = 1 ++ monthabbr["Apr"] = 1 ++ monthabbr["May"] = 1 ++ monthabbr["Jun"] = 1 ++ monthabbr["Jul"] = 1 ++ monthabbr["Aug"] = 1 ++ monthabbr["Sep"] = 1 ++ monthabbr["Oct"] = 1 ++ monthabbr["Nov"] = 1 ++ monthabbr["Dec"] = 1 ++ + while (getline >"/dev/stderr" ++ status = 1 ++ } + } else { ++ stdoff = $1 + ruleUsed[$2] = 1 + if ($3 ~ /%/) rulePercentUsed[$2] = 1 + } ++ ++ if (stdoff && stdoff !~ /^\-?1?[0-9](:[0-5][0-9](:[0-5][0-9])?)?$/) { ++ printf "%s:%d: unlikely STDOFF: %s\n", FILENAME, FNR, stdoff \ ++ >>"/dev/stderr" ++ status = 1 ++ } ++ + if (tz && tz ~ /\// && tz !~ /^Etc\//) { + if (!tztab[tz] && FILENAME != "backward" \ + && zone_table != "zonenow.tab") { +--- contrib/tzdata/etcetera.orig ++++ contrib/tzdata/etcetera +@@ -51,6 +51,10 @@ + # so we moved the names into the Etc subdirectory. + # Also, the time zone abbreviations are now compatible with %z. + ++# There is no "Etc/Unknown" entry, as CLDR says that "Etc/Unknown" ++# corresponds to an unknown or invalid time zone, and things would get ++# confusing if Etc/Unknown were made valid here. ++ + Zone Etc/GMT-14 14 - %z + Zone Etc/GMT-13 13 - %z + Zone Etc/GMT-12 12 - %z +--- contrib/tzdata/europe.orig ++++ contrib/tzdata/europe +@@ -1147,7 +1147,7 @@ + # However, Greenland will change to Daylight Saving Time again in 2024 + # and onwards. + +-# From a contributor who wishes to remain anonymous for now (2023-10-29): ++# From Jule Dabars (2023-10-29): + # https://www.dr.dk/nyheder/seneste/i-nat-skal-uret-stilles-en-time-tilbage-men-foerste-gang-sker-det-ikke-i-groenland + # with a link to that page: + # https://naalakkersuisut.gl/Nyheder/2023/10/2710_sommertid +--- contrib/tzdata/factory.orig ++++ contrib/tzdata/factory +@@ -8,5 +8,15 @@ + # time zone abbreviation "-00", indicating that the actual time zone + # is unknown. + ++# TZ="Factory" was added to TZDB in 1989, and in 2016 its abbreviation ++# was changed to "-00" from a longish English-language error message. ++# Around 2010, CLDR added "Etc/Unknown" for use with TZDB, to stand ++# for an unknown or invalid time zone. These two notions differ: ++# TZ="Factory" is a valid timezone, so tzalloc("Factory") succeeds, whereas ++# TZ="Etc/Unknown" is invalid and tzalloc("Etc/Unknown") fails. ++# Also, a downstream distributor could modify Factory to be a ++# default timezone suitable for the devices it manufactures, ++# whereas that cannot happen for Etc/Unknown. ++ + # Zone NAME STDOFF RULES FORMAT + Zone Factory 0 - "Local time zone must be set--use tzsetup" +--- contrib/tzdata/leap-seconds.list.orig ++++ contrib/tzdata/leap-seconds.list +@@ -60,15 +60,15 @@ + # + # The following line shows the last update of this file in NTP timestamp: + # +-#$ 3929093563 ++#$ 3945196800 + # + # 2) Expiration date of the file given on a semi-annual basis: last June or last December + # +-# File expires on 28 June 2025 ++# File expires on 28 December 2025 + # + # Expire date in NTP timestamp: + # +-#@ 3960057600 ++#@ 3975868800 + # + # + # LIST OF LEAP SECONDS +@@ -117,4 +117,4 @@ + # please see the readme file in the 'source' directory : + # https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README + # +-#h be738595 57b0cf1b b0218343 fb77062f 5a775e7 ++#h 848434d5 570f7ea8 d79ba227 a00fc821 f608e2d4 +--- contrib/tzdata/leapseconds.orig ++++ contrib/tzdata/leapseconds +@@ -69,11 +69,11 @@ + # 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 2025 Jun 28 00:00:00 ++#Expires 2025 Dec 28 00:00:00 + + # POSIX timestamps for the data in this file: +-#updated 1720104763 (2024-07-04 14:52:43 UTC) +-#expires 1751068800 (2025-06-28 00:00:00 UTC) ++#updated 1736208000 (2025-01-07 00:00:00 UTC) ++#expires 1766880000 (2025-12-28 00:00:00 UTC) + + # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) +-# File expires on 28 June 2025 ++# File expires on 28 December 2025 +--- contrib/tzdata/northamerica.orig ++++ contrib/tzdata/northamerica +@@ -27,9 +27,12 @@ + # in New York City (1869-10). His 1870 proposal was based on Washington, DC, + # but in 1872-05 he moved the proposed origin to Greenwich. + +-# From Paul Eggert (2018-03-20): ++# From Paul Eggert (2024-11-18): + # Dowd's proposal left many details unresolved, such as where to draw +-# lines between time zones. The key individual who made time zones ++# lines between time zones. Sandford Fleming of the Canadian Pacific Railway ++# argued for Dowd's proposal in 1876, and Cleveland Abbe of the American ++# Meteorology Society published a report in 1879 recommending four US time ++# zones based on GMT. However, the key individual who made time zones + # work in the US was William Frederick Allen - railway engineer, + # managing editor of the Travelers' Guide, and secretary of the + # General Time Convention, a railway standardization group. Allen +@@ -2631,7 +2634,7 @@ + # http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/ + + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Mexico 1931 only - April 30 0:00 1:00 D ++Rule Mexico 1931 only - Apr 30 0:00 1:00 D + Rule Mexico 1931 only - Oct 1 0:00 0 S + Rule Mexico 1939 only - Feb 5 0:00 1:00 D + Rule Mexico 1939 only - Jun 25 0:00 0 S +--- contrib/tzdata/southamerica.orig ++++ contrib/tzdata/southamerica +@@ -1687,7 +1687,7 @@ + # and that on the first Sunday of the month of October, it is to be set + # forward 60 minutes, in all the territory of the Paraguayan Republic. + # ... +-Rule Para 2010 max - Oct Sun>=1 0:00 1:00 - ++Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 - + Rule Para 2010 2012 - Apr Sun>=8 0:00 0 - + # + # From Steffen Thorsen (2013-03-07): +@@ -1706,14 +1706,35 @@ + # https://www.abc.com.py/politica/2023/07/12/promulgacion-el-cambio-de-hora-sera-por-ley/ + # From Carlos Raúl Perasso (2023-07-27): + # http://silpy.congreso.gov.py/descarga/ley-144138 +-Rule Para 2013 max - Mar Sun>=22 0:00 0 - ++Rule Para 2013 2024 - Mar Sun>=22 0:00 0 - ++# ++# From Heitor David Pinto (2024-09-24): ++# Today the Congress of Paraguay passed a bill to observe UTC-3 permanently.... ++# The text of the bill says that it would enter into force on the first ++# Sunday in October 2024, the same date currently scheduled to start DST.... ++# https://silpy.congreso.gov.py/web/expediente/132531 ++# (2024-10-14): ++# The president approved the law on 11 October 2024, ++# and it was officially published on 14 October 2024. ++# https://www.gacetaoficial.gov.py/index/detalle_publicacion/89723 ++# The text of the law says that it enters into force on the first ++# Sunday in October 2024 (6 October 2024). But the constitution ++# prohibits retroactive effect, and the civil code says that laws ++# enter into force on the day after their publication or on the day ++# that they specify, and it also says that they don't have retroactive ++# effect. So I think that the time change on 6 October 2024 should ++# still be considered as DST according to the previous law, and ++# permanently UTC-3 from 15 October 2024 according to the new law.... ++# https://www.constituteproject.org/constitution/Paraguay_2011 ++# https://www.oas.org/dil/esp/codigo_civil_paraguay.pdf + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Asuncion -3:50:40 - LMT 1890 + -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time + -4:00 - %z 1972 Oct + -3:00 - %z 1974 Apr +- -4:00 Para %z ++ -4:00 Para %z 2024 Oct 15 ++ -3:00 - %z + + # Peru + # +--- contrib/tzdata/theory.html.orig ++++ contrib/tzdata/theory.html +@@ -123,8 +123,9 @@ + locate the user on a timezone map or prioritize names that are + geographically close. For an example selection interface, see the + tzselect program in the tz code. +-The Unicode Common Locale Data +-Repository contains data that may be useful for other selection ++Unicode's Common Locale Data ++Repository (CLDR) ++contains data that may be useful for other selection + interfaces; it maps timezone names like Europe/Prague to + locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格". +

    +@@ -200,6 +201,8 @@ +
  • + A name must not be empty, or contain '//', or + start or end with '/'. ++ Also, a name must not be 'Etc/Unknown', as ++ CLDR uses that string for an unknown or invalid timezone. +
  • +
  • + Do not use names that differ only in case. +@@ -220,10 +223,18 @@ + do not need locations, since local time is not defined there. +
  • +
  • +- If all the clocks in a timezone have agreed since 1970, +- do not bother to include more than one timezone +- even if some of the clocks disagreed before 1970. ++ If all clocks in a region have agreed since 1970, ++ give them just one name even if some of the clocks disagreed before 1970, ++ or reside in different countries or in notable or faraway locations. + Otherwise these tables would become annoyingly large. ++ For example, do not create a name Indian/Crozet ++ as a near-duplicate or alias of Asia/Dubai ++ merely because they are different countries or territories, ++ or their clocks disagreed before 1970, or the ++ Crozet Islands ++ are notable in their own right, ++ or the Crozet Islands are not adjacent to other locations ++ that use Asia/Dubai. +
  • +
  • + If boundaries between regions are fluid, such as during a war or +@@ -579,10 +590,10 @@ + locations while uninhabited. + The leading '-' is a flag that the UT offset is in + some sense undefined; this notation is derived +- from Internet ++ from Internet + RFC 3339. + (The abbreviation 'Z' that +- Internet ++ Internet + RFC 9557 uses for this concept + would violate the POSIX requirement + of at least three characters in an abbreviation.) +@@ -1115,8 +1126,8 @@ + the name of a file from which time-related information is read. + The file's format is TZif, + a timezone information format that contains binary data; see +- Internet +- RFC 8536. ++ Internet ++ RFC 9636. + The daylight saving time rules to be used for a + particular timezone are encoded in the + TZif file; the format of the file allows US, +@@ -1201,12 +1212,15 @@ + The tm_isdst member is almost never needed and most of + its uses should be discouraged in favor of the abovementioned + APIs. ++ It was intended as an index into the tzname variable, ++ but as mentioned previously that usage is obsolete. + Although it can still be used in arguments to + mktime to disambiguate timestamps near + a DST transition when the clock jumps back on + platforms lacking tm_gmtoff, this +- disambiguation does not work when standard time itself jumps back, +- which can occur when a location changes to a time zone with a ++ disambiguation works only for proleptic TZ strings; ++ it does not work in general for geographical timezones, ++ such as when a location changes to a time zone with a + lesser UT offset. +
  • + +@@ -1223,8 +1237,8 @@ + Programs that in the past used the timezone function + may now examine localtime(&clock)->tm_zone + (if TM_ZONE is defined) or +- tzname[localtime(&clock)->tm_isdst] +- (if HAVE_TZNAME is nonzero) to learn the correct time ++ use strftime with a %Z conversion specification ++ to learn the correct time + zone abbreviation to use. + +
  • +--- contrib/tzdata/version.orig ++++ contrib/tzdata/version +@@ -1 +1 @@ +-2024b ++2025a +--- contrib/tzdata/zone.tab.orig ++++ contrib/tzdata/zone.tab +@@ -310,7 +310,7 @@ + PF -2308-13457 Pacific/Gambier Gambier Islands + PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea + PG -0613+15534 Pacific/Bougainville Bougainville +-PH +1435+12100 Asia/Manila ++PH +143512+1205804 Asia/Manila + PK +2452+06703 Asia/Karachi + PL +5215+02100 Europe/Warsaw + PM +4703-05620 America/Miquelon +--- contrib/tzdata/zone1970.tab.orig ++++ contrib/tzdata/zone1970.tab +@@ -184,7 +184,7 @@ + IT,SM,VA +4154+01229 Europe/Rome + JM +175805-0764736 America/Jamaica + JO +3157+03556 Asia/Amman +-JP +353916+1394441 Asia/Tokyo ++JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory + 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, Wake +@@ -247,7 +247,7 @@ + PF -2308-13457 Pacific/Gambier Gambier Islands + PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville + PG -0613+15534 Pacific/Bougainville Bougainville +-PH +1435+12100 Asia/Manila ++PH +143512+1205804 Asia/Manila + PK +2452+06703 Asia/Karachi + PL +5215+02100 Europe/Warsaw + PM +4703-05620 America/Miquelon +@@ -294,7 +294,7 @@ + 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 peninsular Malaysia ++SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia + SR +0550-05510 America/Paramaribo + SS +0451+03137 Africa/Juba + ST +0020+00644 Africa/Sao_Tome +--- contrib/tzdata/zonenow.tab.orig ++++ contrib/tzdata/zonenow.tab +@@ -97,9 +97,6 @@ + # -04/-03 (Chile DST) + XX -3327-07040 America/Santiago most of Chile + # +-# -04/-03 (Paraguay DST) +-XX -2516-05740 America/Asuncion Paraguay +-# + # -04/-03 - AST/ADT (North America DST) + XX +4439-06336 America/Halifax Atlantic ("AST/ADT") - Canada; Bermuda + # +@@ -224,7 +221,7 @@ + XX -0610+10648 Asia/Jakarta Indonesia ("WIB") + # + # +08 +-XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore ++XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia + # + # +08 - AWST + XX -3157+11551 Australia/Perth Western Australia ("AWST") +@@ -236,7 +233,7 @@ + XX +2217+11409 Asia/Hong_Kong Hong Kong ("HKT") + # + # +08 - PHT +-XX +1435+12100 Asia/Manila Philippines ("PHT") ++XX +143512+1205804 Asia/Manila Philippines ("PHT") + # + # +08 - WITA + XX -0507+11924 Asia/Makassar Indonesia ("WITA") +@@ -248,7 +245,7 @@ + XX +5203+11328 Asia/Chita Russia; Palau; East Timor + # + # +09 - JST +-XX +353916+1394441 Asia/Tokyo Japan ("JST") ++XX +353916+1394441 Asia/Tokyo Japan ("JST"); Eyre Bird Observatory + # + # +09 - KST + XX +3733+12658 Asia/Seoul Korea ("KST") diff --git a/website/static/security/patches/EN-25:03/tzdata-2025a.patch.asc b/website/static/security/patches/EN-25:03/tzdata-2025a.patch.asc new file mode 100644 index 0000000000..e679bf5d7e --- /dev/null +++ b/website/static/security/patches/EN-25:03/tzdata-2025a.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKcACgkQbljekB8A +Gu/GnA/6A4jmcrBaO0Wj4EqNm6VV6JXKNuj0FsRPTtNIq8nykUbNOlr2MHdx8Qfp +g05Mq360gPHYSSIYrdeo8asKgz8hK+qVIf21z399KGiq/Ox7Bf1OOwmT72MTUCzx +9ULrt+FBfx4OGrUDJrcnZxMcImJ00I2wOWii2pnHEKgeavi8Xx4nVzQYNBAfdwjQ +nS5+IzU436BCrV81HWAT/APpD64WkTkRHot02eNpop26Fjk4GjEhcgjlGp6sXGvJ +DqlOIJ16l2ElsSLTqMOc2M1+ByImv+p91qbbuFcQkSkuVxnaRUSo6dC/K4TAoHvy +4UzWfX+XWqo7pvh1zYPjBzeWJ47P4hRooJaC8WoeoP4w5gNvYlG6lqVPyURa+3dY +z58QKBl/d37OZqdhRIYrbaR+Pz5MY4rzz/KX5ou+Hx3dqPvJupglQn9zsEjAg5m+ +NofKaCFbqt0QpBsiw3lxiq+zDdbHKCfrbIPPzBJi9+BGhULLatpI72cw9QblGAKS +Qyr1sqlNt1zpr5aNonP72Y4skQDNbNivQrclDrw505KjBvkpof3TFr28rXTBxx3i +8PCIZAObpKlCKOmIOUUedrxYW9B5NB9X9Kj9tOeUJgtp32PaZ3iVwxiLoPrx9zMZ +s32nEX9BiBh/4bVdzqqn4fDfETG44Ytj8TanRFFelNtpUpRZnDE= +=55QH +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:01/openssh.patch b/website/static/security/patches/SA-25:01/openssh.patch new file mode 100644 index 0000000000..111d0f886c --- /dev/null +++ b/website/static/security/patches/SA-25:01/openssh.patch @@ -0,0 +1,14 @@ +--- crypto/openssh/clientloop.c.orig ++++ crypto/openssh/clientloop.c +@@ -608,8 +608,9 @@ + if (timespeccmp(&now, &chaff_until, >=)) { + /* Stop if there have been no keystrokes for a while */ + stop_reason = "chaff time expired"; +- } else if (timespeccmp(&now, &next_interval, >=)) { +- /* Otherwise if we were due to send, then send chaff */ ++ } else if (timespeccmp(&now, &next_interval, >=) && ++ !ssh_packet_have_data_to_write(ssh)) { ++ /* If due to send but have no data, then send chaff */ + if (send_chaff(ssh)) + nchaff++; + } diff --git a/website/static/security/patches/SA-25:01/openssh.patch.asc b/website/static/security/patches/SA-25:01/openssh.patch.asc new file mode 100644 index 0000000000..c1a5a73d77 --- /dev/null +++ b/website/static/security/patches/SA-25:01/openssh.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKkACgkQbljekB8A +Gu9rRhAAiz8+V48ie3Bpl2vxVdH3tiIfe/MklgRDToGdB/E4Kl8QsAIP2Wq8N17m +KBvyZuVA77w/IpcbDlSujmonmRmKpQnyBoGY0Zhmb105/7JswXpJpy5xkBvcRxUn +POF4qGo4hUH28ozf/2zxw7xNJuMMUc2cbd6qxVNDs4232SRJW4Fjpo8CpUtg7EFq +Fbb6s/Y+EcFATXeWm1KAZ98Q83J4AdvaSc2v3uMDtmXgVBNfV8CpJz11HRTlwSCv +/LVw3L3qiq+3yKKjxoiYLZXgFUS5tGgPv0iiaFkhlrYxBdiPuwwqD4wo++m3kdYF +KTZbCsQUt8SMBBgw1rMrxZgR7ui8OEGFGKOLBkVdD5HDPApVJ5gx3PvBEwoCbXGb +8sWaeAbPWinXMVn3vs20oDh+n8oyg2V+F023ZynJM7fY+O8mBCnYgYYTwUJMmThm +RGckEoy3hFpsAVt1RVDlEcfnIqAPl/Q0/kDc/90PhUnZrITQ6cOuvdo3uJLpFd0c +fLqA8fZbInFVQbsECc7ooXaFv9aiuu4M+8U4Jogdpbl7NSS/DGnrQb1iizliLMRb +NQ/9t4AOAjqIbV/uaE68WDvMzbnzIoLllvNyFpf4du+SC4BwfMa0r/cIRQP9F3yx +lG2ZSOBrB/6m+rt1NUavcukjHF9UQq3b59xJJuu3eYh/mvemlmQ= +=BRJ3 +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:02/fs-13.patch b/website/static/security/patches/SA-25:02/fs-13.patch new file mode 100644 index 0000000000..a938a33cb6 --- /dev/null +++ b/website/static/security/patches/SA-25:02/fs-13.patch @@ -0,0 +1,45 @@ +--- sys/fs/cd9660/cd9660_vnops.c.orig ++++ sys/fs/cd9660/cd9660_vnops.c +@@ -758,6 +758,9 @@ + /* NOTREACHED */ + } + ++_Static_assert(sizeof(struct ifid) <= sizeof(struct fid), ++ "struct ifid must be no larger than struct fid"); ++ + /* + * Vnode pointer to File handle + */ +--- sys/fs/cd9660/iso.h.orig ++++ sys/fs/cd9660/iso.h +@@ -267,7 +267,7 @@ + u_short ifid_pad; + cd_ino_t ifid_ino; + long ifid_start; +-}; ++} __packed; + + #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data)) + +--- sys/fs/ext2fs/ext2_vnops.c.orig ++++ sys/fs/ext2fs/ext2_vnops.c +@@ -1889,6 +1889,8 @@ + { + struct inode *ip; + struct ufid *ufhp; ++ _Static_assert(sizeof(struct ufid) <= sizeof(struct fid), ++ "struct ufid cannot be larger than struct fid"); + + ip = VTOI(ap->a_vp); + ufhp = (struct ufid *)ap->a_fhp; +--- sys/fs/ext2fs/inode.h.orig ++++ sys/fs/ext2fs/inode.h +@@ -191,7 +191,7 @@ + uint16_t ufid_pad; /* Force 32-bit alignment. */ + ino_t ufid_ino; /* File number (ino). */ + uint32_t ufid_gen; /* Generation number. */ +-}; ++} __packed; + #endif /* _KERNEL */ + + #endif /* !_FS_EXT2FS_INODE_H_ */ diff --git a/website/static/security/patches/SA-25:02/fs-13.patch.asc b/website/static/security/patches/SA-25:02/fs-13.patch.asc new file mode 100644 index 0000000000..01a6ed0472 --- /dev/null +++ b/website/static/security/patches/SA-25:02/fs-13.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKoACgkQbljekB8A +Gu9AphAA4eMQpgamKakYk82sjRV172b0xR4/DvqCcJt1Tc6WPq/s+dujLYadQazZ +tCIgKPPMsmI/Lwa8QbeTk+8D/gcYi0TchDXaIbkIlCf7yZWwtRngWIBYZ6SHZauJ +HPpB53fSF72YJvS7zb5DhdL3FWzZk4x8WUcFsafRCbIIh+7df9QwG5z42JdjVmTm +GUnMFGPQR2NgitUTQ2jQASBglCWOxJzjPZF0x0kW5NPueiq4QDljZIPbUAIfmPVu +kIpL5NhWkJCxVjNRLYLgopHJztRZqg+iXsPCBZB97RDfzGYCLp0r0iXN/I7Na8cw +8A7jWFtsxOuhQSCXfLwH8m//1zcF/Pw4MwqlHJGYGNhqBswvdMhNSct5m7RT+q/z +fSu5UMmVgpv4XbhYOLpPikirvxUrZvzZOY3ij4clSdJiN7IwcWlifKQZ8ca01FKm +fZROwLlBeii5vUAybtfOYOHEi1iDO5QGMoGpO8egRniLxsiiz38luSsima4wF2jp +u11Gg3AfBG86WQMxE9JFWuaYXII3TxA4X1b9XKanALzxAvIvOXapVJb0K+2RlKtv +1zNPPy0d76rokT8mf4OCM1lu9YcT5aZ82NyJGLMnX+y3nIKuusPYdqvAX8tb2Arj +pJJG8WDcuU0JaFgkTrhNpImGalK9ubp9w2GQuBEw/Q7JnfX7GJQ= +=nWiZ +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:02/fs-14.patch b/website/static/security/patches/SA-25:02/fs-14.patch new file mode 100644 index 0000000000..947d3feb50 --- /dev/null +++ b/website/static/security/patches/SA-25:02/fs-14.patch @@ -0,0 +1,67 @@ +--- sys/fs/cd9660/cd9660_vnops.c.orig ++++ sys/fs/cd9660/cd9660_vnops.c +@@ -758,6 +758,9 @@ + /* NOTREACHED */ + } + ++_Static_assert(sizeof(struct ifid) <= sizeof(struct fid), ++ "struct ifid must be no larger than struct fid"); ++ + /* + * Vnode pointer to File handle + */ +--- sys/fs/cd9660/iso.h.orig ++++ sys/fs/cd9660/iso.h +@@ -267,7 +267,7 @@ + u_short ifid_pad; + cd_ino_t ifid_ino; + long ifid_start; +-}; ++} __packed; + + #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data)) + +--- sys/fs/ext2fs/ext2_vnops.c.orig ++++ sys/fs/ext2fs/ext2_vnops.c +@@ -1889,6 +1889,8 @@ + { + struct inode *ip; + struct ufid *ufhp; ++ _Static_assert(sizeof(struct ufid) <= sizeof(struct fid), ++ "struct ufid cannot be larger than struct fid"); + + ip = VTOI(ap->a_vp); + ufhp = (struct ufid *)ap->a_fhp; +--- sys/fs/ext2fs/inode.h.orig ++++ sys/fs/ext2fs/inode.h +@@ -191,7 +191,7 @@ + uint16_t ufid_pad; /* Force 32-bit alignment. */ + ino_t ufid_ino; /* File number (ino). */ + uint32_t ufid_gen; /* Generation number. */ +-}; ++} __packed; + #endif /* _KERNEL */ + + #endif /* !_FS_EXT2FS_INODE_H_ */ +--- sys/fs/tarfs/tarfs.h.orig ++++ sys/fs/tarfs/tarfs.h +@@ -165,7 +165,7 @@ + u_short data0; /* force alignment */ + ino_t ino; + unsigned long gen; +-}; ++} __packed; + + #define TARFS_NODE_LOCK(tnp) \ + mtx_lock(&(tnp)->lock) +--- sys/fs/tarfs/tarfs_vnops.c.orig ++++ sys/fs/tarfs/tarfs_vnops.c +@@ -668,6 +668,8 @@ + { + struct tarfs_fid *tfp; + struct tarfs_node *tnp; ++ _Static_assert(sizeof(struct tarfs_fid) <= sizeof(struct fid), ++ "struct tarfs_fid cannot be larger than struct fid"); + + tfp = (struct tarfs_fid *)ap->a_fhp; + tnp = VP_TO_TARFS_NODE(ap->a_vp); diff --git a/website/static/security/patches/SA-25:02/fs-14.patch.asc b/website/static/security/patches/SA-25:02/fs-14.patch.asc new file mode 100644 index 0000000000..68e966726f --- /dev/null +++ b/website/static/security/patches/SA-25:02/fs-14.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajKsACgkQbljekB8A +Gu81lxAAvCWTz6CpeaKV9mUpE1R67gLnB/93uRWWBIJ0bDwkqT2t+C/b9PjTewA1 +tV5dP6zV2dEgEUUJ6rJDT/egkjtG3DYfQ7W4pGeXs4E4qDNZ5Rc7dbPGGkzo14Io +tmT8hwTKPmBSmbWnCH7mkFiJWSuODydswNEnW0hwCqpVIWV2tYBJ4o3UhSkXidQR +aXbykuqkzYte4NjA+AWe8A6cbRE6nFwR6z0KXLTzP1J2on+tN9NzkP2mATQiwwMD +m8mYzmVI+v4kkA6SrLTSzwxpCJ6M+6CWSkmzGRKDwZ1zPFcFhdckjgsxBWkmKU4X +Y/gGOF/GvnY7yBNlWUC7MDRzNilc41kqgAcXPL3S78MfTqIFjwA0TFA46pUgqpmZ +AeZxKFfgrsR/5WRqgARRKVZwMBGqjlnQMUSvt5Q5muNc2O/NSHXyF7kiB28OfWkF +cjYrKfu/YogVVlJnEAlC+ffZ61cH2wzoWLn2j0UZ3VM1pDLOBFEA2Cxgvd8PANbP +QVFkRQm0FlcCLb9r4avd+rqyid3M2xmBbWzKAwf2lN+gC5MzsKfQxKIrZJegSbPY +ikGAcFzgEQCmhJeW4vjZvxt4E2jNwqBsNYECTTv6BNr+xD9Zp9WyydS07OX7gk1M +YC7u+8zc6m/vPSFex6mvK1q0FUFiMsqnlWHWVtjIYZ0zkaVUL94= +=sAwr +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:03/etcupdate.patch b/website/static/security/patches/SA-25:03/etcupdate.patch new file mode 100644 index 0000000000..8bd7741a49 --- /dev/null +++ b/website/static/security/patches/SA-25:03/etcupdate.patch @@ -0,0 +1,12 @@ +--- usr.sbin/etcupdate/etcupdate.sh.orig ++++ usr.sbin/etcupdate/etcupdate.sh +@@ -1611,6 +1611,9 @@ + # Initialize conflicts and warnings handling. + rm -f $WARNINGS + mkdir -p $CONFLICTS ++ if ! chmod 0700 ${CONFLICTS}; then ++ panic "Unable to set permissions on conflicts directory" ++ fi + + # Ignore removed files for the pre-world case. A pre-world + # update uses a stripped-down tree. diff --git a/website/static/security/patches/SA-25:03/etcupdate.patch.asc b/website/static/security/patches/SA-25:03/etcupdate.patch.asc new file mode 100644 index 0000000000..caaebacda4 --- /dev/null +++ b/website/static/security/patches/SA-25:03/etcupdate.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajK0ACgkQbljekB8A +Gu8x+w/+JaS/W+ZyZHlirsy+61nGmS7nFyMEgDuMonSQ1NTA1dUy2gLNhMPWXzWw +YWK75x2RNzNnkx3tV6500p4CWjkkxa//4XpwbU0RSNCK2e7yCnYazyuns/5Rsfqc +CcVUIDC8Vl8oLrGbKJGsbedOyZOXqnUrHZU25YG8J3hc4txcIOgLbENmSLuhvmii +2+WzH4tEnsFa/wTxAtoU7culB/6wEr9iAyYTEn0c+xVHNCDEVOTh73xII7hNk9e2 +1ubdgQd4i+hYR+2K6PXVSYrWO4eYI20Q4c87sZjg1qFbCza5+izt5ZEoXBNt0PiL +ivaNL7QZvN4224yLkBMsrBSmwodTPRj/ZiQ4ddx+CmhKlo5tfNfmolysXCtH/IzX +vANaEbFKLqt4w4xvxvphLLMBr+U0cO13sYq6JSs6HNm5zMFe5g3392vGYKsnso69 +FoShLlAzWtJ4RG7NJVBsDHErGyxUiBVBvgCCcfH7K+7Pr2jiLVdowZA7N5hhUPpE +o9N/mw7D5ChfaYGFjPijPUsbHPQRzMwSUCD8+UihO29MtcIopYAn6WxuVI1XY2AK +aFbqtWVyn6vnm8MfNNoGF/8BWKzO3Dxn1pFkzHVMDDgORaiNfX3/FhJBqIEkDgz4 +RbvCbmXK6MCh8ArF0GPqKLyl1HH9nuznPgs9Y2hXU4rQY3MrkOY= +=w40Z +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:04/ktrace.patch b/website/static/security/patches/SA-25:04/ktrace.patch new file mode 100644 index 0000000000..0d19526c6a --- /dev/null +++ b/website/static/security/patches/SA-25:04/ktrace.patch @@ -0,0 +1,21 @@ +--- sys/kern/kern_ktrace.c.orig ++++ sys/kern/kern_ktrace.c +@@ -958,9 +958,16 @@ + case CAPFAIL_PROTO: + kcd->cap_int = *(const int *)data; + break; +- case CAPFAIL_SOCKADDR: +- kcd->cap_sockaddr = *(const struct sockaddr *)data; ++ case CAPFAIL_SOCKADDR: { ++ size_t len; ++ ++ len = MIN(((const struct sockaddr *)data)->sa_len, ++ sizeof(kcd->cap_sockaddr)); ++ memset(&kcd->cap_sockaddr, 0, ++ sizeof(kcd->cap_sockaddr)); ++ memcpy(&kcd->cap_sockaddr, data, len); + break; ++ } + case CAPFAIL_NAMEI: + strlcpy(kcd->cap_path, data, MAXPATHLEN); + break; diff --git a/website/static/security/patches/SA-25:04/ktrace.patch.asc b/website/static/security/patches/SA-25:04/ktrace.patch.asc new file mode 100644 index 0000000000..4392df0b03 --- /dev/null +++ b/website/static/security/patches/SA-25:04/ktrace.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmeajK8ACgkQbljekB8A +Gu/ZExAA0GBrlwTGoKw7DmkehSVOlwJiSiTeeT0CZLKkRxzW0js1b9AaIX5fnto/ +9DxFERxxVkUCKBzuo71RtjBd5gAwAEhMudsuTj8v2OJgiSdp3dlmpgKbUpjaM8hT +gNDTRiLf3WL+gyL2g747pHFcsMLA2l/AN2HKfdNz+W1MUmdpc+GINjd73WUG+dm0 +Ok+XwuP0s3brRW6sYYBdBiHbOEzAJh5WZ20vrtnTbfeiSsBvoS0ZLfXA9V9yne97 +lcFD39Apv5QpInc/xtqp35nZ4pHAPOyEEB9vcmtHnMAA3TyFd6HuGichRD34OXs8 +rM9PV7h5pgRxXVdPvSjDb4ZF7NA5CVq6nAW11eDKqdI+kf3/X+W7HLfb8Cm6X7Jt +OmnrZdbf7HjYJi7YVsYefTiW5Q5iz8/h8GnN+lFjAiZYXae9+oflI2kVHDPYSp+o +wvqSgDAatBctipvIAT7SAJD1Hg1OscM3cgQh92NpA2ZFjF/o7XB+th2vYl0BLCA7 +WW2DHqarHsb+hLwXoPV9Kh7+BSOH8TlVKIgcZ/2zBCfSP/C1EtHaLcY97wHsWs/T +rHVDc7BlP1WJy+/bb2pqGJSHZNfH6A/t1WCfleYO+uEjZwpTi4G0JDNeXOpe6KQn +Uzhzhwv6uvbUmDAF/yzzPiz5xt5K6P0/bWd+BK9GkNcta19cZYg= +=uUwL +-----END PGP SIGNATURE-----