community/py3-wxpython: rebuild against wxwidgets

This regenerates the sip bindings for wxwidgets as part of the build
process, fixing a segfault when using kikit from py3-kikit for
panelization:

    0  0x00007ff4a9d551e0 in _PyInterpreterState_GET () at ./Include/internal/pycore_pystate.h:133
    1  get_state () at Objects/obmalloc.c:866
    2  _PyObject_Free (ctx=<optimized out>, p=0x7ff40fd0e160) at Objects/obmalloc.c:1850
    3  0x00007ff40fd2416f in ??? () at /usr/lib/python3.12/site-packages/wx/siplib.cpython-312-x86_64-linux-musl.so
    4  0x00007ff4a9cb195b in call_ll_exitfuncs (runtime=0x7ff4aa159ac0 <_PyRuntime>) at Python/pylifecycle.c:2999
    5  Py_FinalizeEx () at Python/pylifecycle.c:2005
    6  0x00007ff4a9e36488 in Py_Exit (sts=0) at Python/pylifecycle.c:3011
    7  0x00007ff4a9e2b759 in handle_system_exit () at Python/pythonrun.c:756
    8  0x00007ff4a9e2b5b5 in _PyErr_PrintEx (tstate=0x7ff4aa1c9e38 <_PyRuntime+459640>, set_sys_last_vars=1)
       at Python/pythonrun.c:765
    9  0x00007ff4a9cbc8ea in PyErr_PrintEx (set_sys_last_vars=1) at Python/pythonrun.c:845
    10 PyErr_Print () at Python/pythonrun.c:851
    11 _PyRun_SimpleFileObject (fp=<optimized out>, filename=<optimized out>, closeit=<optimized out>, flags=0x7ffcdf91b890)
       at Python/pythonrun.c:439
    12 0x00007ff4a9e29ee4 in _PyRun_AnyFileObject (fp=0x7ff4a9b2e020, filename=0x7ff4aa2e14f0, closeit=1, flags=0x7ffcdf91b890)
       at Python/pythonrun.c:78
    13 0x00007ff4a9e23681 in pymain_run_file_obj (program_name=0x7ff4aa2e14b0, filename=0x7ff4aa2e14f0, skip_source_first_line=0)
       at Modules/main.c:360
    14 pymain_run_file (config=0x7ff4aa16ca18 <_PyRuntime+77656>) at Modules/main.c:379
    15 pymain_run_python (exitcode=0x7ffcdf91b864) at Modules/main.c:633
    16 Py_RunMain () at Modules/main.c:713
    17 0x00007ff4a9ddabd7 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:767
    18 0x00007ff4aa32c496 in libc_start_main_stage2 (main=0x55a284c2f180 <main>, argc=7, argv=0x7ffcdf91ba18)
       at src/env/__libc_start_main.c:95
    19 0x000055a284c2f046 in _start ()
This commit is contained in:
Marian Buschsieweke 2024-09-02 16:42:06 +02:00 committed by omni
parent 08250d4f1c
commit d173f61502
3 changed files with 18 additions and 34 deletions

View File

