summaryrefslogtreecommitdiff
path: root/kde-plasma/kpipewire
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/kpipewire')
-rw-r--r--kde-plasma/kpipewire/Manifest3
-rw-r--r--kde-plasma/kpipewire/files/kpipewire-6.1.4-avoid-segfault.patch42
-rw-r--r--kde-plasma/kpipewire/files/kpipewire-6.1.4-dont-process-null-streams.patch39
-rw-r--r--kde-plasma/kpipewire/kpipewire-6.1.4-r2.ebuild52
4 files changed, 136 insertions, 0 deletions
diff --git a/kde-plasma/kpipewire/Manifest b/kde-plasma/kpipewire/Manifest
index 8194e6a1a881..1f548d4d35a3 100644
--- a/kde-plasma/kpipewire/Manifest
+++ b/kde-plasma/kpipewire/Manifest
@@ -1,5 +1,8 @@
+AUX kpipewire-6.1.4-avoid-segfault.patch 1338 BLAKE2B 545b1b5e0c3d9185fe6e7d6e4e9fa8d4eacf3d20e6b8c5385aacce61f2a23e841286f40e9428422f6634b93bbf02d625cda195c072c8f9f00fc861a04388b413 SHA512 55c2f390db7ac2cab3fb8635a39f0bd3d1bc3037978494b50456f7c0bed8abee785d743243be77deb982a7e935a929d0b9c894f7e7688c903bd26d1c6eebe879
+AUX kpipewire-6.1.4-dont-process-null-streams.patch 1315 BLAKE2B dcef6307c7b28e0b3499d9cdc97a8fd61937ebbbe6ab2d6d25ad2b1b33c0ef059b325160097593128c1ce1a2f26be4502c20a801f7c8b6174662f59318c6f179 SHA512 4dd14ef5041b64f1a3429bcd346de652570f51339f4e3d1ac699bcb784ea9fd1e89a4bbbddc73d165e695cbd8451b4e2522775adaebedf51dd177685f475b4f1
DIST kpipewire-5.27.11.tar.xz 60076 BLAKE2B a0f9513babcf7d68252296ad258b2875e0e16a131302af8305f78a7d1fff87844c57cd88103aa95bdc8e584eab1e2142cd9edd9278c4afecf7b61769290f5910 SHA512 0350946c2e64f8b1224e31d49154f47b652bba55b3c3fbe39fa8b9da0e959a3c65b38d6f99cd3003a8ff409b29bdbbcc1b3f99deeb4052d1538776a2465c3641
DIST kpipewire-6.1.4.tar.xz 148980 BLAKE2B d9ead0bfc582c31519b4a64bcd6ae14ee5a614579ef4edd741a2329bb4e3271bedfeaf5cad2158211d70ba1f3113a26c4378436d085f1b80fecfc83fddab0298 SHA512 e247709e2f89ac3bc55ca3cda78024d39b608c0be09453dcbabe441b247e7b8a54ad8c9ef0ba52a5d9e01b3361e569d14041188e317384c7baa835ec6d943ff4
EBUILD kpipewire-5.27.11-r1.ebuild 996 BLAKE2B 0e838f274f3d27b83dad52ff869932eff874878778af932df98f8ddfb656ecd763c42f919d6c627b7026038ee242ab01cf88c5cfdd90902d993bf86d5aa7d805 SHA512 ba10ba172823ee0acf408176887b3206e768b36c2ca2b3007fc95f6a76ef6e0285ea575aac3ced39cfaca9ad39df2bd55eb8a6a38473b1a38125251455603e6b
EBUILD kpipewire-6.1.4-r1.ebuild 1061 BLAKE2B 586842251050b2252e55a0d0b81649e5ef4d911079f2e285ec25544044f89a7c6e5a18a4ea45231470e35d7523939dedc26aff7d1454f947e58a7cc234f771e6 SHA512 5b1436993c62e8cc3347214558a2f782943a0f1dedf18edbcfd3ff0b34ad0cc062f8ff4be70039a143073716d7c05bbc3390091d5d15f21ebfaf01b92f82771b
+EBUILD kpipewire-6.1.4-r2.ebuild 1169 BLAKE2B 7ff837067466d2e19c7acfc761745baa8e45dee6e1a7ed5f5575921fe7907e1b92ece15fdc630be05a9bf8a605eafbb5dfbc9db3c8b182c47d7d12e28635df51 SHA512 bbfdd96ce2df55a7b8fe30f68f2cea69deca42a71aaad466f7c96fa88891f3eb4545b8bc883d218e0be560836283c2ae7ed83d5905ed68dff3ce1fc5bfcf3f01
MISC metadata.xml 318 BLAKE2B 922a5e32e706b2976c5f359a14194d268d3f499398576c80ce5fad8c0fcea0fbf048de4480a80a6a1889c88b8b6c14147654a3ab4d5ffbcc258c2290da63f6d1 SHA512 614cb8dda7ad2088e5d6ef39b449bb4be0ac72cd0231c320188d76d1816dce6490c5114bb4798112c4b11d99d30a9e82ff8fcf08ffa8c049589682a5e38208f6
diff --git a/kde-plasma/kpipewire/files/kpipewire-6.1.4-avoid-segfault.patch b/kde-plasma/kpipewire/files/kpipewire-6.1.4-avoid-segfault.patch
new file mode 100644
index 000000000000..eb4fa8b4f447
--- /dev/null
+++ b/kde-plasma/kpipewire/files/kpipewire-6.1.4-avoid-segfault.patch
@@ -0,0 +1,42 @@
+From 32628055172430a5b06a3ec5724d774290e86fd6 Mon Sep 17 00:00:00 2001
+From: Akseli Lahtinen <akselmo@akselmo.dev>
+Date: Mon, 12 Aug 2024 08:20:50 +0000
+Subject: [PATCH] pipewireproduce.cpp: Add guard to m_stream
+
+After multiple consecutive KRDP sessions,
+m_stream can be null, so add a guard to it to avoid segfault.
+
+
+(cherry picked from commit c9c8c1a7410463c98bab1d9b47abb71a80804258)
+
+96dc2be6 pipewireproduce.cpp: Add guard to m_stream
+a3afdd53 Destroy queued connection if no m_stream or m_encoder is found
+6de6cb8f Simplify code
+
+Co-authored-by: Akseli Lahtinen <akselmo@akselmo.dev>
+---
+ src/pipewireproduce.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/pipewireproduce.cpp b/src/pipewireproduce.cpp
+index 8fbf366..8bdcb91 100644
+--- a/src/pipewireproduce.cpp
++++ b/src/pipewireproduce.cpp
+@@ -152,9 +152,11 @@ void PipeWireProduce::deactivate()
+ {
+ m_deactivated = true;
+
+- auto streamState = m_stream->state();
+-
+- m_stream->setActive(false);
++ auto streamState = PW_STREAM_STATE_PAUSED;
++ if (m_stream) {
++ streamState = m_stream->state();
++ m_stream->setActive(false);
++ }
+
+ // If we have not been initialized properly before, ensure we still run any
+ // cleanup code and exit the thread, otherwise we risk applications not closing
+--
+GitLab
+
diff --git a/kde-plasma/kpipewire/files/kpipewire-6.1.4-dont-process-null-streams.patch b/kde-plasma/kpipewire/files/kpipewire-6.1.4-dont-process-null-streams.patch
new file mode 100644
index 000000000000..d04b15ef5e76
--- /dev/null
+++ b/kde-plasma/kpipewire/files/kpipewire-6.1.4-dont-process-null-streams.patch
@@ -0,0 +1,39 @@
+From dd08a7afd5957d8ae74cd0d1cb07d6e0f755ae9a Mon Sep 17 00:00:00 2001
+From: Aleix Pol Gonzalez <aleixpol@kde.org>
+Date: Mon, 19 Aug 2024 10:13:01 +0000
+Subject: [PATCH] sourcestream: Do not process null streams
+
+We have a callback that tells us that a stream has been destroyed and so
+we clean it up. Now we shouldn't process streams after this happened,
+otherwise we crash.
+
+
+(cherry picked from commit b526691684b004ff12fe52d8d86f77c21dedc996)
+
+Co-authored-by: Aleix Pol <aleixpol@kde.org>
+---
+ src/pipewiresourcestream.cpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/pipewiresourcestream.cpp b/src/pipewiresourcestream.cpp
+index f4fc63e..6f8242a 100644
+--- a/src/pipewiresourcestream.cpp
++++ b/src/pipewiresourcestream.cpp
+@@ -685,6 +685,14 @@ void PipeWireSourceStream::coreFailed(const QString &errorMessage)
+
+ void PipeWireSourceStream::process()
+ {
++#if !PW_CHECK_VERSION(0, 3, 73)
++ if (Q_UNLIKELY(!d->pwStream)) {
++ // Assuming it's caused by https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3314
++ qCDebug(PIPEWIRE_LOGGING) << "stream was terminated before processing buffer";
++ return;
++ }
++#endif
++
+ pw_buffer *buf = pw_stream_dequeue_buffer(d->pwStream);
+ if (!buf) {
+ qCDebug(PIPEWIRE_LOGGING) << "out of buffers";
+--
+GitLab
+
diff --git a/kde-plasma/kpipewire/kpipewire-6.1.4-r2.ebuild b/kde-plasma/kpipewire/kpipewire-6.1.4-r2.ebuild
new file mode 100644
index 000000000000..defd0cee287e
--- /dev/null
+++ b/kde-plasma/kpipewire/kpipewire-6.1.4-r2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=6.5.0
+QTMIN=6.7.2
+inherit ecm plasma.kde.org
+
+DESCRIPTION="Components relating to Flatpak pipewire use in Plasma"
+
+LICENSE="LGPL-2.1+"
+SLOT="6"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+RESTRICT="test" # bug 926511, fixed in 6.2
+
+COMMON_DEPEND="
+ >=dev-qt/qtbase-${QTMIN}:6[dbus,gui]
+ >=dev-qt/qtdeclarative-${QTMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ media-libs/libepoxy
+ media-libs/libglvnd
+ media-libs/libva:=
+ media-libs/mesa[opengl]
+ media-video/ffmpeg:=
+ >=media-video/pipewire-0.3:=
+ x11-libs/libdrm
+"
+DEPEND="${COMMON_DEPEND}
+ test? (
+ dev-libs/plasma-wayland-protocols
+ dev-libs/wayland
+ >=dev-qt/qtwayland-${QTMIN}:6
+ >=kde-plasma/kwayland-${PVCUT}:6
+ media-video/pipewire[extra]
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=kde-frameworks/kirigami-${KFMIN}:6
+ x11-themes/sound-theme-freedesktop
+"
+BDEPEND="test? ( >=dev-qt/qtwayland-${QTMIN}:6 )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-avoid-segfault.patch"
+ "${FILESDIR}/${P}-dont-process-null-streams.patch"
+)