Bug#751111: Improper shared lib package (SONAME contains python/tcl/java version)

Mathieu Malaterre malat at debian.org
Tue Jun 10 12:49:59 UTC 2014


Package: libvtk6.1
Version: 6.1.0+dfsg-5
Severity: serious

This package provides 355 shared lib (different SONAME, but SOVERSION
set to the same value). However as per policy:

https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime

[...]
If you have several shared libraries built from the same source tree,
you may lump them all together into a single shared library package
provided that all of their SONAMEs will always change together. Be
aware that this is not normally the case, and if the SONAMEs do not
change together, upgrading such a merged shared library package will
be unnecessarily difficult because of file conflicts with the old
version of the package. When in doubt, always split shared library
packages so that each binary package installs a single shared library.
[...]

For example:

$ readelf -d libvtkImagingColorPython27D-6.1.so.6.1.0

Dynamic section at offset 0xa020 contains 32 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkImagingColor-6.1.so.6.1]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkWrappingPython27Core-6.1.so.6.1]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkImagingCorePython27D-6.1.so.6.1]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkCommonExecutionModelPython27D-6.1.so.6.1]
 0x0000000000000001 (NEEDED)             Shared library: [libpython2.7.so.1.0]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkCommonCore-6.1.so.6.1]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname:
[libvtkImagingColorPython27D-6.1.so.6.1]


Should be removed from the package since the SONAME will change when
python 2.7 will not be the default python version (for example).
Indeed the SONAME contains the Python version (per upstream
convention).

Solution:
Remove python, tcl and java specific binding out of this shared lib package.



More information about the debian-science-maintainers mailing list