From: Janneke Nieuwenhuizen <janneke@gnu.org>
To: 70169@debbugs.gnu.org
Subject: [bug#70169] [PATCH v3 07/13] maint: Generate 'doc/version-LANG.texi' reproducibly.
Date: Mon, 8 Apr 2024 18:46:50 +0000 [thread overview]
Message-ID: <599132e3c89700ae3f29d97460c0f94048cf291e.1712600307.git.janneke@gnu.org> (raw)
In-Reply-To: <cover.1712600307.git.janneke@gnu.org>
* doc/local.mk ($(srcdir)/doc/stamp-vti): Change rule into...
(version.texi-from-git): ...this new function. Call it with vti,guix.texi,;
and for all MANUAL_LANGUAGES with $(i),po/doc/guix-manual.$(lang).po,
-$(lang.po).
Change-Id: Ia8df618178066cad320eecea0299337224e23a73
---
doc/local.mk | 44 ++++++++++++++++++++++++++++++--------------
1 file changed, 30 insertions(+), 14 deletions(-)
diff --git a/doc/local.mk b/doc/local.mk
index 595710a5b8..7a9840187a 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -6,6 +6,7 @@
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
# Copyright © 2019 Timothy Sample <samplet@ngyro.com>
+# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -254,19 +255,34 @@ endif
# Reproducible tarball
-# Generate 'version.texi' reproducibly using metadata from Git rather
-# than using metadata from the filesystem.
-$(srcdir)/doc/stamp-vti: $(srcdir)/doc/guix.texi $(top_srcdir)/configure
- $(AM_V_GEN)set -e \
+# Define a rule to build `version[LANG].texi' reproducibly using metadata from
+# Git rather than using metadata from the filesystem.
+define version.texi-from-git
+$(srcdir)/doc/stamp-$(1): $(srcdir)/$(2) $(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
+ 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 -p "$$@" "$$(srcdir)/doc/version$(3).texi"
+endef
+
+# Generate rules for stamp-vti and stamp-N that create version.texi and
+# version-LANG.texi to override the Autotools versions that use timestamps
+# embedded in the file-system. These are 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'
+i:=0
+$(eval $(call version.texi-from-git,vti,doc/guix.texi,))
+$(foreach lang, $(MANUAL_LANGUAGES), \
+ $(eval i=$(shell echo $$(($(i)+1)))) \
+ $(eval $(call version.texi-from-git,$(i),po/doc/guix-manual.$(lang).po,-$(lang))))
--
2.41.0
next prev parent reply other threads:[~2024-04-08 18:48 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-03 19:08 [bug#70169] [PATCH 0/7] Reproducible `make dist' tarball in defiance of Autotools and Gettext Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 1/7] maint: Cater for running `make dist' from a worktree Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 2/7] maint: Use reproducible timestamps and name for tarball Janneke Nieuwenhuizen
2024-04-03 20:45 ` Ludovic Courtès
2024-04-03 20:49 ` Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 3/7] maint: Generate 'doc/version.texi' reproducibly Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 4/7] maint: Help help2man generate reproducible man-pages Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 5/7] maint: Generate 'doc/version-LANG.texi' reproducibly Janneke Nieuwenhuizen
2024-04-03 20:25 ` Ludovic Courtès
2024-04-03 20:33 ` Janneke Nieuwenhuizen
2024-04-08 9:26 ` Ludovic Courtès
2024-04-03 20:39 ` Ludovic Courtès
2024-04-03 20:43 ` Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 6/7] maint: Use reproducible Git timestamp for POT-Creation-Date Janneke Nieuwenhuizen
2024-04-03 20:26 ` Ludovic Courtès
2024-04-03 20:36 ` Janneke Nieuwenhuizen
2024-04-04 5:12 ` Janneke Nieuwenhuizen
2024-04-03 19:11 ` [bug#70169] [PATCH 7/7] maint: Ensure generated file reproducibility for dist Janneke Nieuwenhuizen
2024-04-03 20:57 ` [bug#70169] [PATCH 0/7] Reproducible `make dist' tarball in defiance of Autotools and Gettext Ludovic Courtès
2024-04-03 21:04 ` Janneke Nieuwenhuizen
2024-04-03 21:28 ` Ludovic Courtès
2024-04-06 21:16 ` Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 00/12] " Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 01/12] maint: Cater for running `make dist' from a worktree Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 02/12] maint: Use reproducible timestamps and name for tarball Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 03/12] maint: Generate 'doc/version.texi' reproducibly Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 04/12] maint: Help help2man generate reproducible man-pages Janneke Nieuwenhuizen
2024-04-07 13:54 ` pelzflorian (Florian Pelz)
2024-04-07 14:06 ` Janneke Nieuwenhuizen
2024-04-07 15:20 ` pelzflorian (Florian Pelz)
2024-04-08 9:23 ` Ludovic Courtès
2024-04-08 9:40 ` Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 05/12] maint: Generate AUTHORS and ChangeLog reproducibly Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 06/12] maint: Generate 'doc/version-LANG.texi' reproducibly Janneke Nieuwenhuizen
2024-04-06 21:17 ` [bug#70169] [PATCH v2 07/12] maint: Use xgettext.scm wrapper to create .PO files reproducibly Janneke Nieuwenhuizen
2024-04-06 21:18 ` [bug#70169] [PATCH v2 08/12] maint: Use reproducible Git timestamp for POT-Creation-Date Janneke Nieuwenhuizen
2024-04-06 21:18 ` [bug#70169] [PATCH v2 09/12] maint: Remove %%CreationDate from generated EPS files Janneke Nieuwenhuizen
2024-04-08 9:41 ` Ludovic Courtès
2024-04-08 17:12 ` Janneke Nieuwenhuizen
2024-04-06 21:18 ` [bug#70169] [PATCH v2 10/12] maint: Avoid PNG and PDF generation to fail silently Janneke Nieuwenhuizen
2024-04-06 21:18 ` [bug#70169] [PATCH v2 11/12] maint: Reset CreationDate metadata on generated PDFs Janneke Nieuwenhuizen
2024-04-07 17:16 ` pelzflorian (Florian Pelz)
2024-04-07 17:38 ` Janneke Nieuwenhuizen
2024-04-07 18:09 ` Janneke Nieuwenhuizen
2024-04-06 21:18 ` [bug#70169] [PATCH v2 12/12] maint: Ensure generated file reproducibility for dist Janneke Nieuwenhuizen
2024-04-07 8:57 ` [bug#70169] [PATCH v2 13/12] doc: Use "dejavu sans" instead of "Helvetica" or "sans" in dot images Janneke Nieuwenhuizen
2024-04-08 12:15 ` Ludovic Courtès
2024-04-08 17:26 ` Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 00/13] Reproducible `make dist' tarball in defiance of Autotools and Gettext Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 01/13] doc: Use "dejavu sans" instead of "Helvetica" or "sans" in dot images Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 02/13] maint: Cater for running `make dist' from a worktree Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 03/13] maint: Use reproducible timestamps and name for tarball Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 04/13] maint: Generate 'doc/version.texi' reproducibly Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 05/13] maint: Help help2man generate reproducible man-pages Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 06/13] maint: Generate AUTHORS and ChangeLog reproducibly Janneke Nieuwenhuizen
2024-04-08 18:46 ` Janneke Nieuwenhuizen [this message]
2024-04-08 18:46 ` [bug#70169] [PATCH v3 08/13] maint: Use xgettext.scm wrapper to create .PO files reproducibly Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 09/13] maint: Use reproducible Git timestamp for POT-Creation-Date Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 10/13] maint: Avoid EPS generation to fail silently, ensure reproducibility Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 11/13] maint: Avoid PNG and PDF generation to fail silently Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 12/13] maint: Reset CreationDate metadata on generated PDFs Janneke Nieuwenhuizen
2024-04-08 18:46 ` [bug#70169] [PATCH v3 13/13] maint: Ensure generated file reproducibility for dist Janneke Nieuwenhuizen
2024-04-10 16:35 ` pelzflorian (Florian Pelz)
2024-04-10 17:25 ` Janneke Nieuwenhuizen
2024-04-11 11:32 ` pelzflorian (Florian Pelz)
2024-04-14 9:24 ` bug#70169: " Janneke Nieuwenhuizen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=599132e3c89700ae3f29d97460c0f94048cf291e.1712600307.git.janneke@gnu.org \
--to=janneke@gnu.org \
--cc=70169@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.