Bug 63739

Summary: unable to rebuild source rpm: libxml2mod.so links with -lxml2
Product: [Retired] Red Hat Public Beta Reporter: Ned Ulbricht <nedu>
Component: libxml2Assignee: Daniel Veillard <veillard>
Status: CLOSED RAWHIDE QA Contact:
Severity: low Docs Contact:
Priority: medium    
Version: skipjack-beta2   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-04-18 13:19:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ned Ulbricht 2002-04-18 07:52:25 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.2.19-kim.3 i486)

Description of problem:
Unable to rebuild libxml2-2.4.19-1.src.rpm without a previous version of libxml2
installed. Rebuild breaks due to list check failure on libxml2mod.so.

Apparent cause is libtool attempt to relink libxml2mod.so against not yet
finally installed
-lxml2.


Version-Release number of selected component (if applicable):
libxml2-2.4.19-1

How reproducible:
Always

Steps to Reproduce:
1.$ CC=gcc3 ; export CC
2.$ rpmbuild --rebuild libxml2-2.4.19-1.src.rpm 2>&1 | tee build.log

	

Actual Results:  (Extracted lines from build log--with line numbers--note line
wraps and skips.)

  1  Installing libxml2-2.4.19-1.src.rpm
414  Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.56322

476  make[2]: Entering directory `/home/nedu/rpm/BUILD/libxml2-2.4.19'
479  /bin/sh ./libtool  --mode=install /usr/bin/install -c libxml2.la /var/tm   
479  p/libxml2-2.4.19-root/usr/lib/libxml2.la
480  /usr/bin/install -c .libs/libxml2.so.2.4.19 /var/tmp/libxml2-2.4.19-root   
480  /usr/lib/libxml2.so.2.4.19
481  (cd /var/tmp/libxml2-2.4.19-root/usr/lib && rm -f libxml2.so.2 && ln -s    
481  libxml2.so.2.4.19 libxml2.so.2)
482  (cd /var/tmp/libxml2-2.4.19-root/usr/lib && rm -f libxml2.so && ln -s li   
482  bxml2.so.2.4.19 libxml2.so)
483  /usr/bin/install -c .libs/libxml2.lai /var/tmp/libxml2-2.4.19-root/usr/l   
483  ib/libxml2.la
484  /usr/bin/install -c .libs/libxml2.a /var/tmp/libxml2-2.4.19-root/usr/lib   
484  /libxml2.a
485  ranlib /var/tmp/libxml2-2.4.19-root/usr/lib/libxml2.a
486  chmod 644 /var/tmp/libxml2-2.4.19-root/usr/lib/libxml2.a
487  libtool: install: warning: remember to run `libtool --finish /usr/lib'

558  make[3]: Entering directory `/home/nedu/rpm/BUILD/libxml2-2.4.19/python'
563  /bin/sh ../libtool  --mode=install /usr/bin/install -c libxml2mod.la /va   
563  r/tmp/libxml2-2.4.19-root/usr/lib/python1.5/site-packages/libxml2mod.la
564  libtool: install: warning: relinking `libxml2mod.la'
565  cd /home/nedu/rpm/BUILD/libxml2-2.4.19/python; /bin/sh ../libtool --mode   
565  =relink gcc3 -O2 -mcpu=i486 -Wall -o libxml2mod.la -rpath /usr/lib/pytho   
565  n1.5/site-packages -module -avoid-version libxml.lo types.lo libxml2-py.   
565  lo ../libxml2.la
566  gcc3 -shared  libxml.lo types.lo libxml2-py.lo  -L/usr/lib -lxml2   -Wl,   
566  -soname -Wl,libxml2mod.so -o .libs/libxml2mod.so
567  /usr/bin/ld: cannot find -lxml2
568  collect2: ld returned 1 exit status
569  libtool: install: error: relink `libxml2mod.la' with the above command b   
569  efore installing it
570  libtool: install: warning: remember to run `libtool --finish /usr/lib/py   
570  thon1.5/site-packages'

