commit: ce9b812bde6eafe0bbd4168fb3830ba414124e5c Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Fri Oct 28 16:18:24 2022 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Fri Nov 4 21:54:38 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce9b812b
media-sound/jack2: add 1.9.21 notable ebuild changes: * EAPI7->8 * GPL-2 -> GPL-2+ LGPL-2.1+ * enable py3.11 * filter-lto (completely broken runtime with lto) * jack_control and runtime python requirement is now behind USE=dbus * enable USE=alsa by default, cheap dependency and rare would want alsa-less even on non-desktop profiles * add multilib to sys-libs/db (fails if missing with abi_x86_32) * add := to sys-libs/db (links to libdb-<slot>.so and can't swap without rebuild) * move libsamplerate dep behind its libsamplerate USE * native_usex -> usex for libsamplerate (used by libraries) * drop unnecessary --htmldir (set by eclass), and WAF_BINARY 1.9.21 is the last version to provide examples/tools (aka all jack_* except jack_control, alsa_in/out, etc..), and disables them by default. Rather than re-enable, migrate to its split package media-sound/jack-example-tools with IUSE=+tools to keep same functionality. (this now allows to build tools with e.g. pipewire[jack-sdk]) Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> media-sound/jack2/Manifest | 1 + .../jack2/files/jack2-1.9.21-python3.11.patch | 19 ++++ media-sound/jack2/jack2-1.9.21.ebuild | 109 +++++++++++++++++++++ media-sound/jack2/metadata.xml | 1 + 4 files changed, 130 insertions(+) diff --git a/media-sound/jack2/Manifest b/media-sound/jack2/Manifest index cd33bcad6ca3..27cfddced531 100644 --- a/media-sound/jack2/Manifest +++ b/media-sound/jack2/Manifest @@ -1 +1,2 @@ DIST jack2-1.9.19.tar.gz 988780 BLAKE2B 37536e23f97ea8a3bf62fe77e35a4a40c5d88cea1197a2f72c4ab31cbbc689fcf99a1d51bb0ee96122c618464eefe1ca8479dc53ab7de9e6570cb4009cf2a7a1 SHA512 d8d5fe17e2984959546af3c53f044aa4648860e19ff8ffd54452e87fa6cdfd111f825c57e3df17cb8ed95de8392b6f354b12ded41e3e021a37f07b99a89ba18d +DIST jack2-1.9.21.tar.gz 1006157 BLAKE2B 052486300bd17860964115427d4b5755ce7a4e4607bf9eb4e2b94d5b0cc61cf6a6b56d3a3eae9e91a1195a3316dd1f1ec1357275803805957e4b6f7a76424e24 SHA512 0e9ce581fca3c5d9ffb1de22b45cae6d94085c6f92ff3554892e25727baf66a2269f10d338d95d991e8380c4be5e0cc1e1453b9f878c7dc2e8a990f3bd458557 diff --git a/media-sound/jack2/files/jack2-1.9.21-python3.11.patch b/media-sound/jack2/files/jack2-1.9.21-python3.11.patch new file mode 100644 index 000000000000..f4aafcf16aed --- /dev/null +++ b/media-sound/jack2/files/jack2-1.9.21-python3.11.patch @@ -0,0 +1,19 @@ +'U' is default and deprecated since python-3.3, becomes a failure in 3.11. + +Just a quick fix (rather than bump waf) while waiting for upstream's +plans to migrate to meson: +https://github.com/jackaudio/jack2/issues/898 +--- a/waflib/ConfigSet.py ++++ b/waflib/ConfigSet.py +@@ -314,3 +314,3 @@ + tbl = self.table +- code = Utils.readf(filename, m='rU') ++ code = Utils.readf(filename, m='r') + for m in re_imp.finditer(code): +--- a/waflib/Context.py ++++ b/waflib/Context.py +@@ -664,3 +664,3 @@ + try: +- code = Utils.readf(path, m='rU', encoding=encoding) ++ code = Utils.readf(path, m='r', encoding=encoding) + except EnvironmentError: diff --git a/media-sound/jack2/jack2-1.9.21.ebuild b/media-sound/jack2/jack2-1.9.21.ebuild new file mode 100644 index 000000000000..e1e0330c41de --- /dev/null +++ b/media-sound/jack2/jack2-1.9.21.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE="threads(+)" +inherit flag-o-matic python-single-r1 waf-utils multilib-minimal + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/jackaudio/${PN}.git" +else + SRC_URI="https://github.com/jackaudio/jack2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Jackdmp jack implemention for multi-processor machine" +HOMEPAGE="https://jackaudio.org/" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="2" +IUSE="+alsa +classic dbus doc ieee1394 libsamplerate metadata opus pam +tools" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( classic dbus )" + +DEPEND=" + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + dbus? ( + dev-libs/expat[${MULTILIB_USEDEP}] + sys-apps/dbus[${MULTILIB_USEDEP}] + ) + libsamplerate? ( media-libs/libsamplerate[${MULTILIB_USEDEP}] ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) + metadata? ( sys-libs/db:=[${MULTILIB_USEDEP}] ) + opus? ( media-libs/opus[custom-modes,${MULTILIB_USEDEP}] )" +RDEPEND=" + ${DEPEND} + dbus? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + ') + ) + pam? ( sys-auth/realtime-base ) + !media-sound/jack-audio-connection-kit + !media-video/pipewire[jack-sdk(-)]" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig + doc? ( app-doc/doxygen )" +# tools were formerly provided here, pull to maintain expectations +PDEPEND="tools? ( media-sound/jack-example-tools )" + +DOCS=( AUTHORS.rst ChangeLog.rst README.rst README_NETJACK2 ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.9.21-python3.11.patch +) + +src_prepare() { + default + + python_fix_shebang waf + multilib_copy_sources +} + +multilib_src_configure() { + # clients crash if built with lto + # https://github.com/jackaudio/jack2/issues/485 + filter-lto + + local wafargs=( + --alsa=$(usex alsa) + --celt=no + $(usev classic --classic) + --db=$(usex metadata) + $(usev dbus --dbus) + --doxygen=$(multilib_native_usex doc) + --firewire=$(usex ieee1394) + --iio=no + --opus=$(usex opus) + --portaudio=no + --samplerate=$(usex libsamplerate) + --winmme=no + + # obsolete options, migrated to media-sound/jack-example-tools + # and will be removed entirely next version + --example-tools=no + --readline=no + --sndfile=no + --zalsa=no + ) + + waf-utils_src_configure "${wafargs[@]}" +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_install() { + waf-utils_src_install +} + +multilib_src_install_all() { + use dbus && python_fix_shebang "${ED}"/usr/bin/jack_control +} diff --git a/media-sound/jack2/metadata.xml b/media-sound/jack2/metadata.xml index 824174d30c19..70cba767c741 100644 --- a/media-sound/jack2/metadata.xml +++ b/media-sound/jack2/metadata.xml @@ -13,6 +13,7 @@ <flag name="classic">Enable building of jackd</flag> <flag name="metadata">Enable metadata API</flag> <flag name="pam">Add basic realtime configuration via <pkg>sys-auth/realtime-base</pkg></flag> + <flag name="tools">Pull basic tools (e.g. jack_lsp/connect) from <pkg>media-sound/jack-example-tools</pkg></flag> </use> <upstream> <remote-id type="github">jackaudio/jack2</remote-id>
