mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
dev-python/pygame: enable py3.11, cythonize, adjust deps
For 3.11, meant to wait for next release that was supposed to happen "soon" and have 3.11 fixes but that was about 3 months ago and it's blocking adding 3.11 to other packages. Tests pass on amd64 and tried a few games, afaik only real issue was that it lacked cythonize which should be done regardless of a new release. wrt deps: * add missing [webp] to test deps (used for 1 test) * replace deprecated virtual/jpeg * drop unused smpeg2 (no reference to smpeg in the source I can see) * drop ancient version checks Revbump to ~arch as a precaution, albeit unlikely cythonize is going to cause any trouble. Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
36
dev-python/pygame/files/pygame-2.1.2-cython_only.patch
Normal file
36
dev-python/pygame/files/pygame-2.1.2-cython_only.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
Backport to ease running cythonize, DISTUTILS_ARGS=(cython) resulted in
|
||||
reconfigure attempts that failed without PORTMIDI* being exported.
|
||||
|
||||
https://github.com/pygame/pygame/commit/4eeffc049cf
|
||||
From: Ankith <46915066+ankith26@users.noreply.github.com>
|
||||
Date: Fri, 3 Jun 2022 21:27:57 +0530
|
||||
Subject: [PATCH] Add cython_only option to setup.py
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -209,7 +209,16 @@ def consume_arg(name):
|
||||
cflags += '-mfpu=neon'
|
||||
os.environ['CFLAGS'] = cflags
|
||||
|
||||
+compile_cython = False
|
||||
+cython_only = False
|
||||
if consume_arg('cython'):
|
||||
+ compile_cython = True
|
||||
+
|
||||
+if consume_arg('cython_only'):
|
||||
+ compile_cython = True
|
||||
+ cython_only = True
|
||||
+
|
||||
+if compile_cython:
|
||||
# compile .pyx files
|
||||
# So you can `setup.py cython` or `setup.py cython install`
|
||||
try:
|
||||
@@ -280,6 +289,9 @@ def consume_arg(name):
|
||||
for i, kwargs in enumerate(queue):
|
||||
kwargs['progress'] = f'[{i + 1}/{count}] '
|
||||
cythonize_one(**kwargs)
|
||||
+
|
||||
+ if cython_only:
|
||||
+ sys.exit(0)
|
||||
|
||||
no_compilation = any(x in ['lint', 'format', 'docs'] for x in sys.argv)
|
||||
AUTO_CONFIG = not os.path.isfile('Setup') and not no_compilation
|
||||
95
dev-python/pygame/pygame-2.1.2-r2.ebuild
Normal file
95
dev-python/pygame/pygame-2.1.2-r2.ebuild
Normal file
@@ -0,0 +1,95 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Python bindings for SDL multimedia library"
|
||||
HOMEPAGE="https://www.pygame.org/"
|
||||
SRC_URI="
|
||||
https://github.com/pygame/pygame/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
IUSE="examples midi opengl test X"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/numpy[${PYTHON_USEDEP}]
|
||||
media-libs/freetype
|
||||
media-libs/libjpeg-turbo:=
|
||||
media-libs/libpng:=
|
||||
media-libs/sdl2-image
|
||||
media-libs/sdl2-mixer
|
||||
media-libs/sdl2-ttf
|
||||
midi? ( media-libs/portmidi )
|
||||
X? ( media-libs/libsdl2[opengl?,threads,video,X] )
|
||||
!X? ( media-libs/libsdl2[threads] )"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
test? (
|
||||
media-libs/sdl2-image[gif,jpeg,png,tiff,webp]
|
||||
media-libs/sdl2-mixer[mp3,vorbis,wav]
|
||||
)"
|
||||
# fontconfig used for fc-list
|
||||
RDEPEND+="
|
||||
media-libs/fontconfig"
|
||||
# util-linux provides script
|
||||
BDEPEND="
|
||||
dev-python/cython[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
media-libs/fontconfig
|
||||
sys-apps/util-linux
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-libsdl2-2.26-tests.patch
|
||||
"${FILESDIR}"/${P}-cython_only.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
distutils-r1_src_prepare
|
||||
|
||||
if ! use midi; then
|
||||
rm test/midi_test.py || die
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure() {
|
||||
PORTMIDI_INC_PORTTIME=1 LOCALBASE="${EPREFIX}/usr" \
|
||||
"${EPYTHON}" "${S}"/buildconfig/config.py -auto || die
|
||||
|
||||
# Disable automagic dependency on PortMidi.
|
||||
if ! use midi; then
|
||||
sed -e "s:^pypm :#&:" -i Setup || die
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure_all() {
|
||||
find src_c/cython -name '*.pyx' -exec touch {} + || die
|
||||
"${EPYTHON}" setup.py cython_only || die
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local -x PYTHONPATH=${BUILD_DIR}/install/lib
|
||||
local -x SDL_VIDEODRIVER=dummy
|
||||
local -x SDL_AUDIODRIVER=disk
|
||||
script -eqc "${EPYTHON} -m pygame.tests -v" || die
|
||||
}
|
||||
|
||||
python_install() {
|
||||
distutils-r1_python_install
|
||||
|
||||
# Bug #497720
|
||||
rm -fr "${D}$(python_get_sitedir)"/pygame/{docs,examples,tests}/ || die
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
use examples && dodoc -r examples
|
||||
}
|
||||
Reference in New Issue
Block a user