[PATCH] nls: Do not update po files on first make invocation.

DoneSubmitted by Julien Lepiller.
Details
2 participants
  • Julien Lepiller
  • Maxim Cournoyer
Owner
unassigned
Severity
normal
J
J
Julien Lepiller wrote on 2 May 22:23 +0200
(address . guix-patches@gnu.org)
20210502222305.56a357f1@tachikoma.lepiller.eu
Hi Guix,
As you probably know, after the first make in a clean checkout of theguix repository, po files are dirty and we advertise to run "gitcheckout po" to get them clean again. This was caused by the gettextgenerated makefile that wanted to build the mo (compiled po) files, andthese po files depend on the pot that needs to be generated.
In newer versions of gettext (at least 0.19.1 from 4 years ago), thereis an option, PO_DEPENDS_ON_POT that I set to "no", so this patchupdates the minimal gettext version to 0.19.1 and makes use of thatvariable, that removes the dependency from the po files to the pot file.
This means that when make tries to generate the mo files, it can do soimmediately, without needing to generate the pot file nor update the pofiles that depended on the pot.
As this patch updates the minimal requirement for gettext to 0.19.1,I'm not sure what's the impact. This is a version from 4 years ago(0.18.1 was from 6 years ago). We currently have gettext 0.20.1, anddebian jessie has 0.19.3, so I don't think this change will negativelyaffect our users:
- developpers should already use guix environment guix which provides a good version.- packagers of guix on other distros might have a harder time, but even debian seems to have a recent enough version
WDYT?
From cc0549322000a319ecdb82b6cbcfd209a134e507 Mon Sep 17 00:00:00 2001From: Julien Lepiller <julien@lepiller.eu>Date: Sun, 2 May 2021 22:12:16 +0200Subject: [PATCH] nls: Do not update po files on first make invocation.
We need to update the minimal gettext version to take advantage of newfeatures. Before this patch, the first make invocation would modifypo/guix and po/packages po files, and we advised to run `git checkoutpo` to clean the changes.
* configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.19.1.* po/guix/Makevars: Set PO_DEPENDS_ON_POT to no.* po/packages/Makevars: Set PO_DEPENDS_ON_POT to no.--- configure.ac | 2 +- po/guix/Makevars | 5 +++++ po/packages/Makevars | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-)
Toggle diff (41 lines)diff --git a/configure.ac b/configure.acindex e5d339f6ec..c64993f4a7 100644--- a/configure.ac+++ b/configure.ac@@ -21,7 +21,7 @@ dnl For the C++ code. This must be used early. AC_USE_SYSTEM_EXTENSIONS AM_GNU_GETTEXT([external])-AM_GNU_GETTEXT_VERSION([0.18.1])+AM_GNU_GETTEXT_VERSION([0.19.1]) GUIX_SYSTEM_TYPE GUIX_ASSERT_SUPPORTED_SYSTEMdiff --git a/po/guix/Makevars b/po/guix/Makevarsindex 363bf98dfd..88a4e8c7bc 100644--- a/po/guix/Makevars+++ b/po/guix/Makevars@@ -26,3 +26,8 @@ EXTRA_LOCALE_CATEGORIES = # "make distcheck -j4". # See <https://lists.gnu.org/archive/html/bug-gettext/2014-08/msg00005.html>. DIST_DEPENDS_ON_UPDATE_PO = no++# Ignore the timestamp of the .pot file, as .po files are updated by+# `make download-po` only. This ensures po files are not modified on the+# first `make` invocation.+PO_DEPENDS_ON_POT = nodiff --git a/po/packages/Makevars b/po/packages/Makevarsindex 39366fbee9..4cdb98d8fe 100644--- a/po/packages/Makevars+++ b/po/packages/Makevars@@ -22,3 +22,8 @@ EXTRA_LOCALE_CATEGORIES = # "make distcheck -j4". # See <https://lists.gnu.org/archive/html/bug-gettext/2014-08/msg00005.html>. DIST_DEPENDS_ON_UPDATE_PO = no++# Ignore the timestamp of the .pot file, as .po files are updated by+# `make download-po` only. This ensures po files are not modified on the+# first `make` invocation.+PO_DEPENDS_ON_POT = no-- 2.31.1
M
M
Maxim Cournoyer wrote on 3 May 15:46 +0200
(name . Julien Lepiller)(address . julien@lepiller.eu)(address . 48165-done@debbugs.gnu.org)
87a6pcnd4p.fsf@gmail.com
Hi Julien!
Julien Lepiller <julien@lepiller.eu> writes:
Toggle quote (30 lines)> Hi Guix,>> As you probably know, after the first make in a clean checkout of the> guix repository, po files are dirty and we advertise to run "git> checkout po" to get them clean again. This was caused by the gettext> generated makefile that wanted to build the mo (compiled po) files, and> these po files depend on the pot that needs to be generated.>> In newer versions of gettext (at least 0.19.1 from 4 years ago), there> is an option, PO_DEPENDS_ON_POT that I set to "no", so this patch> updates the minimal gettext version to 0.19.1 and makes use of that> variable, that removes the dependency from the po files to the pot file.>> This means that when make tries to generate the mo files, it can do so> immediately, without needing to generate the pot file nor update the po> files that depended on the pot.>> As this patch updates the minimal requirement for gettext to 0.19.1,> I'm not sure what's the impact. This is a version from 4 years ago> (0.18.1 was from 6 years ago). We currently have gettext 0.20.1, and> debian jessie has 0.19.3, so I don't think this change will negatively> affect our users:>> - developpers should already use guix environment guix which provides a> good version.> - packagers of guix on other distros might have a harder time, but even> debian seems to have a recent enough version>> WDYT?
It seems even RHEL 8 is using 0.19; I don't think it'll cause a problem.
Thank you for this nice improvement! I've merged it to theversion-1.3.0 branch.
Closing.
Maxim
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 48165@debbugs.gnu.org