[CentOS] Shared object packaging in rpm

Sat Jun 25 09:12:02 UTC 2011
Ned Slider <ned at unixmail.co.uk>

On 25/06/11 10:04, Ned Slider wrote:
> On 25/06/11 02:15, Joseph L. Casale wrote:
>> I whipped up a quick spec to package Zenoss' wmi client and noticed it creates a
>> libasync_wmi_lib.so.0 and libasync_wmi_lib.so.0.0.1 that their python script would
>> otherwise copy during its install routine (obviously I wrote a native rpm section for
>> installation).
>>
>> Anyone know the naming convention associated with so's when they get compiled,
>> what is the .0.1 extra file used for, they are slightly different.
>>
>> Thanks,
>> jlc
>
>
> Some reading for you:
>
> http://www.ibm.com/developerworks/library/l-shobj/
>
> 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.
>

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.