commit: bdfd73ac586e09bcf444c687e65089ac218eb4e7 Author: Marek Szuba <marecki <AT> gentoo <DOT> org> AuthorDate: Tue Jun 13 15:00:07 2023 +0000 Commit: Marek Szuba <marecki <AT> gentoo <DOT> org> CommitDate: Tue Jun 13 15:08:39 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bdfd73ac
dev-python/python-rtmidi: add 1.5.1 With thanks to ztrawhcse in #gentoo-dev for useful comments regarding switching this to meson-python. Closes: https://bugs.gentoo.org/908426 Signed-off-by: Marek Szuba <marecki <AT> gentoo.org> dev-python/python-rtmidi/Manifest | 1 + .../files/python-rtmidi-1.5.1-build_backend.patch | 33 +++++++++++++ .../python-rtmidi-1.5.1-unbundle_rtmidi.patch | 55 ++++++++++++++++++++++ .../python-rtmidi/python-rtmidi-1.5.1.ebuild | 53 +++++++++++++++++++++ 4 files changed, 142 insertions(+) diff --git a/dev-python/python-rtmidi/Manifest b/dev-python/python-rtmidi/Manifest index 0cb23d6df4d8..e26c6e5a7dcb 100644 --- a/dev-python/python-rtmidi/Manifest +++ b/dev-python/python-rtmidi/Manifest @@ -1 +1,2 @@ DIST python-rtmidi-1.4.9.tar.gz 251238 BLAKE2B dda4052e893839f88a6756306f8ff4e89ee66ad9716d374efbb7b92a8e9074e98c8d5df0cc82aa3c6e0c77a78fe9b997079623a5147c03eeea9128dfb7605215 SHA512 91c5a0f807549fbe9d87df6e40b8c3db0f9be753616ba51804900195d02120cd972e39c69dd99e60e4ea1b1d9831d0b956b64ce71b2fe03422efc57bccf5cb70 +DIST python-rtmidi-1.5.1.tar.gz 331487 BLAKE2B fafa56132c54c20a702bcdc7dbe87b9eb3384ecf1e53ee76926866ba6f6fb601f55f4525f6b12f477f8659e4da8138940c5037ac0a4f31f472261089f0d25b03 SHA512 656690f397983834a719be6b58db66db066469b356ef00ff8d62666af9b5e3ef572e541cf38e082b2122a31d8895fd52c0392ed6bdec387baf3f5827de411254 diff --git a/dev-python/python-rtmidi/files/python-rtmidi-1.5.1-build_backend.patch b/dev-python/python-rtmidi/files/python-rtmidi-1.5.1-build_backend.patch new file mode 100644 index 000000000000..fdb2a14b7c7d --- /dev/null +++ b/dev-python/python-rtmidi/files/python-rtmidi-1.5.1-build_backend.patch @@ -0,0 +1,33 @@ +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,14 +1,14 @@ + [build-system] +-# https://thiblahute.gitlab.io/mesonpep517/ +-build-backend = "mesonpep517.buildapi" ++build-backend = "mesonpy" + requires = [ + "cython", + "wheel", +- "mesonpep517 @ git+https://gitlab.com/SpotlightKid/mesonpep517.git@rtmidi", ++ "meson-python", + "ninja" + ] + + [project] ++name = "python-rtmidi" + description = "A Python binding for the RtMidi C++ library implemented using Cython." + authors = [ + { name="Christopher Arndt", email="i...@chrisarndt.de" }, +@@ -41,12 +41,6 @@ + "music", + "rtmidi", + ] +-meson-python-option-name = "python" +-meson-options = [ +- "-Dwheel=true", +- "-Dverbose=true", +- "--buildtype=plain" +-] + + [project.license] + file = "LICENSE.md" diff --git a/dev-python/python-rtmidi/files/python-rtmidi-1.5.1-unbundle_rtmidi.patch b/dev-python/python-rtmidi/files/python-rtmidi-1.5.1-unbundle_rtmidi.patch new file mode 100644 index 000000000000..1501a46738d4 --- /dev/null +++ b/dev-python/python-rtmidi/files/python-rtmidi-1.5.1-unbundle_rtmidi.patch @@ -0,0 +1,55 @@ +--- a/meson.build ++++ b/meson.build +@@ -11,6 +11,8 @@ + + cpp = meson.get_compiler('cpp') + ++rtmidi_dep = dependency('rtmidi') ++ + # Jack API (portable) + jack2_dep = dependency('jack', version: '>=1.9.11', required: false) + jack1_dep = dependency('jack', version: ['>=0.125.0', '<1.0'], required: false) +--- a/rtmidi/meson.build ++++ b/rtmidi/meson.build +@@ -1,7 +1,7 @@ + # https://mesonbuild.com/Python-module.html + + defines = [] +-dependencies = [python.dependency()] ++dependencies = [python.dependency(), rtmidi_dep] + link_args = [] + + if host_machine.system() == 'darwin' and coremidi_dep.found() and get_option('coremidi') +@@ -47,11 +47,10 @@ + # Build and install the extension module + module = python.extension_module( + '_rtmidi', +- [rtmidi_cython, rtmidi_sources], ++ [rtmidi_cython], + dependencies: dependencies, + cpp_args: defines, + link_args: link_args, +- include_directories: rtmidi_inc, + install: true, + subdir: 'rtmidi', + ) +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,9 +1,5 @@ + fs = import('fs') + +-rtmidi_sources = files([ +- 'rtmidi/RtMidi.cpp', +-]) +-rtmidi_inc = include_directories('.', 'rtmidi') + rtmidi_mod_pyx = '_rtmidi.pyx' + rtmidi_mod_cpp = '_rtmidi.cpp' + +@@ -16,7 +12,6 @@ + 'rtmidi_cython', + output: rtmidi_mod_cpp, + input: rtmidi_mod_pyx, +- depend_files: [rtmidi_sources], + command: [cython, '-3', '--cplus', '-o', '@OUTPUT@', '@INPUT@'], + ) + else diff --git a/dev-python/python-rtmidi/python-rtmidi-1.5.1.ebuild b/dev-python/python-rtmidi/python-rtmidi-1.5.1.ebuild new file mode 100644 index 000000000000..ed64baccc94b --- /dev/null +++ b/dev-python/python-rtmidi/python-rtmidi-1.5.1.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +DISTUTILS_USE_PEP517=meson-python +PYPI_NO_NORMALIZE=1 + +inherit distutils-r1 pypi + +DESCRIPTION="Python bindings for media-libs/rtmidi implemented using Cython" +HOMEPAGE=" + https://pypi.org/project/python-rtmidi/ + https://spotlightkid.github.io/python-rtmidi/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+alsa jack" + +# Most of these tests do not play nicely with the sandbox, some only +# work with exactly the same version of rtmidi as the bundled one, and +# several fail even with disabled sandbox unless there are actual MIDI +# I/O devices present. +RESTRICT="test" + +DEPEND="media-libs/rtmidi[alsa?,jack?]" +RDEPEND="${DEPEND}" +BDEPEND="<dev-python/cython-2.99[${PYTHON_USEDEP}] + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.1-build_backend.patch + "${FILESDIR}"/${PN}-1.5.1-unbundle_rtmidi.patch +) + +distutils_enable_sphinx docs +distutils_enable_tests unittest + +src_prepare() { + distutils-r1_src_prepare + + # Just in case + rm -r src/rtmidi || die + rm src/_rtmidi.cpp || die +} + +python_test() { + cd "${T}" || die + eunittest "${S}"/tests +}