Re: [xml] queer usage of install-sh



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 Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel veillard com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/



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