[CentOS] Shared object packaging in rpm

Sat Jun 25 18:58:30 UTC 2011
Joseph L. Casale <jcasale at activenetwerx.com>

>> http://www.ibm.com/developerworks/library/l-shobj/

Thanks, that was informative.

>> As Ljubomir said, libasync_wmi_lib.so.0 will be a symlink to
>> libasync_wmi_lib.so.0.0.1. You can use objdump to find the soname(s) for
>> shared objects, e.g:
>>
>> objdump -p /path/to/libasync_wmi_lib.so.0.0.1 | grep SONAME
>>
>> or just run ldconfig against them and observe what symlinks are created.

They are actually not symlinked, they are different sizes but objdump does
suggest the SONAME is libasync_wmi_lib.so.0 for both? The odd part is ldd
ran against the two binaries produced from the package (samba portion) only
need glibc and popt libraries. The actual python stub that kicks off the make
and install portions manually copies the binaries into a logical place, yet copies
the so's into a lib/python directory under some user chosen prefix beside a
pysamba module package in that directory. Looking through its code, it attempts
to locate these libraries so unless I plan on leveraging some python I presume
I can package away without any of this.

>I forgot to say, wrt packaging, you should create the symlink(s) in the 
>buildroot so that they are packaged rather than just running ldconfig in 
>%post. That way, the symlinks are owned by the rpm package and won't be 
>left dangling when the package is uninstalled.

That's another good point I'll keep in mind!

All this has been informative, thanks a lot guys,
jlc