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?

  Possibly

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)
       @$(NORMAL_INSTALL)
       $(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; \
       done


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

Daniel


Daniel,
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.


Matthias,
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"


Regards,
Roumen



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