Closed 4censord closed 2 months ago
I have the same problem, other than build and install python 2.7.11 is there a solution? Please help
you can install any older version of python, e.g. 3.11 works fine.
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: @.***>
I can report the same issue with 3.12.1
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
Thank you!
When trying to build the python buildings with python3.12, one gets the following errors
The build error
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) | ^~~~~~~~~~~~~~~~~~~~~~~~~ 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 1I sadly have 0 idea how python bindings work, so i probably wont be able to create a patch myself.