@ -3,7 +3,7 @@
_pkgname=wxPython _pkgname=wxPython
pkgname=py3-wxpython pkgname=py3-wxpython
pkgver=4.2.1 pkgver=4.2.1
pkgrel=3 pkgrel=4
pkgdesc="Cross-platform GUI toolkit for the Python language" pkgdesc="Cross-platform GUI toolkit for the Python language"
url="https://wxpython.org/" url="https://wxpython.org/"
arch="all" arch="all"
@ -18,6 +18,7 @@ makedepends="
py3-setuptools py3-setuptools
py3-sip py3-sip
python3-dev python3-dev
waf
wxwidgets-dev wxwidgets-dev
" "
checkdepends="py3-pytest py3-pytest-xdist xvfb-run" checkdepends="py3-pytest py3-pytest-xdist xvfb-run"
@ -25,7 +26,7 @@ subpackages="$pkgname-doc $pkgname-lang $pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/w/wxPython/wxPython-$pkgver.tar.gz source="https://files.pythonhosted.org/packages/source/w/wxPython/wxPython-$pkgver.tar.gz
no-attrdict.patch no-attrdict.patch
no-stacktrace.patch no-stacktrace.patch
gcc14.patch sip-bool.patch
" "
builddir="$srcdir"/$_pkgname-$pkgver builddir="$srcdir"/$_pkgname-$pkgver
# Not all unit tests are passing. Some due to missing features of xvfb where the # Not all unit tests are passing. Some due to missing features of xvfb where the
@ -36,7 +37,9 @@ options="!check !spdx"
build() { build() {
export CPPFLAGS="$CPPFLAGS -flto=auto" export CPPFLAGS="$CPPFLAGS -flto=auto"
python3 build.py build --use_syswx --release -j${JOBS:-1} # regenerating sip bindings first to match local wxwidgets version,
# then run build
python3 build.py sip build --use_syswx --release -j${JOBS:-1}
} }
check() { check() {
@ -60,5 +63,5 @@ sha512sums="
ee9ab8effb3c71de004c3d61ec583b9980c6b75fe9bb04cf2c76025ea70afc206bc3073c44d1c83c7ba604afed9fd38c01b9ef506617ba279a4ac58e3cf34438 wxPython-4.2.1.tar.gz ee9ab8effb3c71de004c3d61ec583b9980c6b75fe9bb04cf2c76025ea70afc206bc3073c44d1c83c7ba604afed9fd38c01b9ef506617ba279a4ac58e3cf34438 wxPython-4.2.1.tar.gz
461bc59bad6120f64e112688914c9e8ddf0dc34d789244025cd05210b098fe671e2b10ee37067c48a822b3e528380998935eb0d70c5aa5bf3993f6c6ad50bb43 no-attrdict.patch 461bc59bad6120f64e112688914c9e8ddf0dc34d789244025cd05210b098fe671e2b10ee37067c48a822b3e528380998935eb0d70c5aa5bf3993f6c6ad50bb43 no-attrdict.patch
ebd45621684603ca5e481d2a32e9ddf7de8dcd8c9f49745bd1e8509f6c118361d59d092032a541d56cbbe69f00f307dd507d511b425f14c733379e1f4b627719 no-stacktrace.patch ebd45621684603ca5e481d2a32e9ddf7de8dcd8c9f49745bd1e8509f6c118361d59d092032a541d56cbbe69f00f307dd507d511b425f14c733379e1f4b627719 no-stacktrace.patch
fa4e4482281f308029d046ca08498a563215b271a38538b9727722ef0c57b5fcd1335d81b937564f8158fdf5c275c276035e3ca95905a4b594623d91c2a01e5c gcc14.patch 38f624e08abd270717c3d8db67fe384871fbdc0dd0f35541563d2ce262b24b321d411641d0218c2301d6ebe37a7ec2d3c0e1501ea75e2043a4971f8ada60c4ed sip-bool.patch
" "

View File

@ -1,30 +0,0 @@
Fix -Wincompatible-pointer-types error in bundled sip with gcc 14.
Source: https://bugs.gentoo.org/show_bug.cgi?id=919000#c1
Upstream issue: https://github.com/wxWidgets/Phoenix/issues/2493
The fix is in upstream sip but the py3-wxpython release bundles an older
version at the moment.
Error:
```
../../../../sip/siplib/siplib.c: In function 'parsePass1':
../../../../sip/siplib/siplib.c:3900:20: error: assignment to 'sipSimpleWrapper
*' {aka 'struct _sipSimpleWrapper *'} from incompatible pointer type 'PyObject
*' {aka 'struct _object *'} [-Wincompatible-pointer-types]
3900 | *selfp = va_arg(va, PyObject *);
| ^
```
--- wxPython-4.2.1-origin/sip/siplib/siplib.c
+++ wxPython-4.2.1/sip/siplib/siplib.c
@@ -3897,7 +3897,7 @@
{
case '#':
/* A ctor has an argument with the /Transfer/ annotation. */
- *selfp = va_arg(va, PyObject *);
+ *selfp = (sipSimpleWrapper *) va_arg(va, PyObject *);
break;
case 'B':

View File

@ -0,0 +1,11 @@
When regenerating the bindings, bool.cpp is not generated anymore
--- a/wscript 2023-06-07 03:31:16.000000000 +0200
+++ b/wscript 2024-09-02 16:31:16.176552571 +0200
@@ -570,7 +570,6 @@ def build(bld):
features = 'c cxx cshlib cxxshlib pyext',
target = makeTargetName(bld, 'siplib'),
source = ['sip/siplib/apiversions.c',
- 'sip/siplib/bool.cpp',
'sip/siplib/descriptors.c',
'sip/siplib/int_convertors.c',
'sip/siplib/objmap.c',