Opened 6 months ago

Closed 6 months ago

#18846 closed enhancement (overcomebyevents)

gimp-help-2.10.34 cannot be built with all languages

Reported by: pierre Owned by: blfs-book
Priority: normal Milestone: 12.1
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description (last modified by pierre)

when running make inside gimp-help directory, it fails to create some translated .xml files (they are created but empty). This is because the files use characters entities like — or ×, but never define them (the docbook documentation tells to explicitly include character entities if needed).

What is weird (but I don't want to dive into libxml2 internals) is that this occurs only for certain languages. The first one when building is Greek (LANG=el).

I guess the fix is to include dbcentx.mod in all the incriminated files:

<!ENTITY % dbcentx PUBLIC "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN"
    "http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod">
%dbcentx;

Change History (14)

comment:1 by Xi Ruoyao, 6 months ago

I think we should complain to the upstream first.

comment:2 by pierre, 6 months ago

Description: modified (diff)

in reply to:  1 ; comment:3 by Bruce Dubbs, 6 months ago

Replying to Xi Ruoyao:

I think we should complain to the upstream first.

That was my first thought also.

in reply to:  3 ; comment:4 by pierre, 6 months ago

Replying to Bruce Dubbs:

Replying to Xi Ruoyao:

I think we should complain to the upstream first.

That was my first thought also.

Hmm, maybe our fault actually (and I am wrong in some assumptions I made in the ticket description): the docbook files in the doc reference the docbook 4.3 dtd. Our catalog should be redirecting it to our local 4.5, but maybe it does not do enough... At least, changing 4.3 to 4.5 in the xml files allows the build to pass.

comment:5 by Xi Ruoyao, 6 months ago

Interesting, we already have

for DTDVERSION in 4.1.2 4.2 4.3 4.4
do
  xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
  xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
done

Why this is not enough? Are they using a different URL (for eg https instead of http)?

in reply to:  4 comment:6 by pierre, 6 months ago

Replying to pierre:

Replying to Bruce Dubbs:

Replying to Xi Ruoyao:

I think we should complain to the upstream first.

That was my first thought also.

Hmm, maybe our fault actually (and I am wrong in some assumptions I made in the ticket description): the docbook files in the doc reference the docbook 4.3 dtd. Our catalog should be redirecting it to our local 4.5, but maybe it does not do enough... At least, changing 4.3 to 4.5 in the xml files allows the build to pass.

Wrong again, the build fails at the same place! But xmllint has a different behavior with 4.3 and 4.5.

comment:7 by pierre, 6 months ago

The only way to have the build pass is to directly define the entities in the DTD like this:

<!ENTITY mdash "&#2014;">

I begin to think that libxml2 could be at fault here (not reading the full DTD or so when using the py3 module).

in reply to:  5 ; comment:8 by pierre, 6 months ago

Replying to Xi Ruoyao:

Interesting, we already have

for DTDVERSION in 4.1.2 4.2 4.3 4.4
do
  xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
  xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
done

Why this is not enough? Are they using a different URL (for eg https instead of http)?

They are: http://www.docbook.org/xml/4.3/docbook.dtd

in reply to:  8 comment:9 by Xi Ruoyao, 6 months ago

Replying to pierre:

Replying to Xi Ruoyao:

Interesting, we already have

for DTDVERSION in 4.1.2 4.2 4.3 4.4
do
  xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
  xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
done

Why this is not enough? Are they using a different URL (for eg https instead of http)?

They are: http://www.docbook.org/xml/4.3/docbook.dtd

If we add this into docbook-xml configuration section, will it work?

I presume that the building system is accessing the Internet for docbook-xml because we are lacking this redirection. And the upstream might have only tested the package on systems with a "proper" redirection setting so they were actually testing with docbook-xml-4.5, thus the package does not work with online docbook-xml-4.3.

comment:10 by Xi Ruoyao, 6 months ago

Phew. It seems there is actually a segfault running Python 3 libxml2 module:

[ 8033.437472] python3[202277]: segfault at 0 ip 00007fd3633bce4d sp 00007ffd7314ece0 error 4 in libpython3.12.so.1.0[7fd36327f000+270000] likely on CPU 5 (core 1, socket 0)
[ 8033.437483] Code: ff 89 07 4d 85 c0 74 75 49 8b 0e 8b 01 ff c0 0f 84 68 01 00 00 89 01 48 b8 fe ff ff ff ff ff ff 7f 48 85 c2 74 57 49 8b 4e 08 <8b> 01 ff c0 0f 84 61 01 00 00 89 01 49 83 f8 02 76 41 49 8b 4e 10

I'd consider it a bug in libxml2 or Python 3: even if the input is not valid we should not have a segfault.

comment:11 by Xi Ruoyao, 6 months ago

Let's try latest libxml2 first: #18847.

comment:12 by Xi Ruoyao, 6 months ago

Greek (LANG=el) is fine with libxml2-2.11.5. I've not tested other languages.

comment:13 by Xi Ruoyao, 6 months ago

Currency fixed at a89f73b9bd6af4fbefa305cb206bea370226807e in blfs-scripts.git. wrong ticket :(

Last edited 6 months ago by Xi Ruoyao (previous) (diff)

comment:14 by pierre, 6 months ago

Resolution: overcomebyevents
Status: newclosed

All languages built with libxml2-2.11.5. Closing as overcomebyevents

Note: See TracTickets for help on using tickets.