gentoo/dev-python/pygame/pygame-2.6.1.ebuild
Ionen Wolkens bef12ce993
dev-python/pygame: enable py3.14
Had another look at this and seen that upstream has fixed tests since.
Seems only the tests themselves were broken given it does not touch
the code, albeit the upstream commit does sound doubtful about its
own changes and there could be more to that.

Did try one game (games-puzzle/pathological) just in case and seems ok.

Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
2025-11-23 22:21:04 -05:00

106 lines
2.3 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
inherit distutils-r1
DESCRIPTION="Python bindings for SDL multimedia library"
HOMEPAGE="
https://www.pygame.org/
https://github.com/pygame/pygame/
https://pypi.org/project/pygame/
"
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 ppc ppc64 ~riscv x86"
IUSE="examples opengl test X"
RESTRICT="!test? ( test )"
RDEPEND="
dev-python/numpy[${PYTHON_USEDEP}]
media-libs/freetype
media-libs/libjpeg-turbo:=
media-libs/libpng:=
media-libs/portmidi
media-libs/sdl2-image
media-libs/sdl2-mixer
media-libs/sdl2-ttf
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-3.0[${PYTHON_USEDEP}]
test? (
media-libs/fontconfig
sys-apps/util-linux
)
"
PATCHES=(
"${FILESDIR}"/${P}-py314-tests.patch
)
src_prepare() {
distutils-r1_src_prepare
# some numpy-related crash (not a regression)
# https://github.com/pygame/pygame/issues/4049
sed -e 's:import numpy:raise ImportError(""):' \
-i test/pixelcopy_test.py || die
}
python_configure() {
PORTMIDI_INC_PORTTIME=1 LOCALBASE="${EPREFIX}/usr" \
"${EPYTHON}" "${S}"/buildconfig/config.py || die
}
python_configure_all() {
find src_c/cython -name '*.pyx' -exec touch {} + || die
"${EPYTHON}" setup.py cython_only || die
}
python_test() {
# Seems(?) there is no way to easily skip individual tests, but
# an msys2 hack exists which we can re-use for now (bug #951940).
# https://github.com/pygame/pygame/pull/4267
local -x PYGAME_MSYS2=1
local -x SDL_VIDEODRIVER=dummy
local -x SDL_AUDIODRIVER=disk
script -eqc "${EPYTHON} -m pygame.tests -v" || die
}
python_install() {
distutils-r1_python_install
# https://bugs.gentoo.org/497720
rm -fr "${D}$(python_get_sitedir)"/pygame/{docs,examples} || die
}
python_install_all() {
distutils-r1_python_install_all
use examples && dodoc -r examples
}