pyuno/source/module/pyuno.cxx | 3 +++ pyuno/source/module/pyuno_callable.cxx | 3 +++ pyuno/source/module/pyuno_iterator.cxx | 6 ++++++ pyuno/source/module/pyuno_runtime.cxx | 3 +++ pyuno/source/module/pyuno_struct.cxx | 3 +++ 5 files changed, 18 insertions(+)
New commits: commit ff523f34ba6e20712a0cc768b7c3af8e98c40d54 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Tue Apr 15 10:06:20 2025 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Tue Apr 15 15:09:29 2025 +0200 pyuno: Initialize tp_versions_used for Python >= 3.13 This was added in cpython commit [1] commit 992446dd5bd3fff92ea0f8064fb19eebfe105cef Author: Mark Shannon <m...@hotpy.org> Date: Mon Feb 5 16:20:54 2024 +0000 GH-113462: Limit the number of versions that a single class can use. (GH-114900) , causing an `--enable-werror` build on Debian testing using system python3-dev 3.13.2-2 to fail like this: /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_iterator.cxx:185:1: error: missing field 'tp_versions_used' initializer [-Werror,-Wmissing-field-initializers] 185 | }; | ^ /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_iterator.cxx:334:1: error: missing field 'tp_versions_used' initializer [-Werror,-Wmissing-field-initializers] 334 | }; | ^ 2 errors generated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:336: /home/michi/development/git/libreoffice/workdir/CxxObject/pyuno/source/module/pyuno_iterator.o] Error 1 make[1]: *** Waiting for unfinished jobs.... /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_callable.cxx:252:1: error: missing field 'tp_versions_used' initializer [-Werror,-Wmissing-field-initializers] 252 | }; | ^ 1 error generated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:336: /home/michi/development/git/libreoffice/workdir/CxxObject/pyuno/source/module/pyuno_callable.o] Error 1 /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_struct.cxx:377:1: error: missing field 'tp_versions_used' initializer [-Werror,-Wmissing-field-initializers] 377 | }; | ^ 1 error generated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:336: /home/michi/development/git/libreoffice/workdir/CxxObject/pyuno/source/module/pyuno_struct.o] Error 1 /home/michi/development/git/libreoffice/pyuno/source/module/pyuno.cxx:1693:1: error: missing field 'tp_versions_used' initializer [-Werror,-Wmissing-field-initializers] 1693 | }; | ^ 1 error generated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:336: /home/michi/development/git/libreoffice/workdir/CxxObject/pyuno/source/module/pyuno.o] Error 1 /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_runtime.cxx:147:1: error: missing field 'tp_versions_used' initializer [-Werror,-Wmissing-field-initializers] 147 | }; | ^ 1 error generated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:336: /home/michi/development/git/libreoffice/workdir/CxxObject/pyuno/source/module/pyuno_runtime.o] Error 1 make: *** [Makefile:128: pyuno] Error 2 Initialize the member to 0, as e.g. commit [2] does for swig. For cpython versions this is contained in (from within cpython git repo): $ git tag --contains 992446dd5bd3fff92ea0f8064fb19eebfe105cef v3.13.0 v3.13.0a4 v3.13.0a5 v3.13.0a6 v3.13.0b1 v3.13.0b2 v3.13.0b3 v3.13.0b4 v3.13.0rc1 v3.13.0rc2 v3.13.0rc3 v3.13.1 v3.13.2 v3.13.3 v3.14.0a1 v3.14.0a2 v3.14.0a3 v3.14.0a4 v3.14.0a5 v3.14.0a6 v3.14.0a7 [1] https://github.com/python/cpython/commit/992446dd5bd3fff92ea0f8064fb19eebfe105cef [2] https://github.com/swig/swig/commit/c3e30c5734a8d9a052b233d2d01e58d409b41df0 Change-Id: I1ad4c511880cf00e4c45b9e835edcd245fe2853c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184198 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> (cherry picked from commit 07de0b7c91b66abc6dc47d71237e355a0bba80fb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184216 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/pyuno/source/module/pyuno.cxx b/pyuno/source/module/pyuno.cxx index af35283e6139..3cd246d66f0b 100644 --- a/pyuno/source/module/pyuno.cxx +++ b/pyuno/source/module/pyuno.cxx @@ -1681,6 +1681,9 @@ static PyTypeObject PyUNOType = #if PY_VERSION_HEX >= 0x030C00A1 , 0 // tp_watched #endif +#if PY_VERSION_HEX >= 0x030D00A4 + , 0 // tp_versions_used +#endif #endif #endif }; diff --git a/pyuno/source/module/pyuno_callable.cxx b/pyuno/source/module/pyuno_callable.cxx index 8f19fc8eb654..2fd2acb7915f 100644 --- a/pyuno/source/module/pyuno_callable.cxx +++ b/pyuno/source/module/pyuno_callable.cxx @@ -247,6 +247,9 @@ static PyTypeObject PyUNO_callable_Type = #if PY_VERSION_HEX >= 0x030C00A1 , 0 // tp_watched #endif +#if PY_VERSION_HEX >= 0x030D00A4 + , 0 // tp_versions_used +#endif #endif #endif }; diff --git a/pyuno/source/module/pyuno_iterator.cxx b/pyuno/source/module/pyuno_iterator.cxx index 2fc70a32fcff..392d00c7cbf4 100644 --- a/pyuno/source/module/pyuno_iterator.cxx +++ b/pyuno/source/module/pyuno_iterator.cxx @@ -180,6 +180,9 @@ static PyTypeObject PyUNO_iterator_Type = #if PY_VERSION_HEX >= 0x030C00A1 , 0 // tp_watched #endif +#if PY_VERSION_HEX >= 0x030D00A4 + , 0 // tp_versions_used +#endif #endif #endif }; @@ -329,6 +332,9 @@ static PyTypeObject PyUNO_list_iterator_Type = #if PY_VERSION_HEX >= 0x030C00A1 , 0 // tp_watched #endif +#if PY_VERSION_HEX >= 0x030D00A4 + , 0 // tp_versions_used +#endif #endif #endif }; diff --git a/pyuno/source/module/pyuno_runtime.cxx b/pyuno/source/module/pyuno_runtime.cxx index 471121a8bf6d..9b811d4880e7 100644 --- a/pyuno/source/module/pyuno_runtime.cxx +++ b/pyuno/source/module/pyuno_runtime.cxx @@ -142,6 +142,9 @@ static PyTypeObject RuntimeImpl_Type = #if PY_VERSION_HEX >= 0x030C00A1 , 0 // tp_watched #endif +#if PY_VERSION_HEX >= 0x030D00A4 + , 0 // tp_versions_used +#endif #endif #endif }; diff --git a/pyuno/source/module/pyuno_struct.cxx b/pyuno/source/module/pyuno_struct.cxx index 6f4dd47a4b35..0c5ce298b430 100644 --- a/pyuno/source/module/pyuno_struct.cxx +++ b/pyuno/source/module/pyuno_struct.cxx @@ -368,6 +368,9 @@ static PyTypeObject PyUNOStructType = #if PY_VERSION_HEX >= 0x030C00A1 , 0 // tp_watched #endif +#if PY_VERSION_HEX >= 0x030D00A4 + , 0 // tp_versions_used +#endif #endif #endif };