[Fedora-packaging] Missing 'Provides:' from rpmdeps, apparently?

John Pye john.pye at anu.edu.au
Tue Dec 18 03:15:14 UTC 2012


Hi all

It's been a while (a couple of years) since I packaged an RPM, and a few 
things appear to have changed. In particular one thing that has got me 
completely stuck is the automatic dependency tracking, in particular the 
'Provides' tagging doesn't seem to work as expected.

I have a package that installs a shared library in 
/usr/lib64/libfreesteam.so.1, and I want that package to automatically 
be tagged with "Provides: libfreesteam.so.1()(64bit)" however nothing I 
do seems to cause the automatic dependency tracking to create that tag.

If I install my package, and run the following, I get the expected output:

[john at fed17-64 ~]$ rpm -ql freesteam | /bin/sh -c " while read FILE; do 
/usr/lib/rpm/rpmdeps -P ${FILE}; done | /bin/sort -u "
libfreesteam.so.1()(64bit)

But for some reason, while in principle the same thing is being done 
during the package build, the resulting libfreesteam.so.1()(64bit) 
Provides tag does not get generated:

[john at fed17-64 freesteam]$ rpm -p 
/home/john/rpmbuild/RPMS/x86_64/freesteam-2.1-0.f17.x86_64.rpm -q --provides
freesteam = 2.1-0.f17
freesteam(x86-64) = 2.1-0.f17
[john at fed17-64 freesteam]$ rpm -p 
/home/john/rpmbuild/RPMS/x86_64/freesteam-devel-2.1-0.f17.x86_64.rpm -q 
--requires
freesteam = 2.1-0.f17
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libfreesteam.so.1()(64bit)
/usr/bin/env
rpmlib(PayloadIsXz) <= 5.2-1

This of course has the result that my 'devel' package doesn't install 
because it has a dependency on libfreesteam.so.1()(64bit) that it 
doesn't know how to satisfy.

Can anyone set me straight on what is going on here?  (One thing that I 
notice is that shared libraries in Ubuntu use 644 mode, but Fedora 17 
uses 755. But I believe I've corrected for that using %defattr. Also I 
am getting automatically-generated dependencies on /bin/sh and 
/usr/bin/env that I am surprised by)

Cheers
JP

If you want to check out my code, it's here:
http://sourceforge.net/p/freesteam/code/

I use:
sudo yum install gsl-devel scons swig python-devel
scons dist
rpmbuild -ta dist/freesteam-2.1.tar.bz2






More information about the packaging mailing list