Bug 99295 - Failure to detect shared library dependencies
Failure to detect shared library dependencies
Status: CLOSED DUPLICATE of bug 99244
Product: Red Hat Raw Hide
Classification: Retired
Component: rpm (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jeff Johnson
Mike McLean
Depends On:
  Show dependency treegraph
Reported: 2003-07-17 01:38 EDT by Nigel Kukard
Modified: 2007-04-18 12:55 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-02-21 13:57:05 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Nigel Kukard 2003-07-17 01:38:14 EDT
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

            objdump -p $f | awk '
/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/()//'`"
            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/()//'`"

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.


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

How reproducible:

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 10:39:37 EDT
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 11:38:43 EDT
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 13:57:05 EST
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.