Bug 1143852 - PDF build using FOP fails with "No numberLines function available."
Summary: PDF build using FOP fails with "No numberLines function available."
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Publican
Classification: Community
Component: publican   
(Show other bugs)
Version: 4.2
Hardware: Unspecified
OS: Linux
unspecified
high
Target Milestone: 4.2
Assignee: Jeff Fearn 🐞
QA Contact: Ruediger Landmann
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-09-18 07:09 UTC by Raphaël Hertzog
Modified: 2014-10-07 03:19 UTC (History)
2 users (show)

Fixed In Version: 4.2.3
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-10-07 03:19:16 UTC
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

Description Raphaël Hertzog 2014-09-18 07:09:23 UTC
I'm trying to build an updated Debian package but the test suite fails while trying to build the user manual (see log below). Yet I have all the packages at versions higher than those that you request in Build.PL. XML::LibXSLT is linked against libxslt1.1 in version 1.1.28 and libxml2 in version 2.9.1 (see list of packages at the end).

Reading the XSLT 1 spec, I wonder whether we should use xsl:fallback instead of an explicit test. The possibility to use xsl:when combined with function-available is only mentionned in the fallback section:
http://www.w3.org/TR/xslt#fallback


# Testing bin/publican on the Users_Guide
substituting language XML for xml at /home/rhertzog/deb/pkg/build-area/publican-4.2.2/blib/lib/Publican/Builder/DocBook.pm line 1945.
No "de" localization of "showall" exists; using "en".
No "de" localization of "hide" exists; using "en".
[...]
substituting language XML for xml at /home/rhertzog/deb/pkg/build-area/publican-4.2.2/blib/lib/Publican/Builder/DocBook.pm line 1945.
Making portrait pages on USletter paper (8.5inx11in)
No numberLines function available.
 at /home/rhertzog/deb/pkg/build-area/publican-4.2.2/blib/lib/Publican/Builder/DocBook.pm line 1089.

#   Failed test 'build the Users Guide in all formats'
#   at t/910.publican.Users_Guide.t line 56.
#          got: '512'
#     expected: '0'
# Looks like you failed 1 test of 5.
t/910.publican.Users_Guide.t .. 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/5 subtests 


Versions of packages publican depends on:
ii  docbook-xml                                  4.5-7.2
ii  docbook-xsl                                  1.78.1+dfsg-1
ii  fop                                          1:1.1.dfsg-2
ii  gettext                                      0.19.2-2
ii  libarchive-zip-perl                          1.38-1
ii  libconfig-simple-perl                        4.59-6
ii  libdatetime-format-dateparse-perl            0.05-1
ii  libdatetime-perl                             2:1.12-1
ii  libdbd-sqlite3-perl                          1.42-2+b1
ii  libdbi-perl                                  1.631-3+b1
ii  libfile-copy-recursive-perl                  0.38-1
ii  libfile-find-rule-perl                       0.33-1
ii  libfile-homedir-perl                         1.00-1
ii  libfile-inplace-perl                         0.20-1
ii  libfile-pushd-perl                           1.009-1
ii  libfile-which-perl                           1.09-1
ii  libhtml-format-perl                          2.11-1
ii  libhtml-formattext-withlinks-andtables-perl  0.02-1
ii  libhtml-formattext-withlinks-perl            0.14-1
ii  libhtml-template-perl                        2.95-1
ii  libhtml-tree-perl                            5.03-1
ii  libimage-magick-perl [perlmagick]            8:6.8.9.6-4
ii  libimage-size-perl                           3.232-1
ii  libio-string-perl                            1.08-3
ii  liblingua-en-fathom-perl                     1.15-1
ii  liblist-moreutils-perl                       0.33-2+b1
ii  liblocale-maketext-gettext-perl              1.28-2
ii  liblocale-maketext-lexicon-perl              1.00-1
ii  liblocale-msgfmt-perl                        0.15-1
ii  liblocale-po-perl                            0.24-1
ii  librsvg2-bin                                 2.40.4-1
ii  libsort-versions-perl                        1.60-1
ii  libstring-similarity-perl                    1.04-1+b2
ii  libsyntax-highlight-engine-kate-perl         0.09+dfsg-1
ii  libtemplate-perl                             2.24-1.2+b1
ii  libtext-csv-xs-perl                          1.11-1
ii  libxml-libxml-perl                           2.0116+dfsg-1+b1
ii  libxml-libxslt-perl                          1.92-1+b1
ii  libxml-simple-perl                           2.20-1
ii  libxml-treebuilder-perl                      5.4-1
ii  perl                                         5.20.0-6
ii  perlmagick                                   8:6.8.9.6-4
ii  docbook5-xml         5.0-2
ii  libfile-slurp-perl   9999.19-4
ii  libhtml-wikiconverte 0.06-1
ii  libhtml-wikiconverte 0.68-2
ii  libversion-perl      1:0.9908-1+b1

Comment 1 Jeff Fearn 🐞 2014-09-19 00:17:12 UTC
The problem here is that the FOP XSL for common-db5 just redirects to upstream fo/docbook.xsl and doesn't change anything.

publican/datadir/Common_Content/common-db5/xsl/pdf.xsl probably needs to have something like:

<xsl:param name="tablecolumns.extension" select="0"/>
<xsl:param name="fop.extensions" select="0"/>
<xsl:param name="fop1.extensions" select="1"/>
<xsl:param name="linenumbering.extension" select="0"/>

added after the import line.

I can probably test this Monday.

Comment 2 Raphaël Hertzog 2014-09-19 09:09:18 UTC
I tried with this patch and it doesn't help.

--- a/datadir/Common_Content/common-db5/xsl/pdf.xsl
+++ b/datadir/Common_Content/common-db5/xsl/pdf.xsl
@@ -14,6 +14,11 @@
     extension-element-prefixes="d"
 >
 
+<xsl:param name="tablecolumns.extension" select="0"/>
+<xsl:param name="fop.extensions" select="0"/>
+<xsl:param name="fop1.extensions" select="1"/>
+<xsl:param name="linenumbering.extension" select="0"/>
+
 <xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl"/>
 </xsl:stylesheet>
 

I still get the same error message.

Comment 3 Jeff Fearn 🐞 2014-09-22 23:56:41 UTC
Had to do two main things.

1: Add options to docbook5 pdf.xsl.
2: Fix auto docs feature to output stricter XML.

PUG now generates a valid, if ugly, PDF using FOP.

To ssh://git.fedorahosted.org/git/publican.git
   c59173f..0ab36b4  devel -> devel

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


Note You need to log in before you can comment on or make changes to this bug.