summaryrefslogtreecommitdiff
path: root/media-libs/pulseaudio-qt
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-11-12 03:31:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-11-12 03:31:11 +0000
commit3a9a4f8b478ff62e3c752e20305edb2c7d91959f (patch)
treeaf2b80e575254ddcdc57ea6b2ae02607bb0a7824 /media-libs/pulseaudio-qt
parent7236d0a40beeff3f6f0fcede52d54dfb81880faa (diff)
gentoo auto-resync : 12:11:2022 - 03:31:11
Diffstat (limited to 'media-libs/pulseaudio-qt')
-rw-r--r--media-libs/pulseaudio-qt/Manifest2
-rw-r--r--media-libs/pulseaudio-qt/files/pulseaudio-qt-1.3-no-crash-if-no-server-response.patch44
-rw-r--r--media-libs/pulseaudio-qt/pulseaudio-qt-1.3-r3.ebuild36
3 files changed, 82 insertions, 0 deletions
diff --git a/media-libs/pulseaudio-qt/Manifest b/media-libs/pulseaudio-qt/Manifest
index b077dbbf4759..f66d0ddb032b 100644
--- a/media-libs/pulseaudio-qt/Manifest
+++ b/media-libs/pulseaudio-qt/Manifest
@@ -1,3 +1,5 @@
+AUX pulseaudio-qt-1.3-no-crash-if-no-server-response.patch 1523 BLAKE2B c13e9cae9bfbae785efc63828244aaa60ae2c4d8360db235e045ba7a1a9e5a6873f282599af82b6048b9495be75c9aef66f5e9cd2dad639e9ca31dda78b44d90 SHA512 0d0c6cea82a34f3a756b1d72787426d9b0cb32f0bddd6696f3f2f26c75290fa986893a4fcac6fed64250aef2fe083c91d556f99f367dbf2e64e8db5cd46aa262
DIST pulseaudio-qt-1.3.tar.xz 34148 BLAKE2B f283c369fcbeaf57537fe28d6f8aa02c34d7567ab8260ec8ba05edf8320b65e29e6ac88489ff0b49ae57b0bc8b8a49da83886f50ed9641850c84939a979e930c SHA512 2326277fd37327db29a5984056949fcf935c36e7b39184d1307a5d0a891efed4f0e4f32e783f3f7da2c7e6b7409eb908b2521064c6d24a28561ed38db9f8d4e8
EBUILD pulseaudio-qt-1.3-r2.ebuild 705 BLAKE2B 21ca48a8e6e657d32c76aec1f95599ab309e76f14a7677aa166549dc62153bc72cc06b25d61ee01002d4ca8be05aa3e88cd4b96c5c28673f83ec758547ff29fa SHA512 9a760b6734c677f5f846f967780339215b4007ac2fc6d18460e36dfb1f3ee01b7bda35069316f946632e7f25ae5da5fa2aefcd9f559a1cfc39aa6ef1b699f1ce
+EBUILD pulseaudio-qt-1.3-r3.ebuild 794 BLAKE2B e6021e2c685c7bd39311a39509aed29f00ad97d6eccb8422f25edc8db414e72335fc0dc5211fc5bd8b9eb08124193ef36e5541676cafdc39aa546e081f647525 SHA512 0982fa7cf1f3631a913095cbd7602c5d68883fd4b845b452d23f85a2332fa211ea52a6e2a35170a1c6abe601bfbfd74e56c3a6c97ff5fa80c190fa62dba7ac05
MISC metadata.xml 318 BLAKE2B 922a5e32e706b2976c5f359a14194d268d3f499398576c80ce5fad8c0fcea0fbf048de4480a80a6a1889c88b8b6c14147654a3ab4d5ffbcc258c2290da63f6d1 SHA512 614cb8dda7ad2088e5d6ef39b449bb4be0ac72cd0231c320188d76d1816dce6490c5114bb4798112c4b11d99d30a9e82ff8fcf08ffa8c049589682a5e38208f6
diff --git a/media-libs/pulseaudio-qt/files/pulseaudio-qt-1.3-no-crash-if-no-server-response.patch b/media-libs/pulseaudio-qt/files/pulseaudio-qt-1.3-no-crash-if-no-server-response.patch
new file mode 100644
index 000000000000..459319aa49b8
--- /dev/null
+++ b/media-libs/pulseaudio-qt/files/pulseaudio-qt-1.3-no-crash-if-no-server-response.patch
@@ -0,0 +1,44 @@
+From f6b02f21a9131bafc4965ebb64acf01a4505ce04 Mon Sep 17 00:00:00 2001
+From: Harald Sitter <sitter@kde.org>
+Date: Mon, 10 Oct 2022 16:06:20 +0200
+Subject: [PATCH] don't crash when the server doesn't respond
+
+inside libpulse a non-reply (e.g. caused by a timeout) results in info
+being a nullptr. when that happens simply skip over the callback. when
+this happens chances are the server crashed or is otherwise defunct so
+we won't be able to do much about this anyway
+
+easy to test by attaching to both plasmashell and pulseaudio and
+interrupting the latter when the former calls
+pa_context_get_server_info. this results in the reply timeout getting
+hit -> nullptr callback.
+
+it is unclear if we can somehow recover from this but in lieu of a
+reliable real world test case for this we at least shouldn't crash on
+nullptr access.
+
+BUG: 454647
+---
+ src/context.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/context.cpp b/src/context.cpp
+index 604364f..c5a0f10 100644
+--- a/src/context.cpp
++++ b/src/context.cpp
+@@ -161,6 +161,12 @@ static void server_cb(pa_context *context, const pa_server_info *info, void *dat
+ {
+ Q_ASSERT(context);
+ Q_ASSERT(data);
++ if (!info) {
++ // info may be nullptr when e.g. the server doesn't reply in time (e.g. it is stuck)
++ // https://bugs.kde.org/show_bug.cgi?id=454647
++ qCWarning(PULSEAUDIOQT) << "server_cb() called without info!";
++ return;
++ }
+ static_cast<ContextPrivate *>(data)->serverCallback(info);
+ }
+
+--
+GitLab
+
diff --git a/media-libs/pulseaudio-qt/pulseaudio-qt-1.3-r3.ebuild b/media-libs/pulseaudio-qt/pulseaudio-qt-1.3-r3.ebuild
new file mode 100644
index 000000000000..07b4aa658b02
--- /dev/null
+++ b/media-libs/pulseaudio-qt/pulseaudio-qt-1.3-r3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+ECM_QTHELP="true"
+ECM_TEST="optional"
+QTMIN=5.15.2
+inherit ecm kde.org
+
+DESCRIPTION="Qt bindings for libpulse"
+HOMEPAGE="https://invent.kde.org/libraries/pulseaudio-qt"
+
+if [[ ${KDE_BUILD_TYPE} = release ]]; then
+ SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0/3"
+
+RDEPEND="
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ media-libs/libpulse
+"
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-qt/qtdeclarative-${QTMIN}:5
+ >=dev-qt/qtquickcontrols2-${QTMIN}:5
+ )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}/${P}-no-crash-if-no-server-response.patch" ) # KDE-bug 454647