public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-sound/jack2/files/, media-sound/jack2/
@ 2022-11-04 21:59 Ionen Wolkens
  0 siblings, 0 replies; only message in thread
From: Ionen Wolkens @ 2022-11-04 21:59 UTC (permalink / raw
  To: gentoo-commits

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>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-11-04 21:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-04 21:59 [gentoo-commits] repo/gentoo:master commit in: media-sound/jack2/files/, media-sound/jack2/ Ionen Wolkens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox