Michael Weghorn 07de0b7c91 pyuno: Initialize tp_versions_used for Python >= 3.13
This was added in cpython commit [1]

    commit 992446dd5bd3fff92ea0f8064fb19eebfe105cef
    Author: Mark Shannon <mark@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] 992446dd5b
[2] c3e30c5734

Change-Id: I1ad4c511880cf00e4c45b9e835edcd245fe2853c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184198
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-15 13:15:42 +02:00
..