[OpenAFS-devel] shared lib question openafs-1.3.85 x86_64
David Thompson
thomas@cs.wisc.edu
Wed, 27 Jul 2005 12:39:32 -0500
I've built openafs-1.3.85 for Centos 4 (think RHEL 4) x86_64. I have a
quesiton about the shared library dependencies on libafsauthent.so.1.0. I see:
% ldd libafsauthent.so.1.0
libafsrpc.so => /usr/afsws/lib/libafsrpc.so (0x0000002a956ac000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a95806000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a9591b000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
I think the rpc library should be versioned in this case (libafsrpc.so.1.0)
instead of generic (libafsrpc.so).
The issue comes up because RPM is puking on the package that includes this
library. The RPM that includes the libraries doesn't label the symlink
(libafsrpc.so) to be a 64-bit library, only the actual library:
% rpm -q --provides -p openafs-1.3.85-1.x86_64.rpm
libafsauthent.so
libafsauthent.so.1.0()(64bit)
libafsrpc.so
libafsrpc.so.1.0()(64bit)
openafs
openafs = 1.3.85-1
The result is that RPM claims failed dependencies because it requires a 64-bit
libafsrpc.so and only an unlabeled libafsrpc.so is provided:
% rpm -qRp /usr/src/redhat/RPMS/x86_64/openafs-1.3.85-1.x86_64.rpm | grep rpc
libafsrpc.so()(64bit)
I can get around the RPM problem by including:
Provides: libafsrpc.so()(64bit)
Provides: libafsauthent.so()(64bit)
in the spec file, but as far as correctness is concerned, it seems that
libafsauthent.so.1.0 should want a versioned, as opposed to generic,
libafsrpc.so
Cheers,
Dave Thompson