hzeller / rpi-rgb-led-matrix

Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO
GNU General Public License v2.0
3.66k stars 1.16k forks source link

Python bindings no longer build with 3.12 #1671

Closed 4censord closed 2 months ago

4censord commented 3 months ago

When trying to build the python buildings with python3.12, one gets the following errors

The build errorma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1336:43: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1336 | (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:3148:5: note: in expansion of macro ‘__Pyx_GetModuleGlobalName’ 3148 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Canvas); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/python3.12/dictobject.h:90, from /usr/include/python3.12/Python.h:64, from rgbmatrix/core.cpp:6: /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1336:43: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1336 | (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:3148:5: note: in expansion of macro ‘__Pyx_GetModuleGlobalName’ 3148 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Canvas); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1336:43: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1336 | (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:3148:5: note: in expansion of macro ‘__Pyx_GetModuleGlobalName’ 3148 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Canvas); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1336:43: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1336 | (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:3194:5: note: in expansion of macro ‘__Pyx_GetModuleGlobalName’ 3194 | __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Canvas); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1336:43: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1336 | (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:3194:5: note: in expansion of macro ‘__Pyx_GetModuleGlobalName’ 3194 | __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Canvas); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1336:43: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1336 | (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:3194:5: note: in expansion of macro ‘__Pyx_GetModuleGlobalName’ 3194 | __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Canvas); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘void __Pyx_Raise(PyObject*, PyObject*, PyObject*, PyObject*)’: rgbmatrix/core.cpp:10202:36: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’ 10202 | PyObject* tmp_tb = tstate->curexc_traceback; | ^~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:10205:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’ 10205 | tstate->curexc_traceback = tb; | ^~~~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘int __Pyx_PyUnicode_Equals(PyObject*, PyObject*, int)’: rgbmatrix/core.cpp:523:51: error: ‘_PyUnicode_Ready’ was not declared in this scope; did you mean ‘PyUnicode_READY’? 523 | 0 : _PyUnicode_Ready((PyObject *)(op))) | ^~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:906:43: note: in definition of macro ‘unlikely’ 906 | #define unlikely(x) __builtin_expect(!!(x), 0) | ^ rgbmatrix/core.cpp:10440:22: note: in expansion of macro ‘__Pyx_PyUnicode_READY’ 10440 | if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) | ^~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘uint64_t __Pyx_get_tp_dict_version(PyObject*)’: rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:10988:27: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 10988 | return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:10988:27: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 10988 | return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:10988:27: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 10988 | return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘uint64_t __Pyx_get_object_dict_version(PyObject*)’: rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:11000:36: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 11000 | return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:11000:36: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 11000 | return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:11000:36: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 11000 | return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘int __Pyx_object_dict_version_matches(PyObject*, uint64_t, uint64_t)’: rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:906:43: note: in definition of macro ‘unlikely’ 906 | #define unlikely(x) __builtin_expect(!!(x), 0) | ^ rgbmatrix/core.cpp:11004:56: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 11004 | if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:906:43: note: in definition of macro ‘unlikely’ 906 | #define unlikely(x) __builtin_expect(!!(x), 0) | ^ rgbmatrix/core.cpp:11004:56: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 11004 | if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:906:43: note: in definition of macro ‘unlikely’ 906 | #define unlikely(x) __builtin_expect(!!(x), 0) | ^ rgbmatrix/core.cpp:11004:56: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 11004 | if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘PyObject* __Pyx__GetModuleGlobalName(PyObject*, uint64_t*, PyObject**)’: rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1310:21: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1310 | (version_var) = __PYX_GET_DICT_VERSION(dict);\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11021:5: note: in expansion of macro ‘__PYX_UPDATE_DICT_CACHE’ 11021 | __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1310:21: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1310 | (version_var) = __PYX_GET_DICT_VERSION(dict);\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11021:5: note: in expansion of macro ‘__PYX_UPDATE_DICT_CACHE’ 11021 | __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1310:21: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1310 | (version_var) = __PYX_GET_DICT_VERSION(dict);\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11021:5: note: in expansion of macro ‘__PYX_UPDATE_DICT_CACHE’ 11021 | __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘int __Pyx_CLineForTraceback(PyThreadState*, int)’: rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1315:16: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1315 | if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11455:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’ 11455 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1315:16: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1315 | if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11455:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’ 11455 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:905:43: note: in definition of macro ‘likely’ 905 | #define likely(x) __builtin_expect(!!(x), 1) | ^ rgbmatrix/core.cpp:1315:16: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1315 | if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11455:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’ 11455 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1319:30: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1319 | __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11455:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’ 11455 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1319:30: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1319 | __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11455:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’ 11455 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1308:65: warning: ‘PyDictObject::ma_version_tag’ is deprecated [-Wdeprecated-declarations] 1308 | #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp:1319:30: note: in expansion of macro ‘__PYX_GET_DICT_VERSION’ 1319 | __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ | ^~~~~~~~~~~~~~~~~~~~~~ rgbmatrix/core.cpp:11455:9: note: in expansion of macro ‘__PYX_PY_DICT_LOOKUP_IF_MODIFIED’ 11455 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here 22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag; | ^~~~~~~~~~~~~~ rgbmatrix/core.cpp: In function ‘int __Pyx_PyInt_As_int(PyObject*)’: rgbmatrix/core.cpp:11718:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 11718 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp:11773:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 11773 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp: In function ‘uint8_t __Pyx_PyInt_As_uint8_t(PyObject*)’: rgbmatrix/core.cpp:11914:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 11914 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp:11969:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 11969 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp: In function ‘uint32_t __Pyx_PyInt_As_uint32_t(PyObject*)’: rgbmatrix/core.cpp:12110:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 12110 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp:12165:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 12165 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp: In function ‘long int __Pyx_PyInt_As_long(PyObject*)’: rgbmatrix/core.cpp:12306:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 12306 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp:12361:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 12361 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp: In function ‘size_t __Pyx_PyInt_As_size_t(PyObject*)’: rgbmatrix/core.cpp:12578:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 12578 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp:12633:55: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 12633 | const digit* digits = ((PyLongObject*)x)->ob_digit; | ^~~~~~~~ rgbmatrix/core.cpp: In function ‘Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*)’: rgbmatrix/core.cpp:13122:47: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ 13122 | const digit* digits = ((PyLongObject*)b)->ob_digit; | ^~~~~~~~ error: command '/usr/bin/gcc' failed with exit code 1 make: *** [Makefile:67: build-python] Error 1

