Source: asyncpg
Version: 0.29.0-1
Severity: normal
User: debian-pyt...@lists.debian.org
Usertags: python3.13
Forwarded: https://github.com/MagicStack/asyncpg/issues/1181

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.

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

Log snippet:

running build_ext
building 'asyncpg.pgproto.pgproto' extension
creating build/temp.linux-aarch64-cpython-312
creating build/temp.linux-aarch64-cpython-312/asyncpg
creating build/temp.linux-aarch64-cpython-312/asyncpg/pgproto
aarch64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall 
-g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC 
-Iasyncpg/pgproto -I/usr/include/python3.12 -c asyncpg/pgproto/pgproto.c -o 
build/temp.linux-aarch64-cpython-312/asyncpg/pgproto/pgproto.o -O2 
-fsigned-char -Wall -Wsign-compare -Wconversion
asyncpg/pgproto/pgproto.c: In function ‘__Pyx_PyLong_AbsNeg’:
asyncpg/pgproto/pgproto.c:46886:97: warning: unsigned conversion from ‘int’ to 
‘uintptr_t’ {aka ‘long unsigned int’} changes value from ‘-4’ to 
‘18446744073709551612’ [-Wsign-conversion]
46886 |             ((PyLongObject*)copy)->long_value.lv_tag = 
((PyLongObject*)copy)->long_value.lv_tag & ~_PyLong_SIGN_MASK;
      |                                                                         
                        ^
asyncpg/pgproto/pgproto.c: At top level:
asyncpg/pgproto/pgproto.c:30439:18: warning: 
‘__pyx_f_7asyncpg_7pgproto_7pgproto_json_decode’ defined but not used 
[-Wunused-function]
30439 | static PyObject *__pyx_f_7asyncpg_7pgproto_7pgproto_json_decode(struct 
__pyx_obj_7asyncpg_7pgproto_7pgproto_CodecContext *__pyx_v_settings, struct 
__pyx_t_7asyncpg_7pgproto_7pgproto_FRBuffer *__pyx_v_buf) {
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asyncpg/pgproto/pgproto.c:30323:18: warning: 
‘__pyx_f_7asyncpg_7pgproto_7pgproto_json_encode’ defined but not used 
[-Wunused-function]
30323 | static PyObject *__pyx_f_7asyncpg_7pgproto_7pgproto_json_encode(struct 
__pyx_obj_7asyncpg_7pgproto_7pgproto_CodecContext *__pyx_v_settings, struct 
__pyx_obj_7asyncpg_7pgproto_7pgproto_WriteBuffer *__pyx_v_buf, PyObject 
*__pyx_v_obj) {
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g 
-fwrapv -O2 -Wl,-z,relro -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 
build/temp.linux-aarch64-cpython-312/asyncpg/pgproto/pgproto.o 
-L/usr/lib/aarch64-linux-gnu -o 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_asyncpg/build/asyncpg/pgproto/pgproto.cpython-312-aarch64-linux-gnu.so
building 'asyncpg.protocol.protocol' extension
creating build/temp.linux-aarch64-cpython-312/asyncpg/protocol
creating build/temp.linux-aarch64-cpython-312/asyncpg/protocol/record
aarch64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall 
-g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC 
-Iasyncpg/pgproto -Iasyncpg/pgproto/ -I/usr/include/python3.12 -c 
asyncpg/protocol/protocol.c -o 
build/temp.linux-aarch64-cpython-312/asyncpg/protocol/protocol.o -O2 
-fsigned-char -Wall -Wsign-compare -Wconversion
asyncpg/protocol/protocol.c: In function ‘__Pyx_PyUnicode_AsDouble_WithSpaces’:
asyncpg/protocol/protocol.c:4241:58: warning: conversion to ‘long unsigned int’ 
from ‘Py_ssize_t’ {aka ‘long int’} may change the sign of the result 
[-Wsign-conversion]
 4241 |         char *number = (char*) PyMem_Malloc((length + 1) * 
sizeof(char));
      |                                                          ^
asyncpg/protocol/protocol.c: In function ‘__Pyx__PyBytes_AsDouble’:
asyncpg/protocol/protocol.c:108581:58: warning: conversion to ‘long unsigned 
int’ from ‘Py_ssize_t’ {aka ‘long int’} may change the sign of the result 
[-Wsign-conversion]
108581 |         char *number = (char*) PyMem_Malloc((digits + 1) * 
sizeof(char));
       |                                                          ^
aarch64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall 
-g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC 
-Iasyncpg/pgproto -Iasyncpg/pgproto/ -I/usr/include/python3.12 -c 
asyncpg/protocol/record/recordobj.c -o 
build/temp.linux-aarch64-cpython-312/asyncpg/protocol/record/recordobj.o -O2 
-fsigned-char -Wall -Wsign-compare -Wconversion
asyncpg/protocol/record/recordobj.c: In function ‘record_dealloc’:
asyncpg/protocol/record/recordobj.c:101:5: warning: 
‘UsingDeprecatedTrashcanMacro’ is deprecated [-Wdeprecated-declarations]
  101 |     Py_TRASHCAN_SAFE_BEGIN(o)
      |     ^~~~~~~~~~~~~~~~~~~~~~
aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g 
-fwrapv -O2 -Wl,-z,relro -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 
build/temp.linux-aarch64-cpython-312/asyncpg/protocol/protocol.o 
build/temp.linux-aarch64-cpython-312/asyncpg/protocol/record/recordobj.o 
-L/usr/lib/aarch64-linux-gnu -o 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_asyncpg/build/asyncpg/protocol/protocol.cpython-312-aarch64-linux-gnu.so
dh_auto_build: error: pybuild --build -i python{version} -p "3.13 3.12" 
returned exit code 13
make: *** [debian/rules:8: binary-arch] Error 25
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit 
status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-17T07:06:45Z


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

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

Reply via email to