[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

W: dh_python2:427: public extension linked with libpython2.7: libvtkgdcmPython.so



[CC me please]

Hi there,

  I am looking for more information about [1] and [2]. Here is my
current issue. GDCM ships a python module which in turn links to a
shared libs. It looks like this:

$ readelf -d /usr/lib/pyshared/python2.7/libvtkgdcmPython.so

Dynamic section at offset 0x1de0 contains 26 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkgdcmPythonD.so.2.2]
 0x0000000000000001 (NEEDED)             Shared library: [libpython2.7.so.1.0]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]

As one can see above, there is no *explicit* linking to
libpythonX.Y.so as per python module policy in debian. However it
turns nasty when one look at libvtkgdcmPythonD.so.2.2:

$ readelf -d /usr/lib/libvtkgdcmPythonD.so.2.2

Dynamic section at offset 0x37d38 contains 34 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libvtkgdcm.so.2.2]
 0x0000000000000001 (NEEDED)             Shared library: [libpython2.7.so.1.0]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkCommonPythonD.so.5.8]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkIOPythonD.so.5.8]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkImagingPythonD.so.5.8]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkFilteringPythonD.so.5.8]
 0x0000000000000001 (NEEDED)             Shared library:
[libvtkPythonCore.so.5.8]
 0x0000000000000001 (NEEDED)             Shared library: [libvtkCommon.so.5.8]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname:
[libvtkgdcmPythonD.so.2.2]


dh_python2 is obviously looking into transitive linking and reports
that libvtkgdcmPython.so actually links to libpython2.7.so.1.0 which
is a illegal as per policy.

Reading the policy this is not clear how bad this linking is. What are
the possible issues in doing so ? Please note that, I cannot simply
remove the linking to libpython2.7.so.1.0, since
libvtkgdcmPythonD.so.2.2  is a shared lib and thus required full
resolution of all symbols including those:

$ nm -D /usr/lib/libvtkgdcmPythonD.so.2.2
                 U PyFloat_FromDouble
                 U PyInt_FromLong
                 U PyLong_FromLongLong
                 U PyLong_FromUnsignedLong
                 U PyString_FromString
                 U Py_FatalError
                 U Py_InitModule4_64
                 U _Py_NoneStruct

does anyone in which case this could be causing some troubles ?
multi-arch python install ? multi-python installation ?...

thanks much for inputs !

[1] http://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages.html
[2] http://bugs.debian.org/592414


Reply to: