* 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