diff options
author | 2023-01-16 20:06:30 -0500 | |
---|---|---|
committer | 2023-01-17 00:54:32 -0500 | |
commit | ddcb6ceca54163321fc50de50e2d333d628f3a27 (patch) | |
tree | 5ebf78f3fde3b70a425ee077ae5305e59a18a205 /dev-python/pygame | |
parent | dev-python/pygame: backport test fix for >=libsdl2-2.26.0 (diff) | |
download | gentoo-ddcb6ceca54163321fc50de50e2d333d628f3a27.tar.gz gentoo-ddcb6ceca54163321fc50de50e2d333d628f3a27.tar.bz2 gentoo-ddcb6ceca54163321fc50de50e2d333d628f3a27.zip |
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>
Diffstat (limited to 'dev-python/pygame')
-rw-r--r-- | dev-python/pygame/files/pygame-2.1.2-cython_only.patch | 36 | ||||
-rw-r--r-- | dev-python/pygame/pygame-2.1.2-r2.ebuild | 95 |
2 files changed, 131 insertions, 0 deletions
diff --git a/dev-python/pygame/files/pygame-2.1.2-cython_only.patch b/dev-python/pygame/files/pygame-2.1.2-cython_only.patch new file mode 100644 index 000000000000..4fb935dcf668 --- /dev/null +++ b/dev-python/pygame/files/pygame-2.1.2-cython_only.patch @@ -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 diff --git a/dev-python/pygame/pygame-2.1.2-r2.ebuild b/dev-python/pygame/pygame-2.1.2-r2.ebuild new file mode 100644 index 000000000000..c6f10a469b75 --- /dev/null +++ b/dev-python/pygame/pygame-2.1.2-r2.ebuild @@ -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 +} |