| Message ID | 20260107173104.211861-1-f_l_k@t-online.de |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [meta-oe] pavucontrol: update 5.0 -> 6.2 | expand |
On Wed, Jan 7, 2026 at 9:31 AM Markus Volk via lists.openembedded.org <f_l_k=t-online.de@lists.openembedded.org> wrote: > - switch to meson buildsystem > - pavucontrol now requires gtk4 and thus requires gpu acceleration > - remove patch. Meanwhile libcanberra is optional and build doesn't > fail without anymore > - pavucontrol was migrated from intltool to gettext > - add packageconfigs for libcanberra and lynx to have both disabled > by default > > Signed-off-by: Markus Volk <f_l_k@t-online.de> > --- > ...ucontrol-remove-canberra-gtk-support.patch | 112 ------------------ > .../pulseaudio/pavucontrol_5.0.bb | 27 ----- > .../pulseaudio/pavucontrol_6.2.bb | 22 ++++ > 3 files changed, 22 insertions(+), 139 deletions(-) > delete mode 100644 > meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch > delete mode 100644 meta-oe/recipes-multimedia/pulseaudio/ > pavucontrol_5.0.bb > create mode 100644 meta-oe/recipes-multimedia/pulseaudio/ > pavucontrol_6.2.bb > > diff --git > a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch > b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch > deleted file mode 100644 > index 44169240c5..0000000000 > --- > a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch > +++ /dev/null > @@ -1,112 +0,0 @@ > -From 87992a57e5f517d5ceb5dfabaea662ac64983720 Mon Sep 17 00:00:00 2001 > -From: Markus Volk <f_l_k@t-online.de> > -Date: Fri, 27 May 2022 18:37:53 +0200 > -Subject: [PATCH] pavucontrol: remove canberra-gtk support > - > -libcanberra-gtk3 module isn't buildable for wayland. > -Remove its dpendency. > - > -Signed-off-by: Markus Volk <f_l_k@t-online.de> > - > -Upstream-Status: Inappropriate > ---- > - configure.ac | 2 +- > - src/pavuapplication.cc | 2 -- > - src/pavucontrol.cc | 4 ---- > - src/sinkwidget.cc | 17 ----------------- > - 4 files changed, 1 insertion(+), 24 deletions(-) > - > -diff --git a/configure.ac b/configure.ac > -index 056ba5e..e857563 100644 > ---- a/configure.ac > -+++ b/configure.ac > -@@ -41,7 +41,7 @@ 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) > - > -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..10ab646 100644 > ---- a/src/pavucontrol.cc > -+++ b/src/pavucontrol.cc > -@@ -29,8 +29,6 @@ > - #include <json-glib/json-glib.h> > - #endif > - > --#include <canberra-gtk.h> > -- > - #include "pavucontrol.h" > - #include "i18n.h" > - #include "minimalstreamwidget.h" > -@@ -916,8 +914,6 @@ MainWindow* pavucontrol_get_window(pa_glib_mainloop > *m, bool maximize, bool _ret > - tab_number = _tab_number; > - retry = _retry; > - > -- ca_context_set_driver(ca_gtk_context_get(), "pulse"); > -- > - mainWindow = MainWindow::create(maximize); > - > - api = pa_glib_mainloop_get_api(m); > -diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc > -index f30bd37..482fd1f 100644 > ---- a/src/sinkwidget.cc > -+++ b/src/sinkwidget.cc > -@@ -24,7 +24,6 @@ > - > - #include "sinkwidget.h" > - > --#include <canberra-gtk.h> > - #if HAVE_EXT_DEVICE_RESTORE_API > - # include <pulse/format.h> > - # include <pulse/ext-device-restore.h> > -@@ -111,7 +110,6 @@ SinkWidget* SinkWidget::create(MainWindow* > mainWindow) { > - void SinkWidget::executeVolumeUpdate() { > - pa_operation* o; > - char dev[64]; > -- int playing = 0; > - > - if (!(o = pa_context_set_sink_volume_by_index(get_context(), index, > &volume, NULL, NULL))) { > - show_error(_("pa_context_set_sink_volume_by_index() failed")); > -@@ -120,22 +118,7 @@ void SinkWidget::executeVolumeUpdate() { > - > - pa_operation_unref(o); > - > -- ca_context_playing(ca_gtk_context_get(), 2, &playing); > -- if (playing) > -- return; > -- > - snprintf(dev, sizeof(dev), "%lu", (unsigned long) index); > -- ca_context_change_device(ca_gtk_context_get(), dev); > -- > -- ca_gtk_play_for_widget(GTK_WIDGET(gobj()), > -- 2, > -- CA_PROP_EVENT_DESCRIPTION, _("Volume Control > Feedback Sound"), > -- CA_PROP_EVENT_ID, "audio-volume-change", > -- CA_PROP_CANBERRA_CACHE_CONTROL, "permanent", > -- CA_PROP_CANBERRA_ENABLE, "1", > -- NULL); > -- > -- ca_context_change_device(ca_gtk_context_get(), NULL); > - } > - > - void SinkWidget::onMuteToggleButton() { > --- > -2.25.1 > - > diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb > b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb > deleted file mode 100644 > index 29500bdb94..0000000000 > --- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb > +++ /dev/null > @@ -1,27 +0,0 @@ > -DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK > based volume control tool ("mixer") for the PulseAudio sound server." > -HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/" > -SECTION = "x11/multimedia" > -LICENSE = "GPL-2.0-or-later" > -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" > - > -# glib-2.0-native is required for glib-gettextize, which is used by the > -# AM_GLIB_GNU_GETTEXT macro in configure.ac. That macro is deprecated, > so the > -# glib-2.0-native dependency may go away at some point (something to keep > in > -# mind when doing version upgrades). > -DEPENDS = "libxml-parser-perl-native intltool-native glib-2.0-native > gtkmm3 pulseaudio json-glib" > - > -inherit autotools features_check perlnative pkgconfig > - > -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" > - > -SRC_URI = " > http://www.freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz" > -SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', > 'file://0001-pavucontrol-remove-canberra-gtk-support.patch', '', d)}" > - > -SRC_URI[sha256sum] = > "ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a" > - > -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" > -PACKAGECONFIG[x11] = ",,libcanberra" > - > -EXTRA_OECONF = "--disable-lynx " > - > -RDEPENDS:${PN} += "pulseaudio-server" > diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb > b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb > new file mode 100644 > index 0000000000..b6b9a068a9 > --- /dev/null > +++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb > @@ -0,0 +1,22 @@ > +SUMMARY = "PulseAudio Volume Control is a simple GTK based volume control > tool for the PulseAudio sound server" > +HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/" > +SECTION = "multimedia" > +LICENSE = "GPL-2.0-or-later" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" > + > +DEPENDS = "gtkmm4 pulseaudio json-glib" > + > +inherit meson features_check pkgconfig gettext > + > +ANY_OF_DISTRO_FEATURES = "opengl vulkan" > I am seeing this on world build stdio: ERROR: Nothing RPROVIDES 'pavucontrol' (but /srv/pokybuild/yocto-worker/meta-oe/build/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/ xfce4-pulseaudio-plugin_0.5.1.bb RDEPENDS on or otherwise requires it) stdio: ERROR: Required build target 'meta-world-pkgdata' has no buildable providers. I guess distro features should match between these two recipes or perhaps the rrecommends should be removed. > + > +SRC_URI = " > http://www.freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz" > +SRC_URI[sha256sum] = > "e93a7836c7307dcbc989e95fc7ec0878322514c475fabd90e89ed52fd4f15d32" > + > +PACKAGECONFIG ?= "" > +PACKAGECONFIG[audio-feedback] = > "-Daudio-feedback=enabled,-Daudio-feedback=disabled,libcanberra" > +PACKAGECONFIG[lynx] = "-Dlynx=enabled,-Dlynx=disabled,lynx" > + > +FILES:${PN} += "${datadir}" > + > +RDEPENDS:${PN} += "pulseaudio-server" > -- > 2.52.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#123226): > https://lists.openembedded.org/g/openembedded-devel/message/123226 > Mute This Topic: https://lists.openembedded.org/mt/117138237/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
On Wed, Jan 7 2026 at 21:23:40 -08:00:00, Khem Raj via
lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org>
wrote:
> I guess distro features should match between these two recipes
Theoretically xfce4-pulseaudio-plugin should still be useable without
egl since it depends on gtk3 but after the pavucontrol update it would
become an indirect requirement by pulling in gtk4.
If it would be still desired to be able run xfce without gl requirement
it may also be possible to keep the old pavucontrol recipe as
'pavucontrol-gtk3' present in meta-xfce,
set the RRECOMMENDS to 'pavucontrol-gtk3' and add make 'pavucontrol'
and 'pavucontrol-gtk3' mutually exclusive?
Otherwise both solutions you suggested should fix the issue I suppose.
But which way should we take?
diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch deleted file mode 100644 index 44169240c5..0000000000 --- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 87992a57e5f517d5ceb5dfabaea662ac64983720 Mon Sep 17 00:00:00 2001 -From: Markus Volk <f_l_k@t-online.de> -Date: Fri, 27 May 2022 18:37:53 +0200 -Subject: [PATCH] pavucontrol: remove canberra-gtk support - -libcanberra-gtk3 module isn't buildable for wayland. -Remove its dpendency. - -Signed-off-by: Markus Volk <f_l_k@t-online.de> - -Upstream-Status: Inappropriate ---- - configure.ac | 2 +- - src/pavuapplication.cc | 2 -- - src/pavucontrol.cc | 4 ---- - src/sinkwidget.cc | 17 ----------------- - 4 files changed, 1 insertion(+), 24 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 056ba5e..e857563 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -41,7 +41,7 @@ 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) - -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..10ab646 100644 ---- a/src/pavucontrol.cc -+++ b/src/pavucontrol.cc -@@ -29,8 +29,6 @@ - #include <json-glib/json-glib.h> - #endif - --#include <canberra-gtk.h> -- - #include "pavucontrol.h" - #include "i18n.h" - #include "minimalstreamwidget.h" -@@ -916,8 +914,6 @@ MainWindow* pavucontrol_get_window(pa_glib_mainloop *m, bool maximize, bool _ret - tab_number = _tab_number; - retry = _retry; - -- ca_context_set_driver(ca_gtk_context_get(), "pulse"); -- - mainWindow = MainWindow::create(maximize); - - api = pa_glib_mainloop_get_api(m); -diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc -index f30bd37..482fd1f 100644 ---- a/src/sinkwidget.cc -+++ b/src/sinkwidget.cc -@@ -24,7 +24,6 @@ - - #include "sinkwidget.h" - --#include <canberra-gtk.h> - #if HAVE_EXT_DEVICE_RESTORE_API - # include <pulse/format.h> - # include <pulse/ext-device-restore.h> -@@ -111,7 +110,6 @@ SinkWidget* SinkWidget::create(MainWindow* mainWindow) { - void SinkWidget::executeVolumeUpdate() { - pa_operation* o; - char dev[64]; -- int playing = 0; - - if (!(o = pa_context_set_sink_volume_by_index(get_context(), index, &volume, NULL, NULL))) { - show_error(_("pa_context_set_sink_volume_by_index() failed")); -@@ -120,22 +118,7 @@ void SinkWidget::executeVolumeUpdate() { - - pa_operation_unref(o); - -- ca_context_playing(ca_gtk_context_get(), 2, &playing); -- if (playing) -- return; -- - snprintf(dev, sizeof(dev), "%lu", (unsigned long) index); -- ca_context_change_device(ca_gtk_context_get(), dev); -- -- ca_gtk_play_for_widget(GTK_WIDGET(gobj()), -- 2, -- CA_PROP_EVENT_DESCRIPTION, _("Volume Control Feedback Sound"), -- CA_PROP_EVENT_ID, "audio-volume-change", -- CA_PROP_CANBERRA_CACHE_CONTROL, "permanent", -- CA_PROP_CANBERRA_ENABLE, "1", -- NULL); -- -- ca_context_change_device(ca_gtk_context_get(), NULL); - } - - void SinkWidget::onMuteToggleButton() { --- -2.25.1 - diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb deleted file mode 100644 index 29500bdb94..0000000000 --- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server." -HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/" -SECTION = "x11/multimedia" -LICENSE = "GPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" - -# glib-2.0-native is required for glib-gettextize, which is used by the -# AM_GLIB_GNU_GETTEXT macro in configure.ac. That macro is deprecated, so the -# glib-2.0-native dependency may go away at some point (something to keep in -# mind when doing version upgrades). -DEPENDS = "libxml-parser-perl-native intltool-native glib-2.0-native gtkmm3 pulseaudio json-glib" - -inherit autotools features_check perlnative pkgconfig - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -SRC_URI = "http://www.freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz" -SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'file://0001-pavucontrol-remove-canberra-gtk-support.patch', '', d)}" - -SRC_URI[sha256sum] = "ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG[x11] = ",,libcanberra" - -EXTRA_OECONF = "--disable-lynx " - -RDEPENDS:${PN} += "pulseaudio-server" diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb new file mode 100644 index 0000000000..b6b9a068a9 --- /dev/null +++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb @@ -0,0 +1,22 @@ +SUMMARY = "PulseAudio Volume Control is a simple GTK based volume control tool for the PulseAudio sound server" +HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/" +SECTION = "multimedia" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "gtkmm4 pulseaudio json-glib" + +inherit meson features_check pkgconfig gettext + +ANY_OF_DISTRO_FEATURES = "opengl vulkan" + +SRC_URI = "http://www.freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz" +SRC_URI[sha256sum] = "e93a7836c7307dcbc989e95fc7ec0878322514c475fabd90e89ed52fd4f15d32" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[audio-feedback] = "-Daudio-feedback=enabled,-Daudio-feedback=disabled,libcanberra" +PACKAGECONFIG[lynx] = "-Dlynx=enabled,-Dlynx=disabled,lynx" + +FILES:${PN} += "${datadir}" + +RDEPENDS:${PN} += "pulseaudio-server"
- switch to meson buildsystem - pavucontrol now requires gtk4 and thus requires gpu acceleration - remove patch. Meanwhile libcanberra is optional and build doesn't fail without anymore - pavucontrol was migrated from intltool to gettext - add packageconfigs for libcanberra and lynx to have both disabled by default Signed-off-by: Markus Volk <f_l_k@t-online.de> --- ...ucontrol-remove-canberra-gtk-support.patch | 112 ------------------ .../pulseaudio/pavucontrol_5.0.bb | 27 ----- .../pulseaudio/pavucontrol_6.2.bb | 22 ++++ 3 files changed, 22 insertions(+), 139 deletions(-) delete mode 100644 meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch delete mode 100644 meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb create mode 100644 meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb