***EDITED Dec. 08 2010: Read all the below if you want to know the recipe by which it was built; if you just want to download it, the Version 3.1 squashfile of DocBook, the whole ball o' wax, *and* a .PET package made under Quirky, is atthis post, below.***

It is now more than five years later and still, frankly, neither do I.

However, I need to compile docbook because it is a dependency of (...a dependency of a dependency of...) the Sakura terminal emulator (if a truly *complete* Sakura build is done), which I need for my clfs-pup. And so, I plan to spend this entire lovely day enduring the sore haunches to compile and package and post the thing.

***edited: well, actually, it took about 100 Weimaraner-hours to finish this "modest" project ***

...but I don't think there is anything distro-specific in docbook ***edited: well, actually, when you include OpenSP and OpenJade it matters which kernel, glibc, and gcc you compile under; but, since here I'm compiling under k2.6.21.7, gcc 4.2.2, and glibc 2.6.1, this *should* work in all newer Puppies...***

***note: install this and the next one in order, i.e. don't install 4.5 and then 3.1. If you must have both, and already have 4.5 installed but not 3.1, first uninstall all the docbook .pet's after sgml-common from Puppy Package Manager, and then reinstall all the docbook .pet's in order***

As with version 3.1 (above post), the BLFS page on DocBook SGML DTD-4.5 gives instructions for modifying /usr/share/sgml/docbook/sgml-dtd-4.5/catalog so that it will use only the most current 4.x version of DocBook SGML DTD.

I have no idea what the significance of this is, but here are both versions, one with the modification to /usr/share/sgml/docbook/sgml-dtd-4.5/catalog and one without:

DocBook_SGML_DTD-with-only-most-current-4.5.pet

Description

DocBook SGML DTD-4.5 .pet package which uses only the most current 4.x version of DocBook SGML DTD

The unified sourcedir produced by the Clipper script was then manually divided (i.e. drag'n'drop'ped using Rox-Filer) into doc, dev, and nls sourcedir's by visual comparison with the output .pet's of new2dir, except:

1. new2dir placed a duplicate of symlink /usr/lib/libosp.so in the dev .pet, but I'm making just the single copy of it in the exe .pet (where its target, libosp.so.4.0.0, resides), i.e. no duplicate in the dev .pet. If libosp.so *should* reside in the DEV, hopefully someone will so advise...

2. The symlinks are present in this exe .pet produced by the Clipper script, which are not in the new2dir-version exe .pet due to their being created after new2dir was run.

The compiling was done with the changes to /etc/profile described above. The $PUPPYCOMPILE parameter is not used here, because its '--datadir=' setting is in conflict with the one specified by the BLFS recipe for OpenJade, so instead I am specifying $PUPPYCOMPILE's other parameters literally:

The Clipper script contained two errors, it was missing the "." at the end of "cp " lines twice. This produced two error messages at the prompt from which it was run. Hmm, I must look into this problem. I attach the corrected makesfs bash script.

Inspection of
/usr/share/sgml/docbook/sgml-dtd-3.1/docbook.dtd
shows that there is no "//Davenport//DTD DocBook V3.0//EN" identifier in it. If /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata/test.sgm is edited to contain a valid identifier, for example

Before we can install the next component in the DocBook collection, DocBook XML DTD-4.5, we must first update libxml2 from the version 2.6.30 which is included in Puppy 4.31, to at least version 2.7.7, which DocBook XML DTD-4.5 requires. The current version as of this writing is 2.7.8.

The BLFS instructions say that 'make check' will tell you how many of these errors were expected, but in fact it does not. However, looking through the 'make check' output, I see that the errors are all having to do with 'ebcdic' documents. Since ebcdic is a now-obsolete, ancient IBM encoding, I do not foresee that this will cause problems. A trial compile of libxml2-2.7.7 produces the identical "2819 tests, 10 errors, 0 leaks" message, so we will go ahead and stick with libxml2-2.7.8.

(take the "before" snapshot)

Code:

new2dir make install

From new2dir I went directly into dir2pet, it creates an exe, a dev, and a doc .pet.

(take the "after" snapshot, apply the Clipper script)

The Clipper script generated one error message, the line

Code:

cp "/usr/share/doc/libxml2-2.7.8/html/tree2.c"

should have space+dot (" .") on the end. There must be an error in mk_sfs5.prg, I must look into this. After editing to add the missing space+dot, and after clearing out /mnt/sdb1/sourcedir, the Clipper script was re-run, then the doc and dev components separated-out using Rox-Filer drag'n'drop to match what new2dir produces --except, in the dev, I kept /usr/bin/xml-config in the regular exe .pet, and did not emplace the libxml2.so symlink in the dev .pet's /usr/lib, as new2dir does; also, I'm redistributing /usr/lib/python2.5/site-packages. Hopefully, someone will advise if I am mistaken.

Here they are. The _DEV .pet is over 2 MB, so the forum cannot accept it as an attachment. I have uploaded it to myfreefilehosting.com, here it is:

NOTE 1: libxml2 uses python, and so in Puppy Linux you must have the devx installed (which supplies python) before installing these libxml2 .pet's.

NOTE 2: These .pet packages emplace files in subdirectory /usr/lib/python2.5 so, if you have a newer version of python, then before you install these .pet's you must create a symlink to your python subdirectory, for example:

The compiling was done with the changes to /etc/profile described in the link given in the first post of this thread, above, using this sequence:

Code:

./configure $PUPPYCOMPILE
make
make check

There were several "Validation failed: no DTD found !" errors, my guess is that these test cases need special entries in /etc/xml/docbook. The 'make check' did finish OK.

(take the "before" snapshot)

Code:

new2dir make install

new2dir, directly into dir2pet, produced an exe, a dev, and a doc .pet.

(take the "after" snapshot, run the Clipper script, by Rox drag'n'drop separate-out the dev and doc components, run dir2pet)

These .pet's differ slightly from the ones produced by new2dir:
--I am leaving /usr/bin/xslt-config in the exe, not putting it in the dev.
--I am not keeping copies of libexslt.so and libxslt.so in the /usr/lib of the dev. Also I am keeping xsltConf.sh in /usr/lib of the exe, not the dev.
--I am keeping libxsltmod.a and libxsltmod.la in the /usr/lib/python2.5/site-packages subdirectory of the exe, not in the dev. I am not sure about this decision at all, but it seems like it is playing it safest to keep all of /usr/lib/python2.5 in the exe .pet --I simply don't know python well enough to make the judgment as to whether .a and .la files belong in the regular .exe --my thinking is, after all, it's the Puppy devx that has something to do with supplying python, not the libxslt "devx" i.e. the dev .pet...

NOTE 1: libxslt uses python, and so in Puppy Linux you must have the devx installed (which supplies python) before installing these libxslt .pet's.

NOTE 2: These .pet packages emplace files in subdirectory /usr/lib/python2.5 so, if you have a newer version of python, then before you install these .pet's you must create a symlink to your python subdirectory, for example: