On 02/27/2012 03:39 PM, Tom Lane wrote:
Greg Smith<g...@2ndquadrant.com>  writes:
Here are some Debian/Ubuntu platforms that all run into the other problem:
Ubuntu 9.04, openjade 1.4devel1-19:  flow error
Debian Squeeze, openjade 1.4devel1-19 : flow error

I always assumed that the reason this didn't work, but the Fedoras did,
was because of a difference between 1.3 and 1.4.

Nah, I don't think so.  The oldest reports of this in our archives are
from 7.4 era:
http://archives.postgresql.org/pgsql-docs/2003-12/msg00024.php
which could not have been openjade 1.4.

I'm not so sure about that...that's 2003, and I've found RPM packages including 1.4-devel going back to what looks like late 2001: http://rpm.pbone.net/index.php3/stat/4/idpl/3369792/dir/turbolinux/com/OpenJade-1.4devel-2.i586.rpm.html

The Postgres documentation documentation says "Downgrading to openjade 1.3 should get rid of this error." right now; at least I had a good basis for the assumption I was making. Other ideas suggesting that's the case include the discussion you were involved in at http://sourceforge.net/mailarchive/message.php?msg_id=26959520 as well as the long open bug at https://bugs.launchpad.net/ubuntu/+source/openjade/+bug/12431 (which has a small test case showing the same error).

Actually, check this out. I've attached the test.docbook from that Ubuntu bug report. If I just run docbook2pdf on my Debian system, it works fine:

$ docbook2pdf test.docbook
Using catalogs: /etc/sgml/catalog
Using stylesheet: /usr/share/docbook-utils/docbook-utils.dsl#print
Working on: /home/gsmith/test.docbook
jade:/usr/share/sgml/declaration/xml.dcl:31:27:W: characters in the document character set with numbers exceeding 65535 not supported
Done.

And I can view the resulting PDF. But the test case in the bug report says it's reproducible using "-p" to specify an alternate parser. If I do that, sure enough the bug pops up:

$ docbook2pdf -p /usr/bin/openjade-1.4devel test.docbook
Using catalogs: /etc/sgml/catalog
Using stylesheet: /usr/share/docbook-utils/docbook-utils.dsl#print
Working on: /home/gsmith/test.docbook
/usr/bin/openjade-1.4devel:/usr/share/sgml/docbook/stylesheet/dsssl/modular/print/dbttlpg.dsl:2722:6:E: flow object not accepted by port; only display flow objects accepted
Done.

That's despite the fact that my installed openjade is the same one I'm referring to with the alternate parser:

$ which openjade
/usr/bin/openjade
$ ls -l /usr/bin/openjade
lrwxrwxrwx 1 root root 26 Jan 10 04:57 /usr/bin/openjade -> /etc/alternatives/openjade
$ ls -l /etc/alternatives/openjade
lrwxrwxrwx 1 root root 26 Jan 10 04:57 /etc/alternatives/openjade -> /usr/bin/openjade-1.4devel

And the bug is still there without the symlink coming into place:

$ docbook2pdf -p /usr/bin/openjade test.docbook
Using catalogs: /etc/sgml/catalog
Using stylesheet: /usr/share/docbook-utils/docbook-utils.dsl#print
Working on: /home/gsmith/test.docbook
/usr/bin/openjade:/usr/share/sgml/docbook/stylesheet/dsssl/modular/print/dbttlpg.dsl:2722:6:E: flow object not accepted by port; only display flow objects accepted
Done.

Now that's just bizarre--that the problem comes and goes based on whether you specific the parser by name. The same test works fine in all incarnations on my SL6 system, so this simple case seems to follow the systems where the problem is and isn't in my testing so far. Makes me wonder if this is more of a memory stomping type of bug rather than a functional one. If this simple test case holds up as representative of the PostgreSQL problem, that would seem an easier thing to get fixed upstream.

There is an open bug in this area for Debian too: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521148

That gets reproduced like this (file test2.docbook also attached):

$ openjade -t tex -d /usr/share/docbook-utils/docbook-utils.dsl#print /usr/share/sgml/declaration/xml.dcl test2.docbook openjade:test2.docbook:6:12:E: document type does not allow element "glossary" here
openjade:test2.docbook:6:12:E: end tag for "glossary" which is not finished
openjade:test2.docbook:6:12:E: end tag for "glossary" which is not finished
openjade:test2.docbook:7:10:E: end tag for "chapter" which is not finished
openjade:/usr/share/sgml/docbook/stylesheet/dsssl/modular/print/dbcompon.dsl:205:3:E: flow object not accepted by port; only display flow objects accepted

This suggests whatever is going wrong here doesn't just impact PDF creation. And this one also works fine on the openjade 1.3 based SL6 server here, just need a different path for the library files:

$ openjade -t tex -d /usr/share/sgml/docbook/utils-0.6.14/docbook-utils.dsl#print /usr/share/sgml/xml.dcl test2.docbook

--
Greg Smith   2ndQuadrant US    g...@2ndquadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd";>

<book>
<bookinfo>
  <title>Title</title>
  <subtitle>Subtitle</subtitle>
</bookinfo>
</book>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>

<book>
	<chapter>
		<glossary/>
	</chapter>
</book>
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to