diff mbox series

[bug#70169,v2,02/12] maint: Use reproducible timestamps and name for tarball.

Message ID 64f881308ffd375845708caf00ced3879cb578e4.1712437365.git.janneke@gnu.org
State New
Headers show
Series Reproducible `make dist' tarball in defiance of Autotools and Gettext | expand

Commit Message

Janneke Nieuwenhuizen April 6, 2024, 9:17 p.m. UTC
* Makefile.am (gen-tarball-version): Add reproducible timestamp to tarball.
(am__tar): Use it in new variable, overriding the Automake default.
(GZIP_ENV): New variable, overriding the Automake default.
---
 Makefile.am | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/Makefile.am b/Makefile.am
index 2b5e145095..a5e49bc406 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@ 
 # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 # Copyright © 2017 Leo Famulari <leo@famulari.name>
 # Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-# Copyright © 2017, 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2017, 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
 # Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 # Copyright © 2018 Nikita <nikita@n0.is>
 # Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
@@ -970,6 +970,7 @@  $(top_srcdir)/.version: config.status
 
 gen-tarball-version:
 	echo $(VERSION) > "$(distdir)/.tarball-version"
+	git show HEAD --format=%ct --no-patch > $(distdir)/.tarball-timestamp
 
 gen-ChangeLog:
 	$(AM_V_GEN)if test -e .git; then		\
@@ -1002,6 +1003,17 @@  dist-with-updated-version:
 # Release management.
 #
 
+# Reproducible tarball
+override GZIP_ENV = --best --no-name
+# Be friendly to Debian; avoid using EPOCH
+override am__tar = $${TAR-tar}			\
+ --sort=name					\
+ --mode=go=rX,u+rw,a-s				\
+ --mtime=@$$(cat "$$tardir"/.tarball-timestamp)	\
+ --owner=0 --group=0 --numeric-owner		\
+ -cf -						\
+ "$$tardir"
+
 releasedir = release-$(PACKAGE_VERSION)
 
 PACKAGE_FULL_TARNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)