diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2017-10-29 12:56:23 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2017-10-29 13:59:56 +0100 |
commit | 257d344317af170a10a0b7e5b49018704bb2a592 (patch) | |
tree | b4f1c192a90504212be14a2f6fb763d96eb8953a /media-sound | |
parent | sys-kernel/aufs-sources: Bump to latest genpatches and linux release (diff) | |
download | gentoo-257d344317af170a10a0b7e5b49018704bb2a592.tar.gz gentoo-257d344317af170a10a0b7e5b49018704bb2a592.tar.bz2 gentoo-257d344317af170a10a0b7e5b49018704bb2a592.zip |
media-sound/jalv: Fix segfault w/ Qt5 plugins, run in background
Gentoo-bug: 621708, 634030
Closes: https://bugs.gentoo.org/634030
Package-Manager: Portage-2.3.13, Repoman-2.3.4
Diffstat (limited to 'media-sound')
-rw-r--r-- | media-sound/jalv/files/jalv-1.6.0-stdin.patch | 67 | ||||
-rw-r--r-- | media-sound/jalv/files/jalv-1.6.0-suil-qt5.patch | 34 | ||||
-rw-r--r-- | media-sound/jalv/jalv-1.6.0-r2.ebuild | 59 |
3 files changed, 160 insertions, 0 deletions
diff --git a/media-sound/jalv/files/jalv-1.6.0-stdin.patch b/media-sound/jalv/files/jalv-1.6.0-stdin.patch new file mode 100644 index 000000000000..953af7c5f3e3 --- /dev/null +++ b/media-sound/jalv/files/jalv-1.6.0-stdin.patch @@ -0,0 +1,67 @@ +From 3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0 Mon Sep 17 00:00:00 2001 +From: David Robillard <d@drobilla.net> +Date: Sat, 18 Feb 2017 18:00:03 +0100 +Subject: Add jalv -i option to ignore stdin for background use + + +diff --git a/doc/jalv.1 b/doc/jalv.1 +index 6d93a72..000ed5a 100644 +--- a/doc/jalv.1 ++++ b/doc/jalv.1 +@@ -17,6 +17,10 @@ Print the command line options. + Print control output changes to stdout. + + .TP ++\fB\-i\fR ++Ignore input on stdin (for background use). ++ ++.TP + \fB\-c SYM=VAL\fR + Set control value (e.g. "vol=1.4"). + +diff --git a/src/jalv_console.c b/src/jalv_console.c +index c0f369c..e0e114b 100644 +--- a/src/jalv_console.c ++++ b/src/jalv_console.c +@@ -106,6 +106,8 @@ jalv_init(int* argc, char*** argv, JalvOptions* opts) + opts->controls, (++n_controls + 1) * sizeof(char*)); + opts->controls[n_controls - 1] = (*argv)[a]; + opts->controls[n_controls] = NULL; ++ } else if ((*argv)[a][1] == 'i') { ++ opts->non_interactive = true; + } else if ((*argv)[a][1] == 'd') { + opts->dump = true; + } else if ((*argv)[a][1] == 't') { +@@ -191,7 +193,7 @@ jalv_open_ui(Jalv* jalv) + + show_iface->hide(suil_instance_get_handle(jalv->ui_instance)); + +- } else { ++ } else if (!jalv->opts.non_interactive) { + // Primitive command prompt for setting control values + while (!zix_sem_try_wait(jalv->done)) { + char line[128]; +@@ -202,6 +204,8 @@ jalv_open_ui(Jalv* jalv) + break; + } + } ++ } else { ++ zix_sem_wait(jalv->done); + } + + // Caller waits on the done sem, so increment it again to exit +diff --git a/src/jalv_internal.h b/src/jalv_internal.h +index 3a565ec..06f116a 100644 +--- a/src/jalv_internal.h ++++ b/src/jalv_internal.h +@@ -172,6 +172,7 @@ typedef struct { + int no_menu; ///< Hide menu iff true + int show_ui; ///< Show non-embedded UI + int print_controls; ///< Print control changes to stdout ++ int non_interactive; ///< Do not listen for commands on stdin + } JalvOptions; + + typedef struct { +-- +cgit v0.10.2 + diff --git a/media-sound/jalv/files/jalv-1.6.0-suil-qt5.patch b/media-sound/jalv/files/jalv-1.6.0-suil-qt5.patch new file mode 100644 index 000000000000..a57447ce075b --- /dev/null +++ b/media-sound/jalv/files/jalv-1.6.0-suil-qt5.patch @@ -0,0 +1,34 @@ +From 4d22c6a53ff1dcb657ab1913f1b100e42db19bca Mon Sep 17 00:00:00 2001 +From: David Robillard <d@drobilla.net> +Date: Sat, 18 Mar 2017 12:00:11 +0100 +Subject: Use new suil init API to fix Qt5 plugin UIs + + +diff --git a/src/jalv.c b/src/jalv.c +index 78901ca..20f24e7 100644 +--- a/src/jalv.c ++++ b/src/jalv.c +@@ -777,6 +777,7 @@ main(int argc, char** argv) + jalv.bpm = 120.0f; + jalv.control_in = (uint32_t)-1; + ++ suil_init(&argc, &argv, SUIL_ARG_NONE); + if (jalv_init(&argc, &argv, &jalv.opts)) { + return EXIT_FAILURE; + } +diff --git a/wscript b/wscript +index 19f51bb..e2adc63 100644 +--- a/wscript ++++ b/wscript +@@ -59,7 +59,7 @@ def configure(conf): + autowaf.check_pkg(conf, 'sord-0', uselib_store='SORD', + atleast_version='0.12.0', mandatory=True) + autowaf.check_pkg(conf, 'suil-0', uselib_store='SUIL', +- atleast_version='0.6.0', mandatory=True) ++ atleast_version='0.8.7', mandatory=True) + autowaf.check_pkg(conf, 'sratom-0', uselib_store='SRATOM', + atleast_version='0.6.0', mandatory=True) + if Options.options.portaudio: +-- +cgit v0.10.2 + diff --git a/media-sound/jalv/jalv-1.6.0-r2.ebuild b/media-sound/jalv/jalv-1.6.0-r2.ebuild new file mode 100644 index 000000000000..03cdffb688ec --- /dev/null +++ b/media-sound/jalv/jalv-1.6.0-r2.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) +PYTHON_REQ_USE='threads(+)' + +inherit python-any-r1 qmake-utils waf-utils + +DESCRIPTION="Simple but fully featured LV2 host for Jack" +HOMEPAGE="http://drobilla.net/software/jalv/" +SRC_URI="http://download.drobilla.net/${P}.tar.bz2" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~amd64" +IUSE="gtk gtk2 gtkmm portaudio qt5" + +RDEPEND=">=media-libs/lv2-1.6.0 + >=media-libs/lilv-0.24.0 + >=dev-libs/serd-0.14.0 + >=dev-libs/sord-0.12.0 + >=media-libs/suil-0.6.0 + >=media-libs/sratom-0.6.0 + gtk? ( >=x11-libs/gtk+-3.0.0:3 ) + gtk2? ( >=x11-libs/gtk+-2.18.0:2 ) + gtkmm? ( >=dev-cpp/gtkmm-2.20.0:2.4 ) + portaudio? ( media-libs/portaudio ) + !portaudio? ( virtual/jack ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) +" +DEPEND="${RDEPEND} + ${PYTHON_DEPS} + virtual/pkgconfig" + +DOCS=( AUTHORS NEWS README ) + +PATCHES=( + "${FILESDIR}/${P}-qt-5.7.0.patch" + "${FILESDIR}/${P}-stdin.patch" + "${FILESDIR}/${P}-suil-qt5.patch" +) + +src_configure() { + use qt5 && export PATH="$(qt5_get_bindir):${PATH}" + waf-utils_src_configure \ + "--docdir=/usr/share/doc/${PF}" \ + --no-qt4 \ + $(use qt5 || echo --no-qt5) \ + $(use gtk || echo --no-gtk3) \ + $(use gtk2 || echo --no-gtk2) \ + $(use gtkmm || echo --no-gtkmm) \ + $(use portaudio && echo --portaudio) +} |