aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Ribbers <bribbers@disroot.org>2021-03-30 11:16:36 +0200
committerBart Ribbers <bribbers@disroot.org>2021-03-30 11:16:36 +0200
commitb2938f8507e4c072df5d21f52dd2a027d2633eca (patch)
treee597599a65f8c92ae018b67cd3b7bffc65630015
parentb2aef5a3a4511a093093dcbf447ed22060df5651 (diff)
community/kglobalaccel: backport patch as requested upstream
-rw-r--r--community/kglobalaccel/0001-dont-let-kglobalaccel-run-if-kde_session_id-mismatches.patch43
-rw-r--r--community/kglobalaccel/APKBUILD25
2 files changed, 63 insertions, 5 deletions
diff --git a/community/kglobalaccel/0001-dont-let-kglobalaccel-run-if-kde_session_id-mismatches.patch b/community/kglobalaccel/0001-dont-let-kglobalaccel-run-if-kde_session_id-mismatches.patch
new file mode 100644
index 00000000000..ab606eebed9
--- /dev/null
+++ b/community/kglobalaccel/0001-dont-let-kglobalaccel-run-if-kde_session_id-mismatches.patch
@@ -0,0 +1,43 @@
+From bbec74337b3186bc258bd5adf849b89191789535 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Fri, 29 Jan 2021 11:31:54 +0100
+Subject: [PATCH] Don't let kglobalaccel run if KDE_SESSION_UID mismatches
+
+Otherwise shortcuts execute actions as the wrong user.
+---
+ src/runtime/main.cpp | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/runtime/main.cpp b/src/runtime/main.cpp
+index d2917ad..46506b3 100644
+--- a/src/runtime/main.cpp
++++ b/src/runtime/main.cpp
+@@ -10,6 +10,8 @@
+ #include "kglobalacceld.h"
+ #include "logging_p.h"
+
++#include <unistd.h>
++
+ #include <KAboutData>
+ #include <KCrash>
+ #include <KDBusService>
+@@ -57,6 +59,16 @@ extern "C" Q_DECL_EXPORT int main(int argc, char **argv)
+ return 0;
+ }
+
++ // It's possible that kglobalaccel gets started as the wrong user by
++ // accident, e.g. kdesu dolphin leads to dbus activation. It then installs
++ // its grabs and the actions are run as the wrong user.
++ bool isUidset = false;
++ const int sessionuid = qEnvironmentVariableIntValue("KDE_SESSION_UID", &isUidset);
++ if(isUidset && static_cast<uid_t>(sessionuid) != getuid()) {
++ qCWarning(KGLOBALACCELD) << "kglobalaccel running as wrong user, exiting.";
++ return 0;
++ }
++
+ KDBusService service(KDBusService::Unique);
+
+ app.setQuitOnLastWindowClosed(false);
+--
+GitLab
+
diff --git a/community/kglobalaccel/APKBUILD b/community/kglobalaccel/APKBUILD
index 5a30b4a7eb0..b9d87288e98 100644
--- a/community/kglobalaccel/APKBUILD
+++ b/community/kglobalaccel/APKBUILD
@@ -2,15 +2,29 @@
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=kglobalaccel
pkgver=5.80.0
-pkgrel=0
+pkgrel=1
pkgdesc="Add support for global workspace shortcuts"
arch="all !armhf" # armhf blocked by extra-cmake-modules
url="https://community.kde.org/Frameworks"
license="LGPL-2.1-or-later"
-depends_dev="qt5-qtx11extras-dev kconfig-dev kcoreaddons-dev kcrash-dev kdbusaddons-dev kwindowsystem-dev"
-makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev xcb-util-keysyms-dev"
+depends_dev="
+ kconfig-dev
+ kcoreaddons-dev
+ kcrash-dev
+ kdbusaddons-dev
+ kwindowsystem-dev
+ qt5-qtx11extras-dev
+ "
+makedepends="$depends_dev
+ doxygen
+ extra-cmake-modules
+ qt5-qttools-dev
+ xcb-util-keysyms-dev
+ "
checkdepends="xvfb-run"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/kglobalaccel-$pkgver.tar.xz"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/kglobalaccel-$pkgver.tar.xz
+ 0001-dont-let-kglobalaccel-run-if-kde_session_id-mismatches.patch
+ "
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
build() {
@@ -30,4 +44,5 @@ check() {
package() {
DESTDIR="$pkgdir" cmake --build build --target install
}
-sha512sums="6e12d3926f1b44425747bfca3eea21986cfe57ce032a2f691a2ab6b12556feec15cceea4b2b6c21bbdc9ecb6af11e9fb64489d60d9e95f4443b0a74ebab551af kglobalaccel-5.80.0.tar.xz"
+sha512sums="6e12d3926f1b44425747bfca3eea21986cfe57ce032a2f691a2ab6b12556feec15cceea4b2b6c21bbdc9ecb6af11e9fb64489d60d9e95f4443b0a74ebab551af kglobalaccel-5.80.0.tar.xz
+91a982bbc2b99569b03161e78b53b3fc6bcb7c03e3c69abac4d9a5917e4b5d0766d9289766d00efcd3c9df24016509c389fcea78a9efba190da8eb3e3bc06870 0001-dont-let-kglobalaccel-run-if-kde_session_id-mismatches.patch"