git: 06e4364bd6 - main - Add EN-22:20 and SA-22:13.

Gordon Tetlow <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
The branch main has been updated by gordon (src committer):

URL: https://cgit.FreeBSD.org/doc/commit/?id=06e4364bd6f4d9fbcb1a124c78f326c9ad63885e

commit 06e4364bd6f4d9fbcb1a124c78f326c9ad63885e
Author:     Gordon Tetlow <[email protected]>
AuthorDate: 2022-08-30 23:46:11 +0000
Commit:     Gordon Tetlow <[email protected]>
CommitDate: 2022-08-30 23:46:11 +0000

    Add EN-22:20 and SA-22:13.
    
    Approved by:    so
---
 website/data/security/advisories.toml              |    4 +
 website/data/security/errata.toml                  |    4 +
 .../advisories/FreeBSD-EN-22:20.tzdata.asc         |  175 +
 .../security/advisories/FreeBSD-SA-22:13.zlib.asc  |  148 +
 .../security/patches/EN-22:20/tzdata-2022c.patch   | 4100 ++++++++++++++++++++
 .../patches/EN-22:20/tzdata-2022c.patch.asc        |   16 +
 .../static/security/patches/SA-22:13/zlib.patch    |   14 +
 .../security/patches/SA-22:13/zlib.patch.asc       |   16 +
 8 files changed, 4477 insertions(+)

diff --git a/website/data/security/advisories.toml b/website/data/security/advisories.toml
index 49a8244da2..a5aadbdf0d 100644
--- a/website/data/security/advisories.toml
+++ b/website/data/security/advisories.toml
@@ -1,6 +1,10 @@
 # Sort advisories by year, month and day
 # $FreeBSD$
 
+[[advisories]]
+name = "FreeBSD-SA-22:13.zlib"
+date = "2022-08-30"
+
 [[advisories]]
 name = "FreeBSD-SA-22:12.lib9p"
 date = "2022-08-09"
diff --git a/website/data/security/errata.toml b/website/data/security/errata.toml
index d8b7dd74be..657fa4133e 100644
--- a/website/data/security/errata.toml
+++ b/website/data/security/errata.toml
@@ -1,6 +1,10 @@
 # Sort errata notices by year, month and day
 # $FreeBSD$
 
+[[notices]]
+name = "FreeBSD-EN-22:20.tzdata"
+date = "2022-08-30"
+
 [[notices]]
 name = "FreeBSD-EN-22:19.pam_exec"
 date = "2022-08-09"
