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

How to enable Python3 for python-freecontact



Hi,

as far as I read the docs python-freecontact[1] works with Python3.  The
former maintainer left the line

  ### once libboost-python-dev will be provided for Python3

in d/rules and since I've found

libboost-python1.62.0: /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.62.0
libboost-python1.62.0: /usr/lib/x86_64-linux-gnu/libboost_python-py36.so.1.62.0
libboost-python1.63.0: /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.63.0
libboost-python1.63.0: /usr/lib/x86_64-linux-gnu/libboost_python-py36.so.1.63.0

(missing py37 - but that's not the point for the moment) I tried to
activate this.  When I tried to run the test suite it turned out that
the Python3 3.6 module is linked as follows:

$ ldd /usr/lib/python3/dist-packages/freecontact.cpython-36m-x86_64-linux-gnu.so | grep boost
        libboost_python-py27.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.62.0 (0x00007f09c84a8000)

The cause for this becomes obvious in

$ grep -- "-lfreecontact -lboost_python" python-freecontact_1.1-3_amd64.build 
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-jgBwco/python2.7-2.7.15=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -g -O2 -fdebug-prefix-map=/build/python-freecontact-1.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-2.7/src/freecontact.o -lfreecontact -lboost_python -o /build/python-freecontact-1.1/.pybuild/cpython2_2.7_freecontact/build/freecontact.so
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -g -O2 -fdebug-prefix-map=/build/python-freecontact-1.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-3.7/src/freecontact.o -lfreecontact -lboost_python -o /build/python-freecontact-1.1/.pybuild/cpython3_3.7_freecontact/build/freecontact.cpython-37m-x86_64-linux-gnu.so
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -g -O2 -fdebug-prefix-map=/build/python-freecontact-1.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-3.6/src/freecontact.o -lfreecontact -lboost_python -o /build/python-freecontact-1.1/.pybuild/cpython3_3.6_freecontact/build/freecontact.cpython-36m-x86_64-linux-gnu.so

and

$ readlink /usr/lib/x86_64-linux-gnu/libboost_python.so
libboost_python-py27.so

So I need to find some way thet the library linker flag is not
-lboost_python but rather  -lboost_python-${PYVERSION}.  When looking
at setup.py it says:


            libraries = ['freecontact', 'boost_python'])]


Is there any way to have different library sections in setup.py
to accomplish version specific libraries linked?

Kind regards

        Andreas.


[1] https://salsa.debian.org/med-team/python-freecontact

-- 
http://fam-tille.de


Reply to: