commit: bef12ce993d2490df3482d410dba2d7d2b19fdda Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Mon Nov 24 02:52:32 2025 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Mon Nov 24 03:21:04 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bef12ce9
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 <AT> gentoo.org> .../pygame/files/pygame-2.6.1-py314-tests.patch | 171 +++++++++++++++++++++ dev-python/pygame/pygame-2.6.1.ebuild | 6 +- 2 files changed, 176 insertions(+), 1 deletion(-) diff --git a/dev-python/pygame/files/pygame-2.6.1-py314-tests.patch b/dev-python/pygame/files/pygame-2.6.1-py314-tests.patch new file mode 100644 index 000000000000..fb57116fef3f --- /dev/null +++ b/dev-python/pygame/files/pygame-2.6.1-py314-tests.patch @@ -0,0 +1,171 @@ +https://github.com/pygame/pygame/commit/ac69c0be7e16 +--- a/test/freetype_test.py ++++ b/test/freetype_test.py +@@ -1611,3 +1611,7 @@ + o = font.render_raw(text) +- self.assertEqual(getrefcount(o), 2) ++ # if python 3.14+, getrefcount returns 1 instead of 2 ++ if sys.version_info >= (3, 14): ++ self.assertEqual(getrefcount(o), 1) ++ else: ++ self.assertEqual(getrefcount(o), 2) + self.assertEqual(getrefcount(o[0]), 2) +@@ -1616,3 +1620,7 @@ + o = font.get_metrics("AB") +- self.assertEqual(getrefcount(o), 2) ++ if sys.version_info >= (3, 14): ++ self.assertEqual(getrefcount(o), 1) ++ else: ++ self.assertEqual(getrefcount(o), 2) ++ + for i in range(len(o)): +@@ -1620,3 +1628,6 @@ + o = font.get_sizes() +- self.assertEqual(getrefcount(o), 2) ++ if sys.version_info >= (3, 14): ++ self.assertEqual(getrefcount(o), 1) ++ else: ++ self.assertEqual(getrefcount(o), 2) + for i in range(len(o)): +--- a/test/mask_test.py ++++ b/test/mask_test.py +@@ -2581,3 +2581,7 @@ + """Ensures empty and full masks can be drawn onto surfaces.""" +- expected_ref_count = 3 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 2 ++ else: ++ expected_ref_count = 3 ++ + size = (33, 65) +@@ -2601,3 +2605,7 @@ + """Ensures empty and full masks can be drawn onto a created surface.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -2626,3 +2634,7 @@ + """Ensures to_surface accepts a surface arg/kwarg.""" +- expected_ref_count = 4 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 3 ++ else: ++ expected_ref_count = 4 ++ + expected_color = pygame.Color("white") +@@ -2650,3 +2662,7 @@ + """Ensures to_surface accepts a setsurface arg/kwarg.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -2677,3 +2693,7 @@ + """Ensures to_surface accepts a unsetsurface arg/kwarg.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -2703,3 +2723,7 @@ + """Ensures to_surface accepts a setcolor arg/kwarg.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -2740,3 +2764,7 @@ + """Ensures to_surface accepts a unsetcolor arg/kwarg.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -2779,3 +2807,7 @@ + """Ensures to_surface accepts a dest arg/kwarg.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -2835,3 +2867,7 @@ + """Ensures to_surface accepts an area arg/kwarg.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -3329,3 +3365,7 @@ + """ +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -3413,3 +3453,7 @@ + """ +- expected_ref_count = 4 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 3 ++ else: ++ expected_ref_count = 4 ++ + expected_flag = SRCALPHA +@@ -5275,3 +5319,7 @@ + """Ensures zero sized surfaces are handled correctly.""" +- expected_ref_count = 3 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 2 ++ else: ++ expected_ref_count = 3 ++ + size = (0, 0) +@@ -5289,3 +5337,7 @@ + """Ensures zero sized setsurfaces are handled correctly.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +@@ -5309,3 +5361,7 @@ + """Ensures zero sized unsetsurfaces are handled correctly.""" +- expected_ref_count = 2 ++ if sys.version_info >= (3, 14): ++ expected_ref_count = 1 ++ else: ++ expected_ref_count = 2 ++ + expected_flag = SRCALPHA +--- a/test/rwobject_test.py ++++ b/test/rwobject_test.py +@@ -2,2 +2,3 @@ + import unittest ++import sys + +@@ -85,3 +86,6 @@ + bpath = encode_string(upath) +- self.assertEqual(getrefcount(bpath), before) ++ if sys.version_info >= (3, 14): ++ self.assertEqual(getrefcount(bpath), before - 1) ++ else: ++ self.assertEqual(getrefcount(bpath), before) + diff --git a/dev-python/pygame/pygame-2.6.1.ebuild b/dev-python/pygame/pygame-2.6.1.ebuild index 0de5c29ec8af..61a278c2a564 100644 --- a/dev-python/pygame/pygame-2.6.1.ebuild +++ b/dev-python/pygame/pygame-2.6.1.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..13} pypy3_11 ) +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) inherit distutils-r1 @@ -58,6 +58,10 @@ BDEPEND=" ) " +PATCHES=( + "${FILESDIR}"/${P}-py314-tests.patch +) + src_prepare() { distutils-r1_src_prepare
