On Fri, May 15, 2020 at 02:12:00PM -0400, Charalampos Stratakis wrote:
Hello everyone,
As of Python 3.8, python C extensions modules should not link to libpython, unless they
embed the interpreter in their code. Relevant upstream PR:
https://github.com/python/cpython/pull/12946
If your package links to libpython without requiring it, it won't be possible to use
the python3-debug binary with your python C extension, unless you recompile the extension
against it.
On Fedora Rawhide, there are at this point 144 packages linking to libpython, many of
those possibly without any need for it.
If your package links to libpython but it does not embed the interpreter, I would like to
ask you to unlink it. Usually the fix needs to be done at the package's build system.
If you are not sure if your package links to libpython, a way to figure this out is to
inspect the code for the Py_Initialize and the Py_Finalize calls [0]. If the code includes
those calls, no action is required from your side. If it does not, linking to libpython is
not required.
I might mass file bugzillas at a later date, but I wanted to provide you the heads up
before that.
[0]
https://docs.python.org/3/c-api/init.html#initializing-and-finalizing-the...
List of possibly affected packages, provided through $ repoquery --repo=rawhide --source
--whatrequires 'libpython3.8.so.1.0()(64bit)'
Maintainers by package:
...snip...
kevin calibre collectd fontforge thunarx-python
calibre has Py_Initialize / Py_Finalize.
collectd has Py_Initialize / Py_Finalize.
fontforge has Py_Initialize / Py_Finalize.
thunarx-python has Py_Initialize / Py_Finalize.
I assume you all are keeping a whitelist or something for this?
(so you don't file bugs on the ones already checked).
Thanks for the notice!
kevin