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

Reply via email to