Bug 1244268

Summary: No package contains boost's boostbook and quickbook tools
Product: [Fedora] Fedora Reporter: Stefan Seefeld <stefan>
Component: boostAssignee: Jonathan Wakely <jwakely>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: dakingun, denis.arnaud_fedora, jwakely, me
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 1.58.0-9.fc24 boost-1.58.0-10.fc23 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-28 22:54:22 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:

Description Stefan Seefeld 2015-07-17 15:59:19 UTC
The upstream Boost package contains various tools needed to build Boost libraries, such as BoostBook and QuickBook. It appears these tools aren't presently provided for Fedora, even though they are referenced by boost-build, so I can't use them with Boost system packages on Fedora.

I'd suggest to create a new "boost-tools" package containing those add-ons, and make "boost-build" dependent on it.

Comment 1 Jonathan Wakely 2015-08-21 13:39:02 UTC
What exactly should be in that package, i.e. which binaries and other files?

I despise reading Jam files and am struggling to figure out what pieces need packaging.

Do you want Apache FOP support included? It would add dependencies to boost-build, but as that isn't pulled in by the boost and boost-devel metapackages that might be OK.

Comment 2 Stefan Seefeld 2015-08-21 14:35:49 UTC
The tools I would start with are QuickBook and BoostBook. The former is a binary, the latter just a set of DTDs and XSL stylesheets (it uses xsltproc for HTML generation, and possibly fop for pdf generation).

I'm not sure whether fop support requires anything special, i.e. other than bundling the XSL stylesheets for FO generation.

The tools/boostbook/setup_boostbook.sh script allows developers to set up their environment to build Boost documentation inside a Boost source tree. It essentially downloads specific versions of DTDs and XSL stylesheets. For a binary "boost-tools" package it would make most sense to just depend on and use the equivalent system packages instead.

