From eb67301c5fd1d620165354efbd8ad98370cbae81 Mon Sep 17 00:00:00 2001 From: TheK0tYaRa Date: Mon, 6 Apr 2026 00:53:28 +0300 Subject: [PATCH] pavucontrol bump to 6.2 --- media-sound/pavucontrol/Manifest | 1 + ...ontrol-5.0-make-libcanberra-optional.patch | 125 ++++++++++++++++++ .../files/pavucontrol-6.1-docdir.patch | 13 ++ ...avucontrol-6.1-libcanberra-automagic.patch | 39 ++++++ media-sound/pavucontrol/metadata.xml | 14 ++ .../pavucontrol/pavucontrol-6.2.ebuild | 50 +++++++ .../md5-cache/media-sound/pavucontrol-6.2 | 15 +++ 7 files changed, 257 insertions(+) create mode 100644 media-sound/pavucontrol/Manifest create mode 100644 media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch create mode 100644 media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch create mode 100644 media-sound/pavucontrol/files/pavucontrol-6.1-libcanberra-automagic.patch create mode 100644 media-sound/pavucontrol/metadata.xml create mode 100644 media-sound/pavucontrol/pavucontrol-6.2.ebuild create mode 100644 metadata/md5-cache/media-sound/pavucontrol-6.2 diff --git a/media-sound/pavucontrol/Manifest b/media-sound/pavucontrol/Manifest new file mode 100644 index 0000000..6d5d1fe --- /dev/null +++ b/media-sound/pavucontrol/Manifest @@ -0,0 +1 @@ +DIST pavucontrol-6.2.tar.xz 198492 BLAKE2B 048550330399e3a262a8b0de182da0914f6c7d946eece9121fd98835cc29436c38542b23dc95fa1b8a3655baba378d9433e59864781b4a8bc68364b7ace2af89 SHA512 00916eeea56e5b18146a98487d6b5d41e96c668258b0191effc985b663538ae853f50eead22fa638527e4f2adf67afb97b9de7925f5806ce0bf759718f9a92dd 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 0000000..595cf9f --- /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 +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 +--- + 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 +- + #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 + #endif + ++#ifdef HAVE_LIBCANBERRA + #include ++#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 ++#endif ++ + #if HAVE_EXT_DEVICE_RESTORE_API + # include + # include +@@ -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/files/pavucontrol-6.1-docdir.patch b/media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch new file mode 100644 index 0000000..55dd419 --- /dev/null +++ b/media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index bc1a300..553abc1 100644 +--- a/meson.build ++++ b/meson.build +@@ -28,7 +28,7 @@ configinc = include_directories('.') + + prefix = get_option('prefix') + datadir = join_paths(prefix, get_option('datadir')) +-docdir = join_paths(datadir, 'doc', 'pavucontrol') ++docdir = join_paths(datadir, 'doc', 'pavucontrol-' + meson.project_version()) + localedir = join_paths(prefix, get_option('localedir')) + + cdata = configuration_data() diff --git a/media-sound/pavucontrol/files/pavucontrol-6.1-libcanberra-automagic.patch b/media-sound/pavucontrol/files/pavucontrol-6.1-libcanberra-automagic.patch new file mode 100644 index 0000000..deef400 --- /dev/null +++ b/media-sound/pavucontrol/files/pavucontrol-6.1-libcanberra-automagic.patch @@ -0,0 +1,39 @@ +https://bugs.gentoo.org/950761 +https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/104 + +From 53b44d9ccd2e095a9c0ce1511e122e4ed37bbbb5 Mon Sep 17 00:00:00 2001 +From: Alfred Wingate +Date: Mon, 10 Mar 2025 20:44:02 +0200 +Subject: [PATCH] Add a option for controlling libcanberra feature + +The retains the previous behavior of automagic except it allows the user to +explicitly enable or disable the feature. + +Chose to call the feature a more agnostic "audio-feedback". + +Bug: https://bugs.gentoo.org/950761 +See-Also: 22b04fff6e881b4e0a1b8344a6513bdf99a10c65 +Signed-off-by: Alfred Wingate +--- a/meson.build ++++ b/meson.build +@@ -10,7 +10,7 @@ cpp = meson.get_compiler('cpp') + + gtkmm_dep = dependency('gtkmm-4.0', version : '>= 4.0', required : true) + sigcpp_dep = dependency('sigc++-3.0', required : true) +-canberragtk_dep = dependency('libcanberra', version : '>= 0.16', required : false) ++canberragtk_dep = dependency('libcanberra', version : '>= 0.16', required : get_option('audio-feedback')) + + libpulse_dep = dependency('libpulse', version : '>= 5.0', required : true) + libpulsemlglib_dep = dependency('libpulse-mainloop-glib', version : '>= 0.9.16', required : true) +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,3 +1,6 @@ + option('lynx', + type : 'boolean', value : true, + description : 'Enable building of the README text file for installation') ++option('audio-feedback', ++ type : 'feature', value: 'auto', ++ description : 'Play a sound when you change the volume of a sink') +-- +GitLab + diff --git a/media-sound/pavucontrol/metadata.xml b/media-sound/pavucontrol/metadata.xml new file mode 100644 index 0000000..5fc3212 --- /dev/null +++ b/media-sound/pavucontrol/metadata.xml @@ -0,0 +1,14 @@ + + + + + sound@gentoo.org + Gentoo Sound project + + + pulseaudio/pavucontrol + + + Enable sound notifications using media-libs/libcanberra + + diff --git a/media-sound/pavucontrol/pavucontrol-6.2.ebuild b/media-sound/pavucontrol/pavucontrol-6.2.ebuild new file mode 100644 index 0000000..9ad5f60 --- /dev/null +++ b/media-sound/pavucontrol/pavucontrol-6.2.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Pulseaudio Volume Control, GTK based mixer for Pulseaudio" +HOMEPAGE="https://freedesktop.org/software/pulseaudio/pavucontrol/" +SRC_URI="https://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" + +IUSE="sound" + +RDEPEND=" + dev-cpp/gtkmm:4.0 + dev-libs/json-glib + dev-libs/libsigc++:3 + >=media-libs/libpulse-15.0[glib] + virtual/freedesktop-icon-theme + sound? ( media-libs/libcanberra ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + sys-devel/gettext +" + +#PATCHES=( +# "${FILESDIR}/pavucontrol-6.1-libcanberra-automagic.patch" +#) + +src_prepare() { + default + + # Follow Gentoo FHS with docdir + sed -i -e "/^docdir/ { s/${PN}/${PF}/ }" meson.build || die +} + +src_configure() { + local emesonargs=( + -Dlynx=disabled + $(meson_feature sound audio-feedback) + ) + + meson_src_configure +} diff --git a/metadata/md5-cache/media-sound/pavucontrol-6.2 b/metadata/md5-cache/media-sound/pavucontrol-6.2 new file mode 100644 index 0000000..9e4a3a9 --- /dev/null +++ b/metadata/md5-cache/media-sound/pavucontrol-6.2 @@ -0,0 +1,15 @@ +BDEPEND=virtual/pkgconfig sys-devel/gettext >=dev-build/meson-1.2.3 app-alternatives/ninja dev-build/meson-format-array +DEFINED_PHASES=compile configure install prepare test +DEPEND=dev-cpp/gtkmm:4.0 dev-libs/json-glib dev-libs/libsigc++:3 >=media-libs/libpulse-15.0[glib] virtual/freedesktop-icon-theme sound? ( media-libs/libcanberra ) +DESCRIPTION=Pulseaudio Volume Control, GTK based mixer for Pulseaudio +EAPI=8 +HOMEPAGE=https://freedesktop.org/software/pulseaudio/pavucontrol/ +INHERIT=meson +IUSE=sound +KEYWORDS=amd64 arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 +LICENSE=GPL-2 +RDEPEND=dev-cpp/gtkmm:4.0 dev-libs/json-glib dev-libs/libsigc++:3 >=media-libs/libpulse-15.0[glib] virtual/freedesktop-icon-theme sound? ( media-libs/libcanberra ) +SLOT=0 +SRC_URI=https://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-6.2.tar.xz +_eclasses_=toolchain-funcs 5195689ff6a73b0e789acfa09d4fbcb9 flag-o-matic fd3558f73f6503093adee69adf41020d multiprocessing 45d0620f25c2f063ad6276ecd9ed9399 ninja-utils d063ea1900a793f93eb095010d6d9156 eapi9-pipestatus d2c134036ac31c3085aebc9147f572bd python-utils-r1 9c4180f103a0e8340bc993fc85dbdadd sysroot ba2e3d2f7daad91fdef9350dc789d87f rust-toolchain 76468983281b0a7fc167ca224f84ecfd meson 12065b402c6d78a2aec926ed8dfd964f +_md5_=432582accd38f60ecb538657cfb82b1f