summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kde-plasma/plasma-pa/files/plasma-pa-6.2.3-guard-activePort-against-null.patch39
-rw-r--r--kde-plasma/plasma-pa/files/plasma-pa-6.2.3-kcm-fix-speaker-test-for-proaudio.patch50
-rw-r--r--kde-plasma/plasma-pa/plasma-pa-6.2.3-r1.ebuild49
3 files changed, 138 insertions, 0 deletions
diff --git a/kde-plasma/plasma-pa/files/plasma-pa-6.2.3-guard-activePort-against-null.patch b/kde-plasma/plasma-pa/files/plasma-pa-6.2.3-guard-activePort-against-null.patch
new file mode 100644
index 000000000000..11759a7c9cc6
--- /dev/null
+++ b/kde-plasma/plasma-pa/files/plasma-pa-6.2.3-guard-activePort-against-null.patch
@@ -0,0 +1,39 @@
+From 49925e2a9598f27a526534dc2b4b1bc0bcee639b Mon Sep 17 00:00:00 2001
+From: Harald Sitter <sitter@kde.org>
+Date: Fri, 15 Nov 2024 13:36:04 +0000
+Subject: [PATCH] listitemmenu: guard activePort against null
+
+it's not quite obvious why ports.at(index) would return null, but it's
+my best guess for why we have a crash here
+
+CCBUG: 496067
+
+
+(cherry picked from commit 23c8a3f982d5e0c8380c0870b047b251f67d179e)
+
+Co-authored-by: Harald Sitter <sitter@kde.org>
+---
+ src/qml/listitemmenu.cpp | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/qml/listitemmenu.cpp b/src/qml/listitemmenu.cpp
+index 5196a3de..9319bd26 100644
+--- a/src/qml/listitemmenu.cpp
++++ b/src/qml/listitemmenu.cpp
+@@ -333,9 +333,10 @@ QMenu *ListItemMenu::createMenu()
+ // Ports
+ const auto ports = device->ports();
+ bool activePortUnavailable = false;
+- if (device->activePortIndex() != static_cast<quint32>(-1)) {
+- auto *activePort = static_cast<Port *>(ports.at(device->activePortIndex()));
+- activePortUnavailable = activePort->availability() == Port::Unavailable;
++ if (auto index = device->activePortIndex(); index != static_cast<quint32>(-1)) {
++ if (auto activePort = ports.at(index)) {
++ activePortUnavailable = activePort->availability() == Port::Unavailable;
++ }
+ }
+
+ QMap<int, Port *> availablePorts;
+--
+GitLab
+
diff --git a/kde-plasma/plasma-pa/files/plasma-pa-6.2.3-kcm-fix-speaker-test-for-proaudio.patch b/kde-plasma/plasma-pa/files/plasma-pa-6.2.3-kcm-fix-speaker-test-for-proaudio.patch
new file mode 100644
index 000000000000..c84e2cba02bc
--- /dev/null
+++ b/kde-plasma/plasma-pa/files/plasma-pa-6.2.3-kcm-fix-speaker-test-for-proaudio.patch
@@ -0,0 +1,50 @@
+From 0b4a26ada8258f4d25fa5069f239f1041eefecb5 Mon Sep 17 00:00:00 2001
+From: Ismael Asensio <isma.af@gmail.com>
+Date: Wed, 6 Nov 2024 17:31:17 +0000
+Subject: [PATCH] kcm: Fix speaker test layout for Pro-Audio profile
+
+Known audio channels (like 'front-right', `rear-left`) are assigned
+rows 0 to 2 in the Grid layout so they are placed in their spatial
+position around the user's avatar
+
+Unknown channels (those produced by the Pro Audio pipewire profile)
+have no spatial info and are assigned to rows 3 and following
+
+The spacer items were also assigned to row 3, which collided with
+those, breaking the layout. Let's give the spacers a high enough
+row number so there is no collision with an already occupied cell
+
+BUG: 495752
+FIXED-IN: 6.2.4
+
+
+(cherry picked from commit 36075f9e5f8d58ad2c687b91ec9a9cbef8c59fb3)
+
+Co-authored-by: Ismael Asensio <isma.af@gmail.com>
+---
+ src/kcm/ui/main.qml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/kcm/ui/main.qml b/src/kcm/ui/main.qml
+index dacaec4f..57f60c35 100644
+--- a/src/kcm/ui/main.qml
++++ b/src/kcm/ui/main.qml
+@@ -468,13 +468,13 @@ KCM.ScrollViewKCM {
+
+ // Spacers for when the left and right columns are empty
+ Item {
+- Layout.row: 3
++ Layout.row: 9 // So we don't override an occupied cell
+ Layout.column: 0
+ Layout.fillWidth: true
+ Layout.preferredWidth: Kirigami.Units.gridUnit * 4
+ }
+ Item {
+- Layout.row: 3
++ Layout.row: 9 // So we don't override an occupied cell
+ Layout.column: 2
+ Layout.fillWidth: true
+ Layout.preferredWidth: Kirigami.Units.gridUnit * 4
+--
+GitLab
+
diff --git a/kde-plasma/plasma-pa/plasma-pa-6.2.3-r1.ebuild b/kde-plasma/plasma-pa/plasma-pa-6.2.3-r1.ebuild
new file mode 100644
index 000000000000..46b0ae24d6ce
--- /dev/null
+++ b/kde-plasma/plasma-pa/plasma-pa-6.2.3-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+KFMIN=6.6.0
+PVCUT=$(ver_cut 1-3)
+QTMIN=6.7.2
+inherit ecm plasma.kde.org
+
+DESCRIPTION="Plasma applet for audio volume management using PulseAudio"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="6"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+RESTRICT="test" # missing selenium-webdriver-at-spi
+
+DEPEND="
+ dev-libs/glib:2
+ >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,widgets]
+ >=dev-qt/qtdeclarative-${QTMIN}:6
+ >=kde-frameworks/kconfig-${KFMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/kdbusaddons-${KFMIN}:6
+ >=kde-frameworks/kdeclarative-${KFMIN}:6
+ >=kde-frameworks/kglobalaccel-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ >=kde-frameworks/kstatusnotifieritem-${KFMIN}:6
+ >=kde-frameworks/ksvg-${KFMIN}:6
+ >=kde-plasma/libplasma-${PVCUT}:6
+ media-libs/libcanberra
+ media-libs/libpulse
+ >=media-libs/pulseaudio-qt-1.6.0:=
+"
+RDEPEND="${DEPEND}
+ dev-libs/kirigami-addons:6
+ >=kde-frameworks/kirigami-${KFMIN}:6
+ >=kde-frameworks/kitemmodels-${KFMIN}:6
+ x11-themes/sound-theme-freedesktop
+"
+BDEPEND=">=kde-frameworks/kcmutils-${KFMIN}:6"
+
+PATCHES=(
+ "${FILESDIR}/${P}-kcm-fix-speaker-test-for-proaudio.patch" # KDE-bug #495752
+ "${FILESDIR}/${P}-guard-activePort-against-null.patch" # KDE-bug #496067
+)