Bug 99295 - Failure to detect shared library dependencies
Summary: Failure to detect shared library dependencies
Keywords:
Status: CLOSED DUPLICATE of bug 99244
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: rpm
Version: 1.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact: Mike McLean
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2003-07-17 05:38 UTC by Nigel Kukard
Modified: 2007-04-18 16:55 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2006-02-21 18:57:05 UTC
Embargoed:


Attachments (Terms of Use)

Description Nigel Kukard 2003-07-17 05:38:14 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030314

Description of problem:
RPM 4.2.1 fails to detect the dependency list of programs which use libraries,
and the library's provide list. IE. libacl provides libacl.so.x.x

Check....   http://www.lbsd.net/~nkukard/bug/

libacl-provides.txt is the provide list i get from  
    rpm -qp --provides libacl.......

readelf-acl.txt is the output i get from 
    readelf -a /usr/lib/libacl.so.1.0.3

samba-requires.txt is the list of requires I get from
    rpm -qp --requires samba.......

smbd-ldd.txt is the output i get from
    ldd /usr/sbin/smbd


I see smbd requires the libacl libraries, I also see that libacl's provides do
not include them.

I have managed to fix this bug if I add the following to
/usr/lib/rpm/find-provides....

--snip--
            objdump -p $f | awk '
BEGIN { START=0 ; }
/Version References:/ { START=1; }
/[:blank:]*0x/ && (START==1) { print $4; }
/^$/ { START=0; }
            ' | \
                grep -v $soname | \
                while read symbol ; do
                    echo "$soname($symbol)`echo $lib64 | sed 's/()//'`"
                done
            objdump -p $f | awk '
                BEGIN { START=0 ; }
                /Version definitions:/ { START=1; print $4; }
                /^[0-9]/ && (START==1) { print $4; }
                /^$/ { START=0; }
            ' | \
                grep -v $soname | \
                while read symbol ; do
                    echo "$soname($symbol)`echo $lib64 | sed 's/()//'`"
                done
--/snip--

this addition at the top correctly creates a usable provide list which satisfies
the requires section. I also disabled the internal dep generator using %define
..... 0. This satisfies our build system but I'm sure it is the incorrect way to
do it.


Regards
Nigel

Version-Release number of selected component (if applicable):
4.2.1

How reproducible:
Always

Steps to Reproduce:
1. Build libacl with either internal dep generator or external
2. Build samba 2.2.8a as above
3. Try install libacl and samba or either/or.

It throws deps not provided.
    

Additional info:

Comment 1 Jeff Johnson 2003-07-17 14:39:37 UTC
Can you supply the packages (URL or pointer preferred)
that you are building? I can't tell what's going on without
seeing how the build is performed. Thanks.

Comment 2 Leonard den Ottolander 2004-04-13 15:38:43 UTC
This is a dup of bug 99244. Closing as such.


*** This bug has been marked as a duplicate of 99244 ***

Comment 3 Red Hat Bugzilla 2006-02-21 18:57:05 UTC
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.


Note You need to log in before you can comment on or make changes to this bug.