summary refs log tree commit diff
path: root/po
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2024-04-05 23:21:02 +0200
committerJanneke Nieuwenhuizen <janneke@gnu.org>2024-04-14 10:29:11 +0200
commit6c63c366776643e5831c50a2b7e29bad93273327 (patch)
treec6b431a19695abcc4205906fe574a2cba5eb8392 /po
parentb4d2838d511f8fc94458358938493b5a1646d8f7 (diff)
downloadguix-6c63c366776643e5831c50a2b7e29bad93273327.tar.gz
maint: Use xgettext.scm wrapper to create .PO files reproducibly.
* build-aux/xgettext.scm: New script.
* po/guix/Makevars (XGETTEXT): Set it.
(XGETTEXT_OPTIONS): Add --xgettext option to `real' xgettext.
* po/packages/Makevars (XGETTEXT): Set it.
(XGETTEXT_OPTIONS): Add --xgettext option to `real' xgettext.

Change-Id: I71b6b843970090f765f46ac346b92a346560e3f0
Diffstat (limited to 'po')
-rw-r--r--po/guix/Makevars7
-rw-r--r--po/packages/Makevars10
2 files changed, 14 insertions, 3 deletions
diff --git a/po/guix/Makevars b/po/guix/Makevars
index 88a4e8c7bc..4cfd0f431d 100644
--- a/po/guix/Makevars
+++ b/po/guix/Makevars
@@ -5,6 +5,10 @@ DOMAIN = guix
 subdir = po/guix
 top_builddir = ../..
 
+# We use our xgettext.scm wrapper to produce .PO files reproducibly using a
+# timestamp from Git.
+XGETTEXT:=$(top_srcdir)/build-aux/xgettext.scm
+
 # These options get passed to xgettext.  We want to catch standard
 # gettext uses, and SRFI-35 error condition messages.  In C++ code
 # we use 'n_' instead of the more usual 'N_' for no-ops.
@@ -14,7 +18,8 @@ XGETTEXT_OPTIONS =				\
   --keyword=message				\
   --keyword=description				\
   --keyword=synopsis				\
-  --keyword=n_
+  --keyword=n_					\
+  --xgettext=$(XGETTEXT_)
 
 COPYRIGHT_HOLDER = the authors of Guix (msgids)
 
diff --git a/po/packages/Makevars b/po/packages/Makevars
index 65912786d8..0ba4f1ba7e 100644
--- a/po/packages/Makevars
+++ b/po/packages/Makevars
@@ -6,12 +6,18 @@ DOMAIN = guix-packages
 subdir = po/packages
 top_builddir = ../..
 
+# We use our xgettext.scm wrapper to produce .PO files reproducibly using a
+# timestamp from Git.  The `real' xgettext is passed as an option to
+# xgettext.scm
+XGETTEXT:=$(top_srcdir)/build-aux/xgettext.scm
+
 # These options get passed to xgettext.  We want to catch exclusively package
 # synopses and descriptions.
 XGETTEXT_OPTIONS =				\
   --language=Scheme --from-code=UTF-8		\
-  --keyword=synopsis --keyword=description      \
-  --keyword=output-synopsis:2
+  --keyword=synopsis --keyword=description	\
+  --keyword=output-synopsis:2			\
+  --xgettext=$(XGETTEXT_)
 
 COPYRIGHT_HOLDER = the authors of Guix (msgids)