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
+}

Reply via email to