[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