[tz] [PROPOSED PATCH 1/2] Also distribute code and data in a single tarball

Paul Eggert eggert at cs.ucla.edu
Mon Aug 22 03:56:30 UTC 2016


Suggested by Arthur David Olson in:
https://mm.icann.org/pipermail/tz/2000-January/010789.html
* Makefile (GNUTARFLAGS): Add --sort=name,
so that the single tarball is more reproducible.
(clean): Remove tzdb.
(tzdb-$(VERSION).tar.gz): New target.
(tarballs): Add it.
(tzdb-$(VERSION).tar.gz.asc): New target.
(signatures): Add it.
* NEWS: Document this.
---
 Makefile | 21 +++++++++++++++++----
 NEWS     |  9 +++++++++
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index fc18819..da697b7 100644
--- a/Makefile
+++ b/Makefile
@@ -326,7 +326,7 @@ OK_LINE=	'^'$(OK_CHAR)'*$$'
 
 # Flags to give 'tar' when making a distribution.
 # Try to use flags appropriate for GNU tar.
-GNUTARFLAGS=	--numeric-owner --owner=0 --group=0 --mode=go+u,go-w
+GNUTARFLAGS= --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 :; \
@@ -568,7 +568,7 @@ clean_misc:
 		rm -f core *.o *.out \
 		  date tzselect version.h zdump zic yearistype libtz.a
 clean:		clean_misc
-		rm -fr *.dir $(TZS_NEW)
+		rm -fr *.dir tzdb $(TZS_NEW)
 
 maintainer-clean: clean
 		@echo 'This command is intended for maintainers to use; it'
@@ -672,7 +672,8 @@ check_time_t_alternatives:
 		done
 		rm -fr time_t.dir
 
-tarballs:	tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
+tarballs:	tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz \
+		tzdb-$(VERSION).tar.gz
 
 tzcode$(VERSION).tar.gz: set-timestamps.out
 		LC_ALL=C && export LC_ALL && \
@@ -685,7 +686,16 @@ tzdata$(VERSION).tar.gz: set-timestamps.out
 		tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) $(TZS) | \
 		  gzip $(GZIPFLAGS) > $@
 
-signatures:	tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc
+tzdb-$(VERSION).tar.gz: set-timestamps.out
+		rm -fr tzdb
+		mkdir tzdb
+		ln $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) $(TZS) tzdb
+		touch -cmr $$(ls -t tzdb/* | sed 1q) tzdb
+		LC_ALL=C && export LC_ALL && \
+		tar $(TARFLAGS) -cf - tzdb | gzip $(GZIPFLAGS) > $@
+
+signatures:	tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc \
+		tzdb-$(VERSION).tar.gz.asc
 
 tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
 		gpg --armor --detach-sign $?
@@ -693,6 +703,9 @@ tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
 tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz
 		gpg --armor --detach-sign $?
 
+tzdb-$(VERSION).tar.gz.asc: tzdb-$(VERSION).tar.gz
+		gpg --armor --detach-sign $?
+
 typecheck:
 		$(MAKE) clean
 		for i in "long long" unsigned; \
diff --git a/NEWS b/NEWS
index 023883b..18b7c9d 100644
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,15 @@ Unreleased, experimental changes
     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.gz and the signature tzdb-VERSION.tar.gz.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.
+
   Changes to documentation and commentary
 
     tzfile.5 now documents the new restriction on POSIX TZ-like
-- 
2.5.5



More information about the tz mailing list