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
 };

Reply via email to