Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
@ 2021-09-28 18:39 paper42
  2021-09-28 18:44 ` [PR PATCH] [Updated] " paper42
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: paper42 @ 2021-09-28 18:39 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 794 bytes --]

There is a new pull request by paper42 against master on the void-packages repository

https://github.com/paper42/void-packages pavucontrol-5
https://github.com/void-linux/void-packages/pull/33169

pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

cc @anddam

A patch file from https://github.com/void-linux/void-packages/pull/33169.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pavucontrol-5-33169.patch --]
[-- Type: text/x-diff, Size: 16219 bytes --]

From cbb9ae439afec74edc1536ef881c4dcd5044513c Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:30:31 +0200
Subject: [PATCH 1/2] pulseaudio: stop disabling asserts

fixes segfaults with pavucontrol 5.0
---
 srcpkgs/pulseaudio/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pulseaudio/template b/srcpkgs/pulseaudio/template
index ac2205d76f4b..911dfb197d31 100644
--- a/srcpkgs/pulseaudio/template
+++ b/srcpkgs/pulseaudio/template
@@ -1,13 +1,13 @@
 # Template file for 'pulseaudio'
 pkgname=pulseaudio
 version=15.0
-revision=1
+revision=2
 build_style=meson
 configure_args="-Djack=enabled -Dlirc=disabled -Dhal-compat=false -Dorc=enabled
  -Dgtk=disabled -Dsystemd=disabled -Dwebrtc-aec=enabled
  -Dbluez5=enabled -Dbluez5-ofono-headset=false -Dbluez5-native-headset=true
  -Delogind=enabled -Dudevrulesdir=/usr/lib/udev/rules.d
- -Dbashcompletiondir=/usr/share/bash-completion/completions"
+ -Dbashcompletiondir=/usr/share/bash-completion/completions -Db_ndebug=false"
 hostmakedepends="cmake m4 gettext libtool orc-devel perl-XML-Parser pkg-config
  doxygen"
 makedepends="$(vopt_if avahi avahi-libs-devel) eudev-libudev-devel fftw-devel jack-devel

From ccf75366342e8b04111837a6a3b06bb10d226089 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:33:20 +0200
Subject: [PATCH 2/2] pavucontrol: update to 5.0.

---
 .../pavucontrol/patches/fix-segfault.patch    | 319 ------------------
 srcpkgs/pavucontrol/template                  |  12 +-
 2 files changed, 6 insertions(+), 325 deletions(-)
 delete mode 100644 srcpkgs/pavucontrol/patches/fix-segfault.patch

diff --git a/srcpkgs/pavucontrol/patches/fix-segfault.patch b/srcpkgs/pavucontrol/patches/fix-segfault.patch
deleted file mode 100644
index fe7fcba5ccc7..000000000000
--- a/srcpkgs/pavucontrol/patches/fix-segfault.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-Upstream: yes, not released.
-
-Remove configure.ac changes to avoid need to reconfigure.
-We know we have the necessary version of its dependencies.
-
-From 284082551938b65e71d06bda793fedbd4a4f41ab Mon Sep 17 00:00:00 2001
-From: Felipe Sateler <fsateler@gmail.com>
-Date: Sat, 28 Dec 2019 12:39:38 -0300
-Subject: [PATCH] Migrate away from deprecated Gtk interfaces
-
-This was accomplished by building with -DGTKMM_DISABLE_DEPRECATED.
----
- configure.ac           |  2 +-
- src/channelwidget.h    |  2 +-
- src/devicewidget.cc    |  6 +++---
- src/mainwindow.cc      | 12 ++++++------
- src/pavuapplication.cc | 22 +++++++++++++++-------
- src/pavuapplication.h  |  2 ++
- src/pavucontrol.cc     |  7 ++++---
- src/pavucontrol.glade  | 24 ++++++++++++------------
- src/sinkwidget.h       |  2 +-
- src/streamwidget.cc    |  2 +-
- 10 files changed, 46 insertions(+), 35 deletions(-)
-
-diff --git a/src/channelwidget.h b/src/channelwidget.h
-index c9c5c9d..6216b74 100644
---- a/src/channelwidget.h
-+++ b/src/channelwidget.h
-@@ -38,7 +38,7 @@ public:
- 
-     Gtk::Label *channelLabel;
-     Gtk::Label *volumeLabel;
--    Gtk::HScale *volumeScale;
-+    Gtk::Scale *volumeScale;
- 
-     int channel;
-     MinimalStreamWidget *minimalStreamWidget;
-diff --git a/src/devicewidget.cc b/src/devicewidget.cc
-index e1b1869..dd41487 100644
---- a/src/devicewidget.cc
-+++ b/src/devicewidget.cc
-@@ -227,7 +227,7 @@ void DeviceWidget::prepareMenu() {
- 
- bool DeviceWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
- 
-@@ -259,8 +259,8 @@ void DeviceWidget::renamePopup() {
-     x->get_widget("renameText", renameText);
- 
-     renameText->set_text(description);
--    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
--    dialog->add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
-+    dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
-+    dialog->add_button("_OK", Gtk::RESPONSE_OK);
-     dialog->set_default_response(Gtk::RESPONSE_OK);
-     if (Gtk::RESPONSE_OK == dialog->run()) {
-         pa_operation* o;
-diff --git a/src/mainwindow.cc b/src/mainwindow.cc
-index f3d8620..e1a0a82 100644
---- a/src/mainwindow.cc
-+++ b/src/mainwindow.cc
-@@ -95,11 +95,11 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
-     x->get_widget("notebook", notebook);
-     x->get_widget("showVolumeMetersCheckButton", showVolumeMetersCheckButton);
- 
--    cardsVBox->set_reallocate_redraws(true);
--    sourcesVBox->set_reallocate_redraws(true);
--    streamsVBox->set_reallocate_redraws(true);
--    recsVBox->set_reallocate_redraws(true);
--    sinksVBox->set_reallocate_redraws(true);
-+    sourcesVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sourcesVBox->queue_draw(); });
-+    cardsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ cardsVBox->queue_draw(); });
-+    streamsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ streamsVBox->queue_draw(); });
-+    recsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ recsVBox->queue_draw(); });
-+    sinksVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sinksVBox->queue_draw(); });
- 
-     sinkInputTypeComboBox->set_active((int) showSinkInputType);
-     sourceOutputTypeComboBox->set_active((int) showSourceOutputType);
-@@ -222,7 +222,7 @@ bool MainWindow::on_key_press_event(GdkEventKey* event) {
-             case GDK_KEY_Q:
-             case GDK_KEY_w:
-             case GDK_KEY_q:
--                Gtk::Main::quit();
-+                this->get_application()->quit();
-                 return true;
-         }
-     }
-diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
-index 2ff5739..6773b53 100644
---- a/src/pavuapplication.cc
-+++ b/src/pavuapplication.cc
-@@ -30,6 +30,14 @@
- #include "pavucontrol.h"
- #include "mainwindow.h"
- 
-+static PavuApplication globalInstance;
-+
-+PavuApplication&
-+PavuApplication::get_instance()
-+{
-+    return globalInstance;
-+}
-+
- PavuApplication::PavuApplication() :
-     Gtk::Application("org.pulseaudio.pavucontrol", Gio::ApplicationFlags::APPLICATION_HANDLES_COMMAND_LINE),
-     mainWindow(NULL),
-@@ -143,26 +151,26 @@ int main(int argc, char *argv[]) {
-     signal(SIGPIPE, SIG_IGN);
- 
-     /* Create the application */
--    auto app = PavuApplication();
-+    globalInstance = PavuApplication();
- 
-     /* Add command-line options */
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_INT,
-         "tab", 't',
-         _("Select a specific tab on load."),
-         _("number"));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "retry", 'r',
-         _("Retry forever if pa quits (every 5 seconds)."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "maximize", 'm',
-         _("Maximize the window."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "version", 'v',
-         _("Show version."));
-@@ -170,7 +178,7 @@ int main(int argc, char *argv[]) {
-     /* Connect to the "on_command_line" signal which is fired
-      * when the application receives command-line arguments
-      */
--    app.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &app), false);
-+    globalInstance.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &globalInstance), false);
- 
-     /* Run the application.
-      * In the first launched instance, this will return when its window is
-@@ -179,5 +187,5 @@ int main(int argc, char *argv[]) {
-      * Handling a new request consists of presenting the existing window (and
-      * optionally, select a tab).
-      */
--    return app.run(argc, argv);
-+    return globalInstance.run(argc, argv);
- }
-diff --git a/src/pavuapplication.h b/src/pavuapplication.h
-index 3589c5d..d2a1f5a 100644
---- a/src/pavuapplication.h
-+++ b/src/pavuapplication.h
-@@ -37,6 +37,8 @@ public:
-     gint32 tab;
-     bool version;
- 
-+    static PavuApplication& get_instance();
-+
- protected:
-     // Override default signal handlers:
-     void on_activate() override;
-diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
-index 6981707..bcdde8e 100644
---- a/src/pavucontrol.cc
-+++ b/src/pavucontrol.cc
-@@ -40,6 +40,7 @@
- #include "sourceoutputwidget.h"
- #include "rolewidget.h"
- #include "mainwindow.h"
-+#include "pavuapplication.h"
- 
- static pa_context* context = NULL;
- static pa_mainloop_api* api = NULL;
-@@ -56,7 +57,7 @@ void show_error(const char *txt) {
-     Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
-     dialog.run();
- 
--    Gtk::Main::quit();
-+    PavuApplication::get_instance().quit();
- }
- 
- static void dec_outstanding(MainWindow *w) {
-@@ -571,7 +572,7 @@ void context_state_callback(pa_context *c, void *userdata) {
- 
-         case PA_CONTEXT_TERMINATED:
-         default:
--            Gtk::Main::quit();
-+            w->get_application()->quit();
-             return;
-     }
- }
-@@ -613,7 +614,7 @@ gboolean connect_to_pulse(gpointer userdata) {
-         else {
-             if(!retry) {
-                 reconnect_timeout = -1;
--                Gtk::Main::quit();
-+                w->get_application()->quit();
-             } else {
-                 g_debug(_("Connection failed, attempting reconnect"));
-                 reconnect_timeout = 5;
-diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
-index e26e0c4..ed83b04 100644
---- a/src/pavucontrol.glade
-+++ b/src/pavucontrol.glade
-@@ -425,10 +425,10 @@
-                         <property name="visible">True</property>
-                         <property name="can_focus">False</property>
-                         <child>
--                          <object class="GtkTable" id="encodingSelect">
-+                          <object class="GtkGrid" id="encodingSelect">
-                             <property name="can_focus">False</property>
--                            <property name="n_rows">2</property>
--                            <property name="n_columns">3</property>
-+                            <property name="row_homogeneous">True</property>
-+                            <property name="column_homogeneous">True</property>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatPCM">
-                                 <property name="label" translatable="yes">PCM</property>
-@@ -439,6 +439,10 @@
-                                 <property name="active">True</property>
-                                 <property name="draw_indicator">True</property>
-                               </object>
-+                              <packing>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">0</property>
-+                              </packing>
-                             </child>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatAC3">
-@@ -450,7 +454,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -462,8 +466,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-+                                <property name="left_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -475,8 +479,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">1</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -489,9 +493,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -504,9 +506,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                           </object>
-diff --git a/src/sinkwidget.h b/src/sinkwidget.h
-index 0044ffc..924fca0 100644
---- a/src/sinkwidget.h
-+++ b/src/sinkwidget.h
-@@ -46,7 +46,7 @@ public:
- 
- #if HAVE_EXT_DEVICE_RESTORE_API
-     encodingList encodings[PAVU_NUM_ENCODINGS];
--    Gtk::Table *encodingSelect;
-+    Gtk::Grid *encodingSelect;
- #endif
- 
-     virtual void onMuteToggleButton();
-diff --git a/src/streamwidget.cc b/src/streamwidget.cc
-index 00df09f..d203b20 100644
---- a/src/streamwidget.cc
-+++ b/src/streamwidget.cc
-@@ -66,7 +66,7 @@ void StreamWidget::init(MainWindow* mainWindow) {
- 
- bool StreamWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
-     return false;
--- 
-GitLab
-
diff --git a/srcpkgs/pavucontrol/template b/srcpkgs/pavucontrol/template
index 45e93d9b130a..3c20da8593b5 100644
--- a/srcpkgs/pavucontrol/template
+++ b/srcpkgs/pavucontrol/template
@@ -1,14 +1,14 @@
 # Template file for 'pavucontrol'
 pkgname=pavucontrol
-reverts="5.0_1"
-version=4.0
-revision=3
+version=5.0
+revision=2
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
-makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel"
+makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel
+ json-glib-devel"
 short_desc="PulseAudio Volume Control"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-distfiles="${homepage}/${pkgname}-${version}.tar.xz"
-checksum=8fc45bac9722aefa6f022999cbb76242d143c31b314e2dbb38f034f4069d14e2
+distfiles="https://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-${version}.tar.xz"
+checksum=ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PR PATCH] [Updated] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
@ 2021-09-28 18:44 ` paper42
  2021-09-28 19:40 ` anddam
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-09-28 18:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

There is an updated pull request by paper42 against master on the void-packages repository

https://github.com/paper42/void-packages pavucontrol-5
https://github.com/void-linux/void-packages/pull/33169

pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

cc @anddam

A patch file from https://github.com/void-linux/void-packages/pull/33169.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pavucontrol-5-33169.patch --]
[-- Type: text/x-diff, Size: 16204 bytes --]

From cbb9ae439afec74edc1536ef881c4dcd5044513c Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:30:31 +0200
Subject: [PATCH 1/2] pulseaudio: stop disabling asserts

fixes segfaults with pavucontrol 5.0
---
 srcpkgs/pulseaudio/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pulseaudio/template b/srcpkgs/pulseaudio/template
index ac2205d76f4b..911dfb197d31 100644
--- a/srcpkgs/pulseaudio/template
+++ b/srcpkgs/pulseaudio/template
@@ -1,13 +1,13 @@
 # Template file for 'pulseaudio'
 pkgname=pulseaudio
 version=15.0
-revision=1
+revision=2
 build_style=meson
 configure_args="-Djack=enabled -Dlirc=disabled -Dhal-compat=false -Dorc=enabled
  -Dgtk=disabled -Dsystemd=disabled -Dwebrtc-aec=enabled
  -Dbluez5=enabled -Dbluez5-ofono-headset=false -Dbluez5-native-headset=true
  -Delogind=enabled -Dudevrulesdir=/usr/lib/udev/rules.d
- -Dbashcompletiondir=/usr/share/bash-completion/completions"
+ -Dbashcompletiondir=/usr/share/bash-completion/completions -Db_ndebug=false"
 hostmakedepends="cmake m4 gettext libtool orc-devel perl-XML-Parser pkg-config
  doxygen"
 makedepends="$(vopt_if avahi avahi-libs-devel) eudev-libudev-devel fftw-devel jack-devel

From 479aa9719681113752579de02fcbb01785168f00 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:33:20 +0200
Subject: [PATCH 2/2] pavucontrol: update to 5.0.

---
 .../pavucontrol/patches/fix-segfault.patch    | 319 ------------------
 srcpkgs/pavucontrol/template                  |  12 +-
 2 files changed, 6 insertions(+), 325 deletions(-)
 delete mode 100644 srcpkgs/pavucontrol/patches/fix-segfault.patch

diff --git a/srcpkgs/pavucontrol/patches/fix-segfault.patch b/srcpkgs/pavucontrol/patches/fix-segfault.patch
deleted file mode 100644
index fe7fcba5ccc7..000000000000
--- a/srcpkgs/pavucontrol/patches/fix-segfault.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-Upstream: yes, not released.
-
-Remove configure.ac changes to avoid need to reconfigure.
-We know we have the necessary version of its dependencies.
-
-From 284082551938b65e71d06bda793fedbd4a4f41ab Mon Sep 17 00:00:00 2001
-From: Felipe Sateler <fsateler@gmail.com>
-Date: Sat, 28 Dec 2019 12:39:38 -0300
-Subject: [PATCH] Migrate away from deprecated Gtk interfaces
-
-This was accomplished by building with -DGTKMM_DISABLE_DEPRECATED.
----
- configure.ac           |  2 +-
- src/channelwidget.h    |  2 +-
- src/devicewidget.cc    |  6 +++---
- src/mainwindow.cc      | 12 ++++++------
- src/pavuapplication.cc | 22 +++++++++++++++-------
- src/pavuapplication.h  |  2 ++
- src/pavucontrol.cc     |  7 ++++---
- src/pavucontrol.glade  | 24 ++++++++++++------------
- src/sinkwidget.h       |  2 +-
- src/streamwidget.cc    |  2 +-
- 10 files changed, 46 insertions(+), 35 deletions(-)
-
-diff --git a/src/channelwidget.h b/src/channelwidget.h
-index c9c5c9d..6216b74 100644
---- a/src/channelwidget.h
-+++ b/src/channelwidget.h
-@@ -38,7 +38,7 @@ public:
- 
-     Gtk::Label *channelLabel;
-     Gtk::Label *volumeLabel;
--    Gtk::HScale *volumeScale;
-+    Gtk::Scale *volumeScale;
- 
-     int channel;
-     MinimalStreamWidget *minimalStreamWidget;
-diff --git a/src/devicewidget.cc b/src/devicewidget.cc
-index e1b1869..dd41487 100644
---- a/src/devicewidget.cc
-+++ b/src/devicewidget.cc
-@@ -227,7 +227,7 @@ void DeviceWidget::prepareMenu() {
- 
- bool DeviceWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
- 
-@@ -259,8 +259,8 @@ void DeviceWidget::renamePopup() {
-     x->get_widget("renameText", renameText);
- 
-     renameText->set_text(description);
--    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
--    dialog->add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
-+    dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
-+    dialog->add_button("_OK", Gtk::RESPONSE_OK);
-     dialog->set_default_response(Gtk::RESPONSE_OK);
-     if (Gtk::RESPONSE_OK == dialog->run()) {
-         pa_operation* o;
-diff --git a/src/mainwindow.cc b/src/mainwindow.cc
-index f3d8620..e1a0a82 100644
---- a/src/mainwindow.cc
-+++ b/src/mainwindow.cc
-@@ -95,11 +95,11 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
-     x->get_widget("notebook", notebook);
-     x->get_widget("showVolumeMetersCheckButton", showVolumeMetersCheckButton);
- 
--    cardsVBox->set_reallocate_redraws(true);
--    sourcesVBox->set_reallocate_redraws(true);
--    streamsVBox->set_reallocate_redraws(true);
--    recsVBox->set_reallocate_redraws(true);
--    sinksVBox->set_reallocate_redraws(true);
-+    sourcesVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sourcesVBox->queue_draw(); });
-+    cardsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ cardsVBox->queue_draw(); });
-+    streamsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ streamsVBox->queue_draw(); });
-+    recsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ recsVBox->queue_draw(); });
-+    sinksVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sinksVBox->queue_draw(); });
- 
-     sinkInputTypeComboBox->set_active((int) showSinkInputType);
-     sourceOutputTypeComboBox->set_active((int) showSourceOutputType);
-@@ -222,7 +222,7 @@ bool MainWindow::on_key_press_event(GdkEventKey* event) {
-             case GDK_KEY_Q:
-             case GDK_KEY_w:
-             case GDK_KEY_q:
--                Gtk::Main::quit();
-+                this->get_application()->quit();
-                 return true;
-         }
-     }
-diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
-index 2ff5739..6773b53 100644
---- a/src/pavuapplication.cc
-+++ b/src/pavuapplication.cc
-@@ -30,6 +30,14 @@
- #include "pavucontrol.h"
- #include "mainwindow.h"
- 
-+static PavuApplication globalInstance;
-+
-+PavuApplication&
-+PavuApplication::get_instance()
-+{
-+    return globalInstance;
-+}
-+
- PavuApplication::PavuApplication() :
-     Gtk::Application("org.pulseaudio.pavucontrol", Gio::ApplicationFlags::APPLICATION_HANDLES_COMMAND_LINE),
-     mainWindow(NULL),
-@@ -143,26 +151,26 @@ int main(int argc, char *argv[]) {
-     signal(SIGPIPE, SIG_IGN);
- 
-     /* Create the application */
--    auto app = PavuApplication();
-+    globalInstance = PavuApplication();
- 
-     /* Add command-line options */
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_INT,
-         "tab", 't',
-         _("Select a specific tab on load."),
-         _("number"));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "retry", 'r',
-         _("Retry forever if pa quits (every 5 seconds)."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "maximize", 'm',
-         _("Maximize the window."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "version", 'v',
-         _("Show version."));
-@@ -170,7 +178,7 @@ int main(int argc, char *argv[]) {
-     /* Connect to the "on_command_line" signal which is fired
-      * when the application receives command-line arguments
-      */
--    app.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &app), false);
-+    globalInstance.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &globalInstance), false);
- 
-     /* Run the application.
-      * In the first launched instance, this will return when its window is
-@@ -179,5 +187,5 @@ int main(int argc, char *argv[]) {
-      * Handling a new request consists of presenting the existing window (and
-      * optionally, select a tab).
-      */
--    return app.run(argc, argv);
-+    return globalInstance.run(argc, argv);
- }
-diff --git a/src/pavuapplication.h b/src/pavuapplication.h
-index 3589c5d..d2a1f5a 100644
---- a/src/pavuapplication.h
-+++ b/src/pavuapplication.h
-@@ -37,6 +37,8 @@ public:
-     gint32 tab;
-     bool version;
- 
-+    static PavuApplication& get_instance();
-+
- protected:
-     // Override default signal handlers:
-     void on_activate() override;
-diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
-index 6981707..bcdde8e 100644
---- a/src/pavucontrol.cc
-+++ b/src/pavucontrol.cc
-@@ -40,6 +40,7 @@
- #include "sourceoutputwidget.h"
- #include "rolewidget.h"
- #include "mainwindow.h"
-+#include "pavuapplication.h"
- 
- static pa_context* context = NULL;
- static pa_mainloop_api* api = NULL;
-@@ -56,7 +57,7 @@ void show_error(const char *txt) {
-     Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
-     dialog.run();
- 
--    Gtk::Main::quit();
-+    PavuApplication::get_instance().quit();
- }
- 
- static void dec_outstanding(MainWindow *w) {
-@@ -571,7 +572,7 @@ void context_state_callback(pa_context *c, void *userdata) {
- 
-         case PA_CONTEXT_TERMINATED:
-         default:
--            Gtk::Main::quit();
-+            w->get_application()->quit();
-             return;
-     }
- }
-@@ -613,7 +614,7 @@ gboolean connect_to_pulse(gpointer userdata) {
-         else {
-             if(!retry) {
-                 reconnect_timeout = -1;
--                Gtk::Main::quit();
-+                w->get_application()->quit();
-             } else {
-                 g_debug(_("Connection failed, attempting reconnect"));
-                 reconnect_timeout = 5;
-diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
-index e26e0c4..ed83b04 100644
---- a/src/pavucontrol.glade
-+++ b/src/pavucontrol.glade
-@@ -425,10 +425,10 @@
-                         <property name="visible">True</property>
-                         <property name="can_focus">False</property>
-                         <child>
--                          <object class="GtkTable" id="encodingSelect">
-+                          <object class="GtkGrid" id="encodingSelect">
-                             <property name="can_focus">False</property>
--                            <property name="n_rows">2</property>
--                            <property name="n_columns">3</property>
-+                            <property name="row_homogeneous">True</property>
-+                            <property name="column_homogeneous">True</property>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatPCM">
-                                 <property name="label" translatable="yes">PCM</property>
-@@ -439,6 +439,10 @@
-                                 <property name="active">True</property>
-                                 <property name="draw_indicator">True</property>
-                               </object>
-+                              <packing>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">0</property>
-+                              </packing>
-                             </child>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatAC3">
-@@ -450,7 +454,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -462,8 +466,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-+                                <property name="left_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -475,8 +479,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">1</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -489,9 +493,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -504,9 +506,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                           </object>
-diff --git a/src/sinkwidget.h b/src/sinkwidget.h
-index 0044ffc..924fca0 100644
---- a/src/sinkwidget.h
-+++ b/src/sinkwidget.h
-@@ -46,7 +46,7 @@ public:
- 
- #if HAVE_EXT_DEVICE_RESTORE_API
-     encodingList encodings[PAVU_NUM_ENCODINGS];
--    Gtk::Table *encodingSelect;
-+    Gtk::Grid *encodingSelect;
- #endif
- 
-     virtual void onMuteToggleButton();
-diff --git a/src/streamwidget.cc b/src/streamwidget.cc
-index 00df09f..d203b20 100644
---- a/src/streamwidget.cc
-+++ b/src/streamwidget.cc
-@@ -66,7 +66,7 @@ void StreamWidget::init(MainWindow* mainWindow) {
- 
- bool StreamWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
-     return false;
--- 
-GitLab
-
diff --git a/srcpkgs/pavucontrol/template b/srcpkgs/pavucontrol/template
index 45e93d9b130a..e923b4ac0308 100644
--- a/srcpkgs/pavucontrol/template
+++ b/srcpkgs/pavucontrol/template
@@ -1,14 +1,14 @@
 # Template file for 'pavucontrol'
 pkgname=pavucontrol
-reverts="5.0_1"
-version=4.0
-revision=3
+version=5.0
+revision=2
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
-makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel"
+makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel
+ json-glib-devel"
 short_desc="PulseAudio Volume Control"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-distfiles="${homepage}/${pkgname}-${version}.tar.xz"
-checksum=8fc45bac9722aefa6f022999cbb76242d143c31b314e2dbb38f034f4069d14e2
+distfiles="$FREEDESKTOP_SITE/pulseaudio/pavucontrol/pavucontrol-${version}.tar.xz"
+checksum=ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
  2021-09-28 18:44 ` [PR PATCH] [Updated] " paper42
