Opened 2 years ago
Closed 2 years 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 )
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)
follow-up: 3 comment:1 by , 2 years ago
comment:2 by , 2 years ago
| Description: | modified (diff) |
|---|
follow-up: 4 comment:3 by , 2 years ago
Replying to Xi Ruoyao:
I think we should complain to the upstream first.
That was my first thought also.
follow-up: 6 comment:4 by , 2 years 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.
follow-up: 8 comment:5 by , 2 years 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)?
comment:6 by , 2 years 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 , 2 years ago
The only way to have the build pass is to directly define the entities in the DTD like this:
<!ENTITY mdash "ߞ">
I begin to think that libxml2 could be at fault here (not reading the full DTD or so when using the py3 module).
follow-up: 9 comment:8 by , 2 years 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 doneWhy this is not enough? Are they using a different URL (for eg https instead of http)?
comment:9 by , 2 years 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 doneWhy this is not enough? Are they using a different URL (for eg https instead of http)?
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 , 2 years 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:12 by , 2 years ago
Greek (LANG=el) is fine with libxml2-2.11.5. I've not tested other languages.
comment:13 by , 2 years ago
Currency fixed at wrong ticket :(
a89f73b9bd6af4fbefa305cb206bea370226807e in blfs-scripts.git.
comment:14 by , 2 years ago
| Resolution: | → overcomebyevents |
|---|---|
| Status: | new → closed |
All languages built with libxml2-2.11.5. Closing as overcomebyevents

I think we should complain to the upstream first.