[tz] [PROPOSED PATCH 1/3] Call the new tarball experimental

Paul Eggert eggert at cs.ucla.edu
Tue Sep 6 04:24:38 UTC 2016

* Makefile (tzdata$(VERSION).tar.gz): Omit $(TZS).
* NEWS: Call the new format experimental, and say it has to2050.tzs.
Do not imply a time limit for the old format.
* README, tz-link.htm: Bring back traditional two-tarball recipe.
* tz-how-to.html: Defer to tz-link.htm for tarball link.
* tz-link.htm: Update some URLs.
 Makefile       |  2 +-
 NEWS           | 33 ++++++++++++++++-----------------
 README         | 11 +++++++++++
 tz-how-to.html |  3 +--
 tz-link.htm    | 52 ++++++++++++++++++++++++++++------------------------
 5 files changed, 57 insertions(+), 44 deletions(-)

diff --git a/Makefile b/Makefile
index 90363e9..31a2ec5 100644
--- a/Makefile
+++ b/Makefile
@@ -683,7 +683,7 @@ tzcode$(VERSION).tar.gz: set-timestamps.out
 tzdata$(VERSION).tar.gz: set-timestamps.out
 		LC_ALL=C && export LC_ALL && \
-		tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) $(TZS) | \
+		tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \
 		  gzip $(GZIPFLAGS) > $@
 tzdb-$(VERSION).tar.lz: set-timestamps.out
diff --git a/NEWS b/NEWS
index e61a992..6cbdbd7 100644
--- a/NEWS
+++ b/NEWS
@@ -63,20 +63,18 @@ Unreleased, experimental changes
   Changes to build procedure
-    The tz distribution has a new file to2050.tzs that contains what
-    should be the output of 'zdump -i -c 2050' on primary zones.
-    'make check' now checks that zdump generates this output.
-    A new distribution format is available in the tarball
-    tzdb-VERSION.tar.lz and the signature tzdb-VERSION.tar.lz.asc.
-    The new tarball has the contents of tzcodeVERSION.tar.gz and
-    tzdataVERSION.tar.gz, in a single top-level directory 'tzdb' with
-    all other files under this directory, as is typical for software
-    distributions.  The new format is intended to replace the old
-    tarball pair.  The old format will continue to be distributed for
-    a while.  The new format uses lzip compression, which is smaller
-    than gzip; see <http://www.nongnu.org/lzip/lzip.html>.
-    (Thanks to Antonio Diaz Diaz and Oscar van Vlijmen for comments.)
+    An experimental distribution format is available in the tarball
+    tzdb-VERSION.tar.lz with signature file tzdb-VERSION.tar.lz.asc.
+    It unpacks to a top-level directory containing the code and data
+    of the traditional two-tarball format, along with extra data that
+    may be useful.  The traditional format will continue to be
+    distributed.  (Thanks to Antonio Diaz Diaz, Oscar van Vlijmen, and
+    many others for comments about the experimental format.)
+    The experimental distribution contains a file to2050.tzs that
+    contains what should be the output of 'zdump -i -c 2050' on
+    primary zones.  If this file is available, 'make check' now checks
+    that zdump generates this output.
     'make check_web' now works on Fedora-like distributions.
@@ -3613,14 +3611,15 @@ This file contains copies of the part of each release announcement
 that talks about the changes in that release.  The text has been
 adapted and reformatted for the purposes of this file.
-Typically a release R consists of a pair of tarball files,
+Traditionally a release R consists of a pair of tarball files,
 tzcodeR.tar.gz and tzdataR.tar.gz.  However, some releases (e.g.,
 code2010a, data2012c) consist of just one or the other tarball, and a
 few (e.g., code2012c-data2012d) have tarballs with mixed version
+numbers.  Recent releases also come in an experimental format
+consisting of a single tarball tzdb-R.tar.lz with extra data.
 Release time stamps are taken from the release's commit (for newer,
-git releases), from the newest file in the tarball (for older
+Git-based releases), from the newest file in the tarball (for older
 releases, where this info is available) or from the email announcing
 the release (if all else fails; these are marked with a time zone of
 -0000 and an "is missing!" comment).
diff --git a/README b/README
index ba0b790..8a09aa2 100644
--- a/README
+++ b/README
@@ -13,6 +13,17 @@ and daylight-saving rules.
 Here is a recipe for acquiring, building, installing, and testing the
 tz distribution on a GNU/Linux or similar host.
+To acquire the distribution, run the following shell commands:
+	mkdir tz
+	cd tz
+	wget --retr-symlinks 'ftp://ftp.iana.org/tz/tz*-latest.tar.gz'
+	gzip -dc tzcode-latest.tar.gz | tar -xf -
+	gzip -dc tzdata-latest.tar.gz | tar -xf -
+Alternatively, the following shell commands acquire the same
+distribution, with extra data useful for regression testing:
 	wget --retr-symlinks 'ftp://ftp.iana.org/tz/tzdb-latest.tar.lz'
 	lzip -dc tzdb-latest.tar.lz | tar -xf -
diff --git a/tz-how-to.html b/tz-how-to.html
index 7d9d521..a94759e 100644
--- a/tz-how-to.html
+++ b/tz-how-to.html
@@ -12,8 +12,7 @@ Database</a> Source Files</h2>
 times of day from the <a href="tz-link.htm">tz database</a>
 source files. It might be helpful, but not absolutely necessary,
 for the reader to have already downloaded the
-<a href="http://www.iana.org/time-zones/repository/tzdb-latest.tar.lz">latest
-release of the database</a> and become familiar with the basic layout
+latest release of the database and become familiar with the basic layout
 of the data files. The format is explained in the &ldquo;man
 page&rdquo; for the zic compiler, <code>zic.8.txt</code>, in
 the <code>code</code> subdirectory.</p>
