Bug 1143060

Summary: Invalid DTD public identifier for Docbook Character Entities
Product: [Community] Publican Reporter: Raphaël Hertzog <raphael>
Component: Publican Users GuideAssignee: Jeff Fearn 🐞 <jfearn>
Status: CLOSED CURRENTRELEASE QA Contact: Ruediger Landmann <rlandman>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.2CC: aigao, jfearn, raphael
Target Milestone: 4.2   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 4.2.3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-10-07 03:19:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Suggested patch
none
Updated patch
none
/etc/sgml/docbook/xmlcatalog from F20 none

Description Raphaël Hertzog 2014-09-17 20:25:41 UTC
On a Debian system, building the manual fails with:
FATAL ERROR: en-US/Book_Info.xml: Can't resolve '-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN' at /usr/lib/x86_64-linux-gnu/perl5/5.20/XML/Parser/Expat.pm line 470.

The attached patch fixes this. If you load http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod you will notice that the correct string to use is the same without the XML word.

Comment 1 Raphaël Hertzog 2014-09-17 20:26:10 UTC
Created attachment 938633 [details]
Suggested patch

Comment 2 Jeff Fearn 🐞 2014-09-18 00:14:43 UTC
This patch breaks the build on fedora, looking in to why.

Comment 3 Raphaël Hertzog 2014-09-18 08:27:29 UTC
Created attachment 938792 [details]
Updated patch

This updated patch also updates the string embedded in lib/Publican.pm

Comment 4 Jeff Fearn 🐞 2014-09-18 23:59:26 UTC
Apparently fedora adds the XML to the string for local resolution ...


$ grep 'Character Entities' /usr/share/sgml/docbook/xml-dtd-4.5/dbcentx.mod
      "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"

grep 'Character Entities' /etc/sgml/docbook/xmlcatalog
<public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" uri="/usr/share/sgml/docbook/xml-dtd-4.1.2/dbcentx.mod"/>
<public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.2//EN" uri="/usr/share/sgml/docbook/xml-dtd-4.2/dbcentx.mod"/>
<public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.3//EN" uri="/usr/share/sgml/docbook/xml-dtd-4.3/dbcentx.mod"/>
<public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.4//EN" uri="/usr/share/sgml/docbook/xml-dtd-4.4/dbcentx.mod"/>
<public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" uri="/usr/share/sgml/docbook/xml-dtd-4.5/dbcentx.mod"/>

o_O

Comment 5 Jeff Fearn 🐞 2014-09-19 03:17:35 UTC
I've applied this patch, I will figure out how to handle fedora later.

To ssh://git.fedorahosted.org/git/publican.git
   faf9927..f0255e2  devel -> devel

Comment 6 Jeff Fearn 🐞 2014-09-19 03:32:03 UTC
Opened https://bugzilla.redhat.com/show_bug.cgi?id=1144220

