[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/13: maint: Generate 'doc/version-LANG.texi' reproducibly.
From: |
guix-commits |
Subject: |
07/13: maint: Generate 'doc/version-LANG.texi' reproducibly. |
Date: |
Sat, 13 Apr 2024 06:54:42 -0400 (EDT) |
janneke pushed a commit to branch wip-tarball
in repository guix.
commit 0e4ead187d83a958ca0deb54857c04967e84d68b
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Tue Apr 2 22:00:46 2024 +0200
maint: Generate 'doc/version-LANG.texi' reproducibly.
* 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 | 45 +++++++++++++++++++++++++++++----------------
1 file changed, 29 insertions(+), 16 deletions(-)
diff --git a/doc/local.mk b/doc/local.mk
index a653a32420..6a6864a7f0 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,22 +255,34 @@ endif
# Reproducible tarball
-# Generate 'version.texi' reproducibly using metadata from Git rather than
-# using metadata from the filesystem. This is expected to generate warnings:
+# 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 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 -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'
-$(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
+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))))
- branch wip-tarball created (now 97444b1064), guix-commits, 2024/04/13
- 02/13: maint: Cater for running `make dist' from a worktree., guix-commits, 2024/04/13
- 06/13: maint: Generate AUTHORS and ChangeLog reproducibly., guix-commits, 2024/04/13
- 07/13: maint: Generate 'doc/version-LANG.texi' reproducibly.,
guix-commits <=
- 01/13: doc: Use "dejavu sans" instead of "Helvetica" or "sans" in dot images., guix-commits, 2024/04/13
- 03/13: maint: Use reproducible timestamps and name for tarball., guix-commits, 2024/04/13
- 05/13: maint: Help help2man generate reproducible man-pages., guix-commits, 2024/04/13
- 04/13: maint: Generate 'doc/version.texi' reproducibly., guix-commits, 2024/04/13
- 08/13: maint: Use xgettext.scm wrapper to create .PO files reproducibly., guix-commits, 2024/04/13
- 09/13: maint: Use reproducible Git timestamp for POT-Creation-Date., guix-commits, 2024/04/13
- 10/13: maint: Avoid EPS generation to fail silently, ensure reproducibility., guix-commits, 2024/04/13
- 12/13: maint: Reset CreationDate metadata on generated PDFs., guix-commits, 2024/04/13
- 11/13: maint: Avoid PNG and PDF generation to fail silently., guix-commits, 2024/04/13
- 13/13: maint: Ensure generated file reproducibility for dist., guix-commits, 2024/04/13