summaryrefslogtreecommitdiff
path: root/dev-python/pygame
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pygame')
-rw-r--r--dev-python/pygame/Manifest2
-rw-r--r--dev-python/pygame/files/pygame-2.5.2-numpy-2.patch135
-rw-r--r--dev-python/pygame/pygame-2.5.2-r3.ebuild107
3 files changed, 244 insertions, 0 deletions
diff --git a/dev-python/pygame/Manifest b/dev-python/pygame/Manifest
index 64e63dc3e529..270c94e2360e 100644
--- a/dev-python/pygame/Manifest
+++ b/dev-python/pygame/Manifest
@@ -1,5 +1,7 @@
AUX pygame-2.5.2-error.patch 3723 BLAKE2B 3a3196e5eb4fa24f7246c05f016d78a94b40d620ec3d60ad48342ffb1d5c6d90e87dcb37d42f9b4987286645c92862377a1eb314bdda86a568fb4700438123c5 SHA512 63495f55322499a80e46c284a4cda52014f071652608dcbe7c45ab164ae5c1c49588da6c8bc7e61fb63852ef2aa3ca9ab22a61431b8ae932d5f811622cc484c1
AUX pygame-2.5.2-gcc-14.patch 1422 BLAKE2B f633ec57ac672ebe0eb0e8404f27152ed732815296f9a06439e4385e7bae4ae55f2c13f166a954c05e19e2165da82b1ec089e1e3e2befff912fbba779c4970f3 SHA512 0dee5a832cceb65fd5ab9fae8ee81c982be5eea63e02bd3a463bd1d7f1af2877bfa68d7a53659574eed926ee54dbcc3d9cbd6c63bcadd181f0ec628ea7d63b0c
+AUX pygame-2.5.2-numpy-2.patch 5216 BLAKE2B 3fbafbbd16b0f2d82c640bc5f86658d00a27631d7b1b80d1576ab300d78047d9f82e836754507d7b3f08692430f76117c3e0e00b7d60e58ae125c4cba31f2911 SHA512 a80f12490d900ad5f8da17fb1e5b6decbcd09df609ff3ff8b40fa0dd828f63a430ca16b836e8dfa82890e7bd3e6c2baf7991a16303e65dbf38d010ff21129ae7
DIST pygame-2.5.2.gh.tar.gz 5970857 BLAKE2B 523874926a8fd868f5674ed2997a44decb928fcfe246d551249ed7320a0e908ce46d00f459d187726edf74a4c1038cd56821f6466559fb7d24aa75d16769cbfe SHA512 b54e9b80951c8a9e75666621aafc26874c6dbdab27330146f7217346c76be5627a5464a0102a5968eca0dbd7cced4b2143cd2ff1b6227e3e17e5634854b27f19
EBUILD pygame-2.5.2-r2.ebuild 2309 BLAKE2B c7e5a39aa5d59a947d51894b6968368199a5ba2618b337efaf7c565320ba3056e82c3d203c7b7a20cba9047afcfa32ced71504c9f010618fe40de7db14da816d SHA512 73c27c978a6eefab8405cc7360331e24739369b4661048f1c3df36d02ea6f3857c4939f0d798ab127a6ccabf9bbd8bdde5276efa46223892b52879174af6dc62
+EBUILD pygame-2.5.2-r3.ebuild 2488 BLAKE2B d2a9fabc517af93be11bf41ef023ffa3b5cf6905c8c1d7b1538d7b13c12b821390b631106d8cdcd7f1b34a273e87944233879381ce9b76d3b0222ab0b6cfe9e6 SHA512 80002e9ea6ac2a2b2765796e2fd73c1e85f98274a7a79c407b9e65ae532698f362ab28765ff7d86e881dd892c99aa3c9623051de215d466af3f1bb7efd9a4f3d
MISC metadata.xml 363 BLAKE2B a942b91aded22ec850a7b075703ce4037af9f0a61155717ac455f7d2b7779cb6f5f953b2ad8d61d7cc5254307951a20dd3edb9853e21d907e1999f7570a6b821 SHA512 15403754c9b13f9b2d8c5e7615ae0ca9359b5079e22eb5a7049424e414ebbdd8a06f6324c31594636324414e35ca34bec977b7dded9f9ea14027497b5097b060
diff --git a/dev-python/pygame/files/pygame-2.5.2-numpy-2.patch b/dev-python/pygame/files/pygame-2.5.2-numpy-2.patch
new file mode 100644
index 000000000000..37b702e57280
--- /dev/null
+++ b/dev-python/pygame/files/pygame-2.5.2-numpy-2.patch
@@ -0,0 +1,135 @@
+From 21859cd1b108c2073dfd5fd197714c2b391e3824 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ren=C3=A9=20Dudfield?= <renesd@gmail.com>
+Date: Tue, 21 May 2024 10:24:52 +0200
+Subject: [PATCH 1/3] test: Fix numpy.alltrue imports to import all instead
+ thanks @mgorny
+
+---
+ test/pixelcopy_test.py | 2 +-
+ test/sndarray_test.py | 2 +-
+ test/surfarray_test.py | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/test/pixelcopy_test.py b/test/pixelcopy_test.py
+index 6510fd99..46051cd4 100644
+--- a/test/pixelcopy_test.py
++++ b/test/pixelcopy_test.py
+@@ -534,7 +534,7 @@ class PixelCopyTestWithArrayNumpy(unittest.TestCase):
+
+ def test_map_array(self):
+ try:
+- from numpy import array, zeros, uint8, int32, alltrue
++ from numpy import array, zeros, uint8, int32, all as alltrue
+ except ImportError:
+ return
+
+diff --git a/test/sndarray_test.py b/test/sndarray_test.py
+index 5b624caf..7a7a51f3 100644
+--- a/test/sndarray_test.py
++++ b/test/sndarray_test.py
+@@ -1,6 +1,6 @@
+ import unittest
+
+-from numpy import int8, int16, uint8, uint16, float32, array, alltrue
++from numpy import int8, int16, uint8, uint16, float32, array, all as alltrue
+
+ import pygame
+ import pygame.sndarray
+diff --git a/test/surfarray_test.py b/test/surfarray_test.py
+index 0863da77..a9d53fc4 100644
+--- a/test/surfarray_test.py
++++ b/test/surfarray_test.py
+@@ -9,7 +9,7 @@ from numpy import (
+ zeros,
+ float32,
+ float64,
+- alltrue,
++ all as alltrue,
+ rint,
+ arange,
+ )
+--
+2.45.2
+
+From 4a2ede7b8a1e90c77ab90aadd9c26a2757124923 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ren=C3=A9=20Dudfield?= <renesd@gmail.com>
+Date: Sun, 2 Jun 2024 13:15:26 +0200
+Subject: [PATCH 2/3] sndarray_test: Fix some overflowed data sizes
+
+---
+ test/sndarray_test.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/test/sndarray_test.py b/test/sndarray_test.py
+index 7a7a51f3..57eb71c3 100644
+--- a/test/sndarray_test.py
++++ b/test/sndarray_test.py
+@@ -41,7 +41,7 @@ class SndarrayTest(unittest.TestCase):
+ 16, 2, [[0, 0xFFFF], [0xFFFF, 0], [0x00FF, 0xFF00], [0x0F0F, 0xF0F0]]
+ )
+ check_array(-8, 1, [0, -0x80, 0x7F, 0x64])
+- check_array(-8, 2, [[0, -0x80], [-0x64, 0x64], [0x25, -0x50], [0xFF, 0]])
++ check_array(-8, 2, [[0, -0x80], [-0x64, 0x64], [0x25, -0x50], [-1, 0]])
+ check_array(-16, 1, [0, 0x7FFF, -0x7FFF, -1])
+ check_array(-16, 2, [[0, -0x7FFF], [-0x7FFF, 0], [0x7FFF, 0], [0, 0x7FFF]])
+
+@@ -78,13 +78,13 @@ class SndarrayTest(unittest.TestCase):
+ pygame.mixer.quit()
+
+ check_sound(8, 1, [0, 0x0F, 0xF0, 0xFF])
+- check_sound(8, 2, [[0, 0x80], [0x2D, 0x41], [0x64, 0xA1], [0xFF, 0x40]])
++ check_sound(8, 2, [[0, 0x80], [0x2D, 0x41], [0x64, 0xA1], [125, 0x40]])
+ check_sound(16, 1, [0, 0x00FF, 0xFF00, 0xFFFF])
+ check_sound(
+ 16, 2, [[0, 0xFFFF], [0xFFFF, 0], [0x00FF, 0xFF00], [0x0F0F, 0xF0F0]]
+ )
+ check_sound(-8, 1, [0, -0x80, 0x7F, 0x64])
+- check_sound(-8, 2, [[0, -0x80], [-0x64, 0x64], [0x25, -0x50], [0xFF, 0]])
++ check_sound(-8, 2, [[0, -0x80], [-0x64, 0x64], [0x25, -0x50], [-1, 0]])
+ check_sound(-16, 1, [0, 0x7FFF, -0x7FFF, -1])
+ check_sound(-16, 2, [[0, -0x7FFF], [-0x7FFF, 0], [0x7FFF, 0], [0, 0x7FFF]])
+ check_sound(32, 2, [[0.0, -1.0], [-1.0, 0], [1.0, 0], [0, 1.0]])
+@@ -123,7 +123,7 @@ class SndarrayTest(unittest.TestCase):
+ 16, 2, [[0, 0xFFFF], [0xFFFF, 0], [0x00FF, 0xFF00], [0x0F0F, 0xF0F0]]
+ )
+ check_sample(-8, 1, [0, -0x80, 0x7F, 0x64])
+- check_sample(-8, 2, [[0, -0x80], [-0x64, 0x64], [0x25, -0x50], [0xFF, 0]])
++ check_sample(-8, 2, [[0, -0x80], [-0x64, 0x64], [0x25, -0x50], [-1, 0]])
+ check_sample(-16, 1, [0, 0x7FFF, -0x7FFF, -1])
+ check_sample(-16, 2, [[0, -0x7FFF], [-0x7FFF, 0], [0x7FFF, 0], [0, 0x7FFF]])
+ check_sample(32, 2, [[0.0, -1.0], [-1.0, 0], [1.0, 0], [0, 1.0]])
+--
+2.45.2
+
+From 184f8b78e6952aa619e961553835c442b3db8d5c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ren=C3=A9=20Dudfield?= <renesd@gmail.com>
+Date: Sun, 2 Jun 2024 13:27:34 +0200
+Subject: [PATCH 3/3] surfarray_test: Fix for value out of uint32 range
+
+Was in signed 32bit range.
+---
+ test/surfarray_test.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/test/surfarray_test.py b/test/surfarray_test.py
+index a9d53fc4..ee74290e 100644
+--- a/test/surfarray_test.py
++++ b/test/surfarray_test.py
+@@ -113,10 +113,10 @@ class SurfarrayModuleTest(unittest.TestCase):
+
+ def _fill_array2d(self, arr, surf):
+ palette = self.test_palette
+- arr[:5, :6] = surf.map_rgb(palette[1])
+- arr[5:, :6] = surf.map_rgb(palette[2])
+- arr[:5, 6:] = surf.map_rgb(palette[3])
+- arr[5:, 6:] = surf.map_rgb(palette[4])
++ arr[:5, :6] = surf.map_rgb(palette[1]) & 0xFFFFFFFF
++ arr[5:, :6] = surf.map_rgb(palette[2]) & 0xFFFFFFFF
++ arr[:5, 6:] = surf.map_rgb(palette[3]) & 0xFFFFFFFF
++ arr[5:, 6:] = surf.map_rgb(palette[4]) & 0xFFFFFFFF
+
+ def _fill_array3d(self, arr):
+ palette = self.test_palette
+--
+2.45.2
+
diff --git a/dev-python/pygame/pygame-2.5.2-r3.ebuild b/dev-python/pygame/pygame-2.5.2-r3.ebuild
new file mode 100644
index 000000000000..5c10b9bc4adc
--- /dev/null
+++ b/dev-python/pygame/pygame-2.5.2-r3.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2024 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_{10..12} pypy3 )
+
+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 ~ia64 ~mips ~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[${PYTHON_USEDEP}]
+ test? (
+ media-libs/fontconfig
+ sys-apps/util-linux
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # https://github.com/pygame/pygame/pull/4035
+ "${FILESDIR}/${P}-error.patch"
+ # https://github.com/pygame/pygame/pull/4236
+ "${FILESDIR}/${P}-gcc-14.patch"
+ # https://github.com/pygame/pygame/pull/4240
+ # https://github.com/pygame/pygame/pull/4254
+ # https://github.com/pygame/pygame/pull/4255
+ "${FILESDIR}/${P}-numpy-2.patch"
+ )
+
+ # 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
+
+ distutils-r1_src_prepare
+}
+
+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() {
+ 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
+}