#631079 Please build boost.python for pythonX-dbg too

#631079#5
Date:
2011-06-19 23:30:25 UTC
From:
To:
Hi,

I'm working on #628041 [0], building python-libtorrent (python
bindings for libtorrent-rasterbar) for pythonX-dbg.

Unfortunately, those extensions can't actually work:

$ python-dbg -c "import libtorrent"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: /usr/lib/libboost_python-py26.so.1.46.1: undefined symbol: Py_InitModule4_64
[15005 refs]

This error is obliviously due to the fact boost.python is built against
pythonX and not pythonX-dbg. Would it be possible to add such a version
of boost.python (argh, another one!)?

I tested a modified build and it compiles and works fine, please find
attached my patch. It is _very_ imprecise and incomplete, but maybe can
save you a bit of work or give an idea of what is needed. File
debian/rtupdate should be updated too, I just installed the symlinks
manually.

[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628041

Thanks,
--
Cristian Greco
GPG key ID: 0xCF4D32E4

#631079#10
Date:
2011-06-20 02:10:17 UTC
From:
To:
between the python version used to build Boost and the python version used to build
the application -- i.e. python-libtorrent.

I note that python2.6 (2.6.7-1) was recently uploaded.  So first question is: does a
rebuild of python WITHOUT CHANGES fix the problem?


The boost python library references Py_InitModule4_64 but does
not define it:

  $ objdump --demangle -T /usr/lib/libboost_python-py26.so.1.46.1| grep Py_InitModule4_64
  0000000000000000      D  *UND*  0000000000000000              Py_InitModule4_64

The python library defines this symbol:

  $ objdump -T --demangle /usr/lib/libpython2.6.so |grep Py_InitModule4
  000000000010d970 g    DF .text  00000000000002c7  Base        Py_InitModule4_64

Nothing in /usr/share/doc/python2.6-dbg/README.debug suggests it would be needed to
define this symbol.



[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=430659

#631079#15
Date:
2011-06-20 02:53:59 UTC
From:
To:
[ sorry, forgot to add CC ]

On Sun, 19 Jun 2011 21:10:17 -0500 "Steve M. Robbins" <steve@sumost.ca> wrote:

Yeah, you're right, and in this case the application is
python-libtorrent-dbg instead, i.e. the "debug" extension
libtorrent_d.so built for pythonX-dbg, while the current boost.python
library is build (only) for pythonX.
for "standard" extensions. I'm saying that "debug" extensions (those
built for pythonX-dbg) won't work because they link against the current
boost.python library, which is a "standard" build. We should provide
one more version of boost.python built for pythonX-dbg (i.e. a build
with -I/usr/include/pythonX_d and -DPy_DEBUG defined) so that "debug"
extensions can work properly.

There is no need to rebuild anything in the Python package itself
because the "standard" libtorrent extension works fine as usual (no
output):

$ python -c "import libtorrent"
$ python-dbg -c "import libtorrent"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: /usr/lib/libboost_python-py26.so.1.46.1: undefined symbol:
Py_InitModule4_64 [15005 refs]

My patch proposal builds a "debug" libboost_python-py26-dbg.so.1.46.1
which libtorrent_d.so then links against:

$ python-dbg -c "import libtorrent"
[15005 refs]


Thanks,
--
Cristian Greco
GPG key ID: 0xCF4D32E4

#631079#22
Date:
2012-06-10 09:53:47 UTC
From:
To:
Dear submitter,

as the package boost1.46 has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see http://bugs.debian.org/675529

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@debian.org.

Debian distribution maintenance software
pp.
Luca Falavigna (the ftpmaster behind the curtain)