[tz] [PROPOSED] Distribute tarballs in ustar rather than gnu form

Paul Eggert eggert at cs.ucla.edu
Mon Dec 13 09:03:22 UTC 2021


It recently came to my attention that tzdb tarballs are not
generated in standard POSIX ustar format, but instead use a
trivially different but nonstandard format.  Fix this by
switching to the standard format.
* Makefile (GNUTARFLAGS): Add --format=ustar.
* NEWS: Document the change.
---
 Makefile |  3 ++-
 NEWS     | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index c89c1be..fd312d9 100644
--- a/Makefile
+++ b/Makefile
@@ -466,7 +466,8 @@ 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 --sort=name
+GNUTARFLAGS= --format=ustar --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 :; \
diff --git a/NEWS b/NEWS
index 572a161..edb9a1d 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,16 @@ Unreleased, experimental changes
     reader no longer mistakenly attempts to parse a version 1 TZIf
     file header as a TZ string.
 
+  Changes to build procedure
+
+    Distribution tarballs now use standard POSIX.1-1988 ustar format
+    instead of GNU format.  Although the formats are almost identical
+    for these tarballs, ustar headers' magic fields contain "ustar"
+    instead of "ustar ", and their version fields contain "00" instead
+    of " ".  For details about ustar format, please see
+    "pax - portable archive interchange", IEEE Std 1003.1-2017,
+    <https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06>.
+
   Changes affecting documentation and commentary
 
     Rename CONTRIBUTING to CONTRIBUTING.md and use Markdown format.
-- 
2.32.0



More information about the tz mailing list