Bug#1082128: python-thinc FTBFS with Python 3.13

Stefano Rivera stefanor at debian.org
Wed Sep 18 17:43:43 BST 2024


Source: python-thinc
Version: 9.0.0-2
Severity: normal
User: debian-python at lists.debian.org
Usertags: python3.13

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

In this case, the problem is presumably being stuck on cython3-legacy,
which doesn't support Python 3.13. It needs to get onto current cython.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

building 'thinc.backends.cblas' extension
creating build/temp.linux-aarch64-cpython-313
creating build/temp.linux-aarch64-cpython-313/thinc
creating build/temp.linux-aarch64-cpython-313/thinc/backends
aarch64-linux-gnu-g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/lib/python3/dist-packages/numpy/core/include -I/usr/include/python3.13 -I/usr/include/python3.13 -c thinc/backends/cblas.cpp -o build/temp.linux-aarch64-cpython-313/thinc/backends/cblas.o -O3 -Wno-strict-prototypes -Wno-unused-function -std=c++11
cc1plus: warning: command-line option ‘-Wno-strict-prototypes’ is valid for C/ObjC but not for C++
thinc/backends/cblas.cpp:871:72: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations]
  871 | static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
      |                                                                        ^
In file included from /usr/include/python3.13/unicodeobject.h:1014,
                 from /usr/include/python3.13/Python.h:75,
                 from thinc/backends/cblas.cpp:24:
/usr/include/python3.13/cpython/unicodeobject.h:10:37: note: declared here
   10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
      |                                     ^~~~~~~~~~
thinc/backends/cblas.cpp: In function ‘size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE*)’:
thinc/backends/cblas.cpp:872:23: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations]
  872 |     const Py_UNICODE *u_end = u;
      |                       ^~~~~
/usr/include/python3.13/cpython/unicodeobject.h:10:37: note: declared here
   10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
      |                                     ^~~~~~~~~~
thinc/backends/cblas.cpp: In function ‘int __Pyx_PyList_Extend(PyObject*, PyObject*)’:
thinc/backends/cblas.cpp:1938:22: error: ‘_PyList_Extend’ was not declared in this scope; did you mean ‘PyList_Extend’?
 1938 |     PyObject* none = _PyList_Extend((PyListObject*)L, v);
      |                      ^~~~~~~~~~~~~~
      |                      PyList_Extend
thinc/backends/cblas.cpp: In function ‘void __Pyx_init_assertions_enabled()’:
thinc/backends/cblas.cpp:1976:39: error: ‘_PyInterpreterState_GetConfig’ was not declared in this scope; did you mean ‘PyInterpreterState_GetID’?
 1976 |     __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level;
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                       PyInterpreterState_GetID
thinc/backends/cblas.cpp: In function ‘int __Pyx_PyInt_As_int(PyObject*)’:
thinc/backends/cblas.cpp:20689:46: error: too few arguments to function ‘int _PyLong_AsByteArray(PyLongObject*, unsigned char*, size_t, int, int, int)’
20689 |                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
      |                           ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
20690 |                                               bytes, sizeof(val),
      |                                               ~~~~~~~~~~~~~~~~~~~
20691 |                                               is_little, !is_unsigned);
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/python3.13/longobject.h:107,
                 from /usr/include/python3.13/Python.h:77:
/usr/include/python3.13/cpython/longobject.h:111:17: note: declared here
  111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
      |                 ^~~~~~~~~~~~~~~~~~~
thinc/backends/cblas.cpp: In function ‘long int __Pyx_PyInt_As_long(PyObject*)’:
thinc/backends/cblas.cpp:20885:46: error: too few arguments to function ‘int _PyLong_AsByteArray(PyLongObject*, unsigned char*, size_t, int, int, int)’
20885 |                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
      |                           ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
20886 |                                               bytes, sizeof(val),
      |                                               ~~~~~~~~~~~~~~~~~~~
20887 |                                               is_little, !is_unsigned);
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.13/cpython/longobject.h:111:17: note: declared here
  111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
      |                 ^~~~~~~~~~~~~~~~~~~
thinc/backends/cblas.cpp: In function ‘char __Pyx_PyInt_As_char(PyObject*)’:
thinc/backends/cblas.cpp:21157:46: error: too few arguments to function ‘int _PyLong_AsByteArray(PyLongObject*, unsigned char*, size_t, int, int, int)’
21157 |                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
      |                           ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
21158 |                                               bytes, sizeof(val),
      |                                               ~~~~~~~~~~~~~~~~~~~
21159 |                                               is_little, !is_unsigned);
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.13/cpython/longobject.h:111:17: note: declared here
  111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
      |                 ^~~~~~~~~~~~~~~~~~~
error: command '/usr/bin/aarch64-linux-gnu-g++' failed with exit code 1

ERROR Backend subprocess exited when trying to invoke build_wheel

If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/776079/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano



More information about the debian-science-maintainers mailing list