guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/13: maint: Generate 'doc/version.texi' reproducibly.


From: guix-commits
Subject: 04/13: maint: Generate 'doc/version.texi' reproducibly.
Date: Sat, 13 Apr 2024 06:23:38 -0400 (EDT)

janneke pushed a commit to branch wip-tarball
in repository guix.

commit 8eadc070103c2a78794ec8d02015d8648b9af252
Author: Timothy Sample <samplet@ngyro.com>
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 <janneke@gnu.org>
    
    Change-Id: If44965e9a3ecfb45865c58ee7a558951be8d15ae
---
 doc/local.mk | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/doc/local.mk b/doc/local.mk
index 8df003b891..3628d36ed6 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]