diff --git a/backports/py3-wxpython/APKBUILD b/backports/py3-wxpython/APKBUILD new file mode 100644 index 0000000..3a4dbdd --- /dev/null +++ b/backports/py3-wxpython/APKBUILD @@ -0,0 +1,62 @@ +# Maintainer: Marian Buschsieweke +# Contributor: Marian Buschsieweke +_pkgname=wxPython +pkgname=py3-wxpython +pkgver=4.2.0 +pkgrel=4 +pkgdesc="Cross-platform GUI toolkit for the Python language" +url="https://wxpython.org/" +arch="all" +license="custom:wxWidgets" +depends=" + python3 + py3-numpy + py3-pillow + py3-six + " +makedepends=" + py3-setuptools + py3-sip + python3-dev + wxwidgets-dev + " +checkdepends="py3-pytest py3-pytest-xdist xvfb-run" +subpackages="$pkgname-doc $pkgname-lang $pkgname-pyc" +source="https://files.pythonhosted.org/packages/source/w/wxPython/wxPython-$pkgver.tar.gz + no-attrdict.patch + no-stacktrace.patch + " +builddir="$srcdir"/$_pkgname-$pkgver +# Not all unit tests are passing. Some due to missing features of xvfb where the +# tests are running in (GL, display settings). Some are checking features that +# have not been provided in this package. Disabling failing unit tests to track +# regressions would be nice, but I do not have the time for that now +options="!check !spdx" + +build() { + export CPPFLAGS="$CPPFLAGS -flto=auto" + python3 build.py build --use_syswx --release -j${JOBS:-1} +} + +check() { + xvfb-run -a pytest +} + +package() { + python3 build.py install --destdir="$pkgdir" + install -Dm 644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt + find "$pkgdir"/usr/lib -type f -exec chmod 644 {} \; +} + +lang() { + pkgdesc="translations for $pkgname" + install_if="lang $pkgname=$pkgver-r$pkgrel" + + amove usr/lib/python3*/site-packages/wx/locale +} + +sha512sums=" +9ec937a024efb2916403c84382a66004f0c2bb07471246b7de517778309ce459e929eeb59e261f538d3fa077c950628de62e49a3760fbd03ab9ff2114c6f354f wxPython-4.2.0.tar.gz +ac7004cf6280242af3e6265d69ac909f7c1fcd37d9da625704f1e0ea23be76821cd259c48bf589380b6e84f9fdfc28d6372dfb155188a48a49e3361731e7461f no-attrdict.patch +ebd45621684603ca5e481d2a32e9ddf7de8dcd8c9f49745bd1e8509f6c118361d59d092032a541d56cbbe69f00f307dd507d511b425f14c733379e1f4b627719 no-stacktrace.patch +" diff --git a/backports/py3-wxpython/no-attrdict.patch b/backports/py3-wxpython/no-attrdict.patch new file mode 100644 index 0000000..d61aff0 --- /dev/null +++ b/backports/py3-wxpython/no-attrdict.patch @@ -0,0 +1,18 @@ +this is a very abandoned python module, easier to just patch in this +diff --git a/buildtools/config.py b/buildtools/config.py +index 20a2fd9d..fa16befd 100644 +--- a/buildtools/config.py ++++ b/buildtools/config.py +@@ -27,7 +27,11 @@ from distutils.dep_util import newer + + import distutils.sysconfig + +-from attrdict import AttrDict ++class AttrDict(dict): ++ def __getattr__(self, attr): ++ return self[attr] ++ def __setattr__(self, attr, value): ++ self[attr] = value + + runSilently = False + diff --git a/backports/py3-wxpython/no-stacktrace.patch b/backports/py3-wxpython/no-stacktrace.patch new file mode 100644 index 0000000..ef76158 --- /dev/null +++ b/backports/py3-wxpython/no-stacktrace.patch @@ -0,0 +1,12 @@ +we have no stacktraces in wxwidgets +--- a/sip/cpp/sip_corewxAppTraits.cpp ++++ b/sip/cpp/sip_corewxAppTraits.cpp +@@ -471,7 +471,7 @@ + PyErr_Clear(); + + Py_BEGIN_ALLOW_THREADS +- sipRes = new ::wxString((sipSelfWasArg ? sipCpp-> ::wxAppTraits::GetAssertStackTrace() : sipCpp->GetAssertStackTrace())); ++ sipRes = new ::wxString(""); + Py_END_ALLOW_THREADS + + if (PyErr_Occurred())