@ 2021-09-28 19:40 ` anddam
  2021-09-28 20:01 ` q66
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: anddam @ 2021-09-28 19:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 420 bytes --]

New comment by anddam on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-929566721

Comment:
> cc @anddam

I can confirm this updates fix the issue on my x86_64 glibc system.

Before this both pavucontrol and a simple

```
pactl send-message /core list-handlers
```

made the pulseaudio daemon segfault.

Now daemon does not break and audio works as expected.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
  2021-09-28 18:44 ` [PR PATCH] [Updated] " paper42
  2021-09-28 19:40 ` anddam
@ 2021-09-28 20:01 ` q66
  2021-09-28 20:56 ` ericonr
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: q66 @ 2021-09-28 20:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 164 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-929581137

Comment:
why stop disabling asserts?

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (2 preceding siblings ...)
  2021-09-28 20:01 ` q66
@ 2021-09-28 20:56 ` ericonr
  2021-09-28 21:05 ` ericonr
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ericonr @ 2021-09-28 20:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 355 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-929618808

Comment:
Probably some side-effect expression inside asserts. If upstream expects people to run with assertions enabled, the commit should document that. Otherwise I'd rather fix the specific instance where there's trouble.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (3 preceding siblings ...)
  2021-09-28 20:56 ` ericonr
