RPM Help Needed

Matthias Andree matthias.andree at gmx.de
Wed Dec 31 10:59:52 CET 2003


On Wed, 31 Dec 2003, Matthias Andree wrote:

> On Tue, 30 Dec 2003, David Relson wrote:
> 
> > Can a requires say "db3 >= 3.3 or db4 >= 4.1" ?
> 
> It can, but it won't work. Please list the exact version of your data
> base library as such, which is portable unless some debile packager
> renames the library (FreeBSD do):
> 
> Requires: libdb-4.1.so

Oh, and no ">=" or "<=" games for libdb please - it won't work, the
SONAME is different so the linker will not find the library. Coercion
through LD_PRELOAD or such will also fails as the ABI is different,
distributors use --with-uniquename to that large applications can
(indirectly) link different BerkeleyDB versions, for instance, use 4.2
natively while relying on some authorization checker (password stuff)
that pulls 3.3 in by itself.

Remember, to find out the SONAME, you can use either

readelf -d libdb.so | grep SONAME

or

objdump -p libdb.so | grep SONAME

(cd to the library directory first). The SONAME is what is given in RPM
Requires: lines, by convention, and is what the RPM find-requires
scripts would pull out for libraries (find-requires actually runs ldd on
all dynamically linked executables).

-- 
Matthias Andree

Encrypt your mail: my GnuPG key ID is 0x052E7D95




More information about the Bogofilter mailing list