Comment 7 Jeff Fearn 🐞 2014-09-19 03:43:59 UTC
gah I gaffed applying the patch :(

Comment 8 Raphaël Hertzog 2014-09-23 07:14:19 UTC
Yeah, your patch f0255e215b73e066f5b76076e139e468554b5223 doesn't strip the XML in lib/Publican.pm.

Comment 9 Jeff Fearn 🐞 2014-09-23 21:42:24 UTC
Yeah I've since fixed that, not quite sure how git ate it.

Comment 10 Jeff Fearn 🐞 2014-09-26 04:16:08 UTC
Had to add some hacks to build on Fedora, but it should all be clean now.

To ssh://git.fedorahosted.org/git/publican.git
   c795058..6a6cd76  devel -> devel

Comment 11 Jeff Fearn 🐞 2014-09-29 01:43:05 UTC
Hi Raphaël, could you test the current devel branch? If it works for you I'll release it as 4.2.3.

Comment 12 Raphaël Hertzog 2014-09-29 08:45:33 UTC
Hi Jeff, with the current devel branch, the manual fails to build (with or without --allow_network) but I don't get anything useful error back:

        cd $(GUIDEDIR) && \
        perl -CDAS -I $(CURDIR)/blib/lib $(CURDIR)/blib/script/publican build \
           --allow_network --formats=html-desktop --publish --langs=all \
           --common_config="$(CURDIR)/blib/datadir" \
           --common_content="$(CURDIR)/blib/datadir/Common_Content"
[...]
Beginning work on en-US
RelaxNG Validation failed for '/home/rhertzog/deb/pkg/publican/Users_Guide/build/en-US/xml/Users_Guide.xml': 
IGNORING: Validation is broken, see BZ #1097495
RelaxNG Validation OK
	Starting html-desktop
	Using XML::LibXSLT on /home/rhertzog/deb/pkg/publican/blib/datadir/Common_Content/common-db5/xsl/html-single.xsl
	Finished html-desktop
Beginning work on fr-FR
debian/rules:14: recipe for target 'override_dh_auto_build' failed


Strangely the en-US version seems to have built fine but the first translation fails.

BTW, you typoed (newtowrk) in the option description:
    'allow_network' => maketext(q|Allow the XML and XSLT processing to access the newtowrk. Defaults off.|),

Comment 13 Jeff Fearn 🐞 2014-09-29 23:38:50 UTC
Hi Raphaël ,

(In reply to Raphaël Hertzog from comment #12)
> Hi Jeff, with the current devel branch, the manual fails to build (with or
> without --allow_network) but I don't get anything useful error back:
> 
>         cd $(GUIDEDIR) && \
>         perl -CDAS -I $(CURDIR)/blib/lib $(CURDIR)/blib/script/publican
> build \
>            --allow_network --formats=html-desktop --publish --langs=all \
>            --common_config="$(CURDIR)/blib/datadir" \
>            --common_content="$(CURDIR)/blib/datadir/Common_Content"
> [...]
> Beginning work on en-US
> RelaxNG Validation failed for
> '/home/rhertzog/deb/pkg/publican/Users_Guide/build/en-US/xml/Users_Guide.
> xml': 
> IGNORING: Validation is broken, see BZ #1097495
> RelaxNG Validation OK
> 	Starting html-desktop
> 	Using XML::LibXSLT on
> /home/rhertzog/deb/pkg/publican/blib/datadir/Common_Content/common-db5/xsl/
> html-single.xsl
> 	Finished html-desktop
> Beginning work on fr-FR
> debian/rules:14: recipe for target 'override_dh_auto_build' failed

It looks like it's blowing up when it starts the French translation. I don't know how it can die without an error message though ...

I've gone back and regenerated the POT files and updated all the PO files. Hopefully that fixes it.

If that doesn't work I guess we'll need to strace or debug it.
 
> 
> Strangely the en-US version seems to have built fine but the first
> translation fails.
> 
> BTW, you typoed (newtowrk) in the option description:
>     'allow_network' => maketext(q|Allow the XML and XSLT processing to
> access the newtowrk. Defaults off.|),

Fixed, thanks ... I guess I should add a pod spell checker to the author tests :}

Comment 14 Raphaël Hertzog 2014-09-30 06:39:00 UTC
> It looks like it's blowing up when it starts the French translation. I don't
> know how it can die without an error message though ...
> 
> I've gone back and regenerated the POT files and updated all the PO files.
> Hopefully that fixes it.
> 
> If that doesn't work I guess we'll need to strace or debug it.

This time I got a useful error:
Beginning work on fr-FR
FATAL ERROR 3: parser:27 in Websites_documents_rpm.xml on line 17: Entity 'nbsp' not defined
 at /home/rhertzog/deb/pkg/publican/blib/script/publican line 1223.
debian/rules:14: recipe for target 'override_dh_auto_build' failed

(I get the same with or without --allow_network)

Comment 15 Raphaël Hertzog 2014-09-30 06:47:53 UTC
Users_Guide/build/fr-FR/xml/Websites_documents_rpm.xml starts with this:
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section [
<!ENTITY % BOOK_ENTITIES SYSTEM "Users_Guide.ent">
%BOOK_ENTITIES;
]>

So there are no special entities defined in that file. We can easily substitute &nbsp; by a true non-breaking space (in UTF-8) but are there other entities that would be missing?

Comment 16 Jeff Fearn 🐞 2014-09-30 22:12:32 UTC
(In reply to Raphaël Hertzog from comment #15)
> Users_Guide/build/fr-FR/xml/Websites_documents_rpm.xml starts with this:
> <?xml version='1.0' encoding='utf-8' ?>
> <!DOCTYPE section [
> <!ENTITY % BOOK_ENTITIES SYSTEM "Users_Guide.ent">
> %BOOK_ENTITIES;
> ]>
> 
> So there are no special entities defined in that file. We can easily
> substitute &nbsp; by a true non-breaking space (in UTF-8) but are there
> other entities that would be missing?

This is a bug, the DB4 entity declaration should be in there ... to the code!

Comment 17 Jeff Fearn 🐞 2014-09-30 22:49:58 UTC
<sigh/> Fixed now.

Comment 18 Raphaël Hertzog 2014-09-30 23:03:10 UTC
Now without --allow_network it fails with this:

Beginning work on en-US
FATAL ERROR 3: I/O:1543 in  on line 0: Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod at /home/rhertzog/deb/pkg/publican/blib/script/publican line 1223.
debian/rules:14: recipe for target 'override_dh_auto_build' failed

With --allow_network it goes further but takes ages... the result tomorrow. It will probably work as I got the build to complete with 4.2.2 + the 2 patches for this bug (bad public DTD identifier) and for the PDF build with fop.

Comment 19 Raphaël Hertzog 2014-09-30 23:07:10 UTC
In other words, I'd like to understand and fix the problem that makes the build use the network (aka https://bugzilla.redhat.com/show_bug.cgi?id=1143892) but I have no idea how to track this down. You know the perl XML stack better than me. Do you have an idea?

Comment 20 Jeff Fearn 🐞 2014-09-30 23:28:20 UTC
"FATAL ERROR 3" comes from lib/Publican/Builder/DocBook5.pm for the XML::LibXML call. It looks like libxml2 can't resolve it locally. Let me try and dig up some debugging for it.

Comment 21 Jeff Fearn 🐞 2014-09-30 23:41:22 UTC
Hi Raphaël, can you try setting `export XML_DEBUG_CATALOG=` before the call to publican? It should dump out all the catalog data.

Comment 22 Raphaël Hertzog 2014-10-01 07:29:31 UTC
In the end, the build failed because the test suite doesn't use --allow_network.

(In reply to Jeff Fearn from comment #21)
> Hi Raphaël, can you try setting `export XML_DEBUG_CATALOG=` before the call
> to publican? It should dump out all the catalog data.

I did that and here's the output at the end (there's no other string where catalog appears):
ERROR 3: I/O:1543 in  on line 0: Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod at ../blib/script/publican line 1223.
Catalogs cleanup
Free catalog entry http://docbook.sourceforge.net/release/xsl-ns/
Free catalog entry http://www.w3.org/TR/2001/REC-SVG-20010904/
Free catalog entry http://www.oasis-open.org/docbook/xml/5
Free catalog entry http://docbook.sourceforge.net/release/xsl/
Free catalog entry -//OASIS//DTD DocBook XML
Free catalog entry http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/
Free catalog entry +//IDN docutils.sourceforge.net/
Free catalog entry -//GlobalTransCorp//DTD XML Catalogs V1.0-Based Extension V1.0//EN
Free catalog entry -//OASIS//ELEMENTS DocBook
Free catalog entry http://docbook.sourceforge.net/release/xsl/
Free catalog entry http://docutils.sourceforge.net/
Free catalog entry -//Norman Walsh//ENTITIES DocBk XML
Free catalog entry http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd
Free catalog entry /usr/share/sgml/dtd/svg
Free catalog entry http://globaltranscorp.org/oasis/catalog/xml/tr9401.dtd
Free catalog entry -//OASIS//ENTITIES DocBook
Free catalog entry -//Norman Walsh//DTD CALS Table Model XML
Free catalog entry http://www.lysator.liu.se/~alla/dia/
Free catalog entry -//OASIS//DTD XML Exchange Table Model 19990315
Free catalog entry -//W3C//DTD SVG
Free catalog entry http://docbook.org/xml/
Free catalog entry -//OASIS//DTD DocBook XML 5
Free catalog entry http://docbook.sourceforge.net/release/xsl-ns/
Free catalog entry ISO 8879:1986//ENTITIES
Free catalog entry -//OASIS//DTD XML Catalogs V1.0//EN
Free catalog entry http://www.lysator.liu.se/~alla/dia/dia-sheet-ns
Free catalog entry http://docbook.org/xml/5
Free catalog entry -//OASIS//DTD DocBook CALS Table Model
Free catalog entry -//Normal Walsh//Exchange Table Model 19960430
Free catalog entry -//Norman Walsh//ELEMENTS DocBk XML
Free catalog entry http://xml.ascc.net/xml/resource/qaml-xml
Free catalog entry +//ISBN 82-7640-023//DTD Frequently Asked Questions//EN
Free catalog entry -//Norman Walsh//DTD DocBook XML
Free catalog entry -//Norman Walsh//DTD DocBk XML
Free catalog entry http://www.daa.com.au/~james/dia-shape-ns
Free catalog entry http://www.w3.org/Graphics/SVG/1.1/
Free catalog entry http://xmlroff.org/release/libfo/
Free catalog entry /usr/share/sgml/dtd/qaml-xml.dtd
Free catalog entry http://www.oasis-open.org/docbook/xml/
Free catalog entry +//IDN faq.org//DTD Frequently Asked Questions
Free catalog entry file:///etc/xml/catalog
Free catalog entry -//Norman Walsh//ELEMENTS DocBook XML Document Hierarchy V4.0//EN
Free catalog entry http://docbook.org/xml/4.2/docbookx.dtd
Free catalog entry -//Norman Walsh//ENTITIES DocBook XML Character Entities V4.0//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd
Free catalog entry -//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Information Pool V4.2//EN
Free catalog entry -//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN
Free catalog entry -//Norman Walsh//ELEMENTS DocBook XML Information Pool V4.0//EN
Free catalog entry -//OASIS//DTD DocBook XML V4.1//EN
Free catalog entry -//OASIS//ENTITIES DocBook Notations V4.4//EN
Free catalog entry http://docbook.org/xml/4.4/docbookx.dtd
Free catalog entry -//OASIS//ENTITIES DocBook Character Entities V4.5//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Information Pool V4.3//EN
Free catalog entry -//OASIS//DTD DocBook XML V4.3//EN
Free catalog entry -//OASIS//ENTITIES DocBook Notations V4.2//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
Free catalog entry -//OASIS//DTD XML Exchange Table Model 19990315//EN
Free catalog entry -//OASIS//DTD DocBook CALS Table Model V4.3//EN
Free catalog entry -//OASIS//ENTITIES DocBook Additional General Entities V4.1.2//EN
Free catalog entry -//OASIS//ENTITIES DocBook Character Entities V4.4//EN
Free catalog entry -//OASIS//DTD DocBook CALS Table Model V4.5//EN
Free catalog entry -//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN
Free catalog entry -//OASIS//ENTITIES DocBook Character Entities V4.3//EN
Free catalog entry -//Norman Walsh//ENTITIES DocBook XML Notations V4.0//EN
Free catalog entry -//OASIS//ENTITIES DocBook Additional General Entities V4.4//EN
Free catalog entry -//Norman Walsh//ENTITIES DocBook XML Additional General Entities V4.0//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd
Free catalog entry -//OASIS//ENTITIES DocBook Notations V4.5//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
Free catalog entry -//OASIS//ENTITIES DocBook Additional General Entities V4.5//EN
Free catalog entry -//Normal Walsh//Exchange Table Model 19960430 XML V4.0//EN
Free catalog entry http://docbook.org/xml/4.1.2/docbookx.dtd
Free catalog entry -//OASIS//DTD DocBook XML//EN
Free catalog entry -//OASIS//DTD DocBook CALS Table Model V4.1.2//EN
Free catalog entry http://docbook.org/xml/4.1/docbookx.dtd
Free catalog entry -//OASIS//ENTITIES DocBook Additional General Entities V4.2//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
Free catalog entry http://docbook.org/xml/4.3/docbookx.dtd
Free catalog entry -//OASIS//DTD DocBook CALS Table Model V4.4//EN
Free catalog entry -//OASIS//ENTITIES DocBook Notations V4.3//EN
Free catalog entry -//Norman Walsh//DTD CALS Table Model XML V4.0//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Information Pool V4.5//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Document Hierarchy V4.4//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd
Free catalog entry -//OASIS//ELEMENTS DocBook Document Hierarchy V4.1.2//EN
Free catalog entry -//OASIS//ELEMENTS DocBook XML HTML Tables V4.4//EN
Free catalog entry -//OASIS//ENTITIES DocBook Additional General Entities V4.3//EN
Free catalog entry -//OASIS//ELEMENTS DocBook XML HTML Tables V4.3//EN
Free catalog entry -//OASIS//ENTITIES DocBook Notations V4.1.2//EN
Free catalog entry http://docbook.org/xml/4.5/docbookx.dtd
Free catalog entry -//OASIS//ENTITIES DocBook Character Entities V4.2//EN
Free catalog entry -//OASIS//ENTITIES DocBook Character Entities V4.1.2//EN
Free catalog entry -//OASIS//DTD DocBook XML V4.2//EN
Free catalog entry -//OASIS//DTD DocBook XML V4.5//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Document Hierarchy V4.5//EN
Free catalog entry http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd
Free catalog entry -//OASIS//DTD DocBook CALS Table Model V4.2//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Information Pool V4.4//EN
Free catalog entry -//OASIS//DTD DocBook XML V4//EN
Free catalog entry -//Norman Walsh//DTD DocBook XML V4.0//EN
Free catalog entry -//Norman Walsh//DTD DocBk XML V4.0//EN
Free catalog entry -//OASIS//DTD DocBook XML V4.4//EN
Free catalog entry -//OASIS//DTD DocBook XML V4.1.2//EN
Free catalog entry -//OASIS//ELEMENTS DocBook Document Hierarchy V4.3//EN
Free catalog entry file:///etc/xml/docbook-xml.xml
Free catalog entry

So it appears that the correct public identifier is known in the catalog(s) but it doesn't get used.

Could it be because the catalog entry is only accessible via a sub-catalog associated to a specific public identifier that doesn't appear in our document?

$ grep -r -- "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN" /usr/share/xml
/usr/share/xml/docbook/schema/dtd/4.5/dbcentx.mod:     "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"
/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd:"-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"
/usr/share/xml/docbook/schema/dtd/4.5/catalog.xml:<public publicId="-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"
/usr/share/xml/docbook/schema/dtd/4.5/catalog:PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"

grep -E -r "4.5/(docbookx.dtd|catalog)" -- /etc/xml/
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook Character Entities V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//DTD XML Exchange Table Model 19990315//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//DTD DocBook CALS Table Model V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook Notations V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook Additional General Entities V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//ELEMENTS DocBook Information Pool V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegateSystem systemIdStartString="http://docbook.org/xml/4.5/docbookx.dtd" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
/etc/xml/docbook-xml.xml:<delegatePublic publicIdStartString="-//OASIS//ELEMENTS DocBook Document Hierarchy V4.5//EN" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>

But that cat /etc/xml/docbook-xml.xml catalog file is only associated (via /etc/xml/catalog) to some specific identifiers:
$ grep /etc/xml/docbook-xml.xml /etc/xml/catalog
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//ELEMENTS DocBook" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//ENTITIES DocBk XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD CALS Table Model XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//DTD XML Exchange Table Model 19990315" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegateSystem systemIdStartString="http://docbook.org/xml/" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook CALS Table Model" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Normal Walsh//Exchange Table Model 19960430" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//ELEMENTS DocBk XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD DocBook XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD DocBk XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/" catalog="file:///etc/xml/docbook-xml.xml"/>

I still don't understand the rules for docbook 5 since we don't have any public DTD identifier in DOCTYPE...

That said I can know reproduce the problem with xmllint and have some more meaninful output:
$ XML_DEBUG_CATALOG=1 xmllint  --debugent --nonet Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml --noent --noout
new input from file: Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml
new blanks wrapper for entity: BOOK_ENTITIES
Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml(4): Pushing input 2 :  %BOOK_ENTITIES; 
PEReference: BOOK_ENTITIES
new input from entity: BOOK_ENTITIES
new input from file: Users_Guide/build/de-DE/xml/Users_Guide.ent
Pushing input 3 : 
Popping input 3
Popping input 2
new blanks wrapper for entity: DOCBOOK_ENTS
Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml(8): Pushing input 2 :  %DOCBOOK_ENTS; 
PEReference: DOCBOOK_ENTS
new input from entity: DOCBOOK_ENTS
Resolve: pubID -//OASIS//ENTITIES DocBook Character Entities V4.5//EN sysID http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
0 Parsing catalog file:///etc/xml/catalog
file:///etc/xml/catalog added to file hash
file:///etc/xml/docbook-xml.xml not found in file hash
0 Parsing catalog file:///etc/xml/docbook-xml.xml
file:///etc/xml/docbook-xml.xml added to file hash
Trying system delegate file:///etc/xml/docbook-xml.xml
Resolve URI http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod"
%DOCBOOK_ENTS;
              ^
Entity: line 1: 
 %DOCBOOK_ENTS; 
               ^
Popping input 2
DOCUMENT
Entities in internal subset
BOOKID : INTERNAL GENERAL, 
 orig "publican"
 content "publican"
[...]
No entities in external subset
Catalogs cleanup
Free catalog entry http://docbook.sourceforge.net/release/xsl-ns/
[...]


I edited /etc/xml/docbook-xml.xml to change:
<delegateSystem systemIdStartString="http://docbook.org/xml/4.5/docbookx.dtd" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>
Into
<delegateSystem systemIdStartString="http://docbook.org/xml/4.5/" catalog="file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml"/>

And the resolution got one step further:
Resolve: pubID -//OASIS//ENTITIES DocBook Character Entities V4.5//EN sysID http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
0 Parsing catalog file:///etc/xml/catalog
file:///etc/xml/catalog added to file hash
file:///etc/xml/docbook-xml.xml not found in file hash
0 Parsing catalog file:///etc/xml/docbook-xml.xml
file:///etc/xml/docbook-xml.xml added to file hash
Trying system delegate file:///etc/xml/docbook-xml.xml
file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml not found in file hash
0 Parsing catalog file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml
file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml added to file hash
Trying system delegate file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml
Resolve URI http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod"

And last step, editing to add this:
<system systemId="http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod"
        uri="dbcentx.mod"/>

Now it works:
Resolve: pubID -//OASIS//ENTITIES DocBook Character Entities V4.5//EN sysID http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
0 Parsing catalog file:///etc/xml/catalog
file:///etc/xml/catalog added to file hash
file:///etc/xml/docbook-xml.xml not found in file hash
0 Parsing catalog file:///etc/xml/docbook-xml.xml
file:///etc/xml/docbook-xml.xml added to file hash
Trying system delegate file:///etc/xml/docbook-xml.xml
file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml not found in file hash
0 Parsing catalog file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml
file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml added to file hash
Trying system delegate file:///usr/share/xml/docbook/schema/dtd/4.5/catalog.xml
Found system match http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod, using file:///usr/share/xml/docbook/schema/dtd/4.5/dbcentx.mod
new input from file: file:///usr/share/xml/docbook/schema/dtd/4.5/dbcentx.mod


It does look like it's only using the system identifier and not the public identifier for a reason that I don't understand...

How do your catalogs look like on Fedora?

Comment 23 Raphaël Hertzog 2014-10-01 07:43:13 UTC
And what version of libxml2 are you using?

Comment 24 Raphaël Hertzog 2014-10-01 08:09:24 UTC
With the above catalog fix, publican now builds successfully. I filed http://bugs.debian.org/763598 on the debian side as it really looks like a catalog problem on our side too. I guess you can release 4.2.3.

That said I'm still interested in a copy of the catalogs files used by Fedora just to compare and maybe share them in the above bug report.

Comment 25 Jeff Fearn 🐞 2014-10-02 00:23:16 UTC
$ rpm -q libxml2 perl-XML-LibXML
libxml2-2.9.1-2.fc20.x86_64
perl-XML-LibXML-2.0105-1.fc20.x86_64

I'm wondering if we add the ' XML ' back in if it magically starts working ...

Comment 26 Jeff Fearn 🐞 2014-10-02 00:48:15 UTC
$ XML_DEBUG_CATALOG=1 xmllint  --debugent --nonet Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml --noent --noout
new input from file: Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml
new blanks wrapper for entity: BOOK_ENTITIES
Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml(4): Pushing input 2 :  %BOOK_ENTITIES; 
PEReference: BOOK_ENTITIES
new input from entity: BOOK_ENTITIES
new input from file: Users_Guide/build/de-DE/xml/Users_Guide.ent
Pushing input 3 : 
Popping input 3
Popping input 2
new blanks wrapper for entity: DOCBOOK_ENTS
Users_Guide/build/de-DE/xml/Websites_structure_rpm.xml(8): Pushing input 2 :  %DOCBOOK_ENTS; 
PEReference: DOCBOOK_ENTS
new input from entity: DOCBOOK_ENTS
Resolve: pubID -//OASIS//ENTITIES DocBook Character Entities V4.5//EN sysID http://www.oasis-open.org/docbook/xml/4.5/dbcentx.mod
-2035312832 Parsing catalog file:///etc/xml/catalog
file:///etc/xml/catalog added to file hash
file:///etc/sgml/docbook/xmlcatalog not found in file hash
-2035312832 Parsing catalog file:///etc/sgml/docbook/xmlcatalog
file:///etc/sgml/docbook/xmlcatalog added to file hash
Trying system delegate file:///etc/sgml/docbook/xmlcatalog
Using rewriting rule http://www.oasis-open.org/docbook/xml/4.5
new input from file: file:///usr/share/sgml/docbook/xml-dtd-4.5/dbcentx.mod
Pushing input 3 : 
PEReference: sgml.features
new blanks wrapper for entity: sgml.features
file:///usr/share/sgml/docbook/xml-dtd-4.5/dbcentx.mod(52): Pushing input 4 :  %sgml.features; 
PEReference: sgml.features
new input from entity: sgml.features
Pushing input 5 : IGNORE
Popping input 5
Popping input 4
file:///usr/share/sgml/docbook/xml-dtd-4.5/dbcentx.mod(52): Entering IGNORE Conditional Section
file:///usr/share/sgml/docbook/xml-dtd-4.5/dbcentx.mod(168): Leaving IGNORE Conditional Section
PEReference: xml.features
...

$ grep 'http://www.oasis-open.org/docbook/xml/4.5' /etc/sgml/docbook/xmlcatalog
  <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="/usr/share/sgml/docbook/xml-dtd-4.5"/>
  <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="/usr/share/sgml/docbook/xml-dtd-4.5"/>

I'll add /etc/sgml/docbook/xmlcatalog as an atatchment

Comment 27 Jeff Fearn 🐞 2014-10-02 00:48:46 UTC
Created attachment 943232 [details]
/etc/sgml/docbook/xmlcatalog from F20

Comment 28 Jeff Fearn 🐞 2014-10-07 03:19:17 UTC
A fix for this issue has shipped in publican 4.2.3.