Source: py-libzfs Version: 0.0+git20240510.5ae7d5e-1 Severity: normal User: debian-pyt...@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. What's new in Python 3.13: https://docs.python.org/3.13/whatsnew/3.13.html The issue here is that cython < 3 doesn't support 3.13. We need to get this package off cython-legacy and onto a current version of cython, that can support 3.13. Log snippet: creating build/temp.linux-aarch64-cpython-313 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 -Wno-unused-value -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.13 -c libzfs.c -o build/temp.linux-aarch64-cpython-313/libzfs.o -DCYTHON_FALLTHROUGH -I/usr/include/libzfs -I/usr/include/libspl -D_MACHINE_ENDIAN_H_ -DHAVE_ISSETUGID -D_GNU_SOURCE -Werror=implicit-function-declaration -Wdate-time -D_FORTIFY_SOURCE=2 libzfs.c:840:1: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations] 840 | static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { | ^~~~~~ libzfs.c: In function ‘__Pyx_Py_UNICODE_strlen’: libzfs.c:841:5: warning: ‘Py_UNICODE’ is deprecated [-Wdeprecated-declarations] 841 | const Py_UNICODE *u_end = u; | ^~~~~ libzfs.c: In function ‘__Pyx_PyList_Extend’: libzfs.c:2572:22: error: implicit declaration of function ‘_PyList_Extend’; did you mean ‘PyList_Extend’? [-Wimplicit-function-declaration] 2572 | PyObject* none = _PyList_Extend((PyListObject*)L, v); | ^~~~~~~~~~~~~~ | PyList_Extend libzfs.c:2572:22: error: initialization of ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] libzfs.c: In function ‘__Pyx_init_assertions_enabled’: libzfs.c:2762:39: error: implicit declaration of function ‘_PyInterpreterState_GetConfig’; did you mean ‘PyInterpreterState_GetID’? [-Wimplicit-function-declaration] 2762 | __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | PyInterpreterState_GetID libzfs.c:2762:105: error: invalid type argument of ‘->’ (have ‘int’) 2762 | __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level; | ^~ libzfs.c: In function ‘__pyx_pf_6libzfs_10ZFSDataset_12destroy_snapshot’: libzfs.c:85115:85: warning: passing argument 2 of ‘zfs_destroy_snaps’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 85115 | __pyx_v_ret = zfs_destroy_snaps(__pyx_v_self->__pyx_base.__pyx_base.handle, __pyx_v_c_name, __pyx_v_defer_deletion); | ^~~~~~~~~~~~~~ In file included from libzfs.c:750: /usr/include/libzfs/libzfs.h:729:49: note: expected ‘char *’ but argument is of type ‘const char *’ 729 | _LIBZFS_H int zfs_destroy_snaps(zfs_handle_t *, char *, boolean_t); | ^~~~~~ libzfs.c: In function ‘__pyx_pymod_exec_libzfs’: libzfs.c:2842:38: error: implicit declaration of function ‘_PyDict_SetItem_KnownHash’; did you mean ‘_PyDict_GetItem_KnownHash’? [-Wimplicit-function-declaration] 2842 | (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) | ^~~~~~~~~~~~~~~~~~~~~~~~~ libzfs.c:107672:7: note: in expansion of macro ‘__Pyx_SetNameInClass’ 107672 | if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyUnicode_Join’: libzfs.c:114927:13: error: implicit declaration of function ‘_PyUnicode_FastCopyCharacters’; did you mean ‘PyUnicode_CopyCharacters’? [-Wimplicit-function-declaration] 114927 | _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | PyUnicode_CopyCharacters libzfs.c: In function ‘__Pyx_PyIter_Next2’: libzfs.c:116620:35: error: ‘_PyObject_NextNotImplemented’ undeclared (first use in this function); did you mean ‘PyObject_HashNotImplemented’? 116620 | if (unlikely(iternext == &_PyObject_NextNotImplemented)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libzfs.c:950:43: note: in definition of macro ‘unlikely’ 950 | #define unlikely(x) __builtin_expect(!!(x), 0) | ^ libzfs.c:116620:35: note: each undeclared identifier is reported only once for each function it appears in 116620 | if (unlikely(iternext == &_PyObject_NextNotImplemented)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ libzfs.c:950:43: note: in definition of macro ‘unlikely’ 950 | #define unlikely(x) __builtin_expect(!!(x), 0) | ^ libzfs.c: In function ‘__Pyx_PyInt_As_int’: libzfs.c:117547:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 117547 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ In file included from /usr/include/python3.13/longobject.h:107, from /usr/include/python3.13/Python.h:77, from libzfs.c:6: /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_char’: libzfs.c:117743:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 117743 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_zprop_source_t’: libzfs.c:117977:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 117977 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_size_t’: libzfs.c:118173:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 118173 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_boolean_t’: libzfs.c:118787:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 118787 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_long’: libzfs.c:118983:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 118983 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_data_type_t’: libzfs.c:119407:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 119407 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_uint8_t’: libzfs.c:119641:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 119641 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_int8_t’: libzfs.c:119837:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 119837 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_uint16_t’: libzfs.c:120033:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 120033 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_int16_t’: libzfs.c:120229:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 120229 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_uint32_t’: libzfs.c:120425:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 120425 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_int32_t’: libzfs.c:120621:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 120621 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_uint64_t’: libzfs.c:120817:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 120817 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_int64_t’: libzfs.c:121013:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 121013 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_zfs_type_t’: libzfs.c:121247:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 121247 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_vdev_aux_t’: libzfs.c:121557:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 121557 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_vdev_state_t’: libzfs.c:121753:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 121753 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_zpool_wait_activity_t’: libzfs.c:121949:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 121949 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyInt_As_zfs_userquota_prop_t’: libzfs.c:122145:27: error: too few arguments to function ‘_PyLong_AsByteArray’ 122145 | int ret = _PyLong_AsByteArray((PyLongObject *)v, | ^~~~~~~~~~~~~~~~~~~ /usr/include/python3.13/cpython/longobject.h:111:17: note: declared here 111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, | ^~~~~~~~~~~~~~~~~~~ libzfs.c: In function ‘__Pyx_PyGen_Send’: libzfs.c:122428:13: error: implicit declaration of function ‘_PyGen_SetStopIterationValue’; did you mean ‘__Pyx_PyGen__FetchStopIterationValue’? [-Wimplicit-function-declaration] 122428 | _PyGen_SetStopIterationValue(result); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | __Pyx_PyGen__FetchStopIterationValue error: command '/usr/bin/aarch64-linux-gnu-gcc' failed with exit code 1 E: pybuild pybuild:389: build: plugin distutils failed with: exit code=1: /usr/bin/python3.13 setup.py build If required, the full build log is available here (for the next 30 days): https://debusine.debian.net/artifact/797867/ 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