mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-04 00:08:09 -07:00
dev-python/wxpython: add 4.2.1-r1 enable Python-3.12
Closes: https://bugs.gentoo.org/929520 Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
From https://github.com/wxWidgets/Phoenix/pull/2508
|
||||
From 3b042c863f4092f802a877a972fd6eb284451a78 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Greiner <code@bnavigator.de>
|
||||
Date: Sat, 6 Jan 2024 21:58:29 +0100
|
||||
Subject: [PATCH] integer division for randint
|
||||
|
||||
Python 3.12 does not accept floats for random.randint() anymore
|
||||
---
|
||||
unittests/test_dcDrawLists.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/unittests/test_dcDrawLists.py b/unittests/test_dcDrawLists.py
|
||||
index 9e35e5eaf..6696a79a0 100644
|
||||
--- a/unittests/test_dcDrawLists.py
|
||||
+++ b/unittests/test_dcDrawLists.py
|
||||
@@ -63,8 +63,8 @@ def makeRandomRectangles():
|
||||
rects = []
|
||||
|
||||
for i in range(num):
|
||||
- W = random.randint(10, w/2)
|
||||
- H = random.randint(10, h/2)
|
||||
+ W = random.randint(10, w//2)
|
||||
+ H = random.randint(10, h//2)
|
||||
x = random.randint(0, w - W)
|
||||
y = random.randint(0, h - H)
|
||||
rects.append( (x, y, W, H) )
|
||||
127
dev-python/wxpython/wxpython-4.2.1-r1.ebuild
Normal file
127
dev-python/wxpython/wxpython-4.2.1-r1.ebuild
Normal file
@@ -0,0 +1,127 @@
|
||||
# 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"
|
||||
)
|
||||
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user