[vtk-developers] Version number in library filenames

Marcus D. Hanwell marcus.hanwell at kitware.com
Mon Apr 9 16:27:05 EDT 2012


On Mon, Apr 9, 2012 at 4:20 PM, Brad King <brad.king at kitware.com> wrote:
> On 4/9/2012 4:09 PM, Pat Marion wrote:
>>
>> Hi,
>>
>> The new build system introduces changes the naming convention of VTK
>> libraries.
>>
>> Previously, libraries were installed to "lib/vtk-5.9" and had the names:
>>
>> libvtkCommon.so  -> libvtkCommon.so.5.9
>> libvtkCommon.so.5.9 -> libvtkCommon.so.5.9.0
>> libvtkCommon.so.5.9.0
>>
>> Now, libraries are installed to "lib" and have the names:
>>
>> libvtkCommonCore-6.0.so <http://libvtkCommonCore-6.0.so> ->
>> libvtkCommonCore-6.0.so.1
>>
>> libvtkCommonCore-6.0.so.1
>>
>>
>> I just wanted to post this email so this change gains some visibility.
>> I understand that the new convention follows what has been done with ITK.
>
>
> Correct.  This allows installation into $prefix/lib so that someone with
> LD_LIBRARY_PATH=$prefix/lib set can run without RPATHs.  Also the version
> number belongs in the library name rather than the soname because VTK's
> version numbers do not follow any dynamic loader conventions for ABI
> compatibility.  Each major.minor version is its own distinct interface.
>
For Linux packaging this would just require that VTK bump the SO
number every release, to indicate a break in the ABI. I think it would
be helpful for packagers, who do not seem to be supporting multiple
VTK versions with their package managers, to more closely follow
standard practices.

We could introduce an advanced option to remove versioning from
include directories, library names etc. It is clear that many
packagers choose to do the same with Boost despite them following a
similar pattern of adding version numbers to include paths etc.

My $0.02 as a Gentoo packager/Arch user.

Marcus



More information about the vtk-developers mailing list