@ 2021-09-28 21:05 ` ericonr
  2021-09-28 21:07 ` ericonr
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ericonr @ 2021-09-28 21:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 287 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-929624920

Comment:
Given that they define `pa_assert_se` specifically for expressions with side effects, I think it's expected to run with other assertions disabled.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (4 preceding siblings ...)
  2021-09-28 21:05 ` ericonr
@ 2021-09-28 21:07 ` ericonr
  2021-09-29  7:06 ` [PR PATCH] [Updated] " paper42
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ericonr @ 2021-09-28 21:07 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 262 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-929625932

Comment:
There are, however, 7613 normal assertions in the code (7318 `pa_assert` specifically), and I can't look through them rn.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PR PATCH] [Updated] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (5 preceding siblings ...)
  2021-09-28 21:07 ` ericonr
@ 2021-09-29  7:06 ` paper42
  2021-09-29  7:08 ` paper42
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-09-29  7:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

There is an updated pull request by paper42 against master on the void-packages repository

https://github.com/paper42/void-packages pavucontrol-5
https://github.com/void-linux/void-packages/pull/33169

pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

cc @anddam

A patch file from https://github.com/void-linux/void-packages/pull/33169.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pavucontrol-5-33169.patch --]
[-- Type: text/x-diff, Size: 16482 bytes --]

From 12ef735e3e19eaa435fc58fecd09677dab2ac78a Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:30:31 +0200
Subject: [PATCH 1/2] pulseaudio: stop disabling asserts

PulseAudio segfaults when asserts are disabled and an application tries
to list handlers:

    pactl send-message /core list-handlers

This fixes segfaults with pavucontrol 5.0
---
 srcpkgs/pulseaudio/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pulseaudio/template b/srcpkgs/pulseaudio/template
index ac2205d76f4b..911dfb197d31 100644
--- a/srcpkgs/pulseaudio/template
+++ b/srcpkgs/pulseaudio/template
@@ -1,13 +1,13 @@
 # Template file for 'pulseaudio'
 pkgname=pulseaudio
 version=15.0
-revision=1
+revision=2
 build_style=meson
 configure_args="-Djack=enabled -Dlirc=disabled -Dhal-compat=false -Dorc=enabled
  -Dgtk=disabled -Dsystemd=disabled -Dwebrtc-aec=enabled
  -Dbluez5=enabled -Dbluez5-ofono-headset=false -Dbluez5-native-headset=true
  -Delogind=enabled -Dudevrulesdir=/usr/lib/udev/rules.d
