Bug 664570 - rpm misses requires
Summary: rpm misses requires
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: rpm
Version: rawhide
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: ---
Assignee: Panu Matilainen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-12-20 19:42 UTC by Dennis Gilmore
Modified: 2010-12-21 04:58 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-12-21 04:58:59 UTC
Type: ---


Attachments (Terms of Use)

Description Dennis Gilmore 2010-12-20 19:42:39 UTC
[dennis@athosian python-pycurl (master)]$ ldd /usr/lib64/python2.7/site-packages/pycurl.so
	linux-vdso.so.1 =>  (0x00007fff00e64000)
	libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007fef3d3b0000)
	libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007fef3cfde000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fef3cdc1000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fef3ca1d000)
	libidn.so.11 => /lib64/libidn.so.11 (0x00007fef3c7ea000)
	liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007fef3c5dc000)
	libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007fef3c392000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fef3c188000)
	libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fef3bf4e000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fef3bc73000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fef3ba49000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fef3b846000)
	libz.so.1 => /lib64/libz.so.1 (0x00007fef3b62f000)
	libssl3.so => /usr/lib64/libssl3.so (0x00007fef3b3f9000)
	libsmime3.so => /usr/lib64/libsmime3.so (0x00007fef3b1cd000)
	libnss3.so => /usr/lib64/libnss3.so (0x00007fef3ae91000)
	libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007fef3ac71000)
	libplds4.so => /lib64/libplds4.so (0x00007fef3aa6e000)
	libplc4.so => /lib64/libplc4.so (0x00007fef3a86a000)
	libnspr4.so => /lib64/libnspr4.so (0x00007fef3a62c000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fef3a428000)
	libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007fef3a203000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007fef39fff000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fef39d7a000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003865e00000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fef39b5f000)
	libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007fef39944000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fef3973a000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fef39538000)
	libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fef392db000)
	libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fef38f44000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fef38d0c000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fef38aed000)
	libfreebl3.so => /lib64/libfreebl3.so (0x00007fef38889000)
[dennis@athosian python-pycurl (master)]$ rpm -q --requires python-pycurl
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libcurl >= 7.21.1
libcurl.so.4()(64bit)  
libpthread.so.0()(64bit)  
libpython2.7.so.1.0()(64bit)  
python(abi) = 2.7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1
[dennis@athosian python-pycurl (master)]$ 

while the python module in python-pycurl links to lots of different things the rpm doesnt have requires for them. this can result in a non working package if noting else pulls in what is required

rpm should add requires automatically

Comment 1 Panu Matilainen 2010-12-21 04:58:59 UTC
Nope, ldd is just reporting the libraries recursively while rpm only collects the directly linked libraries. Contrast the above with eg

[pmatilai@localhost ~]$ objdump -p /usr/lib64/python2.7/site-packages/pycurl.so|grep NEEDED
  NEEDED               libcurl.so.4
  NEEDED               libpython2.7.so.1.0
  NEEDED               libpthread.so.0
  NEEDED               libc.so.6

Run objdump -p recursively on the above four libraries and everything they link to and you'll get the same list as with ldd.


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