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: