dev-python/PySDL2: New package, needed for games-emu/m64py

Bug: https://bugs.gentoo.org/626488
This commit is contained in:
Michał Górny
2018-01-01 14:13:43 +01:00
parent fa85d5355b
commit b5bfe230bd
5 changed files with 153 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST PySDL2-0.9.6.tar.gz 1048158 BLAKE2B 70a450990dd73169489af2d5b218eea0794c9f75948d774680df4b4423855318ddc6d16a0453f62361d4f0b81e872edc067235c4f946476ea8988e16cd0de44c SHA512 676b1b3381b614122442c70fe4cbd7c210ef3d8695c2babd37938e67b5cfeb2f8acbdcb914c5f68aceb549d89f7a77bdc80c7406b340b0e38c22543df8d46739

View File

@@ -0,0 +1,64 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
inherit distutils-r1
DESCRIPTION="Python (ctypes) bindings for SDL2 libraries"
HOMEPAGE="https://github.com/marcusva/py-sdl2 https://pypi.python.org/pypi/PySDL2"
SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
LICENSE="|| ( public-domain CC0-1.0 ZLIB )"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
# Optional deps:
# - dev-python/numpy,
# - dev-python/pillow,
# - media-libs/sdl2-* (loaded dynamically via ctypes).
#
# If a reverse dependency needs the specific module, it should
# explicitly depend on the optional module in question. You also
# probably need to explicitly require some media-libs/libsdl2 flags.
RDEPEND="media-libs/libsdl2"
# Require all of SDL2 libraries and at least the most common subsystems
# for better test coverage.
DEPEND="
test? (
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pillow[${PYTHON_USEDEP}]
media-libs/libsdl2[joystick,sound,video]
media-libs/sdl2-gfx
media-libs/sdl2-image
media-libs/sdl2-mixer
media-libs/sdl2-ttf
)"
PATCHES=(
# fix tests to allow newer versions of libsdl2
"${FILESDIR}"/PySDL2-0.9.6-0001-test-Always-allow-greater-patch-version-of-SDL2.patch
# fix tests to handle missing haptic support gracefully
"${FILESDIR}"/PySDL2-0.9.6-0002-test-Handle-missing-haptic-support-gracefully.patch
)
src_prepare() {
# tarball uses DOS line endings
find '(' -name '*.py' -o -name '*.rst' -o -name '*.txt' ')' \
-type f -exec sed -i -e 's/\r$//' {} + || die
distutils-r1_src_prepare
}
python_test() {
# from .travis.yml
local -x SDL_VIDEODRIVER=dummy
local -x SDL_AUDIODRIVER=dummy
local -x SDL_RENDER_DRIVER=software
"${PYTHON}" -m unittest discover -v \
-s sdl2/test -p '*_test.py' || die "Tests fail with ${EPYTHON}"
}

View File

@@ -0,0 +1,47 @@
From d34a898bb8d8bfd9cb4a85ff880826e4c7f2b0f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Mon, 1 Jan 2018 12:31:52 +0100
Subject: [PATCH 1/2] test: Always allow greater patch-version of SDL2
Similarly to sdlimage_test, allow newer patch-version of other SDL2
libraries. There is no technical reason to prevent people from upgrading
libsdl2 while having old PySDL2 installed, and there is no reason to
make tests fail every time libsdl2 happens to be upgraded.
(backported for 0.9.6)
Closes: https://github.com/marcusva/py-sdl2/issues/115
---
sdl2/test/sdlmixer_test.py | 2 +-
sdl2/test/version_test.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sdl2/test/sdlmixer_test.py b/sdl2/test/sdlmixer_test.py
index 00c2ca6..1cebe55 100644
--- a/sdl2/test/sdlmixer_test.py
+++ b/sdl2/test/sdlmixer_test.py
@@ -27,7 +27,7 @@ class SDLMixerTest(unittest.TestCase):
self.assertIsInstance(v.contents, version.SDL_version)
self.assertEqual(v.contents.major, 2)
self.assertEqual(v.contents.minor, 0)
- self.assertEqual(v.contents.patch, 1)
+ self.assertGreaterEqual(v.contents.patch, 1)
if __name__ == '__main__':
sys.exit(unittest.main())
diff --git a/sdl2/test/version_test.py b/sdl2/test/version_test.py
index 51b5065..60e5bcf 100644
--- a/sdl2/test/version_test.py
+++ b/sdl2/test/version_test.py
@@ -25,7 +25,7 @@ class SDLVersionTest(unittest.TestCase):
self.assertEqual(type(v), version.SDL_version)
self.assertEqual(v.major, 2)
self.assertEqual(v.minor, 0)
- self.assertEqual(v.patch, 6)
+ self.assertGreaterEqual(v.patch, 6)
def test_SDL_VERSIONNUM(self):
self.assertEqual(version.SDL_VERSIONNUM(1, 2, 3), 1203)
--
2.16.0.rc0

View File

@@ -0,0 +1,26 @@
From 4a38a0ef4c13ec3c518b78c0e56550fb8af43119 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Mon, 1 Jan 2018 13:29:16 +0100
Subject: [PATCH 2/2] test: Handle missing haptic support gracefully
---
sdl2/test/sdl_test.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sdl2/test/sdl_test.py b/sdl2/test/sdl_test.py
index 70c2e98..402e549 100644
--- a/sdl2/test/sdl_test.py
+++ b/sdl2/test/sdl_test.py
@@ -47,7 +47,8 @@ class SDLTest(unittest.TestCase):
"FreeBSD des not support haptic input yet")
def test_SDL_INIT_HAPTIC(self):
ret = SDL_Init(SDL_INIT_HAPTIC)
- self.assertEqual(ret, 0, SDL_GetError())
+ if ret != 0:
+ self.skipTest('Haptic subsystem not supported')
ret = SDL_WasInit(SDL_INIT_HAPTIC)
self.assertEqual(ret, SDL_INIT_HAPTIC)
SDL_QuitSubSystem(SDL_INIT_HAPTIC)
--
2.16.0.rc0

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mgorny@gentoo.org</email>
<name>Michał Górny</name>
</maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
</maintainer>
<upstream>
<remote-id type="github">marcusva/py-sdl2</remote-id>
<remote-id type="pypi">PySDL2</remote-id>
</upstream>
</pkgmetadata>