diff --git a/website/static/security/advisories/FreeBSD-EN-22:20.tzdata.asc b/website/static/security/advisories/FreeBSD-EN-22:20.tzdata.asc
new file mode 100644
index 0000000000..25bc1eabab
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-EN-22:20.tzdata.asc
@@ -0,0 +1,175 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-22:20.tzdata                                         Errata Notice
+                                                          The FreeBSD Project
+
+Topic:          Timezone database information update
+
+Category:       contrib
+Module:         zoneinfo
+Announced:      2022-08-30
+Affects:        All supported versions of FreeBSD.
+Corrected:      2022-08-17 01:48:01 UTC (stable/13, 13.1-STABLE)
+                2022-08-30 23:02:48 UTC (releng/13.1, 13.1-RELEASE-p2)
+                2022-08-30 23:01:22 UTC (releng/13.0, 13.0-RELEASE-p13)
+                2022-08-17 01:56:52 UTC (stable/12, 12.3-STABLE)
+                2022-08-30 23:16:54 UTC (releng/12.3, 12.3-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
+<URL:https://security.FreeBSD.org/>.
+
+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, i386, or
+(on FreeBSD 13 and later) arm64 platforms 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.
+
+# fetch https://security.FreeBSD.org/patches/EN-22:20/tzdata-2022c.patch
+# fetch https://security.FreeBSD.org/patches/EN-22:20/tzdata-2022c.patch.asc
+# gpg --verify tzdata-2022c.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 <URL:https://www.FreeBSD.org/handbook/makeworld.html>.
+
+Restart all the affected applications and daemons, or reboot the system.
+
+VI.  Correction details
+
+This issue is corrected by the corresponding Git commit hash or Subversion
+revision number in the following stable and release branches:
+
+Branch/path                             Hash                     Revision
+- -------------------------------------------------------------------------
+stable/13/                              f7cb47731675    stable/13-n252124
+releng/13.1/                            e86b610b8744  releng/13.1-n250157
+releng/13.0/                            707cecae4e34  releng/13.0-n244809
+stable/12/                                                        r372409
+releng/12.3/                                                      r372461
+- -------------------------------------------------------------------------
+
+For FreeBSD 13 and later:
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat <commit hash>
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN>
+
+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
+
+For FreeBSD 12 and earlier:
+
+Run the following command to see which files were modified by a particular
+revision, replacing NNNNNN with the revision number:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
+
+VII. References
+
+<URL:https://github.com/eggert/tz/blob/2022b/NEWS>
+<URL:https://github.com/eggert/tz/blob/2022c/NEWS>
+
+The latest revision of this advisory is available at
+<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-22:20.tzdata.asc>
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAmMOoGgACgkQ05eS9J6n
+5cKipg/6Axbh9KTIXF/Z/KZtna+2/Fvs4zIvV1PnT/6VJge9JrPShRtKuTOHE7at
+8tFFFLplDV3uGF3PxJ0vB66sd5A7VchS8UDJoyrr8Q1kfOGlMge5W3UQbHp4u4II
+DCRlvocXIv7SygmfWlrQg5Ia6c2CmIa13BcMcxNv8tu/TShsJZD8AUtu/sF01xZh
+RaPQE5Y0dMErQx1FpGrxcxqw5DVNz6utpxeGgz8SU/bMRUs17u9HbktiPdDpJVzh
+gw26DfMJS9CflrTBF1RKmCj6934ghz6fbHqnw7IrcnLjaitVsVqgktFjgmUje9OH
+JyCvY5ysAYEQD74HxncvgiJ3OjkQ/EYTwdL2lfTZRiWqQjncfFHchZ2ioIslR84e
+3NQlJYxosvWa/NIFxclR69I8d9outXRkClAEQo5tgjOPF7Q1F4TzH38IN7YMrwK7
+G9N2qXO6+GQo0E2yVmqQbam9KIRsyy9rf5Yp14Lc0P9GFiD0bMok0/C1zfE+Qi9U
+Y0lM7vtNFg7QM2Gi9OOhaCWJscDDf4OfuxaCWhh8Mq3cNrdaCY56t0SzPKmgF7qY
+sZPRpI6YXv9+m9c8V+sklPituTMXa2maGzSYJNTOWhDNmf4Ah1YvxbMWhoxI0hsF
+nSgCr/LQh0c+dTXthIW1fYv4mt5uXXNg5uMs0mIfncLin3syJ7s=
+=DcSW
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/advisories/FreeBSD-SA-22:13.zlib.asc b/website/static/security/advisories/FreeBSD-SA-22:13.zlib.asc
new file mode 100644
index 0000000000..546b8282bc
--- /dev/null
+++ b/website/static/security/advisories/FreeBSD-SA-22:13.zlib.asc
@@ -0,0 +1,148 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-22:13.zlib                                       Security Advisory
+                                                          The FreeBSD Project
+
+Topic:          zlib heap buffer overflow
+
+Category:       contrib
+Module:         zlib
+Announced:      2022-08-30
+Credits:        Evgeny Legerov of @intevydis
+Affects:        All supported versions of FreeBSD.
+Corrected:      2022-08-09 14:40:35 UTC (stable/13, 13.1-STABLE)
+                2022-08-30 23:02:48 UTC (releng/13.1, 13.1-RELEASE-p2)
+                2022-08-30 22:57:49 UTC (releng/13.0, 13.0-RELEASE-p13)
+                2022-08-09 14:45:04 UTC (stable/12, 12.3-STABLE)
+                2022-08-30 23:16:45 UTC (releng/12.3, 12.3-RELEASE-p7)
+CVE Name:       CVE-2022-37434
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit <URL:https://security.FreeBSD.org/>.
+
+I.   Background
+
+zlib is a software library implementing compression and decompression.
+It is used in various places in the FreeBSD kernel and userland.
+
+II.  Problem Description
+
+zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow
+in inflate in inflate.c via a large gzip header extra field.
+
+III. Impact
+
+Applications that call inflateGetHeader may be vulnerable to a buffer
+overflow.  Note that inflateGetHeader is not used by anything in the
+FreeBSD base system, but may be used by third party software.
+
+IV.  Workaround
+
+No workaround is available, but applications that do not call
+inflateGetHeader are not vulnerable.
+
+V.   Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date, and
+restart daemons if necessary.
+
+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, i386, or
+(on FreeBSD 13 and later) arm64 platforms 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-22:13/zlib.patch
+# fetch https://security.FreeBSD.org/patches/SA-22:13/zlib.patch.asc
+# gpg --verify zlib.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 <URL:https://www.FreeBSD.org/handbook/makeworld.html>.
+
+Restart all daemons that use the library, or reboot the system.
+
+VI.  Correction details
+
+This issue is corrected by the corresponding Git commit hash or Subversion
+revision number in the following stable and release branches:
+
+Branch/path                             Hash                     Revision
+- -------------------------------------------------------------------------
+stable/13/                              10cc2bf5f7a5    stable/13-n252073
+releng/13.1/                            289231c9634a  releng/13.1-n250156
+releng/13.0/                            77cd23716ffb  releng/13.0-n244808
+stable/12/                                                        r372370
+releng/12.3/                                                      r372460
+- -------------------------------------------------------------------------
+
+For FreeBSD 13 and later:
+
+Run the following command to see which files were modified by a
+particular commit:
+
+# git show --stat <commit hash>
+
+Or visit the following URL, replacing NNNNNN with the hash:
+
+<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN>
+
+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
+
+For FreeBSD 12 and earlier:
+
+Run the following command to see which files were modified by a particular
+revision, replacing NNNNNN with the revision number:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
+
+VII. References
+
+<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37434>
+
+The latest revision of this advisory is available at
+<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-22:13.zlib.asc>
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCgAdFiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAmMOoG4ACgkQ05eS9J6n
+5cIITA//WMND8i3L8agw4QBMZTmL8M6bbbKK+eua7bhH4MNxguruULwcWNoHvhuO
++ebgomd4cWlPfY2TJcpd9OCXCjuMGMLvwE6XmPlGzW5DuMdD893wWPdsYJtDK+6p
+yMSihFyZP+ELWFbLeO3SFedRRKBQiDEmO3X2oOR1Ukj5wjsUOFPv0/dLphyBiq3t
+3tn/0O9NfAmyONvHSozoVs34MIFC9Qc/8oxlp5wKjomFn6OifPRwNu4yeWDfVL/c
+11IwotsKNTR6QNckdNBwbFC2NwdWfl8Tqv7gbJ3PhXDlzCDC5hOQoIeOol3Nf8et
+9+FjCr9y/jTH0tzEHCgevO3U711UZYIu2s+STHTlJRNly/n+2CMG+YOn1XkKtu6A
+4x4Pw+YRHl5VesQCNcJOkwVwRiyrirp5yOaaUPhSKo0teykypgV/WS9Z1U0VVfGP
+xgxJ7ElcT2HoNiz06QUSG374dPyEBKqoZTo/g2tJ0mL17JLW7IAtlUpIHzU475YR
+1itARL0z7O3bbUa/h35LxRTCxT2Ojt0qZO9WsS4dIraz2gb8QbHkgUXETnLAx9Ih
+UwaPrLGkzqpMjkQFASDS+LeacFOZARdxT/tUFwTRCQI27Aujl1OJzy7t0drL5I9f
+pO529OH4plSsT0x4j89tAUZxIHB2RQet94777vP4T0J5UcBegxc=
+=y87U
+-----END PGP SIGNATURE-----
diff --git a/website/static/security/patches/EN-22:20/tzdata-2022c.patch b/website/static/security/patches/EN-22:20/tzdata-2022c.patch
new file mode 100644
index 0000000000..c140bddcd5
--- /dev/null
+++ b/website/static/security/patches/EN-22:20/tzdata-2022c.patch
@@ -0,0 +1,4100 @@
+--- ObsoleteFiles.inc.orig
++++ ObsoleteFiles.inc
+@@ -8579,8 +8579,6 @@
+ OLD_FILES+=usr/share/examples/etc/rc.firewall6
+ # 20091117: removal of rc.early(8) link
+ OLD_FILES+=usr/share/man/man8/rc.early.8.gz
+-# 20091117: usr/share/zoneinfo/GMT link removed
+-OLD_FILES+=usr/share/zoneinfo/GMT
+ # 20091027: pselect.3 implemented as syscall
+ OLD_FILES+=usr/share/man/man3/pselect.3.gz
+ # 20091005: fusword.9 and susword.9 removed
+--- contrib/tzdata/Makefile.orig
++++ contrib/tzdata/Makefile
+@@ -33,7 +33,7 @@
+ #	make zonenames
+ # to get a list of the values you can use for LOCALTIME.
+ 
+-LOCALTIME=	GMT
++LOCALTIME=	Factory
+ 
+ # The POSIXRULES macro controls interpretation of nonstandard and obsolete
+ # POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules.
+@@ -176,12 +176,19 @@
+ 
+ BACKWARD=	backward
+ 
+-# If you want out-of-scope and often-wrong data from the file 'backzone', use
++# If you want out-of-scope and often-wrong data from the file 'backzone',
++# but only for entries listed in the backward-compatibility file zone.tab, use
+ #	PACKRATDATA=	backzone
++#	PACKRATLIST=	zone.tab
++# If you want all the 'backzone' data, use
++#	PACKRATDATA=	backzone
++#	PACKRATLIST=
+ # To omit this data, use
+ #	PACKRATDATA=
++#	PACKRATLIST=
+ 
+ PACKRATDATA=
++PACKRATLIST=
+ 
+ # The name of a locale using the UTF-8 encoding, used during self-tests.
+ # The tests are skipped if the name does not appear to work on this system.
+@@ -264,7 +271,7 @@
+   $(GCC_INSTRUMENT) \
+   -Wall -Wextra \
+   -Walloc-size-larger-than=100000 -Warray-bounds=2 \
+-  -Wbad-function-cast -Wcast-align=strict -Wdate-time \
++  -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \
+   -Wdeclaration-after-statement -Wdouble-promotion \
+   -Wduplicated-branches -Wduplicated-cond \
+   -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
+@@ -278,7 +285,7 @@
+   -Wsuggest-attribute=const -Wsuggest-attribute=format \
+   -Wsuggest-attribute=malloc \
+   -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
+-  -Wtrampolines -Wundef -Wuninitialized -Wunused-macros \
++  -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \
+   -Wvariadic-macros -Wvla -Wwrite-strings \
+   -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
+   -Wno-type-limits -Wno-unused-parameter
+@@ -291,8 +298,9 @@
+ # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
+ # Similarly, if your system has a "zone abbreviation" field, define
+ #	-DTM_ZONE=tm_zone
+-# and define NO_TM_ZONE to suppress any guessing.  These two fields are not
+-# required by POSIX, but are widely available on GNU/Linux and BSD systems.
++# and define NO_TM_ZONE to suppress any guessing.  Although these two fields
++# not required by POSIX, a future version of POSIX is planned to require them
++# and they are widely available on GNU/Linux and BSD systems.
+ #
+ # The next batch of options control support for external variables
+ # exported by tzcode.  In practice these variables are less useful
+@@ -448,6 +456,9 @@
+ # useful in commentary.
+ UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA)
+ 
++# Put this in a bracket expression to match spaces.
++s = [:space:]
++
+ # OK_CHAR matches any character allowed in the distributed files.
+ # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
+ # multibyte letters are also allowed so that commentary can contain a
+@@ -521,21 +532,23 @@
+ ZONETABLES=	zone1970.tab zone.tab
+ TABDATA=	iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
+ LEAP_DEPS=	leapseconds.awk leap-seconds.list
+-TZDATA_ZI_DEPS=	ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
+-DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA)
++TZDATA_ZI_DEPS=	ziguard.awk zishrink.awk version $(TDATA) \
++		  $(PACKRATDATA) $(PACKRATLIST)
++DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) $(PACKRATLIST)
+ DATA=		$(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
+ 			leapseconds $(ZONETABLES)
+ AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk \
+ 			ziguard.awk zishrink.awk
+-MISC=		$(AWK_SCRIPTS) zoneinfo2tdf.pl
++MISC=		$(AWK_SCRIPTS)
+ TZS_YEAR=	2050
+ 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
++TZDATA_DIST = $(COMMON) $(DATA) $(MISC)
+ # EIGHT_YARDS is just a yard short of the whole ENCHILADA.
+-EIGHT_YARDS = $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) tzdata.zi
++EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi
+ ENCHILADA = $(EIGHT_YARDS) $(TZS)
+ 
+ # Consult these files when deciding whether to rebuild the 'version' file.
+@@ -555,7 +568,7 @@
+ 		tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
+ 		workman.sh zdump.8 zdump.c zic.8 zic.c \
+ 		ziguard.awk zishrink.awk \
+-		zone.tab zone1970.tab zoneinfo2tdf.pl
++		zone.tab zone1970.tab
+ 
+ # And for the benefit of csh users on systems that assume the user
+ # shell should be used to handle commands in Makefiles. . .
+@@ -608,13 +621,17 @@
+ 		printf '%s\n' "$$V" >[email protected]
+ 		mv [email protected] $@
+ 
+-# These files can be tailored by setting BACKWARD and PACKRATDATA.
++# These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST.
+ vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
+-		$(AWK) -v DATAFORM=`expr $@ : '\(.*\).zi'` -f ziguard.awk \
++		$(AWK) \
++		  -v DATAFORM=`expr $@ : '\(.*\).zi'` \
++		  -v PACKRATDATA='$(PACKRATDATA)' \
++		  -v PACKRATLIST='$(PACKRATLIST)' \
++		  -f ziguard.awk \
+ 		  $(TDATA) $(PACKRATDATA) >[email protected]
+ 		mv [email protected] $@
+ # This file has a version comment that attempts to capture any tailoring
+-# via BACKWARD, DATAFORM, PACKRATDATA, and REDO.
++# via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO.
+ tzdata.zi:	$(DATAFORM).zi version zishrink.awk
+ 		version=`sed 1q version` && \
+ 		  LC_ALL=C $(AWK) \
+@@ -652,6 +669,7 @@
+  DESTDIR='$(DESTDIR)' \
+  LEAPSECONDS='$(LEAPSECONDS)' \
+  PACKRATDATA='$(PACKRATDATA)' \
++ PACKRATLIST='$(PACKRATLIST)' \
+  TZDEFAULT='$(TZDEFAULT)' \
+  TZDIR='$(TZDIR)' \
+  ZIC='$(ZIC)'
+@@ -690,11 +708,6 @@
+ 		  $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
+ 		$(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
+ 
+-# This obsolescent rule is present for backwards compatibility with
+-# tz releases 2014g through 2015g.  It should go away eventually.
+-posix_packrat: $(INSTALL_DATA_DEPS)
+-		$(MAKE) $(INSTALLARGS) PACKRATDATA=backzone posix_only
+-
+ zones:		$(REDO)
+ 
+ # dummy.zd is not a real file; it is mentioned here only so that the
+@@ -755,8 +768,8 @@
+ 		mv [email protected] $@
+ 
+ check:		check_character_set check_white_space check_links \
+-		  check_name_lengths check_sorted \
+-		  check_tables check_web check_zishrink check_tzs
++		  check_name_lengths check_slashed_abbrs check_sorted \
++		  check_tables check_web check_ziguard check_zishrink check_tzs
+ 
+ check_character_set: $(ENCHILADA)
+ 	test ! '$(UTF8_LOCALE)' || \
+@@ -780,19 +793,28 @@
+ 		patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \
+ 		! grep -En "$$pat" \
+ 			$$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list)
+-		! grep -n '[[:space:]]$$' \
++		! grep -n '[$s]$$' \
+ 			$$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list)
+ 		touch $@
+ 
+-PRECEDES_FILE_NAME = ^(Zone|Link[[:space:]]+[^[:space:]]+)[[:space:]]+
+-FILE_NAME_COMPONENT_TOO_LONG = \
+-  $(PRECEDES_FILE_NAME)[^[:space:]]*[^/[:space:]]{15}
++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)' \
+ 			$(TDATA_TO_CHECK) backzone
+ 		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)
++		touch $@
++
+ CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
+ 
+ check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
+@@ -832,11 +854,19 @@
+ 		  test ! -s [email protected] || { cat [email protected]; exit 1; }
+ 		mv [email protected] $@
+ 
++check_ziguard: 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 | \
++		  diff -u vanguard.zi -
++		touch $@
++
+ # 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: \
+-  zic leapseconds $(PACKRATDATA) $(TDATA) $(DATAFORM).zi tzdata.zi
++  zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \
++  $(TDATA) $(DATAFORM).zi tzdata.zi
+ 		rm -fr [email protected] [email protected] [email protected]
+ 		mkdir [email protected] [email protected] [email protected]
+ 		case $@ in \
+@@ -845,8 +875,8 @@
+ 		esac && \
+ 		  $(ZIC) $$leap -d [email protected] $(DATAFORM).zi && \
+ 		  $(ZIC) $$leap -d [email protected] tzdata.zi && \
+-		  case $(DATAFORM) in \
+-		    main) \
++		  case $(DATAFORM),$(PACKRATLIST) in \
++		    main,) \
+ 		      $(ZIC) $$leap -d [email protected] $(TDATA) && \
+ 		      $(AWK) '/^Rule/' $(TDATA) | \
+ 			$(ZIC) $$leap -d [email protected] - $(PACKRATDATA) && \
+@@ -967,6 +997,10 @@
+ 		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 && \
++		  $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi
++		public.dir/zic -d public.dir/zoneinfo main.zi
+ 		:
+ 		rm -fr public.dir
+ 		touch $@
+@@ -1027,9 +1061,9 @@
+ ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \
+   tzdb-$(VERSION).tar.lz.asc
+ 
+-tarballs rearguard_tarballs traditional_tarballs \
++tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \
+ signatures rearguard_signatures traditional_signatures: \
+-  version set-timestamps.out rearguard.zi
++  version set-timestamps.out rearguard.zi vanguard.zi
+ 		VERSION=`cat version` && \
+ 		$(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version
+ 
+@@ -1042,6 +1076,8 @@
+   tzdata$(VERSION)-rearguard.tar.gz
+ traditional_tarballs_version: \
+   tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
++tailored_tarballs_version: \
++  tzdata$(VERSION)-tailored.tar.gz
+ signatures_version: $(ALL_ASC)
+ rearguard_signatures_version: $(REARGUARD_ASC)
+ traditional_signatures_version: $(TRADITIONAL_ASC)
+@@ -1055,34 +1091,76 @@
+ 
+ tzdata$(VERSION).tar.gz: set-timestamps.out
+ 		LC_ALL=C && export LC_ALL && \
+-		tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \
++		tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \
+ 		  gzip $(GZIPFLAGS) >[email protected]
+ 		mv [email protected] $@
+ 
++# Create empty files with a reproducible timestamp.
++CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00
++
++# The obsolescent *rearguard* targets and related macros are present
++# for backwards compatibility with tz releases 2018e through 2022a.
++# They should go away eventually.  To build rearguard tarballs you
++# can instead use 'make DATAFORM=rearguard tailored_tarballs'.
+ tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out
+-		rm -fr tzdata$(VERSION)-rearguard.dir
+-		mkdir tzdata$(VERSION)-rearguard.dir
+-		ln $(COMMON) $(DATA) $(MISC) tzdata$(VERSION)-rearguard.dir
+-		cd tzdata$(VERSION)-rearguard.dir && \
+-		  rm -f $(TDATA) $(PACKRATDATA) version
++		rm -fr [email protected]
++		mkdir [email protected]
++		ln $(TZDATA_DIST) [email protected]
++		cd [email protected] && rm -f $(TDATA) $(PACKRATDATA) version
+ 		for f in $(TDATA) $(PACKRATDATA); do \
+-		  rearf=tzdata$(VERSION)-rearguard.dir/$$f; \
++		  [email protected]/$$f; \
+ 		  $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \
+ 		  $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \
+ 		done
+-		sed '1s/$$/-rearguard/' \
+-		  <version >tzdata$(VERSION)-rearguard.dir/version
++		sed '1s/$$/-rearguard/' <version >[email protected]/version
+ 		: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
+-		TZ=UTC0 touch -mt 202010122253.00 \
+-		  tzdata$(VERSION)-rearguard.dir/pacificnew
+-		touch -cmr version tzdata$(VERSION)-rearguard.dir/version
++		$(CREATE_EMPTY) [email protected]/pacificnew
++		touch -cmr version [email protected]/version
+ 		LC_ALL=C && export LC_ALL && \
+-		  (cd tzdata$(VERSION)-rearguard.dir && \
++		  (cd [email protected] && \
+ 		   tar $(TARFLAGS) -cf - \
+-			$(COMMON) $(DATA) $(MISC) pacificnew | \
++			$(TZDATA_DIST) pacificnew | \
+ 		     gzip $(GZIPFLAGS)) >[email protected]
+ 		mv [email protected] $@
+ 
++# Create a tailored tarball suitable for TZUpdater and compatible tools.
++# For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball
++# useful for testing whether TZUpdater supports vanguard form.
++# The generated tarball is not byte-for-byte equivalent to a hand-tailored
++# traditional tarball, as data entries are put into 'etcetera' even if they
++# came from some other source file.  However, the effect should be the same
++# for ordinary use, which reads all the source files.
++tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out
++		rm -fr [email protected]
++		mkdir [email protected]
++		: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
++		cd [email protected] && \
++		  $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \
++		  `test $(DATAFORM) = vanguard || echo pacificnew`
++		(grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \
++		  >[email protected]/etcetera
++		touch -cmr tzdata.zi [email protected]/etcetera
++		sed -n \
++		  -e '/^# *version  *\(.*\)/h' \
++		  -e '/^# *ddeps  */H' \
++		  -e '$$!d' \
++		  -e 'g' \
++		  -e 's/^# *version  *//' \
++		  -e 's/\n# *ddeps  */-/' \
++		  -e 's/ /-/g' \
++		  -e 'p' \
++		  <tzdata.zi >[email protected]/version
++		touch -cmr version [email protected]/version
++		links= && \
++		  for file in $(TZDATA_DIST); do \
++		    test -f [email protected]/$$file || links="$$links $$file"; \
++		  done && \
++		  ln $$links [email protected]
++		LC_ALL=C && export LC_ALL && \
++		  (cd [email protected] && \
++		   tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >[email protected]
++		mv [email protected] $@
++
+ tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out
+ 		rm -fr tzdb-$(VERSION)
+ 		mkdir tzdb-$(VERSION)
+@@ -1134,13 +1212,14 @@
+ .PHONY: check_web check_zishrink
+ .PHONY: clean clean_misc dummy.zd force_tzs
+ .PHONY: install install_data maintainer-clean names
+-.PHONY: posix_only posix_packrat posix_right public
++.PHONY: posix_only posix_right public
+ .PHONY: rearguard_signatures rearguard_signatures_version
+ .PHONY: rearguard_tarballs rearguard_tarballs_version
+ .PHONY: right_only right_posix signatures signatures_version
+ .PHONY: tarballs tarballs_version
+ .PHONY: traditional_signatures traditional_signatures_version
+ .PHONY: traditional_tarballs traditional_tarballs_version
++.PHONY: tailored_tarballs tailored_tarballs_version
+ .PHONY: typecheck
+ .PHONY: zonenames zones
+ .PHONY: $(ZDS)
+--- contrib/tzdata/NEWS.orig
++++ contrib/tzdata/NEWS
+@@ -1,5 +1,140 @@
+ News for the tz database
+ 
++Release 2022c - 2022-08-15 17:47:18 -0700
++
++  Briefly:
++    Work around awk bug in FreeBSD, macOS, etc.
++    Improve tzselect on intercontinental Zones.
++
++  Changes to code
++
++    Work around a bug in onetrueawk that broke commands like
++    'make traditional_tarballs' on FreeBSD, macOS, etc.
++    (Problem reported by Deborah Goldsmith.)
++
++    Add code to tzselect that uses experimental structured comments in
++    zone1970.tab to clarify whether Zones like Africa/Abidjan and
++    Europe/Istanbul cross continent or ocean boundaries.
++    (Inspired by a problem reported by Peter Krefting.)
++
++    Fix bug with 'zic -d /a/b/c' when /a is unwritable but the
++    directory /a/b already exists.
++
++    Remove zoneinfo2tdf.pl, as it was unused and triggered false
++    malware alarms on some email servers.
++
++
++Release 2022b - 2022-08-10 15:38:32 -0700
++
++  Briefly:
++    Chile's DST is delayed by a week in September 2022.
++    Iran no longer observes DST after 2022.
++    Rename Europe/Kiev to Europe/Kyiv.
++    New zic -R option
++    Vanguard form now uses %z.
++    Finish moving duplicate-since-1970 zones to 'backzone'.
++    New build option PACKRATLIST
++    New tailored_tarballs target, replacing rearguard_tarballs
++
++  Changes to future timestamps
++
++    Chile's 2022 DST start is delayed from September 4 to September 11.
++    (Thanks to Juan Correa.)
++
++    Iran plans to stop observing DST permanently, after it falls back
++    on 2022-09-21.  (Thanks to Ali Mirjamali.)
++
++  Changes to past timestamps
++
++    Finish moving to 'backzone' the location-based zones whose
++    timestamps since 1970 are duplicates; adjust links accordingly.
++    This change ordinarily affects only pre-1970 timestamps, and with
++    the new PACKRATLIST option it does not affect any timestamps.
++    In this round the affected zones are Antarctica/Vostok,
++    Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik,
++    Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg,
++    Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas,
++    Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion,
++    Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei,
++    Pacific/Wake and Pacific/Wallis, and the affected links are
++    Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape,
++    Pacific/Truk, and Pacific/Yap.
++
++    From fall 1994 through fall 1995, Shanks wrote that Crimea's
++    DST transitions were at 02:00 standard time, not at 00:00.
++    (Thanks to Michael Deckers.)
++
++    Iran adopted standard time in 1935, not 1946.  In 1977 it observed
++    DST from 03-21 23:00 to 10-20 24:00; its 1978 transitions were on
++    03-24 and 08-05, not 03-20 and 10-20; and its spring 1979
++    transition was on 05-27, not 03-21.
++    (Thanks to Roozbeh Pournader and Francis Santoni.)
++
++    Chile's observance of -04 from 1946-08-29 through 1947-03-31 was
++    considered DST, not standard time.  Santiago and environs had moved
++    their clocks back to rejoin the rest of mainland Chile; put this
++    change at the end of 1946-08-28.  (Thanks to Michael Deckers.)
++
++    Some old, small clock transitions have been removed, as people at
++    the time did not change their clocks.  This affects Asia/Hong_Kong
++    in 1904, Asia/Ho_Chi_Minh in 1906, and Europe/Dublin in 1880.
++
++  Changes to zone name
++
++    Rename Europe/Kiev to Europe/Kyiv, as "Kyiv" is more common in
++    English now.  Spelling of other names in Ukraine has not yet
++    demonstrably changed in common English practice so for now these
++    names retain old spellings, as in other countries (e.g.,
++    Europe/Prague not "Praha", and Europe/Sofia not "Sofiya").
++
++  Changes to code
++
++    zic has a new option '-R @N' to output explicit transitions < N.
++    (Need suggested by Almaz Mingaleev.)
++
++    'zic -r @N' no longer outputs bad data when N < first transition.
++    (Problem introduced in 2021d and reported by Peter Krefting.)
++
++    zic now checks its input for NUL bytes and unterminated lines, and
++    now supports input line lengths up to 2048 (not 512) bytes.
++
++    gmtime and related code now use the abbreviation "UTC" not "GMT".
++    POSIX is being revised to require this.
++
++    When tzset and related functions set vestigial static variables
++    like tzname, they now prefer specified timestamps to unspecified ones.
++    (Problem reported by Almaz Mingaleev.)
++
++    zic no longer complains "can't determine time zone abbreviation to
++    use just after until time" when a transition to a new standard
++    time occurs simultaneously with the first DST fallback transition.
++
++  Changes to build procedure
++
++    Source data in vanguard form now uses the %z notation, introduced
++    in release 2015f.  For example, for America/Sao_Paulo vanguard
++    form contains the zone continuation line "-3:00 Brazil %z", which
++    is simpler and more reliable than the line "-3:00 Brazil -03/-02"
++    used in main and rearguard forms.  The plan is for the main form
++    to use %z eventually; in the meantime maintainers of zi parsers
++    are encouraged to test the parsers on vanguard.zi.
++
++    The Makefile has a new PACKRATLIST option to select a subset of
++    'backzone'.  For example, 'make PACKRATDATA=backzone
++    PACKRATLIST=zone.tab' now generates TZif files identical to those
++    of the global-tz project.
++
++    The Makefile has a new tailored_tarballs target for generating
++    special-purpose tarballs.  It generalizes and replaces the
++    rearguard_tarballs target and related targets and macros, which
++    are now obsolescent.
++
++    'make install' now defaults LOCALTIME to Factory not GMT,
++    which means the default abbreviation is now "-00" not "GMT".
++
++    Remove the posix_packrat target, marked obsolescent in 2016a.
++
++
+ Release 2022a - 2022-03-15 23:02:01 -0700
+ 
+   Briefly:
+@@ -161,7 +296,7 @@
+     Rename Pacific/Enderbury to Pacific/Kanton.  When we added
+     Enderbury in 1993, we did not know that it is uninhabited and that
+     Kanton (population two dozen) is the only inhabited location in
+-    that timezone.  The old name is now a backward-compatility link.
++    that timezone.  The old name is now a backward-compatibility link.
+ 
+   Changes to past timestamps
+ 
+@@ -1315,7 +1450,7 @@
+   Changes to build procedure
+ 
+     The distribution now contains the file 'pacificnew' again.
+-    This file was inadvertantly omitted in the 2018a distribution.
++    This file was inadvertently omitted in the 2018a distribution.
+     (Problem reported by Matias Fonzo.)
+ 
+ 
+@@ -4387,7 +4522,7 @@
+ 
+   changes by Paul Eggert
+ 
+-  Derick Rethan's Asmara change
++  Derick Rethans's Asmara change
+ 
+   Oscar van Vlijmen's Easter Island local mean time change
+ 
+--- contrib/tzdata/africa.orig
++++ contrib/tzdata/africa
+@@ -159,6 +159,7 @@
+ Link Africa/Abidjan Africa/Lome		# Togo
+ Link Africa/Abidjan Africa/Nouakchott	# Mauritania
+ Link Africa/Abidjan Africa/Ouagadougou	# Burkina Faso
++Link Africa/Abidjan Atlantic/Reykjavik	# Iceland
+ Link Africa/Abidjan Atlantic/St_Helena	# St Helena
+ 
+ # Djibouti
+@@ -169,7 +170,7 @@
+ # Egypt
+ 
+ # Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh
+-# observatory; round to nearest.  Milne also says that the official time for
++# observatory.  Milne also says that the official time for
+ # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
+ # did not apply to Cairo, Alexandria, or Port Said.
+ 
+@@ -354,6 +355,7 @@
+ Rule	Egypt	2014	only	-	Sep	lastThu	24:00	0	-
+ 
+ # Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
++		#STDOFF	2:05:08.9
+ Zone	Africa/Cairo	2:05:09 -	LMT	1900 Oct
+ 			2:00	Egypt	EE%sT
+ 
+@@ -407,7 +409,7 @@
+ # At midnight on 30 June 1928 the clocks throughout Kenya was put forward
+ # half an hour by the Alteration of Time Ordinance, 1928.
+ # https://gazettes.africa/archive/ke/1928/ke-government-gazette-dated-1928-05-11-no-28.pdf
+-# [Ordinance No. 11 of 1928, The Offical Gazette, 1928-06-26, p 813]
++# [Ordinance No. 11 of 1928, The Official Gazette, 1928-06-26, p 813]
+ # https://books.google.com/books?id=2S0S6os32ZUC&pg=PA813
+ #
+ # The 1928 ordinance was repealed by the Alteration of Time (repeal) Ordinance,
+@@ -1310,21 +1312,9 @@
+ Link Africa/Lagos Africa/Porto-Novo	# Benin
+ 
+ # Réunion
+-# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
+-Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun # Saint-Denis
+-			4:00	-	+04
+-#
+-# Scattered Islands (Îles Éparses) administered from Réunion are as follows.
+-# The following information about them is taken from
*** 3572 LINES SKIPPED ***
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.