- -Dbashcompletiondir=/usr/share/bash-completion/completions"
+ -Dbashcompletiondir=/usr/share/bash-completion/completions -Db_ndebug=false"
 hostmakedepends="cmake m4 gettext libtool orc-devel perl-XML-Parser pkg-config
  doxygen"
 makedepends="$(vopt_if avahi avahi-libs-devel) eudev-libudev-devel fftw-devel jack-devel

From ebba508bb5b12b0bcf438a75609af3033f160f66 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:33:20 +0200
Subject: [PATCH 2/2] pavucontrol: update to 5.0.

previously reverted in 8a9bdd07c2796f04e6df1892d97ed21f7357c86b, the
underlying bug was fixed in 12ef735e3e19eaa435fc58fecd09677dab2ac78a
---
 .../pavucontrol/patches/fix-segfault.patch    | 319 ------------------
 srcpkgs/pavucontrol/template                  |  12 +-
 2 files changed, 6 insertions(+), 325 deletions(-)
 delete mode 100644 srcpkgs/pavucontrol/patches/fix-segfault.patch

diff --git a/srcpkgs/pavucontrol/patches/fix-segfault.patch b/srcpkgs/pavucontrol/patches/fix-segfault.patch
deleted file mode 100644
index fe7fcba5ccc7..000000000000
--- a/srcpkgs/pavucontrol/patches/fix-segfault.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-Upstream: yes, not released.
-
-Remove configure.ac changes to avoid need to reconfigure.
-We know we have the necessary version of its dependencies.
-
-From 284082551938b65e71d06bda793fedbd4a4f41ab Mon Sep 17 00:00:00 2001
-From: Felipe Sateler <fsateler@gmail.com>
-Date: Sat, 28 Dec 2019 12:39:38 -0300
-Subject: [PATCH] Migrate away from deprecated Gtk interfaces
-
-This was accomplished by building with -DGTKMM_DISABLE_DEPRECATED.
----
- configure.ac           |  2 +-
- src/channelwidget.h    |  2 +-
- src/devicewidget.cc    |  6 +++---
- src/mainwindow.cc      | 12 ++++++------
- src/pavuapplication.cc | 22 +++++++++++++++-------
- src/pavuapplication.h  |  2 ++
- src/pavucontrol.cc     |  7 ++++---
- src/pavucontrol.glade  | 24 ++++++++++++------------
- src/sinkwidget.h       |  2 +-
- src/streamwidget.cc    |  2 +-
- 10 files changed, 46 insertions(+), 35 deletions(-)
-
-diff --git a/src/channelwidget.h b/src/channelwidget.h
-index c9c5c9d..6216b74 100644
---- a/src/channelwidget.h
-+++ b/src/channelwidget.h
-@@ -38,7 +38,7 @@ public:
- 
-     Gtk::Label *channelLabel;
-     Gtk::Label *volumeLabel;
--    Gtk::HScale *volumeScale;
-+    Gtk::Scale *volumeScale;
- 
-     int channel;
-     MinimalStreamWidget *minimalStreamWidget;
-diff --git a/src/devicewidget.cc b/src/devicewidget.cc
-index e1b1869..dd41487 100644
---- a/src/devicewidget.cc
-+++ b/src/devicewidget.cc
-@@ -227,7 +227,7 @@ void DeviceWidget::prepareMenu() {
- 
- bool DeviceWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
- 
-@@ -259,8 +259,8 @@ void DeviceWidget::renamePopup() {
-     x->get_widget("renameText", renameText);
- 
-     renameText->set_text(description);
--    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
--    dialog->add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
-+    dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
-+    dialog->add_button("_OK", Gtk::RESPONSE_OK);
-     dialog->set_default_response(Gtk::RESPONSE_OK);
-     if (Gtk::RESPONSE_OK == dialog->run()) {
-         pa_operation* o;
-diff --git a/src/mainwindow.cc b/src/mainwindow.cc
-index f3d8620..e1a0a82 100644
---- a/src/mainwindow.cc
-+++ b/src/mainwindow.cc
-@@ -95,11 +95,11 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
-     x->get_widget("notebook", notebook);
-     x->get_widget("showVolumeMetersCheckButton", showVolumeMetersCheckButton);
- 
--    cardsVBox->set_reallocate_redraws(true);
--    sourcesVBox->set_reallocate_redraws(true);
--    streamsVBox->set_reallocate_redraws(true);
--    recsVBox->set_reallocate_redraws(true);
--    sinksVBox->set_reallocate_redraws(true);
-+    sourcesVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sourcesVBox->queue_draw(); });
-+    cardsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ cardsVBox->queue_draw(); });
-+    streamsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ streamsVBox->queue_draw(); });
-+    recsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ recsVBox->queue_draw(); });
-+    sinksVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sinksVBox->queue_draw(); });
- 
-     sinkInputTypeComboBox->set_active((int) showSinkInputType);
-     sourceOutputTypeComboBox->set_active((int) showSourceOutputType);
-@@ -222,7 +222,7 @@ bool MainWindow::on_key_press_event(GdkEventKey* event) {
-             case GDK_KEY_Q:
-             case GDK_KEY_w:
-             case GDK_KEY_q:
--                Gtk::Main::quit();
-+                this->get_application()->quit();
-                 return true;
-         }
-     }
-diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
-index 2ff5739..6773b53 100644
---- a/src/pavuapplication.cc
-+++ b/src/pavuapplication.cc
-@@ -30,6 +30,14 @@
- #include "pavucontrol.h"
- #include "mainwindow.h"
- 
-+static PavuApplication globalInstance;
-+
-+PavuApplication&
-+PavuApplication::get_instance()
-+{
-+    return globalInstance;
-+}
-+
- PavuApplication::PavuApplication() :
-     Gtk::Application("org.pulseaudio.pavucontrol", Gio::ApplicationFlags::APPLICATION_HANDLES_COMMAND_LINE),
-     mainWindow(NULL),
-@@ -143,26 +151,26 @@ int main(int argc, char *argv[]) {
-     signal(SIGPIPE, SIG_IGN);
- 
-     /* Create the application */
--    auto app = PavuApplication();
-+    globalInstance = PavuApplication();
- 
-     /* Add command-line options */
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_INT,
-         "tab", 't',
-         _("Select a specific tab on load."),
-         _("number"));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "retry", 'r',
-         _("Retry forever if pa quits (every 5 seconds)."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "maximize", 'm',
-         _("Maximize the window."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "version", 'v',
-         _("Show version."));
-@@ -170,7 +178,7 @@ int main(int argc, char *argv[]) {
-     /* Connect to the "on_command_line" signal which is fired
-      * when the application receives command-line arguments
-      */
--    app.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &app), false);
-+    globalInstance.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &globalInstance), false);
- 
-     /* Run the application.
-      * In the first launched instance, this will return when its window is
-@@ -179,5 +187,5 @@ int main(int argc, char *argv[]) {
-      * Handling a new request consists of presenting the existing window (and
-      * optionally, select a tab).
-      */
--    return app.run(argc, argv);
-+    return globalInstance.run(argc, argv);
- }
-diff --git a/src/pavuapplication.h b/src/pavuapplication.h
-index 3589c5d..d2a1f5a 100644
---- a/src/pavuapplication.h
-+++ b/src/pavuapplication.h
-@@ -37,6 +37,8 @@ public:
-     gint32 tab;
-     bool version;
- 
-+    static PavuApplication& get_instance();
-+
- protected:
-     // Override default signal handlers:
-     void on_activate() override;
-diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
-index 6981707..bcdde8e 100644
---- a/src/pavucontrol.cc
-+++ b/src/pavucontrol.cc
-@@ -40,6 +40,7 @@
- #include "sourceoutputwidget.h"
- #include "rolewidget.h"
- #include "mainwindow.h"
-+#include "pavuapplication.h"
- 
- static pa_context* context = NULL;
- static pa_mainloop_api* api = NULL;
-@@ -56,7 +57,7 @@ void show_error(const char *txt) {
-     Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
-     dialog.run();
- 
--    Gtk::Main::quit();
-+    PavuApplication::get_instance().quit();
- }
- 
- static void dec_outstanding(MainWindow *w) {
-@@ -571,7 +572,7 @@ void context_state_callback(pa_context *c, void *userdata) {
- 
-         case PA_CONTEXT_TERMINATED:
-         default:
--            Gtk::Main::quit();
-+            w->get_application()->quit();
-             return;
-     }
- }
-@@ -613,7 +614,7 @@ gboolean connect_to_pulse(gpointer userdata) {
-         else {
-             if(!retry) {
-                 reconnect_timeout = -1;
--                Gtk::Main::quit();
-+                w->get_application()->quit();
-             } else {
-                 g_debug(_("Connection failed, attempting reconnect"));
-                 reconnect_timeout = 5;
-diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
-index e26e0c4..ed83b04 100644
---- a/src/pavucontrol.glade
-+++ b/src/pavucontrol.glade
-@@ -425,10 +425,10 @@
-                         <property name="visible">True</property>
-                         <property name="can_focus">False</property>
-                         <child>
--                          <object class="GtkTable" id="encodingSelect">
-+                          <object class="GtkGrid" id="encodingSelect">
-                             <property name="can_focus">False</property>
--                            <property name="n_rows">2</property>
--                            <property name="n_columns">3</property>
-+                            <property name="row_homogeneous">True</property>
-+                            <property name="column_homogeneous">True</property>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatPCM">
-                                 <property name="label" translatable="yes">PCM</property>
-@@ -439,6 +439,10 @@
-                                 <property name="active">True</property>
-                                 <property name="draw_indicator">True</property>
-                               </object>
-+                              <packing>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">0</property>
-+                              </packing>
-                             </child>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatAC3">
-@@ -450,7 +454,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -462,8 +466,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-+                                <property name="left_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -475,8 +479,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">1</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -489,9 +493,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -504,9 +506,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                           </object>
-diff --git a/src/sinkwidget.h b/src/sinkwidget.h
-index 0044ffc..924fca0 100644
---- a/src/sinkwidget.h
-+++ b/src/sinkwidget.h
-@@ -46,7 +46,7 @@ public:
- 
- #if HAVE_EXT_DEVICE_RESTORE_API
-     encodingList encodings[PAVU_NUM_ENCODINGS];
--    Gtk::Table *encodingSelect;
-+    Gtk::Grid *encodingSelect;
- #endif
- 
-     virtual void onMuteToggleButton();
-diff --git a/src/streamwidget.cc b/src/streamwidget.cc
-index 00df09f..d203b20 100644
---- a/src/streamwidget.cc
-+++ b/src/streamwidget.cc
-@@ -66,7 +66,7 @@ void StreamWidget::init(MainWindow* mainWindow) {
- 
- bool StreamWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
-     return false;
--- 
-GitLab
-
diff --git a/srcpkgs/pavucontrol/template b/srcpkgs/pavucontrol/template
index 45e93d9b130a..e923b4ac0308 100644
--- a/srcpkgs/pavucontrol/template
+++ b/srcpkgs/pavucontrol/template
@@ -1,14 +1,14 @@
 # Template file for 'pavucontrol'
 pkgname=pavucontrol
-reverts="5.0_1"
-version=4.0
-revision=3
+version=5.0
+revision=2
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
-makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel"
+makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel
+ json-glib-devel"
 short_desc="PulseAudio Volume Control"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-distfiles="${homepage}/${pkgname}-${version}.tar.xz"
-checksum=8fc45bac9722aefa6f022999cbb76242d143c31b314e2dbb38f034f4069d14e2
+distfiles="$FREEDESKTOP_SITE/pulseaudio/pavucontrol/pavucontrol-${version}.tar.xz"
+checksum=ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (6 preceding siblings ...)
  2021-09-29  7:06 ` [PR PATCH] [Updated] " paper42
@ 2021-09-29  7:08 ` paper42
  2021-09-29 17:34 ` anddam
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-09-29  7:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 312 bytes --]

New comment by paper42 on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-929898304

Comment:
Commit messages updated, I think we should stop disabling asserts until it's solved upstream.

@anddam since you debugged most of this, could you open an issue upstream?

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (7 preceding siblings ...)
  2021-09-29  7:08 ` paper42
@ 2021-09-29 17:34 ` anddam
  2021-09-30  8:37 ` i-garrison
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: anddam @ 2021-09-29 17:34 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 301 bytes --]

New comment by anddam on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-930391036

Comment:
> @anddam since you debugged most of this, could you open an issue upstream?

[Yes, I can](https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1278).

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (8 preceding siblings ...)
  2021-09-29 17:34 ` anddam
@ 2021-09-30  8:37 ` i-garrison
  2021-09-30 11:40 ` q66
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: i-garrison @ 2021-09-30  8:37 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 359 bytes --]

New comment by i-garrison on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-931040237

Comment:
> [Yes, I can](https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1278).

Thanks! Turned out this is a real issue in pulseaudio code, made a PR to fix it now (and a few of the same in other places) now.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (9 preceding siblings ...)
  2021-09-30  8:37 ` i-garrison
@ 2021-09-30 11:40 ` q66
  2021-10-01 20:59 ` [PR PATCH] [Updated] " paper42
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: q66 @ 2021-09-30 11:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 183 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-931244152

Comment:
looks like we can just pull in the patch then 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PR PATCH] [Updated] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (10 preceding siblings ...)
  2021-09-30 11:40 ` q66
@ 2021-10-01 20:59 ` paper42
  2021-10-01 21:00 ` paper42
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-10-01 20:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

There is an updated pull request by paper42 against master on the void-packages repository

https://github.com/paper42/void-packages pavucontrol-5
https://github.com/void-linux/void-packages/pull/33169

pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

cc @anddam

A patch file from https://github.com/void-linux/void-packages/pull/33169.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pavucontrol-5-33169.patch --]
[-- Type: text/x-diff, Size: 19137 bytes --]

From a0106bc737f33cd4659c85127e6556575062d64a Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:30:31 +0200
Subject: [PATCH 1/2] pulseaudio: fix segfault when listing handlers

PulseAudio segfaulted when asserts were disabled and an application tried
to list handlers:

    pactl send-message /core list-handlers

This was bug was triggered with the pavucontrol 5.0 update.

https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1278
---
 ...ession-with-side-effect-in-pa_assert.patch | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch

diff --git a/srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch b/srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch
new file mode 100644
index 000000000000..eff6b1c1406c
--- /dev/null
+++ b/srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch
@@ -0,0 +1,79 @@
+From e1899245703f1dfa3220af465046c287a5f1c2ba Mon Sep 17 00:00:00 2001
+From: "Igor V. Kovalenko" <igor.v.kovalenko@gmail.com>
+Date: Thu, 30 Sep 2021 08:40:35 +0300
+Subject: [PATCH] Fix expression with side effect in pa_assert
+
+Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/641>
+---
+ src/modules/bluetooth/module-bluez5-device.c | 4 ++--
+ src/pulsecore/card.c                         | 4 ++--
+ src/pulsecore/core.c                         | 4 ++--
+ src/pulsecore/dbus-util.c                    | 2 +-
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
+index 9774be5cc..afbb7e3fa 100644
+--- a/src/modules/bluetooth/module-bluez5-device.c
++++ b/src/modules/bluetooth/module-bluez5-device.c
+@@ -2513,10 +2513,10 @@ static int bluez5_device_message_handler(const char *object_path, const char *me
+     pa_bluetooth_profile_t profile;
+     const pa_a2dp_endpoint_conf *endpoint_conf;
+     const char *codec_name;
+-    struct userdata *u;
++    struct userdata *u = userdata;
+     bool is_a2dp_sink;
+ 
+-    pa_assert(u = (struct userdata *)userdata);
++    pa_assert(u);
+     pa_assert(message);
+     pa_assert(response);
+ 
+diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
+index 23b347b59..4f5997d2c 100644
+--- a/src/pulsecore/card.c
++++ b/src/pulsecore/card.c
+@@ -467,10 +467,10 @@ int pa_card_suspend(pa_card *c, bool suspend, pa_suspend_cause_t cause) {
+ }
+ 
+ static int card_message_handler(const char *object_path, const char *message, const pa_json_object *parameters, char **response, void *userdata) {
+-    pa_card *c;
++    pa_card *c = userdata;
+     char *message_handler_path;
+ 
+-    pa_assert(c = (pa_card *) userdata);
++    pa_assert(c);
+     pa_assert(message);
+     pa_assert(response);
+ 
+diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c
+index 174d0650e..132f08bbb 100644
+--- a/src/pulsecore/core.c
++++ b/src/pulsecore/core.c
+@@ -86,9 +86,9 @@ static char *message_handler_list(pa_core *c) {
+ }
+ 
+ static int core_message_handler(const char *object_path, const char *message, const pa_json_object *parameters, char **response, void *userdata) {
+-    pa_core *c;
++    pa_core *c = userdata;
+ 
+-    pa_assert(c = (pa_core *) userdata);
++    pa_assert(c);
+     pa_assert(message);
+     pa_assert(response);
+     pa_assert(pa_safe_streq(object_path, "/core"));
+diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c
+index 7d550204e..466a882d8 100644
+--- a/src/pulsecore/dbus-util.c
++++ b/src/pulsecore/dbus-util.c
+@@ -737,7 +737,7 @@ pa_proplist *pa_dbus_get_proplist_arg(DBusConnection *c, DBusMessage *msg, DBusM
+     pa_assert(msg);
+     pa_assert(iter);
+ 
+-    pa_assert(signature = dbus_message_iter_get_signature(iter));
++    pa_assert_se(signature = dbus_message_iter_get_signature(iter));
+     pa_assert_se(pa_streq(signature, "a{say}"));
+ 
+     dbus_free(signature);
+-- 
+GitLab
+

From 1f25418a4de606784f6e00a07ecd649cb3bbd752 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:33:20 +0200
Subject: [PATCH 2/2] pavucontrol: update to 5.0.

This update was previously reverted because it was segfaulting
pulseaudio, but this has been fixed.
---
 .../pavucontrol/patches/fix-segfault.patch    | 319 ------------------
 srcpkgs/pavucontrol/template                  |  12 +-
 2 files changed, 6 insertions(+), 325 deletions(-)
 delete mode 100644 srcpkgs/pavucontrol/patches/fix-segfault.patch

diff --git a/srcpkgs/pavucontrol/patches/fix-segfault.patch b/srcpkgs/pavucontrol/patches/fix-segfault.patch
deleted file mode 100644
index fe7fcba5ccc7..000000000000
--- a/srcpkgs/pavucontrol/patches/fix-segfault.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-Upstream: yes, not released.
-
-Remove configure.ac changes to avoid need to reconfigure.
-We know we have the necessary version of its dependencies.
-
-From 284082551938b65e71d06bda793fedbd4a4f41ab Mon Sep 17 00:00:00 2001
-From: Felipe Sateler <fsateler@gmail.com>
-Date: Sat, 28 Dec 2019 12:39:38 -0300
-Subject: [PATCH] Migrate away from deprecated Gtk interfaces
-
-This was accomplished by building with -DGTKMM_DISABLE_DEPRECATED.
----
- configure.ac           |  2 +-
- src/channelwidget.h    |  2 +-
- src/devicewidget.cc    |  6 +++---
- src/mainwindow.cc      | 12 ++++++------
- src/pavuapplication.cc | 22 +++++++++++++++-------
- src/pavuapplication.h  |  2 ++
- src/pavucontrol.cc     |  7 ++++---
- src/pavucontrol.glade  | 24 ++++++++++++------------
- src/sinkwidget.h       |  2 +-
- src/streamwidget.cc    |  2 +-
- 10 files changed, 46 insertions(+), 35 deletions(-)
-
-diff --git a/src/channelwidget.h b/src/channelwidget.h
-index c9c5c9d..6216b74 100644
---- a/src/channelwidget.h
-+++ b/src/channelwidget.h
-@@ -38,7 +38,7 @@ public:
- 
-     Gtk::Label *channelLabel;
-     Gtk::Label *volumeLabel;
--    Gtk::HScale *volumeScale;
-+    Gtk::Scale *volumeScale;
- 
-     int channel;
-     MinimalStreamWidget *minimalStreamWidget;
-diff --git a/src/devicewidget.cc b/src/devicewidget.cc
-index e1b1869..dd41487 100644
---- a/src/devicewidget.cc
-+++ b/src/devicewidget.cc
-@@ -227,7 +227,7 @@ void DeviceWidget::prepareMenu() {
- 
- bool DeviceWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
- 
-@@ -259,8 +259,8 @@ void DeviceWidget::renamePopup() {
-     x->get_widget("renameText", renameText);
- 
-     renameText->set_text(description);
--    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
--    dialog->add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
-+    dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
-+    dialog->add_button("_OK", Gtk::RESPONSE_OK);
-     dialog->set_default_response(Gtk::RESPONSE_OK);
-     if (Gtk::RESPONSE_OK == dialog->run()) {
-         pa_operation* o;
-diff --git a/src/mainwindow.cc b/src/mainwindow.cc
-index f3d8620..e1a0a82 100644
---- a/src/mainwindow.cc
-+++ b/src/mainwindow.cc
-@@ -95,11 +95,11 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
-     x->get_widget("notebook", notebook);
-     x->get_widget("showVolumeMetersCheckButton", showVolumeMetersCheckButton);
- 
--    cardsVBox->set_reallocate_redraws(true);
--    sourcesVBox->set_reallocate_redraws(true);
--    streamsVBox->set_reallocate_redraws(true);
--    recsVBox->set_reallocate_redraws(true);
--    sinksVBox->set_reallocate_redraws(true);
-+    sourcesVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sourcesVBox->queue_draw(); });
-+    cardsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ cardsVBox->queue_draw(); });
-+    streamsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ streamsVBox->queue_draw(); });
-+    recsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ recsVBox->queue_draw(); });
-+    sinksVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sinksVBox->queue_draw(); });
- 
-     sinkInputTypeComboBox->set_active((int) showSinkInputType);
-     sourceOutputTypeComboBox->set_active((int) showSourceOutputType);
-@@ -222,7 +222,7 @@ bool MainWindow::on_key_press_event(GdkEventKey* event) {
-             case GDK_KEY_Q:
-             case GDK_KEY_w:
-             case GDK_KEY_q:
--                Gtk::Main::quit();
-+                this->get_application()->quit();
-                 return true;
-         }
-     }
-diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
-index 2ff5739..6773b53 100644
---- a/src/pavuapplication.cc
-+++ b/src/pavuapplication.cc
-@@ -30,6 +30,14 @@
- #include "pavucontrol.h"
- #include "mainwindow.h"
- 
-+static PavuApplication globalInstance;
-+
-+PavuApplication&
-+PavuApplication::get_instance()
-+{
-+    return globalInstance;
-+}
-+
- PavuApplication::PavuApplication() :
-     Gtk::Application("org.pulseaudio.pavucontrol", Gio::ApplicationFlags::APPLICATION_HANDLES_COMMAND_LINE),
-     mainWindow(NULL),
-@@ -143,26 +151,26 @@ int main(int argc, char *argv[]) {
-     signal(SIGPIPE, SIG_IGN);
- 
-     /* Create the application */
--    auto app = PavuApplication();
-+    globalInstance = PavuApplication();
- 
-     /* Add command-line options */
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_INT,
-         "tab", 't',
-         _("Select a specific tab on load."),
-         _("number"));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "retry", 'r',
-         _("Retry forever if pa quits (every 5 seconds)."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "maximize", 'm',
-         _("Maximize the window."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "version", 'v',
-         _("Show version."));
-@@ -170,7 +178,7 @@ int main(int argc, char *argv[]) {
-     /* Connect to the "on_command_line" signal which is fired
-      * when the application receives command-line arguments
-      */
--    app.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &app), false);
-+    globalInstance.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &globalInstance), false);
- 
-     /* Run the application.
-      * In the first launched instance, this will return when its window is
-@@ -179,5 +187,5 @@ int main(int argc, char *argv[]) {
-      * Handling a new request consists of presenting the existing window (and
-      * optionally, select a tab).
-      */
--    return app.run(argc, argv);
-+    return globalInstance.run(argc, argv);
- }
-diff --git a/src/pavuapplication.h b/src/pavuapplication.h
-index 3589c5d..d2a1f5a 100644
---- a/src/pavuapplication.h
-+++ b/src/pavuapplication.h
-@@ -37,6 +37,8 @@ public:
-     gint32 tab;
-     bool version;
- 
-+    static PavuApplication& get_instance();
-+
- protected:
-     // Override default signal handlers:
-     void on_activate() override;
-diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
-index 6981707..bcdde8e 100644
---- a/src/pavucontrol.cc
-+++ b/src/pavucontrol.cc
-@@ -40,6 +40,7 @@
- #include "sourceoutputwidget.h"
- #include "rolewidget.h"
- #include "mainwindow.h"
-+#include "pavuapplication.h"
- 
- static pa_context* context = NULL;
- static pa_mainloop_api* api = NULL;
-@@ -56,7 +57,7 @@ void show_error(const char *txt) {
-     Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
-     dialog.run();
- 
--    Gtk::Main::quit();
-+    PavuApplication::get_instance().quit();
- }
- 
- static void dec_outstanding(MainWindow *w) {
-@@ -571,7 +572,7 @@ void context_state_callback(pa_context *c, void *userdata) {
- 
-         case PA_CONTEXT_TERMINATED:
-         default:
--            Gtk::Main::quit();
-+            w->get_application()->quit();
-             return;
-     }
- }
-@@ -613,7 +614,7 @@ gboolean connect_to_pulse(gpointer userdata) {
-         else {
-             if(!retry) {
-                 reconnect_timeout = -1;
--                Gtk::Main::quit();
-+                w->get_application()->quit();
-             } else {
-                 g_debug(_("Connection failed, attempting reconnect"));
-                 reconnect_timeout = 5;
-diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
-index e26e0c4..ed83b04 100644
---- a/src/pavucontrol.glade
-+++ b/src/pavucontrol.glade
-@@ -425,10 +425,10 @@
-                         <property name="visible">True</property>
-                         <property name="can_focus">False</property>
-                         <child>
--                          <object class="GtkTable" id="encodingSelect">
-+                          <object class="GtkGrid" id="encodingSelect">
-                             <property name="can_focus">False</property>
--                            <property name="n_rows">2</property>
--                            <property name="n_columns">3</property>
-+                            <property name="row_homogeneous">True</property>
-+                            <property name="column_homogeneous">True</property>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatPCM">
-                                 <property name="label" translatable="yes">PCM</property>
-@@ -439,6 +439,10 @@
-                                 <property name="active">True</property>
-                                 <property name="draw_indicator">True</property>
-                               </object>
-+                              <packing>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">0</property>
-+                              </packing>
-                             </child>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatAC3">
-@@ -450,7 +454,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -462,8 +466,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-+                                <property name="left_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -475,8 +479,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">1</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -489,9 +493,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -504,9 +506,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                           </object>
-diff --git a/src/sinkwidget.h b/src/sinkwidget.h
-index 0044ffc..924fca0 100644
---- a/src/sinkwidget.h
-+++ b/src/sinkwidget.h
-@@ -46,7 +46,7 @@ public:
- 
- #if HAVE_EXT_DEVICE_RESTORE_API
-     encodingList encodings[PAVU_NUM_ENCODINGS];
--    Gtk::Table *encodingSelect;
-+    Gtk::Grid *encodingSelect;
- #endif
- 
-     virtual void onMuteToggleButton();
-diff --git a/src/streamwidget.cc b/src/streamwidget.cc
-index 00df09f..d203b20 100644
---- a/src/streamwidget.cc
-+++ b/src/streamwidget.cc
-@@ -66,7 +66,7 @@ void StreamWidget::init(MainWindow* mainWindow) {
- 
- bool StreamWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
-     return false;
--- 
-GitLab
-
diff --git a/srcpkgs/pavucontrol/template b/srcpkgs/pavucontrol/template
index 45e93d9b130a..dfd14580be52 100644
--- a/srcpkgs/pavucontrol/template
+++ b/srcpkgs/pavucontrol/template
@@ -1,14 +1,14 @@
 # Template file for 'pavucontrol'
 pkgname=pavucontrol
-reverts="5.0_1"
-version=4.0
-revision=3
+version=5.0
+revision=2
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
-makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel"
+makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel
+ json-glib-devel"
 short_desc="PulseAudio Volume Control"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-distfiles="${homepage}/${pkgname}-${version}.tar.xz"
-checksum=8fc45bac9722aefa6f022999cbb76242d143c31b314e2dbb38f034f4069d14e2
+distfiles="${FREEDESKTOP_SITE}/pulseaudio/pavucontrol/pavucontrol-${version}.tar.xz"
+checksum=ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (11 preceding siblings ...)
  2021-10-01 20:59 ` [PR PATCH] [Updated] " paper42
@ 2021-10-01 21:00 ` paper42
  2021-10-01 21:01 ` [PR PATCH] [Updated] " paper42
  2021-10-12 21:25 ` [PR PATCH] [Merged]: pulseaudio: fix segfault on list-handlers, " paper42
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-10-01 21:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 236 bytes --]

New comment by paper42 on void-packages repository

https://github.com/void-linux/void-packages/pull/33169#issuecomment-932555119

Comment:
> looks like we can just pull in the patch then

patch imported, @anddam could you test this?

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PR PATCH] [Updated] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (12 preceding siblings ...)
  2021-10-01 21:00 ` paper42
@ 2021-10-01 21:01 ` paper42
  2021-10-12 21:25 ` [PR PATCH] [Merged]: pulseaudio: fix segfault on list-handlers, " paper42
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-10-01 21:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

There is an updated pull request by paper42 against master on the void-packages repository

https://github.com/paper42/void-packages pavucontrol-5
https://github.com/void-linux/void-packages/pull/33169

pulseaudio: stop disabling asserts, pavucontrol: update to 5.0.
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

cc @anddam

A patch file from https://github.com/void-linux/void-packages/pull/33169.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pavucontrol-5-33169.patch --]
[-- Type: text/x-diff, Size: 19652 bytes --]

From b649703d1a5da7a539bdb65825ef6c321fa1d72a Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:30:31 +0200
Subject: [PATCH 1/2] pulseaudio: fix segfault when listing handlers

PulseAudio segfaulted when asserts were disabled and an application tried
to list handlers:

    pactl send-message /core list-handlers

This was bug was triggered with the pavucontrol 5.0 update.

https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1278
---
 ...ession-with-side-effect-in-pa_assert.patch | 79 +++++++++++++++++++
 srcpkgs/pulseaudio/template                   |  2 +-
 2 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch

diff --git a/srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch b/srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch
new file mode 100644
index 000000000000..eff6b1c1406c
--- /dev/null
+++ b/srcpkgs/pulseaudio/patches/fix-expression-with-side-effect-in-pa_assert.patch
@@ -0,0 +1,79 @@
+From e1899245703f1dfa3220af465046c287a5f1c2ba Mon Sep 17 00:00:00 2001
+From: "Igor V. Kovalenko" <igor.v.kovalenko@gmail.com>
+Date: Thu, 30 Sep 2021 08:40:35 +0300
+Subject: [PATCH] Fix expression with side effect in pa_assert
+
+Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/641>
+---
+ src/modules/bluetooth/module-bluez5-device.c | 4 ++--
+ src/pulsecore/card.c                         | 4 ++--
+ src/pulsecore/core.c                         | 4 ++--
+ src/pulsecore/dbus-util.c                    | 2 +-
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
+index 9774be5cc..afbb7e3fa 100644
+--- a/src/modules/bluetooth/module-bluez5-device.c
++++ b/src/modules/bluetooth/module-bluez5-device.c
+@@ -2513,10 +2513,10 @@ static int bluez5_device_message_handler(const char *object_path, const char *me
+     pa_bluetooth_profile_t profile;
+     const pa_a2dp_endpoint_conf *endpoint_conf;
+     const char *codec_name;
+-    struct userdata *u;
++    struct userdata *u = userdata;
+     bool is_a2dp_sink;
+ 
+-    pa_assert(u = (struct userdata *)userdata);
++    pa_assert(u);
+     pa_assert(message);
+     pa_assert(response);
+ 
+diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
+index 23b347b59..4f5997d2c 100644
+--- a/src/pulsecore/card.c
++++ b/src/pulsecore/card.c
+@@ -467,10 +467,10 @@ int pa_card_suspend(pa_card *c, bool suspend, pa_suspend_cause_t cause) {
+ }
+ 
+ static int card_message_handler(const char *object_path, const char *message, const pa_json_object *parameters, char **response, void *userdata) {
+-    pa_card *c;
++    pa_card *c = userdata;
+     char *message_handler_path;
+ 
+-    pa_assert(c = (pa_card *) userdata);
++    pa_assert(c);
+     pa_assert(message);
+     pa_assert(response);
+ 
+diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c
+index 174d0650e..132f08bbb 100644
+--- a/src/pulsecore/core.c
++++ b/src/pulsecore/core.c
+@@ -86,9 +86,9 @@ static char *message_handler_list(pa_core *c) {
+ }
+ 
+ static int core_message_handler(const char *object_path, const char *message, const pa_json_object *parameters, char **response, void *userdata) {
+-    pa_core *c;
++    pa_core *c = userdata;
+ 
+-    pa_assert(c = (pa_core *) userdata);
++    pa_assert(c);
+     pa_assert(message);
+     pa_assert(response);
+     pa_assert(pa_safe_streq(object_path, "/core"));
+diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c
+index 7d550204e..466a882d8 100644
+--- a/src/pulsecore/dbus-util.c
++++ b/src/pulsecore/dbus-util.c
+@@ -737,7 +737,7 @@ pa_proplist *pa_dbus_get_proplist_arg(DBusConnection *c, DBusMessage *msg, DBusM
+     pa_assert(msg);
+     pa_assert(iter);
+ 
+-    pa_assert(signature = dbus_message_iter_get_signature(iter));
++    pa_assert_se(signature = dbus_message_iter_get_signature(iter));
+     pa_assert_se(pa_streq(signature, "a{say}"));
+ 
+     dbus_free(signature);
+-- 
+GitLab
+
diff --git a/srcpkgs/pulseaudio/template b/srcpkgs/pulseaudio/template
index f1f88d7fb08a..685154e8c0e1 100644
--- a/srcpkgs/pulseaudio/template
+++ b/srcpkgs/pulseaudio/template
@@ -1,7 +1,7 @@
 # Template file for 'pulseaudio'
 pkgname=pulseaudio
 version=15.0
-revision=2
+revision=3
 build_style=meson
 configure_args="-Djack=enabled -Dlirc=disabled -Dhal-compat=false -Dorc=enabled
  -Dgtk=disabled -Dsystemd=disabled -Dwebrtc-aec=enabled

From 74b3de8754a38f5e1a7680c3d4ac5a85b0983464 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Tue, 28 Sep 2021 20:33:20 +0200
Subject: [PATCH 2/2] pavucontrol: update to 5.0.

This update was previously reverted because it was segfaulting
pulseaudio, but this has been fixed.
---
 .../pavucontrol/patches/fix-segfault.patch    | 319 ------------------
 srcpkgs/pavucontrol/template                  |  12 +-
 2 files changed, 6 insertions(+), 325 deletions(-)
 delete mode 100644 srcpkgs/pavucontrol/patches/fix-segfault.patch

diff --git a/srcpkgs/pavucontrol/patches/fix-segfault.patch b/srcpkgs/pavucontrol/patches/fix-segfault.patch
deleted file mode 100644
index fe7fcba5ccc7..000000000000
--- a/srcpkgs/pavucontrol/patches/fix-segfault.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-Upstream: yes, not released.
-
-Remove configure.ac changes to avoid need to reconfigure.
-We know we have the necessary version of its dependencies.
-
-From 284082551938b65e71d06bda793fedbd4a4f41ab Mon Sep 17 00:00:00 2001
-From: Felipe Sateler <fsateler@gmail.com>
-Date: Sat, 28 Dec 2019 12:39:38 -0300
-Subject: [PATCH] Migrate away from deprecated Gtk interfaces
-
-This was accomplished by building with -DGTKMM_DISABLE_DEPRECATED.
----
- configure.ac           |  2 +-
- src/channelwidget.h    |  2 +-
- src/devicewidget.cc    |  6 +++---
- src/mainwindow.cc      | 12 ++++++------
- src/pavuapplication.cc | 22 +++++++++++++++-------
- src/pavuapplication.h  |  2 ++
- src/pavucontrol.cc     |  7 ++++---
- src/pavucontrol.glade  | 24 ++++++++++++------------
- src/sinkwidget.h       |  2 +-
- src/streamwidget.cc    |  2 +-
- 10 files changed, 46 insertions(+), 35 deletions(-)
-
-diff --git a/src/channelwidget.h b/src/channelwidget.h
-index c9c5c9d..6216b74 100644
---- a/src/channelwidget.h
-+++ b/src/channelwidget.h
-@@ -38,7 +38,7 @@ public:
- 
-     Gtk::Label *channelLabel;
-     Gtk::Label *volumeLabel;
--    Gtk::HScale *volumeScale;
-+    Gtk::Scale *volumeScale;
- 
-     int channel;
-     MinimalStreamWidget *minimalStreamWidget;
-diff --git a/src/devicewidget.cc b/src/devicewidget.cc
-index e1b1869..dd41487 100644
---- a/src/devicewidget.cc
-+++ b/src/devicewidget.cc
-@@ -227,7 +227,7 @@ void DeviceWidget::prepareMenu() {
- 
- bool DeviceWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
- 
-@@ -259,8 +259,8 @@ void DeviceWidget::renamePopup() {
-     x->get_widget("renameText", renameText);
- 
-     renameText->set_text(description);
--    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
--    dialog->add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
-+    dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
-+    dialog->add_button("_OK", Gtk::RESPONSE_OK);
-     dialog->set_default_response(Gtk::RESPONSE_OK);
-     if (Gtk::RESPONSE_OK == dialog->run()) {
-         pa_operation* o;
-diff --git a/src/mainwindow.cc b/src/mainwindow.cc
-index f3d8620..e1a0a82 100644
---- a/src/mainwindow.cc
-+++ b/src/mainwindow.cc
-@@ -95,11 +95,11 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
-     x->get_widget("notebook", notebook);
-     x->get_widget("showVolumeMetersCheckButton", showVolumeMetersCheckButton);
- 
--    cardsVBox->set_reallocate_redraws(true);
--    sourcesVBox->set_reallocate_redraws(true);
--    streamsVBox->set_reallocate_redraws(true);
--    recsVBox->set_reallocate_redraws(true);
--    sinksVBox->set_reallocate_redraws(true);
-+    sourcesVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sourcesVBox->queue_draw(); });
-+    cardsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ cardsVBox->queue_draw(); });
-+    streamsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ streamsVBox->queue_draw(); });
-+    recsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ recsVBox->queue_draw(); });
-+    sinksVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sinksVBox->queue_draw(); });
- 
-     sinkInputTypeComboBox->set_active((int) showSinkInputType);
-     sourceOutputTypeComboBox->set_active((int) showSourceOutputType);
-@@ -222,7 +222,7 @@ bool MainWindow::on_key_press_event(GdkEventKey* event) {
-             case GDK_KEY_Q:
-             case GDK_KEY_w:
-             case GDK_KEY_q:
--                Gtk::Main::quit();
-+                this->get_application()->quit();
-                 return true;
-         }
-     }
-diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
-index 2ff5739..6773b53 100644
---- a/src/pavuapplication.cc
-+++ b/src/pavuapplication.cc
-@@ -30,6 +30,14 @@
- #include "pavucontrol.h"
- #include "mainwindow.h"
- 
-+static PavuApplication globalInstance;
-+
-+PavuApplication&
-+PavuApplication::get_instance()
-+{
-+    return globalInstance;
-+}
-+
- PavuApplication::PavuApplication() :
-     Gtk::Application("org.pulseaudio.pavucontrol", Gio::ApplicationFlags::APPLICATION_HANDLES_COMMAND_LINE),
-     mainWindow(NULL),
-@@ -143,26 +151,26 @@ int main(int argc, char *argv[]) {
-     signal(SIGPIPE, SIG_IGN);
- 
-     /* Create the application */
--    auto app = PavuApplication();
-+    globalInstance = PavuApplication();
- 
-     /* Add command-line options */
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_INT,
-         "tab", 't',
-         _("Select a specific tab on load."),
-         _("number"));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "retry", 'r',
-         _("Retry forever if pa quits (every 5 seconds)."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "maximize", 'm',
-         _("Maximize the window."));
- 
--    app.add_main_option_entry(
-+    globalInstance.add_main_option_entry(
-         Gio::Application::OptionType::OPTION_TYPE_BOOL,
-         "version", 'v',
-         _("Show version."));
-@@ -170,7 +178,7 @@ int main(int argc, char *argv[]) {
-     /* Connect to the "on_command_line" signal which is fired
-      * when the application receives command-line arguments
-      */
--    app.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &app), false);
-+    globalInstance.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &globalInstance), false);
- 
-     /* Run the application.
-      * In the first launched instance, this will return when its window is
-@@ -179,5 +187,5 @@ int main(int argc, char *argv[]) {
-      * Handling a new request consists of presenting the existing window (and
-      * optionally, select a tab).
-      */
--    return app.run(argc, argv);
-+    return globalInstance.run(argc, argv);
- }
-diff --git a/src/pavuapplication.h b/src/pavuapplication.h
-index 3589c5d..d2a1f5a 100644
---- a/src/pavuapplication.h
-+++ b/src/pavuapplication.h
-@@ -37,6 +37,8 @@ public:
-     gint32 tab;
-     bool version;
- 
-+    static PavuApplication& get_instance();
-+
- protected:
-     // Override default signal handlers:
-     void on_activate() override;
-diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
-index 6981707..bcdde8e 100644
---- a/src/pavucontrol.cc
-+++ b/src/pavucontrol.cc
-@@ -40,6 +40,7 @@
- #include "sourceoutputwidget.h"
- #include "rolewidget.h"
- #include "mainwindow.h"
-+#include "pavuapplication.h"
- 
- static pa_context* context = NULL;
- static pa_mainloop_api* api = NULL;
-@@ -56,7 +57,7 @@ void show_error(const char *txt) {
-     Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
-     dialog.run();
- 
--    Gtk::Main::quit();
-+    PavuApplication::get_instance().quit();
- }
- 
- static void dec_outstanding(MainWindow *w) {
-@@ -571,7 +572,7 @@ void context_state_callback(pa_context *c, void *userdata) {
- 
-         case PA_CONTEXT_TERMINATED:
-         default:
--            Gtk::Main::quit();
-+            w->get_application()->quit();
-             return;
-     }
- }
-@@ -613,7 +614,7 @@ gboolean connect_to_pulse(gpointer userdata) {
-         else {
-             if(!retry) {
-                 reconnect_timeout = -1;
--                Gtk::Main::quit();
-+                w->get_application()->quit();
-             } else {
-                 g_debug(_("Connection failed, attempting reconnect"));
-                 reconnect_timeout = 5;
-diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
-index e26e0c4..ed83b04 100644
---- a/src/pavucontrol.glade
-+++ b/src/pavucontrol.glade
-@@ -425,10 +425,10 @@
-                         <property name="visible">True</property>
-                         <property name="can_focus">False</property>
-                         <child>
--                          <object class="GtkTable" id="encodingSelect">
-+                          <object class="GtkGrid" id="encodingSelect">
-                             <property name="can_focus">False</property>
--                            <property name="n_rows">2</property>
--                            <property name="n_columns">3</property>
-+                            <property name="row_homogeneous">True</property>
-+                            <property name="column_homogeneous">True</property>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatPCM">
-                                 <property name="label" translatable="yes">PCM</property>
-@@ -439,6 +439,10 @@
-                                 <property name="active">True</property>
-                                 <property name="draw_indicator">True</property>
-                               </object>
-+                              <packing>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">0</property>
-+                              </packing>
-                             </child>
-                             <child>
-                               <object class="GtkCheckButton" id="encodingFormatAC3">
-@@ -450,7 +454,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -462,8 +466,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-+                                <property name="left_attach">2</property>
-+                                <property name="top_attach">0</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -475,8 +479,8 @@
-                                 <property name="draw_indicator">True</property>
-                               </object>
-                               <packing>
--                                <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-+                                <property name="left_attach">0</property>
-+                                <property name="top_attach">1</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -489,9 +493,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">1</property>
--                                <property name="right_attach">2</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                             <child>
-@@ -504,9 +506,7 @@
-                               </object>
-                               <packing>
-                                 <property name="left_attach">2</property>
--                                <property name="right_attach">3</property>
-                                 <property name="top_attach">1</property>
--                                <property name="bottom_attach">2</property>
-                               </packing>
-                             </child>
-                           </object>
-diff --git a/src/sinkwidget.h b/src/sinkwidget.h
-index 0044ffc..924fca0 100644
---- a/src/sinkwidget.h
-+++ b/src/sinkwidget.h
-@@ -46,7 +46,7 @@ public:
- 
- #if HAVE_EXT_DEVICE_RESTORE_API
-     encodingList encodings[PAVU_NUM_ENCODINGS];
--    Gtk::Table *encodingSelect;
-+    Gtk::Grid *encodingSelect;
- #endif
- 
-     virtual void onMuteToggleButton();
-diff --git a/src/streamwidget.cc b/src/streamwidget.cc
-index 00df09f..d203b20 100644
---- a/src/streamwidget.cc
-+++ b/src/streamwidget.cc
-@@ -66,7 +66,7 @@ void StreamWidget::init(MainWindow* mainWindow) {
- 
- bool StreamWidget::onContextTriggerEvent(GdkEventButton* event) {
-     if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
--        contextMenu.popup(event->button, event->time);
-+        contextMenu.popup_at_pointer((GdkEvent*)event);
-         return true;
-     }
-     return false;
--- 
-GitLab
-
diff --git a/srcpkgs/pavucontrol/template b/srcpkgs/pavucontrol/template
index 45e93d9b130a..dfd14580be52 100644
--- a/srcpkgs/pavucontrol/template
+++ b/srcpkgs/pavucontrol/template
@@ -1,14 +1,14 @@
 # Template file for 'pavucontrol'
 pkgname=pavucontrol
-reverts="5.0_1"
-version=4.0
-revision=3
+version=5.0
+revision=2
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
-makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel"
+makedepends="gtkmm-devel libcanberra-devel gtk+3-devel pulseaudio-devel
+ json-glib-devel"
 short_desc="PulseAudio Volume Control"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-distfiles="${homepage}/${pkgname}-${version}.tar.xz"
-checksum=8fc45bac9722aefa6f022999cbb76242d143c31b314e2dbb38f034f4069d14e2
+distfiles="${FREEDESKTOP_SITE}/pulseaudio/pavucontrol/pavucontrol-${version}.tar.xz"
+checksum=ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PR PATCH] [Merged]: pulseaudio: fix segfault on list-handlers, pavucontrol: update to 5.0.
  2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
                   ` (13 preceding siblings ...)
  2021-10-01 21:01 ` [PR PATCH] [Updated] " paper42
@ 2021-10-12 21:25 ` paper42
  14 siblings, 0 replies; 16+ messages in thread
From: paper42 @ 2021-10-12 21:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 644 bytes --]

There's a merged pull request on the void-packages repository

pulseaudio: fix segfault on list-handlers, pavucontrol: update to 5.0.
https://github.com/void-linux/void-packages/pull/33169

Description:
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

cc @anddam

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-10-12 21:25 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-28 18:39 [PR PATCH] pulseaudio: stop disabling asserts, pavucontrol: update to 5.0 paper42
2021-09-28 18:44 ` [PR PATCH] [Updated] " paper42
2021-09-28 19:40 ` anddam
2021-09-28 20:01 ` q66
2021-09-28 20:56 ` ericonr
2021-09-28 21:05 ` ericonr
2021-09-28 21:07 ` ericonr
2021-09-29  7:06 ` [PR PATCH] [Updated] " paper42
2021-09-29  7:08 ` paper42
2021-09-29 17:34 ` anddam
2021-09-30  8:37 ` i-garrison
2021-09-30 11:40 ` q66
2021-10-01 20:59 ` [PR PATCH] [Updated] " paper42
2021-10-01 21:00 ` paper42
2021-10-01 21:01 ` [PR PATCH] [Updated] " paper42
2021-10-12 21:25 ` [PR PATCH] [Merged]: pulseaudio: fix segfault on list-handlers, " paper42

Github messages for voidlinux

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.vuxu.org/voidlinux-github

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 voidlinux-github voidlinux-github/ https://inbox.vuxu.org/voidlinux-github \
		voidlinux-github@inbox.vuxu.org
	public-inbox-index voidlinux-github

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.github.voidlinux


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git