meinproc/docbook can't handle paths with spaces ?

Alexander Neundorf neundorf at kde.org
Mon Dec 17 20:57:27 GMT 2007


On Monday 17 December 2007, Andreas Pakulat wrote:
> On 17.12.07 21:12:28, Alexander Neundorf wrote:
> > currently kdelibs doesn't build if the source dir contains spaces:
> > man-checkXML.1.docbook:4: warning: failed to load external
> > entity "dtd/kdex.dtd"
> >
> > strace says the following:
> > stat64("/home/alex/src/kde4-svn/KDE", 0xbfcf68ec) = -1 ENOENT (No such
> > file or directory)
> > stat64("dir/kdelibs/kdoctools/customization/catalog", 0xbfcf68ec) = -1
> > ENOENT (No such file or directory)
> >
> > This is obviously wrong and should be:
> > stat64("/home/alex/src/kde4-svn/KDE\
> > dir/kdelibs/kdoctools/customization/catalog", ... )
> >
> > So, is libxml actually able to deal with paths which contains spaces ?
> > Or are we just forgetting somewhere to escape some paths ?
> >
> > (libxml docs seem to say that separators are the colon and spaces, which
> > doesn't sound good...)
>
> That would be really bad, however calling xmllint with a file that lies
> in a dir with spaces works fine. So hopefully its just some CMake-part
> that doesn't quote properly.

My mail was too short.
Here are the results from running it manually:
kdelibs-cmake-HEAD/doc/kbuildsycoca4$ ../../bin/meinproc4 --stylesheet /home/alex/src/kde4-svn/KDE\ 
dir/kdelibs/kdoctools/docbook/xsl/manpages/docbook.xsl --check --srcdir=/home/alex/src/kde4-svn/KDE\ 
dir/kdelibs/kdoctools/ /home/alex/src/kde4-svn/KDE\ 
dir/kdelibs/doc/kbuildsycoca4/man-kbuildsycoca4.8.docbook
meinproc4(27435) KLocalePrivate::initFormat: KLocalePrivate::KLocalePrivate
-- srcdir= -/home/alex/src/kde4-svn/KDE dir/kdelibs/kdoctools-
man-kbuildsycoca4.8.docbook:4: warning: failed to load external 
entity "dtd/kdex.dtd"
]>
  ^
man-kbuildsycoca4.8.docbook:6: validity error : Validation failed: no DTD 
found !
<refentry>


This is the command as it is executed when building. As you can see the spaces 
are escaped with backslashes.
Now I replaced them with double quotes:

kdelibs-cmake-HEAD/doc/kbuildsycoca4$ ../../bin/meinproc4 --stylesheet "/home/alex/src/kde4-svn/KDE 
dir/kdelibs/kdoctools/docbook/xsl/manpages/docbook.xsl" --check --srcdir="/home/alex/src/kde4-svn/KDE 
dir/kdelibs/kdoctools/" "/home/alex/src/kde4-svn/KDE 
dir/kdelibs/doc/kbuildsycoca4/man-kbuildsycoca4.8.docbook"
meinproc4(27458) KLocalePrivate::initFormat: KLocalePrivate::KLocalePrivate
-- srcdir= -/home/alex/src/kde4-svn/KDE dir/kdelibs/kdoctools-
man-kbuildsycoca4.8.docbook:4: warning: failed to load external 
entity "dtd/kdex.dtd"
]>
  ^
man-kbuildsycoca4.8.docbook:6: validity error : Validation failed: no DTD 
found !
<refentry>
         ^
man-kbuildsycoca4.8.docbook:9: parser error : Entity 'kde' not defined
<title>&kde; User's Manual</title>


The strace output was in my first mail.

Actually it is already one month ago when I found that, and I sent an email to 
kdelibs-bugs then, so the details are not completely fresh.
But I think somewhere in libxml the arguments are parsed and escaping space 
isn't supported. Can somebody confirm this ?

Alex




More information about the kde-core-devel mailing list