Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1021874: python-greenlet: FTBFS with Python 3.11 as a supported version

989 views
Skip to first unread message

Graham Inggs

unread,
Oct 16, 2022, 7:40:03 AM10/16/22
to
Source: python-greenlet
Version: 1.1.2-3
Severity: important
Tags: ftbfs fixed-upstream
User: debian...@lists.debian.org
Usertags: python3.11

Hi Maintainer

python-greenlet will FTBFS once Python 3.11 is added as a supported version.
I've copied what I hope is the relevant part of the log below. This
appears to be fixed in the upstream 1.1.3 release.

Regards
Graham


uilding 'greenlet._greenlet' extension
creating build
creating build/temp.linux-x86_64-3.11
creating build/temp.linux-x86_64-3.11/src
creating build/temp.linux-x86_64-3.11/src/greenlet
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g
-fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv
-O2 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto
-ffat-lto-objects -flto=auto -ffat-lto-objects
-fstack-protector-strong -Wformat -Werror=format-security -Wdate-time
-D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.11 -c
src/greenlet/greenlet.c -o
build/temp.linux-x86_64-3.11/src/greenlet/greenlet.o
In file included from src/greenlet/greenlet.c:11:
src/greenlet/greenlet.h:42:5: error: unknown type name ‘CFrame’
42 | CFrame* cframe;
| ^~~~~~
src/greenlet/greenlet.c: In function ‘green_clear_exc’:
src/greenlet/greenlet.c:173:17: error: ‘_PyErr_StackItem’ {aka ‘struct
_err_stackitem’} has no member named ‘exc_type’
173 | g->exc_state.exc_type = NULL;
| ^
src/greenlet/greenlet.c:175:17: error: ‘_PyErr_StackItem’ {aka ‘struct
_err_stackitem’} has no member named ‘exc_traceback’
175 | g->exc_state.exc_traceback = NULL;
| ^
src/greenlet/greenlet.c: In function ‘g_switchstack’:
src/greenlet/greenlet.c:528:44: error: ‘PyThreadState’ {aka ‘struct
_ts’} has no member named ‘recursion_depth’; did you mean
‘recursion_limit’?
528 | current->recursion_depth = tstate->recursion_depth;
| ^~~~~~~~~~~~~~~
| recursion_limit
src/greenlet/greenlet.c:529:38: error: ‘PyThreadState’ {aka ‘struct
_ts’} has no member named ‘frame’; did you mean ‘cframe’?
529 | current->top_frame = tstate->frame;
| ^~~~~
| cframe
src/greenlet/greenlet.c:552:25: warning: assignment to ‘int *’ from
incompatible pointer type ‘_PyCFrame *’ [-Wincompatible-pointer-types]
552 | current->cframe = tstate->cframe;
| ^
src/greenlet/greenlet.c:577:17: error: ‘PyThreadState’ {aka ‘struct
_ts’} has no member named ‘recursion_depth’; did you mean
‘recursion_limit’?
577 | tstate->recursion_depth = target->recursion_depth;
| ^~~~~~~~~~~~~~~
| recursion_limit
src/greenlet/greenlet.c:578:17: error: ‘PyThreadState’ {aka ‘struct
_ts’} has no member named ‘frame’; did you mean ‘cframe’?
578 | tstate->frame = target->top_frame;
| ^~~~~
| cframe
src/greenlet/greenlet.c:601:24: warning: assignment to ‘_PyCFrame *’
from incompatible pointer type ‘int *’ [-Wincompatible-pointer-types]
601 | tstate->cframe = target->cframe;
| ^
src/greenlet/greenlet.c: In function ‘g_initialstub’:
src/greenlet/greenlet.c:813:5: error: unknown type name ‘CFrame’
813 | CFrame trace_info;
| ^~~~~~
src/greenlet/greenlet.c:857:18: error: incompatible types when
assigning to type ‘int’ from type ‘_PyCFrame’
857 | trace_info = *PyThreadState_GET()->cframe;
| ^
src/greenlet/greenlet.c:864:17: error: request for member ‘previous’
in something not a structure or union
864 | self->cframe->previous = &PyThreadState_GET()->root_cframe;
| ^~
src/greenlet/greenlet.c:878:50: error: ‘PyThreadState’ {aka ‘struct
_ts’} has no member named ‘recursion_depth’; did you mean
‘recursion_limit’?
878 | self->recursion_depth = PyThreadState_GET()->recursion_depth;
| ^~~~~~~~~~~~~~~
| recursion_limit
src/greenlet/greenlet.c: In function ‘green_new’:
src/greenlet/greenlet.c:1018:34: warning: assignment to ‘int *’ from
incompatible pointer type ‘_PyCFrame *’ [-Wincompatible-pointer-types]
1018 | ((PyGreenlet*)o)->cframe = &PyThreadState_GET()->root_cframe;
| ^
In file included from /usr/include/python3.11/Python.h:45,
from src/greenlet/greenlet.h:8:
src/greenlet/greenlet.c: In function ‘green_traverse’:
src/greenlet/greenlet.c:1124:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_type’
1124 | Py_VISIT(self->exc_state.exc_type);
| ^
/usr/include/python3.11/objimpl.h:199:13: note: in definition of macro
‘Py_VISIT’
199 | if (op) {
\
| ^~
In file included from /usr/include/python3.11/Python.h:38:
src/greenlet/greenlet.c:1124:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_type’
1124 | Py_VISIT(self->exc_state.exc_type);
| ^
/usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
24 | #define _Py_CAST(type, expr) ((type)(expr))
| ^~~~
/usr/include/python3.11/objimpl.h:200:30: note: in expansion of macro
‘_PyObject_CAST’
200 | int vret = visit(_PyObject_CAST(op), arg);
\
| ^~~~~~~~~~~~~~
src/greenlet/greenlet.c:1124:5: note: in expansion of macro ‘Py_VISIT’
1124 | Py_VISIT(self->exc_state.exc_type);
| ^~~~~~~~
src/greenlet/greenlet.c:1126:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_traceback’
1126 | Py_VISIT(self->exc_state.exc_traceback);
| ^
/usr/include/python3.11/objimpl.h:199:13: note: in definition of macro
‘Py_VISIT’
199 | if (op) {
\
| ^~
src/greenlet/greenlet.c:1126:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_traceback’
1126 | Py_VISIT(self->exc_state.exc_traceback);
| ^
/usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
24 | #define _Py_CAST(type, expr) ((type)(expr))
| ^~~~
/usr/include/python3.11/objimpl.h:200:30: note: in expansion of macro
‘_PyObject_CAST’
200 | int vret = visit(_PyObject_CAST(op), arg);
\
| ^~~~~~~~~~~~~~
src/greenlet/greenlet.c:1126:5: note: in expansion of macro ‘Py_VISIT’
1126 | Py_VISIT(self->exc_state.exc_traceback);
| ^~~~~~~~
src/greenlet/greenlet.c: In function ‘green_clear’:
src/greenlet/greenlet.c:1162:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_type’
1162 | Py_CLEAR(self->exc_state.exc_type);
| ^
/usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
24 | #define _Py_CAST(type, expr) ((type)(expr))
| ^~~~
/usr/include/python3.11/object.h:581:29: note: in expansion of macro
‘_PyObject_CAST’
581 | PyObject *_py_tmp = _PyObject_CAST(op); \
| ^~~~~~~~~~~~~~
src/greenlet/greenlet.c:1162:5: note: in expansion of macro ‘Py_CLEAR’
1162 | Py_CLEAR(self->exc_state.exc_type);
| ^~~~~~~~
In file included from /usr/include/python3.11/Python.h:44:
src/greenlet/greenlet.c:1162:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_type’
1162 | Py_CLEAR(self->exc_state.exc_type);
| ^
/usr/include/python3.11/object.h:583:14: note: in definition of macro ‘Py_CLEAR’
583 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c:1164:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_traceback’
1164 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
24 | #define _Py_CAST(type, expr) ((type)(expr))
| ^~~~
/usr/include/python3.11/object.h:581:29: note: in expansion of macro
‘_PyObject_CAST’
581 | PyObject *_py_tmp = _PyObject_CAST(op); \
| ^~~~~~~~~~~~~~
src/greenlet/greenlet.c:1164:5: note: in expansion of macro ‘Py_CLEAR’
1164 | Py_CLEAR(self->exc_state.exc_traceback);
| ^~~~~~~~
src/greenlet/greenlet.c:1164:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_traceback’
1164 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/usr/include/python3.11/object.h:583:14: note: in definition of macro ‘Py_CLEAR’
583 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c: In function ‘green_dealloc’:
src/greenlet/greenlet.c:1256:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_type’
1256 | Py_CLEAR(self->exc_state.exc_type);
| ^
/usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
24 | #define _Py_CAST(type, expr) ((type)(expr))
| ^~~~
/usr/include/python3.11/object.h:581:29: note: in expansion of macro
‘_PyObject_CAST’
581 | PyObject *_py_tmp = _PyObject_CAST(op); \
| ^~~~~~~~~~~~~~
src/greenlet/greenlet.c:1256:5: note: in expansion of macro ‘Py_CLEAR’
1256 | Py_CLEAR(self->exc_state.exc_type);
| ^~~~~~~~
src/greenlet/greenlet.c:1256:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_type’
1256 | Py_CLEAR(self->exc_state.exc_type);
| ^
/usr/include/python3.11/object.h:583:14: note: in definition of macro ‘Py_CLEAR’
583 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c:1258:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_traceback’
1258 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
24 | #define _Py_CAST(type, expr) ((type)(expr))
| ^~~~
/usr/include/python3.11/object.h:581:29: note: in expansion of macro
‘_PyObject_CAST’
581 | PyObject *_py_tmp = _PyObject_CAST(op); \
| ^~~~~~~~~~~~~~
src/greenlet/greenlet.c:1258:5: note: in expansion of macro ‘Py_CLEAR’
1258 | Py_CLEAR(self->exc_state.exc_traceback);
| ^~~~~~~~
src/greenlet/greenlet.c:1258:29: error: ‘_PyErr_StackItem’ {aka
‘struct _err_stackitem’} has no member named ‘exc_traceback’
1258 | Py_CLEAR(self->exc_state.exc_traceback);
| ^
/usr/include/python3.11/object.h:583:14: note: in definition of macro ‘Py_CLEAR’
583 | (op) = NULL; \
| ^~
src/greenlet/greenlet.c: In function ‘PyGreenlet_New’:
src/greenlet/greenlet.c:1777:15: warning: assignment to ‘int *’ from
incompatible pointer type ‘_PyCFrame *’ [-Wincompatible-pointer-types]
1777 | g->cframe = &PyThreadState_GET()->root_cframe;
| ^
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
E: pybuild pybuild:379: build: plugin distutils failed with: exit
code=1: /usr/bin/python3.11 setup.py build

Thomas Goirand

unread,
Oct 18, 2022, 8:40:04 AM10/18/22
to
FYI, this is fixed if upgrading to upstream release 1.1.3.

Cheers,

Thomas Goirand (zigo)

Graham Inggs

unread,
Oct 19, 2022, 10:30:04 AM10/19/22
to
Control: affects -1 + src:sqlalchemy

This can be verified by installing python3.11 from testing or unstable
and adding the following line to debian/rules:
export DEBPYTHON3_SUPPORTED=3.10,3.11

This affects at least sqlalchemy in dependency level 3 of the Python
3.11 transition (#1021984).
0 new messages