'~*' in format strings confuses 'msgfmt' (Gettext)

DoneSubmitted by Konrad Hinsen.
Details
4 participants
  • Danny Milosavljevic
  • Jonathan Brielmaier
  • Konrad Hinsen
  • Ludovic Courtès
Owner
unassigned
Severity
normal
K
K
Konrad Hinsen wrote on 24 Sep 2019 18:11
"make check" fails on a fresh Guix checkout
(address . bug-guix@gnu.org)
m1ef05n088.fsf@fastmail.net
Hi everyone,
on a fresh checkout of today's Guix master branch (commitb150e83bef766ca67a3931afce36b6cb6c7f8c10), "make check" fails due to problemswith the po files. Log below.
Konrad.
GEN doc/os-config-bare-bones.texi GEN doc/os-config-desktop.texi GEN doc/os-config-lightweight-desktop.texi PO4A doc/contributing.de.texiYour input po file po/doc/guix-manual.de.po seems outdated (The amount of entries differ between files: 7994 is not 228). Please consider running po4a-updatepo to refresh it. POXREF doc/contributing.de.teximv "doc/contributing.de.texi.tmp" "doc/contributing.de.texi" PO4A doc/guix.de.texiYour input po file po/doc/guix-manual.de.po seems outdated (The amount of entries differ between files: 7994 is not 8111). Please consider running po4a-updatepo to refresh it.sed -i "s|guix\.info|$(basename "doc/guix.de.texi" | sed 's|texi$|info|')|" "doc/guix.de.texi.tmp"echo 'org_babel_sh_eoe' POXREF doc/guix.de.teximv "doc/guix.de.texi.tmp" "doc/guix.de.texi" PO4A doc/contributing.es.texiYour input po file po/doc/guix-manual.es.po seems outdated (The amount of entries differ between files: 7994 is not 228). Please consider running po4a-updatepo to refresh it. POXREF doc/contributing.es.teximv "doc/contributing.es.texi.tmp" "doc/contributing.es.texi" PO4A doc/guix.es.texiYour input po file po/doc/guix-manual.es.po seems outdated (The amount of entries differ between files: 7994 is not 8111). Please consider running po4a-updatepo to refresh it.sed -i "s|guix\.info|$(basename "doc/guix.es.texi" | sed 's|texi$|info|')|" "doc/guix.es.texi.tmp" POXREF doc/guix.es.teximv "doc/guix.es.texi.tmp" "doc/guix.es.texi" PO4A doc/contributing.fr.texiYour input po file po/doc/guix-manual.fr.po seems outdated (The amount of entries differ between files: 7994 is not 228). Please consider running po4a-updatepo to refresh it. POXREF doc/contributing.fr.teximv "doc/contributing.fr.texi.tmp" "doc/contributing.fr.texi" PO4A doc/guix.fr.texiYour input po file po/doc/guix-manual.fr.po seems outdated (The amount of entries differ between files: 7994 is not 8111). Please consider running po4a-updatepo to refresh it.sed -i "s|guix\.info|$(basename "doc/guix.fr.texi" | sed 's|texi$|info|')|" "doc/guix.fr.texi.tmp" POXREF doc/guix.fr.teximv "doc/guix.fr.texi.tmp" "doc/guix.fr.texi" PO4A doc/contributing.ru.texiYour input po file po/doc/guix-manual.ru.po seems outdated (The amount of entries differ between files: 7994 is not 228). Please consider running po4a-updatepo to refresh it. POXREF doc/contributing.ru.teximv "doc/contributing.ru.texi.tmp" "doc/contributing.ru.texi" PO4A doc/guix.ru.texiYour input po file po/doc/guix-manual.ru.po seems outdated (The amount of entries differ between files: 7994 is not 8111). Please consider running po4a-updatepo to refresh it.sed -i "s|guix\.info|$(basename "doc/guix.ru.texi" | sed 's|texi$|info|')|" "doc/guix.ru.texi.tmp" POXREF doc/guix.ru.teximv "doc/guix.ru.texi.tmp" "doc/guix.ru.texi" PO4A doc/contributing.zh_CN.texiYour input po file po/doc/guix-manual.zh_CN.po seems outdated (The amount of entries differ between files: 7994 is not 228). Please consider running po4a-updatepo to refresh it. POXREF doc/contributing.zh_CN.teximv "doc/contributing.zh_CN.texi.tmp" "doc/contributing.zh_CN.texi" PO4A doc/guix.zh_CN.texiYour input po file po/doc/guix-manual.zh_CN.po seems outdated (The amount of entries differ between files: 7994 is not 8111). Please consider running po4a-updatepo to refresh it.sed -i "s|guix\.info|$(basename "doc/guix.zh_CN.texi" | sed 's|texi$|info|')|" "doc/guix.zh_CN.texi.tmp" POXREF doc/guix.zh_CN.teximv "doc/guix.zh_CN.texi.tmp" "doc/guix.zh_CN.texi" GEN nix/libstore/schema.sql.hhecho 1.0.1.3746-b150e > ".version-t" && mv ".version-t" ".version"make check-recursivemake[1]: Entering directory '/home/hinsen/guix-from-source/guix'Making check in po/guixmake[2]: Entering directory '/home/hinsen/guix-from-source/guix/po/guix'make guix.pot-updatemake[3]: Entering directory '/home/hinsen/guix-from-source/guix/po/guix'sed -e '/^#/d' remove-potcdate.sin > t-remove-potcdate.sedmv t-remove-potcdate.sed remove-potcdate.sedif LC_ALL=C grep 'GNU guix' ../../* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \else \ package_gnu=''; \fi; \if test -n 'ludo@gnu.org' || test 'bug-guix@gnu.org' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='ludo@gnu.org'; \else \ msgid_bugs_address='bug-guix@gnu.org'; \fi; \case `/gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/xgettext --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/xgettext --default-domain=guix --directory=../.. \ --add-comments=TRANSLATORS: --from-code=UTF-8 --keyword=G_ --keyword=N_:1,2 --keyword=message --keyword=description --keyword=n_ \ --files-from=./POTFILES.in \ --copyright-holder='Ludovic Courtès' \ --msgid-bugs-address="$msgid_bugs_address" \ ;; \ *) \ /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/xgettext --default-domain=guix --directory=../.. \ --add-comments=TRANSLATORS: --from-code=UTF-8 --keyword=G_ --keyword=N_:1,2 --keyword=message --keyword=description --keyword=n_ \ --files-from=./POTFILES.in \ --copyright-holder='Ludovic Courtès' \ --package-name="${package_gnu}guix" \ --package-version='1.0.1.3746-b150e' \ --msgid-bugs-address="$msgid_bugs_address" \ ;; \esactest ! -f guix.po || { \ if test -f ./guix.pot; then \ sed -f remove-potcdate.sed < ./guix.pot > guix.1po && \ sed -f remove-potcdate.sed < guix.po > guix.2po && \ if cmp guix.1po guix.2po >/dev/null 2>&1; then \ rm -f guix.1po guix.2po guix.po; \ else \ rm -f guix.1po guix.2po ./guix.pot && \ mv guix.po ./guix.pot; \ fi; \ else \ mv guix.po ./guix.pot; \ fi; \}make[3]: Leaving directory '/home/hinsen/guix-from-source/guix/po/guix'test ! -f ./guix.pot || \ test -z "cs.gmo da.gmo de.gmo en@boldquot.gmo en@quot.gmo eo.gmo es.gmo fr.gmo hu.gmo pl.gmo pt_BR.gmo sr.gmo sv.gmo vi.gmo zh_CN.gmo" || make cs.gmo da.gmo de.gmo en@boldquot.gmo en@quot.gmo eo.gmo es.gmo fr.gmo hu.gmo pl.gmo pt_BR.gmo sr.gmo sv.gmo vi.gmo zh_CN.gmomake[3]: Entering directory '/home/hinsen/guix-from-source/guix/po/guix'/gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgmerge --update --lang=cs cs.po guix.pot................................................................................................................................................................................................................................ done.rm -f cs.gmo && /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt -c --statistics --verbose -o cs.gmo cs.pocs.po: 60 translated messages, 120 fuzzy translations, 735 untranslated messages./gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgmerge --update --lang=da da.po guix.pot.................................................................................................................................... done.rm -f da.gmo && /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt -c --statistics --verbose -o da.gmo da.poda.po: 741 translated messages, 52 fuzzy translations, 122 untranslated messages./gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgmerge --update --lang=de de.po guix.pot........................................................................................................................................ done.rm -f de.gmo && /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt -c --statistics --verbose -o de.gmo de.pode.po: 853 translated messages, 36 fuzzy translations, 26 untranslated messages.make[4]: Entering directory '/home/hinsen/guix-from-source/guix/po/guix'make en@boldquot.po-updatemake[5]: Entering directory '/home/hinsen/guix-from-source/guix/po/guix'sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' ./insert-header.sin > en@boldquot.insert-headeren@boldquot:en@boldquot:msgmerge --lang=en@boldquot en@boldquot.po guix.pot -o en@boldquot.new.po............................................................................................... done.make[5]: Leaving directory '/home/hinsen/guix-from-source/guix/po/guix'make[4]: Leaving directory '/home/hinsen/guix-from-source/guix/po/guix'rm -f en@boldquot.gmo && /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt -c --statistics --verbose -o en@boldquot.gmo en@boldquot.poen@boldquot.po:2849: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural'en@boldquot.po:2856: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural'/gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt: found 2 fatal errorsen@boldquot.po: 915 translated messages.make[3]: *** [Makefile:201: en@boldquot.gmo] Error 1make[3]: Leaving directory '/home/hinsen/guix-from-source/guix/po/guix'make[2]: *** [Makefile:238: stamp-po] Error 2make[2]: Leaving directory '/home/hinsen/guix-from-source/guix/po/guix'make[1]: *** [Makefile:4866: check-recursive] Error 1make[1]: Leaving directory '/home/hinsen/guix-from-source/guix'make: *** [Makefile:5334: check] Error 2
D
D
Danny Milosavljevic wrote on 24 Sep 2019 23:09
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 37505@debbugs.gnu.org)
20190924230934.0b97be54@scratchpost.org
Yeah, "make" itself fails, too, see bug #37491.
I'm not that knowledgeable with po strings but I think it added amsgstr that's broken in that the number of format string parts isdifferent from msgid_plural.
I've edited po/guix/en@quot.po and po/guix/en@boldquot.po (which "git log"doesn't work on) in order to work around the problem, something like
#: guix/scripts/pull.scm:307#, scheme-formatmsgid " ~*One new channel:~%"msgid_plural " ~a new channels:~%"msgstr[0] "" <---- editedmsgstr[1] "" <---- edited
but since I have no idea of what I'm doing there I've not committed it.
Hmm... https://www.gnu.org/software/gettext/manual/html_node/Translating-plural-forms.html
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl2Khg4ACgkQ5xo1VCwwuqXTugf/W9o0vQc+QWL7NKjkjHSzYACu/lyPkBNcFq1Xz4f6+HNtEdQnNPU9jbGU8czkbvQ5K/C2S2pP0prl/wgp9WrlohmEFNPVfPJ5duXBdPgYVIe4Vogk7/9G58YTnE7xrk5FkGa9lJtOwifYqIhu+53nBi00b4UQNYODc49rhRtsmAIhhFq51S9UQz8Kd5Mqq3o65RJAYmFeZJBLxHSx/bKGr6R7cSOsV4t6WpYg6w0dTT9Ys7BIS5I3ehoFwlU5Aa2VrVZ1AUB9Ij+8KHcgnFzTaliF2Do1aOB7A/fPdqy+pnajlJYJONEscDB4nvM5rF3eEoXFuKFCHoJXKDF5jNeEMA===Wry0-----END PGP SIGNATURE-----

J
J
Jonathan Brielmaier wrote on 25 Sep 2019 18:22
"make check" fails on a fresh Guix checkout
(address . 37505@debbugs.gnu.org)
57a231e2-3dbb-a2ab-e075-bd2a3d5ea173@web.de
The following diff mitigates this build failure for me:
Toggle diff (22 lines)diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scmindex 0372278705..04970cf503 100644--- a/guix/scripts/pull.scm+++ b/guix/scripts/pull.scm@@ -304,7 +304,7 @@ to display." (new (let ((count (length new))) (format (current-error-port)- (N_ " ~*One new channel:~%"+ (N_ " ~a new channel:~%" " ~a new channels:~%" count) count) (for-each display-channel new))))@@ -314,7 +314,7 @@ to display." (removed (let ((count (length removed))) (format (current-error-port)- (N_ " ~*One channel removed:~%"+ (N_ " ~a channel removed:~%" " ~a channels removed:~%" count) count) (for-each display-channel removed))))
L
L
Ludovic Courtès wrote on 1 Oct 2019 11:31
control message for bug #37505
(address . control@debbugs.gnu.org)
87eezwrev5.fsf@gnu.org
retitle 37505 '~*' in format strings confuses 'msgfmt' (Gettext)quit
L
L
Ludovic Courtès wrote on 1 Oct 2019 11:32
Re: bug#37505: "make check" fails on a fresh Guix checkout
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 37505-done@debbugs.gnu.org)
87a7akreuf.fsf@gnu.org
Hello,
Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:
Toggle quote (4 lines)> en@boldquot.po:2849: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural'> en@boldquot.po:2856: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural'> /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt: found 2 fatal errors
Fixed in 43f7fd8783af1e824904a76115a8ae8ccbb19f06, thanks!
Ludo'.
Closed
K
K
Konrad Hinsen wrote on 1 Oct 2019 12:50
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37505-done@debbugs.gnu.org)
m1sgocyc29.fsf@fastmail.net
Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (8 lines)> Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:>>> en@boldquot.po:2849: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural'>> en@boldquot.po:2856: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural'>> /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt: found 2 fatal errors>> Fixed in 43f7fd8783af1e824904a76115a8ae8ccbb19f06, thanks!
Thanks!
Unfortunately, a very similar error still blocks compiling a fresh Guixcheckout:
make[5]: Entering directory '/home/hinsen/guix/guix/po/guix' sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' ./insert-header.sin > en@boldquot.insert-header en@boldquot: en@boldquot: msgmerge --lang=en@boldquot en@boldquot.po guix.pot -o en@boldquot.new.po ............................................................................................ done. make[5]: Leaving directory '/home/hinsen/guix/guix/po/guix' make[4]: Leaving directory '/home/hinsen/guix/guix/po/guix' rm -f en@boldquot.gmo && /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt -c --statistics --verbose -o en@boldquot.gmo en@boldquot.po en@boldquot.po:2864: format specifications in 'msgstr[0]' are not a subset of those in 'msgid_plural' /gnu/store/6z2rl8vrbcghvwcjdcf740b8l2cgx25a-profile/bin/msgfmt: found 1 fatal error
Cheers, Konrad.
Closed
K
K
Konrad Hinsen wrote on 1 Oct 2019 12:59
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37505-done@debbugs.gnu.org)
m1pnjgybn3.fsf@fastmail.net
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
Toggle quote (3 lines)> Unfortunately, a very similar error still blocks compiling a fresh Guix> checkout:
Sorry, false alarm. I have been typing in the wrong terminal window.Too many Guix installations in my life ;-)
Konrad.
Closed
K
K
Konrad Hinsen wrote on 1 Oct 2019 17:11
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37505-done@debbugs.gnu.org)
m1ftkcxzyq.fsf@fastmail.net
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
Toggle quote (7 lines)> Konrad Hinsen <konrad.hinsen@fastmail.net> writes:>>> Unfortunately, a very similar error still blocks compiling a fresh Guix>> checkout:>> Sorry, false alarm. I have been typing in the wrong terminal window.
OK, I triple-checked: there still is a problem. There are two places inpull.scm that used '~*'. The attached patch removes the second one.
Konrad.
From 370579d7ac4e01fd66bdf4518d31f7d3bc17a65a Mon Sep 17 00:00:00 2001From: Konrad Hinsen <konrad.hinsen@fastmail.net>Date: Tue, 1 Oct 2019 17:06:58 +0200Subject: [PATCH] pull: Do not use '~*', which 'msgfmt' fails to interpret.
Really fixes https://bugs.gnu.org/37505.--- guix/scripts/pull.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Toggle diff (15 lines)diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scmindex e018985469..04970cf503 100644--- a/guix/scripts/pull.scm+++ b/guix/scripts/pull.scm@@ -314,7 +314,7 @@ to display." (removed (let ((count (length removed))) (format (current-error-port)- (N_ " ~*One channel removed:~%"+ (N_ " ~a channel removed:~%" " ~a channels removed:~%" count) count) (for-each display-channel removed))))-- 2.23.0
Closed
L
L
Ludovic Courtès wrote on 1 Oct 2019 23:04
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 37505-done@debbugs.gnu.org)
87imp8kwj9.fsf@gnu.org
Hello!
Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:
Toggle quote (3 lines)> OK, I triple-checked: there still is a problem. There are two places in> pull.scm that used '~*'. The attached patch removes the second one.
Oops, my bad.
Toggle quote (7 lines)> From 370579d7ac4e01fd66bdf4518d31f7d3bc17a65a Mon Sep 17 00:00:00 2001> From: Konrad Hinsen <konrad.hinsen@fastmail.net>> Date: Tue, 1 Oct 2019 17:06:58 +0200> Subject: [PATCH] pull: Do not use '~*', which 'msgfmt' fails to interpret.>> Really fixes <https://bugs.gnu.org/37505>.
Applied, thanks!
Ludo’.
Closed
?
Your comment

This issue is archived.

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