I sadly have 0 idea how python bindings work, so i probably wont be able to create a patch myself.

yaturner commented 3 months ago

I have the same problem, other than build and install python 2.7.11 is there a solution? Please help

4censord commented 3 months ago

you can install any older version of python, e.g. 3.11 works fine.

yaturner commented 3 months ago

Thanks for the tip! but I am using python3.11.2 and the bindings/python will not build

were you able to build the bindings?

On Thu, Jul 4, 2024 at 2:10 PM 4censord @.***> wrote:

you can install any older version of python, e.g. 3.11 works fine.

— Reply to this email directly, view it on GitHub https://github.com/hzeller/rpi-rgb-led-matrix/issues/1671#issuecomment-2209565187, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEP4EYFHMJUQ2XDSZOM4GDZKW22XAVCNFSM6AAAAABKD6LBBCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBZGU3DKMJYG4 . You are receiving this because you commented.Message ID: @.***>

RGreinacher commented 2 months ago

I can report the same issue with 3.12.1

neuschaefer commented 2 months ago

The bindings need to be re-generated with cython. On Debian/Ubuntu, this would be:

sudo apt-get install cython3-legacy   # install cython 0.29.x, not 3.0.x
make -C bindings/python/rgbmatrix -B CYTHON=cython3
make
4censord commented 2 months ago

Thank you!