Something strange is happening. I have the impression that the filelist that is being passed to find-requires and find-provides is not the same as the filelist that eventually builds the package. Let me explain.
The filelist in the .spec file is:
%files -n libdb%{__soversion}
%defattr(-,root,root)
%doc LICENSE README
/%{_lib}/libdb-%{__soversion}.so%{__soversion} expands to "3.3"
the filelist in the package is:
$ rpm -ql libdb3.3 /lib/libdb-3.3.so /usr/share/doc/libdb3.3-3.3.11 /usr/share/doc/libdb3.3-3.3.11/LICENSE /usr/share/doc/libdb3.3-3.3.11/README
These two are correct.
Now, using the test06.sh script on the installed package I get, no output, which is correct --> this package has no (-devel) .so dependencies.
But when I querry the Provides of the package, you can see that "libdb-3.3.so" is Provided, which is NOT correct.
$ rpm -q --provides libdb3.3 db3 = 3.3.11-14mdk libdb-3.3.so libdb3.3 = 3.3.11-14mdk
In the buildoutpu of the package you can see that "Provides: libdb-3.3.so" is found. See: http://eijk.homelinux.org/build/cooker/i586/OK/db3-3.3.11-14mdk
Processing files: libdb3.3-3.3.11-14mdk
Executing(%doc): /bin/sh -e /home/cooker/tmp/rpm-tmp.73100
+ umask 022
+ cd /home/cooker/RPM/BUILD
+ cd db-3.3.11
+ DOCDIR=/home/cooker/tmp/db3-root/usr/share/doc/libdb3.3-3.3.11
+ export DOCDIR
+ rm -rf /home/cooker/tmp/db3-root/usr/share/doc/libdb3.3-3.3.11
+ /bin/mkdir -p /home/cooker/tmp/db3-root/usr/share/doc/libdb3.3-3.3.11
+ cp -pr LICENSE README /home/cooker/tmp/db3-root/usr/share/doc/libdb3.3-3.3.11
+ exit 0
Finding Provides: /usr/lib/rpm/filter.sh ' ' /usr/lib/rpm/find-provides
Using BuildRoot: /home/cooker/tmp/db3-root to search libs
Finding Requires: /usr/lib/rpm/filter.sh ' ' /usr/lib/rpm/find-requires /home/cooker/tmp/db3-root i586
Provides: db3 = 3.3.11-14mdk _libdb-3.3.so
_ Requires(interp): /sbin/ldconfig /sbin/ldconfig
Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.3)
$ ls ~/tmp/db3-root/lib/ -l
total 668
-r-xr-xr-x 1 stefan stefan 679792 Jun 14 14:40 libdb-3.3.so*
lrwxrwxrwx 1 stefan stefan 12 Jun 14 14:40 libdb-3.so -> libdb-3.3.so*
lrwxrwxrwx 1 stefan stefan 12 Jun 14 14:40 libdb.so -> libdb-3.3.so*
The find-provides and find-requires script will skip non-symlink .so$ files. Why is "libdb-3.3.so" still being Provided? Which filelist is _really_ being passed to the find-[provides|requires]?
My only explanation to this is that libdb-3.so and / or libdb.so are in the filelist being passed to find-[provides|requires].
regards,
Stefan
smime.p7s
Description: S/MIME Cryptographic Signature
