aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Sample <samplet@ngyro.com>2019-12-10 14:53:51 -0500
committerJanneke Nieuwenhuizen <janneke@gnu.org>2024-04-14 10:29:10 +0200
commit8fdc372841d000a5293f349e1df3d654e85012fa (patch)
tree2aa4e1050cfa5e77156e763d96ce5066002b5f05
parentb0c33b1997e4a02e048ceac445b156b3a1eed76d (diff)
downloadguix-8fdc372841d000a5293f349e1df3d654e85012fa.tar.gz
guix-8fdc372841d000a5293f349e1df3d654e85012fa.zip
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 <janneke@gnu.org> Change-Id: If44965e9a3ecfb45865c58ee7a558951be8d15ae
-rw-r--r--doc/local.mk23
1 files changed, 23 insertions, 0 deletions
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 <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,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