This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 99244 - Failure to detect shared library dependencies
Failure to detect shared library dependencies
Status: CLOSED CURRENTRELEASE
Product: Red Hat Raw Hide
Classification: Retired
Component: rpm (Show other bugs)
1.0
All Linux
medium Severity medium
: ---
: ---
Assigned To: Paul Nasrat
Mike McLean
:
: 99295 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2003-07-16 11:32 EDT by Nigel Kukard
Modified: 2007-04-18 12:55 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-04-19 15:01:24 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
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-16 11:32:53 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
/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 19:29:26 EDT
Can you supply the actual packages you are using? Otherwise
it's difficult to figure exactly what needs doing. Thanks.
Comment 2 Leonard den Ottolander 2004-04-13 11:38:47 EDT
*** Bug 99295 has been marked as a duplicate of this bug. ***
Comment 3 Jeremy Katz 2005-04-19 15:01:24 EDT
Closing due to inactivity.  If this still occurs with current releases, please
reopen with further information.

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