DocBook XML & XSL: new dependencies

Alexander Neundorf neundorf at kde.org
Wed May 26 20:38:56 CEST 2010


On Wednesday 26 May 2010, Luigi Toscano wrote:
> Alexander Neundorf wrote:
> > On Wednesday 26 May 2010, Luigi Toscano wrote:
> >> Alexander Neundorf wrote:
> >>> Ok, stupid question.
> >>> Now I actually tried to build kdelibs again, and it failed because the
> >>> docbook stuff wasn't found.
> >>> The given link in the error message is
> >>> http://docbook.org/schemas/4x.html So, what should I download from
> >>> there ?
> >>
> >> It's not so easy from that link, I changed the URL to something more
> >> useful.
> >
> > Ok.
> >
> > About FindDocBookXSL.cmake:
> > it looks a bit unspecific to me to search for a file named "VERSION". Can
> > we search for another, more specific file ?
> > Maybe lib/lib.xsl ?
>
> You should blame upstream for this :)
> VERSION, despite its name, it's an xml file.

Ah, ok.
Still, also other packages have files named "VERSION":

hammer:~$ find /usr/share/ -name VERSION
/usr/share/gettext/intl/VERSION
/usr/share/linuxdoc-tools/VERSION
/usr/share/xml/docbook/xsl-stylesheets-1.73.2/VERSION
/usr/share/sgml/docbook/dsssl-stylesheets-1.79/VERSION
/usr/share/apps/ksgmltools2/docbook/xsl/VERSION
/usr/share/apps/kapptemplate/appframework/VERSION

~$ find /usr/doc -name VERSION
/usr/doc/traceroute-1.4a12/VERSION
/usr/doc/libtiff-3.8.2/VERSION
/usr/doc/gpa-0.7.5/VERSION
/usr/doc/gnuplot-4.2.3/VERSION
/usr/doc/netpbm-10.35.22/VERSION
/usr/doc/libid3tag-0.15.1b/VERSION
/usr/doc/libksba-1.0.3/VERSION
/usr/doc/dialog-1.1-20070930/VERSION
/usr/doc/gpgme-1.1.6/VERSION
/usr/doc/gnupg-1.4.9/VERSION
/usr/doc/dsssl-stylesheets-1.79/VERSION
/usr/doc/device-mapper.1.02.24/VERSION
/usr/doc/doxygen-1.5.5/VERSION
/usr/doc/openjade-1.3.2/VERSION
/usr/doc/libmad-0.15.1b/VERSION
/usr/doc/gnupg2-2.0.9/VERSION
/usr/doc/libgpg-error-1.6/VERSION
/usr/doc/sqlite3-3.6.4/VERSION
/usr/doc/groff-1.19.2/VERSION
/usr/doc/libpcap-0.9.8/VERSION
/usr/doc/libgcrypt-1.4.0/VERSION
hammer:~$

So a more unique filename would be good, one of the files which are always 
part of docbookxsl.

> > About FindDocBookXML.cmake:
> > Right now only version 4.2 works for KDE ?
> > Is there a reason why the variables have this "CURRENT" part in their
> > name ?
>
> Because we *could* plan a migration to a newer version (i.e. 4.5), but in

So 4.2 and 4.5 are not compatible ?

> this case we should probably keep the old version for older documents. Is
> the advice concerning the versioned find_package still valid with this new
> information?

Finding two versions of the same package in one cmake tree is not really 
supported, e.g.
find_package(Foo 1.0)
find_package(Foo 2.0)
does not work, both set the same variables, so they can hold only one version.

You mean we would need to search for 4.2 and also for 4.5 ?
Hmm, this will need some hacking.

Or a FindDocBookXML.cmake and a FindDocBookXML45.cmake or something like this.

You wanted to search for two versions in one file, once for CURRENT and once 
for OLD, right ?
Hmm, possible, but also quite different what the usual cmake module does.

> > Also, why do you put DOCBOOKXML_CURRENTDTD_VERSION in the cache ? And why
> > as "INTERNAL" ?
>
> I put it in the cache to be able to use it later. INTERNAL because I'm
> still a beginner with cmake and it seemed to me the right value.

INTERNAL means you will not see it in the cache editor (cmake-gui and ccmake), 
so you are not able to change them (except using a plain text editor).
What do you mean with "use it later" ?
If you just set it to the value (without CACHE), the variable is also still 
there in the whole project after it has been set.

Usually variables are put in the cache to make them changeable by the user, 
and the INTERNAL is usually used for hiding internal information about cached 
results.

Alex


More information about the Kde-buildsystem mailing list