summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2018-01-01 14:13:43 +0100
committerMichał Górny <mgorny@gentoo.org>2018-01-01 14:47:25 +0100
commitb5bfe230bd9108c5b6bf4cf45a781a6e7a1f4fbb (patch)
treefcb323f5038c3dfaa3a1cf315116a6afb804698c /dev-python
parentsci-biology/arb: Remove old (diff)
downloadgentoo-b5bfe230bd9108c5b6bf4cf45a781a6e7a1f4fbb.tar.gz
gentoo-b5bfe230bd9108c5b6bf4cf45a781a6e7a1f4fbb.tar.bz2
gentoo-b5bfe230bd9108c5b6bf4cf45a781a6e7a1f4fbb.zip
dev-python/PySDL2: New package, needed for games-emu/m64py
Bug: https://bugs.gentoo.org/626488
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/PySDL2/Manifest1
-rw-r--r--dev-python/PySDL2/PySDL2-0.9.6.ebuild64
-rw-r--r--dev-python/PySDL2/files/PySDL2-0.9.6-0001-test-Always-allow-greater-patch-version-of-SDL2.patch47
-rw-r--r--dev-python/PySDL2/files/PySDL2-0.9.6-0002-test-Handle-missing-haptic-support-gracefully.patch26
-rw-r--r--dev-python/PySDL2/metadata.xml15
5 files changed, 153 insertions, 0 deletions
diff --git a/dev-python/PySDL2/Manifest b/dev-python/PySDL2/Manifest
new file mode 100644
index 000000000000..f44f4f7a63a6
--- /dev/null
+++ b/dev-python/PySDL2/Manifest
@@ -0,0 +1 @@
+DIST PySDL2-0.9.6.tar.gz 1048158 BLAKE2B 70a450990dd73169489af2d5b218eea0794c9f75948d774680df4b4423855318ddc6d16a0453f62361d4f0b81e872edc067235c4f946476ea8988e16cd0de44c SHA512 676b1b3381b614122442c70fe4cbd7c210ef3d8695c2babd37938e67b5cfeb2f8acbdcb914c5f68aceb549d89f7a77bdc80c7406b340b0e38c22543df8d46739
diff --git a/dev-python/PySDL2/PySDL2-0.9.6.ebuild b/dev-python/PySDL2/PySDL2-0.9.6.ebuild
new file mode 100644
index 000000000000..d761ef0b205c
--- /dev/null
+++ b/dev-python/PySDL2/PySDL2-0.9.6.ebuild
@@ -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}"
+}
diff --git a/dev-python/PySDL2/files/PySDL2-0.9.6-0001-test-Always-allow-greater-patch-version-of-SDL2.patch b/dev-python/PySDL2/files/PySDL2-0.9.6-0001-test-Always-allow-greater-patch-version-of-SDL2.patch
new file mode 100644
index 000000000000..0b72f9036637
--- /dev/null
+++ b/dev-python/PySDL2/files/PySDL2-0.9.6-0001-test-Always-allow-greater-patch-version-of-SDL2.patch
@@ -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
+
diff --git a/dev-python/PySDL2/files/PySDL2-0.9.6-0002-test-Handle-missing-haptic-support-gracefully.patch b/dev-python/PySDL2/files/PySDL2-0.9.6-0002-test-Handle-missing-haptic-support-gracefully.patch
new file mode 100644
index 000000000000..2b03fed4d09d
--- /dev/null
+++ b/dev-python/PySDL2/files/PySDL2-0.9.6-0002-test-Handle-missing-haptic-support-gracefully.patch
@@ -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
+
diff --git a/dev-python/PySDL2/metadata.xml b/dev-python/PySDL2/metadata.xml
new file mode 100644
index 000000000000..dbc51f1b9563
--- /dev/null
+++ b/dev-python/PySDL2/metadata.xml
@@ -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>