610  + make PYTHON=/usr/bin/python1.5 PYTHON_INCLUDES=/usr/include/python1.5
610  PYTHON_VERSION=1.5
611  Making all in .
612  make[1]: Entering directory `/home/nedu/rpm/BUILD/libxml2-2.4.19/python'   
636  /bin/sh ../libtool --mode=link gcc3  -O2 -mcpu=i486 -Wall  -o libxml2mod   
636  .la -rpath /usr/lib/python1.5/site-packages -module -avoid-version libxm   
636  l.lo types.lo libxml2-py.lo ../libxml2.la 
637  rm -fr .libs/libxml2mod.la .libs/libxml2mod.* .libs/libxml2mod.*
638  gcc3 -shared  libxml.lo types.lo libxml2-py.lo  -Wl,--rpath -Wl,/home/ne   
638  du/rpm/BUILD/libxml2-2.4.19/.libs  ../.libs/libxml2.so   -Wl,-soname -Wl   
638  ,libxml2mod.so -o .libs/libxml2mod.so
639  ar cru .libs/libxml2mod.a  libxml.o types.o libxml2-py.o 
640  ranlib .libs/libxml2mod.a
641  creating libxml2mod.la
642  (cd .libs && rm -f libxml2mod.la && ln -s ../libxml2mod.la libxml2mod.la   
642  )

649  + make PYTHON=/usr/bin/python1.5 PYTHON_INCLUDES=/usr/include/python1.5
649  PYTHON_VERSION=1.5 prefix=/var/tmp/libxml2-2.4.19-root/usr mandir=/var/t  
649  mp/libxml2-2.4.19-root/usr/man install
652  make[2]: Entering directory `/home/nedu/rpm/BUILD/libxml2-2.4.19/python'
655  /bin/sh ../libtool  --mode=install /usr/bin/install -c libxml2mod.la /va   
655  r/tmp/libxml2-2.4.19-root/usr/lib/python1.5/site-packages/libxml2mod.la
656  libtool: install: warning: relinking `libxml2mod.la'
657  cd /home/nedu/rpm/BUILD/libxml2-2.4.19/python; /bin/sh ../libtool --mode   
657  =relink gcc3 -O2 -mcpu=i486 -Wall -o libxml2mod.la -rpath /usr/lib/pytho   
657  n1.5/site-packages -module -avoid-version libxml.lo types.lo libxml2-py.   
657  lo ../libxml2.la
658  gcc3 -shared  libxml.lo types.lo libxml2-py.lo  -L/usr/lib -lxml2   -Wl,   
658  -soname -Wl,libxml2mod.so -o .libs/libxml2mod.so
659  /usr/bin/ld: cannot find -lxml2
660  collect2: ld returned 1 exit status
661  libtool: install: error: relink `libxml2mod.la' with the above command b   
661  efore installing it
662  libtool: install: warning: remember to run `libtool --finish /usr/lib/py   
662  thon1.5/site-packages'

718  Processing files: libxml2-python-2.4.19-1
719  error: File not found by glob: /var/tmp/libxml2-2.4.19-root/usr/lib/pyth   
719  on*/site-packages/libxml2mod.so

736  RPM build errors:
737      File not found by glob: /var/tmp/libxml2-2.4.19-root/usr/lib/python*   
737  /site-packages/libxml2mod.so


Expected Results:  Successful build.

Additional info:

The libtool 1.4 documentation clearly states:
"In the current implementation, libtool libraries may not depend on other
uninstalled libtool libraries"

Comment 1 Daniel Veillard 2002-04-18 08:10:07 UTC
Could you retry with libxml2-2.4.20 which I released earlier this
week at ftp://xmlsoft.org/ , I think this got fixed in that release,
and if not I would really like to learn about it,

Daniel

Comment 2 Ned Ulbricht 2002-04-18 13:19:07 UTC
New package libxml2-2.4.20-1.src.rpm builds successfully for me.  
(RH 6.2 + some RH 7.2 build environment).



Supplementary note:

Fix is apparently in python/Makefile.am:
25c25
< libxml2mod_la_LDFLAGS = -module -avoid-version
---
> libxml2mod_la_LDFLAGS = -module -avoid-version -L$(top_builddir)/.libs

    resulting in:
/bin/sh ../libtool --mode=link gcc3  -O2 -mcpu=i486 -Wall  -o libxml2mod.la
-rpath /usr/lib/python1.5/site-packages -module -avoid-version -L../.libs
libxml.lo types.lo libxml2-py.lo ../libxml2.la 

But cf. libtool 1.4 documentation note:
"(1) However, you should avoid using `-L' or `-l' flags to link
against an uninstalled libtool library.  Just specify the relative path
to the `.la' file, such as `../intl/libintl.la'.  This is a design
decision to eliminate any ambiguity when linking against uninstalled
shared libraries."

So, while this issue is resolved for me, I just don't know enough about libtool
internals
to predict what "ambiguity" might do in other configurations.


Comment 3 Daniel Veillard 2002-04-18 13:24:30 UTC
Yes this requires a "not too old" version of libtools.
There is unfortunately now way to keep it working on all libtool versions/
platform combinations. At least for Red Hat Linux this seems to fix the
problem.
I have pushed libxml2-2.4.20 internally so I expect this get solved
in RawHide.
Thanks for the feedback,

Daniel