mquinson / po4a

Maintain the translations of your documentation with ease (PO for anything)
http://po4a.org/
GNU General Public License v2.0
120 stars 58 forks source link

seems update to po4a to 0.70 breaks builds of apt #475

Closed sergiomb2 closed 4 months ago

sergiomb2 commented 4 months ago

I don't have many information I was doing the usual updates , on Fedora rawhide after update po4a to 0.70 which debian didn't yet https://tracker.debian.org/pkg/po4a , a new update of apt ( 2.7.12 ) stops on po4a . is just a coincidence ?

I don't have much info the https://kojipkgs.fedoraproject.org//work/tasks/186/113820186/build.log test build of apt is here https://koji.fedoraproject.org/koji/taskinfo?taskID=113820186

Let me know , how I can debug this or help in someway

FAILED: doc/de/apt.ent.po4a-stamp /builddir/build/BUILD/apt-2.7.12/redhat-linux-build/doc/de/apt.ent.po4a-stamp 
cd /builddir/build/BUILD/apt-2.7.12/redhat-linux-build/doc && /usr/bin/cmake -E make_directory /builddir/build/BUILD/apt-2.7.12/redhat-linux-build/doc/de && po4a --previous --no-backups --package-name='apt-doc' --package-version='2.7.12' --msgid-bugs-address='APT\ Development\ Team\ <deity@lists.debian.org>' --translate-only de/apt.ent --srcdir /builddir/build/BUILD/apt-2.7.12/doc --destdir /builddir/build/BUILD/apt-2.7.12/redhat-linux-build/doc /builddir/build/BUILD/apt-2.7.12/doc/po4a.conf && /usr/bin/cmake -E touch /builddir/build/BUILD/apt-2.7.12/redhat-linux-build/doc/de/apt.ent.po4a-stamp
Fat-Zer commented 4 months ago

For reference:

The po4a error message:

Simple quote (') matched with double quote (") in docbook opt:" -o untranslated='<term><option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <term><command>' -o break='<term><option> <term><command>' -o nodefault='<option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <command>' -o inline='<para><option> <refentrytitle> <para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>' -o translated='<para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>'" at /usr/bin/po4a line 882, <CONFIG> line 11.

Relevant po4a.conf lines:

[po4a_alias:manpage] docbook opt:"\
    -o untranslated='<term><option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <term><command>' \
    -o break='<term><option> <term><command>' \
    -o nodefault='<option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <command>' \
    -o inline='<para><option> <refentrytitle> <para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>' \
    -o translated='<para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>'"
gemmaro commented 4 months ago

It would be possible to work around this by using backslash-escaped quotation marks.

diff --git a/doc/po4a.conf b/doc/po4a.conf
index 0798eac68..1adc26b7e 100644
--- a/doc/po4a.conf
+++ b/doc/po4a.conf
@@ -4,11 +4,11 @@
 # Entities need to be present, even if not translated
 [po4a_alias:entity] text opt:"-k 0"
 [po4a_alias:manpage] docbook opt:"\
-       -o untranslated='<term><option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <term><command>' \
-       -o break='<term><option> <term><command>' \
-       -o nodefault='<option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <command>' \
-       -o inline='<para><option> <refentrytitle> <para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>' \
-       -o translated='<para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>'"
+       -o untranslated=\"<term><option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <term><command>\" \
+       -o break=\"<term><option> <term><command>\" \
+       -o nodefault=\"<option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <command>\" \
+       -o inline=\"<para><option> <refentrytitle> <para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>\" \
+       -o translated=\"<para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>\""

 # define source file and translated file (one file per line)
 [type: entity]  apt.ent $lang:$lang/apt.ent
mquinson commented 4 months ago

Cool, thanks for the report, the patch and the test that it works at least in Homebrew, you really rock.

Could someone also open a bug against apt in Debian so that this patch gets merged upstream, please? You can tell the apt maintainer that po4a 0.70 is coming to Debian. It will happen at some point :)

Thanks again for being such a wonderful community :)

sergiomb2 commented 4 months ago

Thanks for the compliments, it's an honor :wink:

if is an apt issue should I send a merge request to https://salsa.debian.org/apt-team/apt ?

Thank you

Fat-Zer commented 4 months ago

I do understand it's hard to parse quotes with all the corner cases like "'"'", but the current syntax in the config looks better than the proposed workaround.

Maybe it would be better to fix it in po4a and do a quick bugfix release?

chenrui333 commented 4 months ago

Yeah, I feel like it should be fixed in po4a if it is a simple fix, but if it takes long, we should at least patch on the apt side as well.

mquinson commented 4 months ago

I think I got this working. At least it works on my synthetic tests, and I would appreciate if someone could test whether it helps for the apt config file too, please.

sergiomb2 commented 4 months ago

it fixes apt build thank you

mquinson commented 4 months ago

This confirms the idea of having a release in 2 days, then. Thanks for the testing.

sergiomb2 commented 4 months ago

huch , I just received another bug report
Summary: debhelper-13.11.6-3.fc41 FTBFS: UTF-8 "\xF3" does not map to Unicode at /usr/share/perl5/vendor_perl/Locale/Po4a/TransTractor.pm line 583 This failure is probably triggered by upgrading po4a from 0.69-5.fc40 to 0.70-2.fc41 ( 0.70-2 the release 2 means that have the fix here already)

https://bugzilla.redhat.com/show_bug.cgi?id=2266008

sergiomb2 commented 4 months ago

I'm going to open a new issue

sergiomb2 commented 4 months ago

Hi, I just discovered another bug, when I build apt, I will open a new issue once I got enough data to report

mquinson commented 4 months ago

hihi, that's a bit repetitive, but that's still a funny game. Thanks for the testing, @sergiomb2.

mquinson commented 4 months ago

Ok, closing this bug since you opened another one (as you should). Thanks,