commit:     ff8efc6a420864e0a2150530cdbc07e401501690
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 17 23:00:27 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sun Jul 18 00:31:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff8efc6a

media-sound/pulseeffects: improve dependencies

1. Both dev-libs/appstream-glib and sys-devel/gettext are *build-time*
   dependencies so they should have been moved from DEPEND to BDEPEND
   when this package got bumped to EAPI 7. Do it now;
2. Add missing (if optional) BDEPEND dev-util/desktop-file-utils;
3. Add an explanation of why media-libs/libsamplerate is in BDEPEND
   rather than DEPEND;
4. Clearly separate dependencies which meson looks for (in
   DEPEND+RDEPEND) from those which are auto-loaded at run time (in
   RDEPEND only);
5. Add RDEPEND=gnome-extra/yelp so that it is possible to display
   built-in help;
6. Add DEPEND="media-libs/libsndfile (implicitly pulled in by
   media-libs/lilv but meson looks for it and pulseffects is linked
   against it) media-libs/gst-plugins-base (pulled in by other GStreamer
   plug-in packs but meson explicitly looks for gstreamer-audio and
   gstreamer-fft)";
7. The pitch plug-in only works properly if media-libs/rubberband has
   USE=ladspa set;
8. Optionally enable rnnoise and webrtc plug-ins;
8. Patch meson scripts so that if USE-flags: bs2db and rnnoise are
   disabled, the relevant dependencies are not pulled in even if present
   at build time.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../pulseeffects-4.8.5-meson_no_automagic.patch    | 55 ++++++++++++++
 .../pulseeffects/pulseeffects-4.8.5-r1.ebuild      | 83 ++++++++++++++++++++++
 2 files changed, 138 insertions(+)

diff --git 
a/media-sound/pulseeffects/files/pulseeffects-4.8.5-meson_no_automagic.patch 
b/media-sound/pulseeffects/files/pulseeffects-4.8.5-meson_no_automagic.patch
new file mode 100644
index 00000000000..2ad89e62977
--- /dev/null
+++ b/media-sound/pulseeffects/files/pulseeffects-4.8.5-meson_no_automagic.patch
@@ -0,0 +1,55 @@
+--- a/meson.build
++++ b/meson.build
+@@ -4,7 +4,7 @@
+       'cpp',
+       default_options : ['cpp_std=c++17','buildtype=debugoptimized'],
+       version: '4.8.5',
+-      meson_version: '>= 0.40.0'
++      meson_version: '>= 0.47.0'
+ )
+ 
+ add_global_arguments('-DG_LOG_DOMAIN="pulseeffects"', language : 'c')
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -0,0 +1,12 @@
++option(
++        'bs2b',
++        type: 'feature',
++        value: 'auto',
++        description: 'Enable bs2b-based Crossfeed plug-in for improving 
headphone listening of stereo audio records'
++)
++option(
++        'rnnoise',
++        type: 'feature',
++        value: 'auto',
++        description: 'Enable rnnoise-based Noise Reduction plug-in'
++)
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -108,7 +108,7 @@
+       dependency('gstreamer-plugins-bad-1.0', version: '>=1.12.5'),
+       dependency('gstreamer-fft-1.0'),
+       dependency('lilv-0', version: '>=0.22', required: false),
+-      dependency('libbs2b', required: false),
++      dependency('libbs2b', required: get_option('bs2b')),
+       dependency('boost', version: '>=1.72', modules:['system','filesystem']),
+       dependency('sndfile'),
+       dependency('threads')
+--- a/src/rnnoise/meson.build
++++ b/src/rnnoise/meson.build
+@@ -1,4 +1,5 @@
+-dep_rnnoise = dependency('rnnoise', required: false)
++opt_rnnoise = get_option('rnnoise')
++dep_rnnoise = dependency('rnnoise', required: opt_rnnoise)
+ 
+ if dep_rnnoise.found()
+ 
+@@ -28,7 +29,7 @@
+       cpp_args: plugins_cxx_args
+ )
+ 
+-else
++elif opt_rnnoise.auto()
+ 
+ message('could not find the RNNoise library')
+ 

diff --git a/media-sound/pulseeffects/pulseeffects-4.8.5-r1.ebuild 
b/media-sound/pulseeffects/pulseeffects-4.8.5-r1.ebuild
new file mode 100644
index 00000000000..2525d6bef1d
--- /dev/null
+++ b/media-sound/pulseeffects/pulseeffects-4.8.5-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit gnome2-utils meson
+
+DESCRIPTION="Limiter, compressor, reverberation, equalizer auto volume effects 
for Pulseaudio"
+HOMEPAGE="https://github.com/wwmm/easyeffects/tree/pulseaudio-legacy";
+
+if [[ ${PV} == *9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/wwmm/easyeffects";
+       EGIT_BRANCH="pulseaudio-legacy"
+else
+       SRC_URI="https://github.com/wwmm/easyeffects/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="bs2b calf rnnoise rubberband webrtc"
+
+DEPEND=">=dev-libs/boost-1.72:=
+       >=dev-cpp/glibmm-2.56.0:2
+       >=dev-cpp/gtkmm-3.24:3.0
+       >=dev-libs/glib-2.56:2
+       >=dev-libs/libsigc++-2.10:2
+       >=media-libs/gstreamer-1.12.5:1.0
+       media-libs/gst-plugins-base
+       >=media-libs/gst-plugins-bad-1.12.5:1.0
+       media-libs/libebur128
+       media-libs/libsndfile
+       >=media-libs/lilv-0.24.2-r1
+       >=media-libs/zita-convolver-3.0.0
+       media-sound/pulseaudio
+       >=x11-libs/gtk+-3.20:3
+       bs2b? ( >=media-plugins/gst-plugins-bs2b-1.12.5:1.0 )
+       rnnoise? ( media-libs/rnnoise )"
+RDEPEND="!media-sound/easyeffects
+       ${DEPEND}
+       gnome-extra/yelp
+       >=media-libs/gst-plugins-good-1.12.5:1.0
+       >=media-libs/lsp-plugins-1.1.24[lv2]
+       >=media-plugins/gst-plugins-ladspa-1.12.5:1.0
+       >=media-plugins/gst-plugins-lv2-1.12.5:1.0
+       >=media-plugins/gst-plugins-pulse-1.12.5:1.0
+       sys-apps/dbus
+       calf? ( >=media-plugins/calf-0.90.1[lv2] )
+       rubberband? ( media-libs/rubberband[ladspa] )
+       webrtc? ( media-plugins/gst-plugins-webrtc )"
+# Only header files are used from libsamplerate so put it here rather than 
DEPEND
+# to avoid unnecessary cross-compilation.
+BDEPEND="dev-libs/appstream-glib
+       dev-util/desktop-file-utils
+       dev-util/itstool
+       media-libs/libsamplerate
+       sys-devel/gettext
+       virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.8.5-meson_no_automagic.patch
+)
+
+src_configure() {
+       local emesonargs=(
+               $(meson_feature bs2b)
+               $(meson_feature rnnoise)
+       )
+       meson_src_configure
+}
+
+pkg_postinst() {
+       gnome2_gconf_install
+       gnome2_schemas_update
+       xdg_icon_cache_update
+}
+
+pkg_postrm() {
+       gnome2_gconf_uninstall
+       gnome2_schemas_update
+       xdg_icon_cache_update
+}

Reply via email to