diff options
Diffstat (limited to 'media-sound/pavucontrol')
-rw-r--r-- | media-sound/pavucontrol/Manifest | 1 | ||||
-rw-r--r-- | media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch | 125 | ||||
-rw-r--r-- | media-sound/pavucontrol/pavucontrol-5.0-r2.ebuild (renamed from media-sound/pavucontrol/pavucontrol-5.0-r1.ebuild) | 6 | ||||
-rw-r--r-- | media-sound/pavucontrol/pavucontrol-5.0-r3.ebuild (renamed from media-sound/pavucontrol/pavucontrol-4.0.ebuild) | 29 |
4 files changed, 149 insertions, 12 deletions
diff --git a/media-sound/pavucontrol/Manifest b/media-sound/pavucontrol/Manifest index ba3be6b14373..33ea38be36bb 100644 --- a/media-sound/pavucontrol/Manifest +++ b/media-sound/pavucontrol/Manifest @@ -1,2 +1 @@ -DIST pavucontrol-4.0.tar.xz 165216 BLAKE2B 5a556dbd8132d811b7704b377f4a62ad606378e235f9892a7951e1f981917e4196d17e85350ef757a956e6fbc448f0f6cd600b5656e12e2152b71d10b5e64e2a SHA512 eaea303c46ddb36733aed88c8a603907d70e4539c345d8acec23527d3306ee21ae630c0508bdab6ae52cbc2f1eb8fc4b212abda72876dc92e83fba7ceb623be2 DIST pavucontrol-5.0.tar.xz 194248 BLAKE2B 9e6b9b7d94be51a4ad8b5310e031c4fed0f5299e67c770c9a573c0647edf27345014fb6504892fad29b9b5e79ce43ed312217dbed8e2b31b805f291531062903 SHA512 5673d783c2c819a68b49025c051bedd39f4caba446a479797b06569e24a96acc0924ba680d2416baff8c3211cfc7c94760d503900207fbe7c89c5cb2adaebec1 diff --git a/media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch b/media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch new file mode 100644 index 000000000000..595cf9f8d0bd --- /dev/null +++ b/media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch @@ -0,0 +1,125 @@ +From 8916cb62b0facf45ccb220fd2efd5746fdaf79b8 Mon Sep 17 00:00:00 2001 +From: Adrian Ratiu <adrian.ratiu@collabora.com> +Date: Mon, 25 Mar 2024 02:19:42 +0200 +Subject: [PATCH] Make libcanberra optional + +libcanberra is an old abandoned project whose last release +was well over a decade ago, despite getting some few fixes +on its master branch since then, which are unreleased. + +My problem with libcanberra is that it can't be built on +pure wayland systems (no X11 headers) which are becoming +more common nowadays. + +It is the only thing keeping pavucontrol tied to X11, all +other dependencies (eg gtk+) build fine on pure wayland. +Since canberra is not a core part of the project, let's +make it optional so pavucontrol can build & work on +pure wayland systems. + +Ideally in the future libcanberra can be replaced with +something else, however I don't have the bandwidth to +take this on for now, so I'm just making it optional. + +Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> +--- + configure.ac | 9 ++++++++- + src/pavuapplication.cc | 2 -- + src/pavucontrol.cc | 4 ++++ + src/sinkwidget.cc | 5 +++++ + 4 files changed, 17 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 056ba5e..1b793b8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -41,10 +41,17 @@ AC_TYPE_SIGNAL + AC_HEADER_STDC + AX_CXX_COMPILE_STDCXX_11 + +-PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 libcanberra-gtk3 >= 0.16 json-glib-1.0 ]) ++PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 json-glib-1.0 ]) + AC_SUBST(GUILIBS_CFLAGS) + AC_SUBST(GUILIBS_LIBS) + ++AC_CHECK_LIB([canberra-gtk3], [canberra_gtk_play], [HAVE_LIBCANBERRA=yes], [HAVE_LIBCANBERRA=no]) ++AS_IF([test "x$HAVE_LIBCANBERRA" = "xyes"], [ ++ AC_DEFINE([HAVE_LIBCANBERRA], [1], [Have libcanberra support.]) ++ AC_SUBST(LIBCANBERRA_CFLAGS) ++ AC_SUBST(LIBCANBERRA_LIBS) ++]) ++ + if test -d ../pulseaudio ; then + PULSE_CFLAGS='-I$(top_srcdir)/../pulseaudio/src' + PULSE_LIBS='-L$(top_srcdir)/../pulseaudio/src/.libs -lpulse -lpulse-mainloop-glib' +diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc +index 6773b53..60c016c 100644 +--- a/src/pavuapplication.cc ++++ b/src/pavuapplication.cc +@@ -24,8 +24,6 @@ + + #include "i18n.h" + +-#include <canberra-gtk.h> +- + #include "pavuapplication.h" + #include "pavucontrol.h" + #include "mainwindow.h" +diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc +index 18d5400..ff652be 100644 +--- a/src/pavucontrol.cc ++++ b/src/pavucontrol.cc +@@ -29,7 +29,9 @@ + #include <json-glib/json-glib.h> + #endif + ++#ifdef HAVE_LIBCANBERRA + #include <canberra-gtk.h> ++#endif + + #include "pavucontrol.h" + #include "i18n.h" +@@ -916,7 +918,9 @@ MainWindow* pavucontrol_get_window(pa_glib_mainloop *m, bool maximize, bool _ret + tab_number = _tab_number; + retry = _retry; + ++#ifdef HAVE_LIBCANBERRA + ca_context_set_driver(ca_gtk_context_get(), "pulse"); ++#endif + + mainWindow = MainWindow::create(maximize); + +diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc +index f30bd37..41d7bb8 100644 +--- a/src/sinkwidget.cc ++++ b/src/sinkwidget.cc +@@ -24,7 +24,10 @@ + + #include "sinkwidget.h" + ++#ifdef HAVE_LIBCANBERRA + #include <canberra-gtk.h> ++#endif ++ + #if HAVE_EXT_DEVICE_RESTORE_API + # include <pulse/format.h> + # include <pulse/ext-device-restore.h> +@@ -120,6 +123,7 @@ void SinkWidget::executeVolumeUpdate() { + + pa_operation_unref(o); + ++#ifdef HAVE_LIBCANBERRA + ca_context_playing(ca_gtk_context_get(), 2, &playing); + if (playing) + return; +@@ -136,6 +140,7 @@ void SinkWidget::executeVolumeUpdate() { + NULL); + + ca_context_change_device(ca_gtk_context_get(), NULL); ++#endif + } + + void SinkWidget::onMuteToggleButton() { +-- +2.43.2 + diff --git a/media-sound/pavucontrol/pavucontrol-5.0-r1.ebuild b/media-sound/pavucontrol/pavucontrol-5.0-r2.ebuild index d1aa59fa73e0..c6228d9e9b8d 100644 --- a/media-sound/pavucontrol/pavucontrol-5.0-r1.ebuild +++ b/media-sound/pavucontrol/pavucontrol-5.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -9,7 +9,7 @@ SRC_URI="https://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 arm ~arm64 ~hppa ppc ~ppc64 ~riscv ~sparc x86" +KEYWORDS="amd64 arm ~arm64 ~hppa ~loong ppc ~ppc64 ~riscv ~sparc x86" IUSE="nls" RDEPEND=" @@ -17,7 +17,7 @@ RDEPEND=" >=dev-cpp/gtkmm-3.22:3.0[X] >=dev-libs/libsigc++-2.2:2 >=media-libs/libcanberra-0.16[gtk3] - >=media-sound/pulseaudio-15.0[glib] + >=media-libs/libpulse-15.0[glib] virtual/freedesktop-icon-theme " DEPEND="${RDEPEND}" diff --git a/media-sound/pavucontrol/pavucontrol-4.0.ebuild b/media-sound/pavucontrol/pavucontrol-5.0-r3.ebuild index 2826e6c159eb..d55e6e0bea80 100644 --- a/media-sound/pavucontrol/pavucontrol-4.0.ebuild +++ b/media-sound/pavucontrol/pavucontrol-5.0-r3.ebuild @@ -1,8 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit flag-o-matic DESCRIPTION="Pulseaudio Volume Control, GTK based mixer for Pulseaudio" HOMEPAGE="https://freedesktop.org/software/pulseaudio/pavucontrol/" @@ -10,14 +9,24 @@ SRC_URI="https://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 arm ~arm64 ~hppa ppc ~ppc64 ~sparc x86" -IUSE="nls" +KEYWORDS="amd64 arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc x86" +IUSE="nls X" + +inherit autotools + +PATCHES=( + "${FILESDIR}/${PN}-5.0-make-libcanberra-optional.patch" +) RDEPEND=" - >=dev-cpp/gtkmm-3.0:3.0[X] + dev-libs/json-glib + X? ( + >=dev-cpp/gtkmm-3.22:3.0[X] + >=media-libs/libcanberra-0.16[gtk3] + ) + !X? ( >=dev-cpp/gtkmm-3.22:3.0 ) >=dev-libs/libsigc++-2.2:2 - >=media-libs/libcanberra-0.16[gtk3] - >=media-sound/pulseaudio-5[glib] + >=media-libs/libpulse-15.0[glib] virtual/freedesktop-icon-theme " DEPEND="${RDEPEND}" @@ -29,8 +38,12 @@ BDEPEND=" ) " +src_prepare() { + default + eautoreconf +} + src_configure() { - append-cxxflags -std=c++11 #567216 local myeconfargs=( --disable-lynx $(use_enable nls) |