Re: [xml] queer usage of install-sh

Hi All,

Daniel Veillard wrote:
On Wed, Oct 21, 2009 at 11:41:37AM +0200, Matthias Jung wrote:
Hi all,
libxml comes with an 'install-sh' script which seems to be used when good old 'install' is missing on a system. (I know you need a strange system setup to run into this. Or in my case not having /usr/local/bin, which contains install, in PATH)

libxml uses install-sh in the same way as install is used, with the result of an incomplete libxml installation. For example include directory will contain only SAX.h and SAX2.h. All other header files are missing. Doc directory will also miss most html files.

Investigation of install-sh showed, this script seems not to be designed for copying multiple files at once.

This is what libxml executes:
../.././install-sh -c -m 644 SAX.h entities.h encoding.h parser.h parserInternals.h xmlerror.h HTMLparser.h HTMLtree.h debugXML.h tree.h list.h hash.h xpath.h xpathInternals.h xpointer.h xinclude.h xmlIO.h xmlmemory.h nanohttp.h nanoftp.h uri.h valid.h xlink.h xmlversion.h DOCBparser.h catalog.h threads.h globals.h c14n.h xmlautomata.h xmlregexp.h xmlmodule.h xmlschemas.h schemasInternals.h xmlschemastypes.h xmlstring.h xmlunicode.h xmlreader.h relaxng.h dict.h '/home/jung/tmp/libxml2-2.7.6-hippo/include/libxml2/libxml'

Wondering am I really the first running into this?


Daniel, what do you think would a for loop surrounding install calls with multiple files be a good idea?

By the way, this is what xmlsec is doing:
install-xmlsecincHEADERS: $(xmlsecinc_HEADERS)
       $(mkinstalldirs) $(DESTDIR)$(xmlsecincdir)
       @list='$(xmlsecinc_HEADERS)'; for p in $$list; do \
         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
         f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(xmlsecincHEADERS_INSTALL) $$d$$p $(DESTDIR)$(xmlsecincdir)/$$f"; \ $(xmlsecincHEADERS_INSTALL) $$d$$p $(DESTDIR)$(xmlsecincdir)/$$f; \

  this call to is generated ! See
the source just lists the header in xmlinc_HEADERS, and auto* does
the magic of calling install or . Maybe need
to be refreshed


I confirm issue.
FSF install-sh support (from automake):
install-sh --help
Usage: ..../install-sh [OPTION]... [-T] SRCFILE DSTFILE
   or: ..../install-sh [OPTION]... SRCFILES... DIRECTORY
   or: ..../install-sh [OPTION]... -t DIRECTORY SRCFILES...
   or: ..../install-sh [OPTION]... -d DIRECTORIES...

Also .gitignore list following "automake" files :
- ./config.guess
- ./config.sub
- ./depcomp
but don't include following "automake" files :
- install-sh
- missing
- mkinstalldirs
It seems to me inconsistent.

You could replace files:
- install-sh
- missing
- mkinstalldirs
with files from automake package (usually located in /usr/share/automake*/ ) either manually or as run command
"automake --force-missing --add-missing --copy --foreign"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]