pavucontrol bump to 6.2

This commit is contained in:
TheK0tYaRa 2026-04-06 00:53:28 +03:00
parent 385b051062
commit eb67301c5f
7 changed files with 257 additions and 0 deletions

View file

@ -0,0 +1 @@
DIST pavucontrol-6.2.tar.xz 198492 BLAKE2B 048550330399e3a262a8b0de182da0914f6c7d946eece9121fd98835cc29436c38542b23dc95fa1b8a3655baba378d9433e59864781b4a8bc68364b7ace2af89 SHA512 00916eeea56e5b18146a98487d6b5d41e96c668258b0191effc985b663538ae853f50eead22fa638527e4f2adf67afb97b9de7925f5806ce0bf759718f9a92dd

View file

@ -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

View file

@ -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()

View file

@ -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 <parona@protonmail.com>
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 <parona@protonmail.com>
--- 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

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sound@gentoo.org</email>
<name>Gentoo Sound project</name>
</maintainer>
<upstream>
<remote-id type="freedesktop-gitlab">pulseaudio/pavucontrol</remote-id>
</upstream>
<use>
<flag name="sound">Enable sound notifications using <pkg>media-libs/libcanberra</pkg></flag>
</use>
</pkgmetadata>

View file

@ -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
}

View file

@ -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