diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-06-19 00:09:54 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-06-19 00:09:54 +0100 |
commit | e8df704cf9b5e9e517317b8912377c0a8ca0d11e (patch) | |
tree | ab3f43045fb1d37471f8217c8547d2120bb3d1da /dev-python/wxpython | |
parent | ccaccfe4f1da8c11d9fa110f6e4eb847358769d7 (diff) |
gentoo auto-resync : 19:06:2024 - 00:09:54
Diffstat (limited to 'dev-python/wxpython')
-rw-r--r-- | dev-python/wxpython/Manifest | 3 | ||||
-rw-r--r-- | dev-python/wxpython/files/wxpython-4.2.1-doxygen-1.9.7.patch | 46 | ||||
-rw-r--r-- | dev-python/wxpython/files/wxpython-4.2.1-x86-time.patch | 34 | ||||
-rw-r--r-- | dev-python/wxpython/wxpython-4.2.1-r2.ebuild | 129 |
4 files changed, 212 insertions, 0 deletions
diff --git a/dev-python/wxpython/Manifest b/dev-python/wxpython/Manifest index 6b3892774c82..9b16190a28db 100644 --- a/dev-python/wxpython/Manifest +++ b/dev-python/wxpython/Manifest @@ -2,10 +2,13 @@ AUX wxpython-4.2.0-cython-3.patch 621 BLAKE2B 047940edf05ba1556c8e3b7ee5f55dd1c3 AUX wxpython-4.2.0-flags.patch 711 BLAKE2B d05ee176b010199f32ba4325452d7eddb60b78e80e2d80421223c061f33f3edf2d84528eac4d50acbf85af532f6fdfd6fb3cda2c8d97525cce5f66a0dd5c6891 SHA512 ac9c04b086af69d1bd7ce7ff6d9b87b8f6cf5c5273ada18089247f1f951f32009d181ff24758c01f1954183dcbf20fb0bce7501346cc615a18b4f43f2831c7bb AUX wxpython-4.2.0-no-attrdict.patch 363 BLAKE2B 2ab3735103574959e069ecd647dc003ad6362760214a67632c91a7d216a372b4bf13450a7420bb8415bd744cac23a514726bf6feb09302b775a2a4c580094599 SHA512 b410023d186db3b07b3780fad2e1037d5a854f10771a5e1c8cd98da91a36e727931bf75944ff1a56e0730ff78a4ec8c9a3d81dec02efa3fe91191ad0a1639859 AUX wxpython-4.2.0-no-webkit.patch 1285 BLAKE2B 19fdee2293da214b8ae318b2670298b34b745cfefd3938be1f22c810cb1bc4273d628aa34cf427c1023d90739784d8e5c8d381e6084689876bdc336a86a3d0db SHA512 fbe6825f266443b9dec68786e26d6e3842d4dec3b9927420ecaca45a834798c8ef83a95398ea498db386e7d1c659a6a3779a5b62867296cc7244401b06db9586 +AUX wxpython-4.2.1-doxygen-1.9.7.patch 1870 BLAKE2B 383266a9dcd1dd87c6772b082964b2819b07eafe23cac785b78284fb5052e00f3a259616aecd4f8697edae59540ff1b1df3a4353749d0895b02dfb89f50e2974 SHA512 11dea33fcba746c8709984021b1d3eb283754fd8b11ae9ab27f40ac2841967e05ca156e4da7adf205cef890379d6257fdf577488d3bb568b423ec42cb20cbf60 AUX wxpython-4.2.1-integer-division-for-randint.patch 939 BLAKE2B 4386cab3372bd8fe56979f2bdfc25bfb0d6ebc4aa80568f0bcda8c0a36a31deff454fba9e4452c62401f5c2f5a7bc94370d16aad557b00ff176fc5d4139a5ce1 SHA512 0686f0f50cd2222709cdbd336186b3bec7d5d5293bcb9dcc24c6682863ff31f94c89fd38da154373dea6eccee376cc2437ada6eaf015c1be7467f96e95b717c3 +AUX wxpython-4.2.1-x86-time.patch 1920 BLAKE2B 82d82530740b3618edac30d8d13bb1418444312ca6d82f98fd4102468b246f1f9f0510144fe07fd6597f1f5394213849ce3d195d6a94b0c0b66e308d98f54b58 SHA512 596f784a5b1b49c8f7aa2dad044f9abf03a7bdda4feb77a4e50e2573edb1b5c57996711583c92e09dbc7b29eb07a2aa152a27b379af9fb4123414f75d14737e8 DIST wxPython-4.2.0.tar.gz 70958238 BLAKE2B 2e8e34c4f5d1992983bfe4e09bb56ee5619b139b9b3b5f05dee48ecdf6971cf9fe1b0fb22aec685904eb44db6f50a4ba132a08aa91930d809040da828efa097e SHA512 9ec937a024efb2916403c84382a66004f0c2bb07471246b7de517778309ce459e929eeb59e261f538d3fa077c950628de62e49a3760fbd03ab9ff2114c6f354f DIST wxPython-4.2.1.tar.gz 73724359 BLAKE2B d9569ea172c7279e0b2cfcb3cdcd5d1faab5324e2648c9b0f8c8b838fb2355dc6af28c4593e5dd0cfa02573133bf15a58a6ffa9711d854925a9cada0985dc7f8 SHA512 ee9ab8effb3c71de004c3d61ec583b9980c6b75fe9bb04cf2c76025ea70afc206bc3073c44d1c83c7ba604afed9fd38c01b9ef506617ba279a4ac58e3cf34438 EBUILD wxpython-4.2.0.ebuild 3924 BLAKE2B 5f72d886f806375ee130a7170f239bf406961760cfd30e00e5fb3ca9d1eca9c1971e058046612636b3a574ff48f8fbc48e5a8c6044cf518ccdf3aa57871ad530 SHA512 936f595d4adeabd48c040dafd371b98a30927c73f955ff4fb29de9ea210fc67a3efd51686389e791f2ed6a384f59b8c45eab57f2e01c42d52f716e97110bd07d EBUILD wxpython-4.2.1-r1.ebuild 3596 BLAKE2B e2b11bf86caff255eeb6c33855581c531114ff141694523b0dae25a7bb2f5849f75632a205cfc0f441ec544ed7ca9f0810b27b78a172aaae8b4fb9dab035adb3 SHA512 b3a4a47d74bc4e1b9fddbce86503364d51da4a0d6337c9074abbba168844e64fff5927831d6ee8cd494b4d62d8c3b22f62725c281dba89985615579844037c2b +EBUILD wxpython-4.2.1-r2.ebuild 3684 BLAKE2B eb97759c56dc1bd180ff45b8a52453754ae80355dd1c59de2b3274329066d9b4cc941262807ec6a24d8b661f4b79b1122fe41d9e0f92bfaeda0872ff74f1c5d9 SHA512 bca8d09b81fa59ea80719f0c4a8d71ec6b25e935ff6a9957a04904c91149b92ae12a5cf0e79b5dcac61367f1a6858d2c59463b1e70db2295ddf89c7f180cb420 EBUILD wxpython-4.2.1.ebuild 3531 BLAKE2B 77f9a8c0a60818dcf2c055ac2a2db7f8213d1031be40a48d660324b87e5ea2f6572cf6da2f85e71fca9848e311378f073982dddcca048d0cb18676349666b87f SHA512 3513965eb8ffd03061f93827869100ae2fb8e2aae0401416bf5140bb4d8b39cdd59e398756974e8857c645d03ecf0b0f914d825d11fc3408d4d995c5c3358c21 MISC metadata.xml 491 BLAKE2B ffa0cccf66f484c856fb30249bd0ccc3b0da2f3ee8e3c3a0df1782bc58e4867ff99d9711f1784b44b439f2a8bcf297c1082b49a941823f046c7f2c7977a77629 SHA512 a2f5908a276a8f9c512cb59c8d17873398c91b21977371ab724e669f3b6c032d53510fbcd183a5dc340279fc522289e617b8c313c0d825ca70d0d2a5d74f8cfa diff --git a/dev-python/wxpython/files/wxpython-4.2.1-doxygen-1.9.7.patch b/dev-python/wxpython/files/wxpython-4.2.1-doxygen-1.9.7.patch new file mode 100644 index 000000000000..7baf5708b8ff --- /dev/null +++ b/dev-python/wxpython/files/wxpython-4.2.1-doxygen-1.9.7.patch @@ -0,0 +1,46 @@ +https://bugs.gentoo.org/934482 +https://github.com/wxWidgets/Phoenix/commit/6a049ccc0ad96f25c3f7d8540b218ffe8921d8c5 + +From 6a049ccc0ad96f25c3f7d8540b218ffe8921d8c5 Mon Sep 17 00:00:00 2001 +From: Scott Talbert <swt@techie.net> +Date: Tue, 5 Dec 2023 23:42:21 -0500 +Subject: [PATCH] Support building with Doxygen 1.9.7 + +Doxygen 1.9.7 made some changes whereby some method definitions are now +defined in separate XML files, with a "refid" that links to them. In +order to support this, we need to follow these "refids" to pick up the +method definition from the separate group XML files. +--- a/etgtools/extractors.py ++++ b/etgtools/extractors.py +@@ -62,6 +62,8 @@ def extract(self, element): + # class. Should be overridden in derived classes to get what each one + # needs in addition to the base. + self.name = element.find(self.nameTag).text ++ if self.name is None: ++ self.name = '' + if '::' in self.name: + loc = self.name.rfind('::') + self.name = self.name[loc+2:] +@@ -1574,12 +1576,21 @@ def addElement(self, element): + extractingMsg(kind, element) + for node in element.findall('sectiondef/memberdef'): + self.addElement(node) ++ for node in element.findall('sectiondef/member'): ++ node = self.resolveRefid(node) ++ self.addElement(node) + + else: + raise ExtractorError('Unknown module item kind: %s' % kind) + + return item + ++ def resolveRefid(self, node): ++ from etgtools import XMLSRC ++ refid = node.get('refid') ++ fname = os.path.join(XMLSRC, refid.rsplit('_', 1)[0]) + '.xml' ++ root = et.parse(fname).getroot() ++ return root.find(".//memberdef[@id='{}']".format(refid)) + + + def addCppFunction(self, type, name, argsString, body, doc=None, **kw): + diff --git a/dev-python/wxpython/files/wxpython-4.2.1-x86-time.patch b/dev-python/wxpython/files/wxpython-4.2.1-x86-time.patch new file mode 100644 index 000000000000..ea144419833e --- /dev/null +++ b/dev-python/wxpython/files/wxpython-4.2.1-x86-time.patch @@ -0,0 +1,34 @@ +https://bugs.gentoo.org/922328 +https://github.com/wxWidgets/Phoenix/issues/1910 +https://github.com/wxWidgets/Phoenix/issues/2197 (specifically https://github.com/wxWidgets/Phoenix/issues/2197#issuecomment-1169378156) +https://github.com/StefanBruens/Phoenix/commit/8b743981d557d0465ba53e938784be94f4679145 but w/ s/SIP_SSIZE_T/long +i.e. a revert of https://github.com/wxWidgets/Phoenix/commit/c78823549bac1b28d99a1ad6dc1008485a2afb33. + +From 8b743981d557d0465ba53e938784be94f4679145 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de> +Date: Tue, 28 Jun 2022 18:32:32 +0200 +Subject: [PATCH] Fix time_t ETG typedef, extend DateTime.FromTimeT tests + +Before c78823549bac ("Ensure time_t is treated as a 64-bit value by SIP") +the typedef used "long" instead of wxInt64, which caused issues on Win64, +as long is 32bit there (LLP64). On the other hand, wxInt64 is wrong on +32 bit Linux (e.g. armv7, i586), and thus the code crashes. + +As SIP_SSIZE_T is 64 bit for both LLP64 (Windows) and LP64 (Linux), but +32 bit on 32bit archs, it matches time_t better (though, according to the +C standard, it could even be a double). + +Fixes #2197. + etg/defs.py | 2 +- + +--- a/etg/defs.py ++++ b/etg/defs.py +@@ -73,7 +73,7 @@ def run(): + td = module.find('wxUIntPtr') + module.insertItemAfter(td, etgtools.TypedefDef(type='wchar_t', name='wxUChar')) + module.insertItemAfter(td, etgtools.TypedefDef(type='wchar_t', name='wxChar')) +- module.insertItemAfter(td, etgtools.TypedefDef(type='wxInt64', name='time_t')) ++ module.insertItemAfter(td, etgtools.TypedefDef(type='long', name='time_t')) + module.insertItemAfter(td, etgtools.TypedefDef(type='long long', name='wxFileOffset')) + module.insertItemAfter(td, etgtools.TypedefDef(type='SIP_SSIZE_T', name='ssize_t')) + module.insertItemAfter(td, etgtools.TypedefDef(type='unsigned char', name='byte', pyInt=True)) diff --git a/dev-python/wxpython/wxpython-4.2.1-r2.ebuild b/dev-python/wxpython/wxpython-4.2.1-r2.ebuild new file mode 100644 index 000000000000..2e58fca2a380 --- /dev/null +++ b/dev-python/wxpython/wxpython-4.2.1-r2.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_IN_SOURCE_BUILD="1" +PYTHON_COMPAT=( python3_{10..12} ) +PYPI_NO_NORMALIZE=1 +PYPI_PN="wxPython" +WX_GTK_VER="3.2-gtk3" + +inherit distutils-r1 multiprocessing virtualx wxwidgets pypi + +DESCRIPTION="A blending of the wxWindows C++ class library with Python" +HOMEPAGE=" + https://www.wxpython.org/ + https://github.com/wxWidgets/Phoenix/ + https://pypi.org/project/wxPython/ +" + +LICENSE="wxWinLL-3" +SLOT="4.0" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="test webkit" +RESTRICT="!test? ( test )" + +# wxPython doesn't seem to be able to optionally disable features. webkit is +# optionally patched out because it's so huge, but other elements are not, +# which makes us have to require all features from wxGTK +DEPEND=" + >=x11-libs/wxGTK-3.0.4-r301:${WX_GTK_VER}=[gstreamer,libnotify,opengl,sdl,tiff,webkit?,X] + media-libs/libpng:= + media-libs/tiff:= + media-libs/libjpeg-turbo:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + app-text/doxygen + dev-python/cython[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + >=dev-python/sip-6.6.2[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + test? ( + ${VIRTUALX_DEPEND} + dev-python/appdirs[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-forked[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-4.2.0-flags.patch" + "${FILESDIR}/${PN}-4.2.0-cython-3.patch" + "${FILESDIR}/${PN}-4.2.1-integer-division-for-randint.patch" + "${FILESDIR}/${PN}-4.2.1-x86-time.patch" + "${FILESDIR}/${PN}-4.2.1-doxygen-1.9.7.patch" +) + +python_prepare_all() { + if ! use webkit; then + eapply "${FILESDIR}/${PN}-4.2.0-no-webkit.patch" + fi + + distutils-r1_python_prepare_all +} + +src_configure() { + setup-wxwidgets +} + +python_compile() { + DOXYGEN="$(type -P doxygen)" ${PYTHON} build.py dox etg --nodoc || die + + # Refresh the bundled/pregenerated sip files + "${EPYTHON}" build.py sip || die + + # Build the bindings + "${EPYTHON}" build.py build_py \ + --use_syswx \ + --no_magic \ + --jobs="$(makeopts_jobs)" \ + --verbose \ + --release || die +} + +python_test() { + local EPYTEST_DESELECT=( + # virtx probably + unittests/test_display.py::display_Tests::test_display + unittests/test_frame.py::frame_Tests::test_frameRestore + unittests/test_mousemanager.py::mousemanager_Tests::test_mousemanager1 + unittests/test_uiaction.py::uiaction_KeyboardTests::test_uiactionKeyboardChar + unittests/test_uiaction.py::uiaction_KeyboardTests::test_uiactionKeyboardKeyDownUp + unittests/test_uiaction.py::uiaction_MouseTests + + # assertion (TODO) + unittests/test_aboutdlg.py::aboutdlg_Tests::test_aboutdlgGeneric + unittests/test_lib_agw_piectrl.py::lib_agw_piectrl_Tests::test_lib_agw_piectrlCtor + + # seems to rely on state from a previous test (sigh) + unittests/test_lib_agw_persist_persistencemanager.py::lib_agw_persist_persistencemanager_Tests::test_persistencemanagerRestore + + # requires Spanish localization + unittests/test_intl.py::intl_Tests::test_intlGetString + + # TODO + unittests/test_tipwin.py::tipwin_Tests::test_tipwinCtor + unittests/test_lib_pubsub_provider.py::lib_pubsub_Except::test1 + unittests/test_windowid.py::IdManagerTest::test_newIdRef03 + ) + local EPYTEST_IGNORE=() + if ! use webkit; then + EPYTEST_IGNORE+=( unittests/test_webview.py ) + fi + + # We use pytest-forked as opensuse does to avoid tests corrupting each + # other. + virtx epytest --forked -n "$(makeopts_jobs)" unittests +} + +python_install() { + distutils-r1_python_install --skip-build +} |