janneke pushed a commit to branch wip-tarball
in repository guix.
commit e73ea7bd64f64709c71f89dfb111cf3e8ada3771
Author: Timothy Sample <[email protected]>
AuthorDate: Tue Dec 10 14:53:51 2019 -0500
maint: Generate 'doc/version.texi' reproducibly.
* doc/local.mk ($(srcdir)/doc/stamp-vti): New rule (overriding one provided
by Automake).
Co-authored-by: Janneke Nieuwenhuizen <[email protected]>
Change-Id: If44965e9a3ecfb45865c58ee7a558951be8d15ae
---
doc/local.mk | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/doc/local.mk b/doc/local.mk
index 8df003b891..18bd599962 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -5,6 +5,7 @@
# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <[email protected]>
# Copyright © 2016, 2018 Mathieu Lirzin <[email protected]>
# Copyright © 2018, 2021 Julien Lepiller <[email protected]>
+# Copyright © 2019 Timothy Sample <[email protected]>
#
# This file is part of GNU Guix.
#
@@ -247,3 +248,25 @@ $(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. This is expected to generate warnings:
+#
+# Makefile:7376: warning: overriding recipe for target 'doc/stamp-vti'
+# Makefile:5098: warning: ignoring old recipe for target 'doc/stamp-vti'
+$(srcdir)/doc/stamp-vti: $(srcdir)/doc/guix.texi $(top_srcdir)/configure
+ $$(AM_V_GEN)set -e; \
+ export LANG=C LANGUAGE=C LC_ALL=C LC_TIME=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