diff mbox series

[bug#70169,3/7] maint: Generate 'doc/version.texi' reproducibly.

Message ID 285de866686d0e8ffdbae88b4cc5e06d5fee69ca.1712165977.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 3, 2024, 7:11 p.m. UTC
From: Timothy Sample <samplet@ngyro.com>

* doc/local.mk ($(srcdir)/doc/stamp-vti): New rule (overriding one provided
by Automake).

Co-authored-by: Janneke Nieuwenhuizen <janneke@gnu.org>

Change-Id: If44965e9a3ecfb45865c58ee7a558951be8d15ae
---
 doc/local.mk | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
diff mbox series

Patch

diff --git a/doc/local.mk b/doc/local.mk
index 8df003b891..4c8c852657 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -5,6 +5,7 @@ 
 # Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
 # Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
+# Copyright © 2019 Timothy Sample <samplet@ngyro.com>
 #
 # This file is part of GNU Guix.
 #
@@ -247,3 +248,22 @@  $(srcdir)/%D%/guix-daemon.1: guix-daemon$(EXEEXT)
 
 endif
 endif
+
+# Reproducible tarball
+
+# Generate 'version.texi' reproducibly using metadata from Git rather
+# than using metadata from the filesystem.
+override $(srcdir)/doc/stamp-vti: $(srcdir)/doc/guix.texi $(top_srcdir)/configure
+	$(AM_V_GEN)set -e						\
+	export LC_ALL=C;						\
+	export TZ=UTC0;							\
+	timestamp=$$(git log --pretty=format:%ct -n1 -- $< 2>/dev/null	\
+		|| echo $(SOURCE_DATE_EPOCH))				\
+	dmy=$$(date --date="@$$timestamp" "+%-d %B %Y");		\
+	my=$$(date --date="@$$timestamp" "+%B %Y");			\
+	{ echo "@set UPDATED $$dmy";					\
+	  echo "@set UPDATED-MONTH $$my";				\
+	  echo "@set EDITION $(VERSION)";				\
+	  echo "@set VERSION $(VERSION)"; } > $@-t;			\
+	mv $@-t $@
+	@cp $@ $(srcdir)/doc/version.texi