Comment 3 Jonathan Wakely 2015-08-21 15:02:30 UTC
(In reply to Stefan Seefeld from comment #2)
> The tools I would start with are QuickBook and BoostBook. The former is a
> binary, the latter just a set of DTDs and XSL stylesheets (it uses xsltproc
> for HTML generation, and possibly fop for pdf generation).

I understand that much, what I need to know is which specific files, and reading jam files is about as much help as smashing myself in the face with a hammer.

It looks like bin.v2/tools/quickbook/src/gcc-5.1.1/release/link-static/quickbook is the relevant binary.

> I'm not sure whether fop support requires anything special, i.e. other than
> bundling the XSL stylesheets for FO generation.

It adds a dependency on fop itself, which depends on java and xalan and other java tools. That adds dozens of megabytes of packages if you don't have them already.

> The tools/boostbook/setup_boostbook.sh script allows developers to set up
> their environment to build Boost documentation inside a Boost source tree.
> It essentially downloads specific versions of DTDs and XSL stylesheets. For
> a binary "boost-tools" package it would make most sense to just depend on
> and use the equivalent system packages instead.

Yes, I've already got this in user-config.jam to use the system packages:

using xsltproc ;
using boostbook
  : /usr/share/sgml/docbook/xml-dtd-4.2/
  : /usr/share/sgml/docbook/xsl-stylesheets
using doxygen ;

Comment 4 Stefan Seefeld 2015-08-23 14:46:02 UTC
(In reply to Jonathan Wakely from comment #3)
> > I'm not sure whether fop support requires anything special, i.e. other than
> > bundling the XSL stylesheets for FO generation.
> 
> It adds a dependency on fop itself, which depends on java and xalan and
> other java tools. That adds dozens of megabytes of packages if you don't
> have them already.

What is 'it' ? I really don't think boost-tools needs to depend on fop.
In fact, the user can configure in his user-config.jam file what
specific fop tool to use (which version, what path, etc.).

> > The tools/boostbook/setup_boostbook.sh script allows developers to set up
> > their environment to build Boost documentation inside a Boost source tree.
> > It essentially downloads specific versions of DTDs and XSL stylesheets. For
> > a binary "boost-tools" package it would make most sense to just depend on
> > and use the equivalent system packages instead.
> 
> Yes, I've already got this in user-config.jam to use the system packages:
> 
> using xsltproc ;
> using boostbook
>   : /usr/share/sgml/docbook/xml-dtd-4.2/
>   : /usr/share/sgml/docbook/xsl-stylesheets
> using doxygen ;

Mine contains this:

using docutils ;
using quickbook : /usr/local/Boost/bin/quickbook ;
using boostbook
 : /usr/share/sgml/docbook/xsl-stylesheets-1.78.1
 : /usr/share/sgml/docbook/xml-dtd-4.5
 : /home/stefan/projects/modular-boost/tools/boostbook
 ;
using xsltproc : /bin/xsltproc ;
using doxygen : /bin/doxygen ;
using fop : /usr/local/Apache/fop-1.1/fop ;

so I'm using current DTDs and stylesheets. That generates some warnings
but otherwise works well.
(And as you can see, I'm not using the system fop, as that is buggy.)

Thanks,
         Stefan

Comment 5 Jonathan Wakely 2015-08-24 10:19:45 UTC
I still can't figure out which files need to be packaged so I'm giving up, as I don't want to waste any more of my life looking at jam files.

Comment 6 Stefan Seefeld 2015-08-24 12:14:32 UTC
(In reply to Jonathan Wakely from comment #5)
> I still can't figure out which files need to be packaged so I'm giving up,
> as I don't want to waste any more of my life looking at jam files.

Do you have fragments of build infrastructure for a boost-tools package (such as a spec file) ? I may give it a try myself...

Comment 7 Jonathan Wakely 2015-08-24 13:30:02 UTC
There's a scratch build running at http://koji.fedoraproject.org/koji/taskinfo?taskID=10804941

You can grab the SRPM from there, it contains my modified spec file. It should produce a boost-doctools package containing:

/usr/bin/quickbook
/usr/share/sgml/boostbook/dtd/*
/usr/share/sgml/boostbook/xsl/*

Comment 8 Jonathan Wakely 2015-08-24 15:53:11 UTC
OK that seems to work. I can remove some of the dependencies too, as doxygen and xsltproc are not necessarily needed.

Stefan, the package https://kojipkgs.fedoraproject.org//work/tasks/4942/10804942/boost-doctools-1.58.0-8.fc24.x86_64.rpm installs cleanly on F22. If you can test it for your use cases that would be great.

I think I prefer the name "boost-doctools" (or maybe "boost-docbook" or "boost-book"?) to just "boost-tools".

Comment 9 Stefan Seefeld 2015-08-24 16:15:46 UTC
Yes, I like "boost-doctools", too.

The package installs a file

  /usr/share/sgml/boostbook/dtd

that contains the text

"Inspect complains that this directory is called '1.1', but that's the
standard naming style for DTDs, and this needs to match the url of the
DTD on the website. Any platform which has problems with this domain
name probably won't be able to build the documentation anyway."

(Note that in the boost source tree the above ".../dtd" is actually a directory, so I guess something went wrong as I expect that directory should be installed, rather than the file above.)

The package also installs a file

  /usr/share/sgml/boostbook/xsl

which is an XSL stylesheet, while the equivalent in the source tree

   .../boostbook/xsl/

is the full directory full of XSL stylesheets.

Comment 10 Jonathan Wakely 2015-08-24 16:38:16 UTC
Doh, that's a last-minute change I made, which ended up installing a single file instead of a directory full of files.

New build on the way ...

Comment 12 Stefan Seefeld 2015-08-24 20:00:25 UTC
Now dtd/ and xsl/ are folders, but redundant: I find the actual content in .../dtd/dtd/ and .../xsl/xsl/ respectively. Once I fixed this manually, my local build works with these tools.

Comment 13 Jonathan Wakely 2015-08-25 16:21:46 UTC
boost-1.58.0-9.fc24 is in rawhide now, with a boost-doctools subpackage.

The boostbook files are in /usr/share/boostbook, and registered with the XML catalog so that validating the following doctype won't need to use the network:

<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
 "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">

I might also push it to F23 late this week.

Comment 14 Stefan Seefeld 2015-12-21 12:58:41 UTC
Hi Jonathan,

I just upgraded to Fedora 23 and noticed that boost-doctools doesn't exist there. Would you mind backporting the boost-doctools package to F23, please ?

Thanks,

Comment 15 Fedora Update System 2015-12-22 21:59:31 UTC
boost-1.58.0-10.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2015-2572ce7e27

Comment 16 Jonathan Wakely 2015-12-22 22:01:53 UTC
Hi Stefan, I've built it and submitted it to the f23 updates-testing repo.

Comment 17 Stefan Seefeld 2015-12-22 22:09:21 UTC
Awesome, many thanks !

Comment 18 Fedora Update System 2015-12-25 01:58:35 UTC
boost-1.58.0-10.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-2572ce7e27

Comment 19 Fedora Update System 2015-12-28 22:54:18 UTC
boost-1.58.0-10.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.