diff --git a/tz-link.htm b/tz-link.htm
index 8b05470..52bb492 100644
--- a/tz-link.htm
+++ b/tz-link.htm
@@ -10,7 +10,7 @@
  content="Sources for time zone and daylight saving time data">
 <meta name="DC.Creator" content="Eggert, Paul">
 <meta name="DC.Contributor" content="Olson, Arthur David">
-<meta name="DC.Date" content="2016-08-30">
+<meta name="DC.Date" content="2016-09-05">
 <meta name="DC.Description"
  content="Sources of information about time zones and daylight saving time">
 <meta name="DC.Identifier"
@@ -42,7 +42,7 @@ This database (often called <code>zoneinfo</code> or
 is used by several implementations,
-<a href="http://www.gnu.org/software/libc/">the
+<a href="https://www.gnu.org/software/libc/">the
 <abbr title="GNU's Not Unix">GNU</abbr>
 C Library</a> (used in
 <a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
@@ -108,33 +108,35 @@ for Eastern Standard Time in the <abbr>US</abbr>.</p>
 The following <a
 href="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
-the latest release to a <abbr>GNU</abbr>/Linux or similar host;
-see the downloaded
-<code>README</code> file for what to do next.</p>
-<pre style="margin-left: 2em"><code><a href="http://www.gnu.org/software/wget/">wget</a> --retr-symlinks 'ftp://ftp.iana.org/tz/tzdb-latest.tar.lz'
-<a href="http://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | <a href="http://www.gnu.org/software/tar/">tar</a> -xf -
+the latest release's two
+<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
+to a <abbr>GNU</abbr>/Linux or similar host.</p>
+<pre style="margin-left: 2em"><code>mkdir tzdb
+cd tzdb
+<a href="https://www.gnu.org/software/wget/">wget</a> --retr-symlinks 'ftp://ftp.iana.org/tz/tz*-latest.tar.gz'
+<a href="https://www.gnu.org/software/gzip/">gzip</a> -dc tzcode-latest.tar.gz | <a href="https://www.gnu.org/software/tar/">tar</a> -xf -
+gzip -dc tzdata-latest.tar.gz | tar -xf -
-<p>This uses a convenience link to the
-<a href="ftp://ftp.iana.org/tz/tzdb-latest.tar.lz">latest version</a>
-archived in the
+<p>Alternatively, the following shell commands download the same
+release in a single-tarball format containing extra data
+useful for regression testing:</p>
+<pre style="margin-left: 2em"><code>wget --retr-symlinks 'ftp://ftp.iana.org/tz/tzdb-latest.tar.lz'
+<a href="http://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
+<p>These commands use convenience links to the latest of the
 <a href="ftp://ftp.iana.org/tz/releases/"><abbr
 title="File Transfer Protocol">FTP</abbr> releases</a>
 of the <code><abbr>tz</abbr></code> database.
-Archived versions are in files named <code>tzdb-<var>V</var>.tar.lz</code>,
+Older releases are in files named
+<code>tzdata<var>V</var>.tar.gz</code>, and
 where <code><var>V</var></code> is the version.
-For compatibility with releases before 2016g, a
-<a href="https://www.gnu.org/software/gzip/">gzip</a>-compressed two-tarball
-distribution is also available, where the code is in the
-file <code>tzcode<var>C</var>.tar.gz</code>,
-where <code><var>C</var></code> is the code's version;
-similarly, the data entries are in <code>tzdata<var>D</var>.tar.gz</code>,
-where <code><var>D</var></code> is the data's version.
 Since 1996, each version has been a four-digit year followed by
 lower-case letter (<samp>a</samp> through <samp>z</samp>,
 then <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
-through <samp>zzz</samp>, and so on).</p>
-The code and data files can also be obtained from the
+through <samp>zzz</samp>, and so on).
+The releases can also be obtained from the
 <a href="http://www.iana.org/time-zones">Time Zone Database website</a>
 of the <a href="http://www.iana.org">Internet Assigned Numbers
 Authority (IANA)</a>.
@@ -144,6 +146,8 @@ in <a href="http://git-scm.com">Git</a> form
 from <a href="https://github.com">GitHub</a>; be careful, as this
 repository is less well tested and probably contains more errors.
+After extracting a distribution's files, see its
+<code>README</code> file for what to do next.
 The code lets you compile the <code><abbr>tz</abbr></code> source files into
 machine-readable binary files, one for each location. It also lets
 you read a <code><abbr>tz</abbr></code> binary file and interpret time stamps for that
@@ -295,7 +299,7 @@ program that compiles
 <code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
 Vzic is freely
 available under the <a
 General Public License (<abbr
 title="General Public License">GPL</abbr>)</a>.</li>
 <li><a href="https://sourceforge.net/projects/tzical/">tziCal &ndash; tz
@@ -357,7 +361,7 @@ Advanced date, time and interval library for Java</a> contains a class
 <code>net.time4j.tool.TimezoneRepositoryCompiler</code> that compiles
 <code><abbr>tz</abbr></code> source into a binary format. Time4J is
 available under the <a
-href="http://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
+href="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
 General Public License (<abbr title="Lesser General Public
 <li><abbr>ICU</abbr> (mentioned above) contains compilers and
@@ -413,7 +417,7 @@ license.</li>
 <h2>Other <code><abbr>tz</abbr></code> binary file readers</h2>
 <li>The <a
-href="http://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
+href="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
 has an independent, thread-safe implementation of
 a <code><abbr>tz</abbr></code> binary file reader.

More information about the tz mailing list