git » plasma-workspace.git » commit 3120677

Fix xdg-desktop-portal-kde breakage with recent qt5-base (FS#75851)

author Antonio Rojas
2022-09-14 11:15:08 UTC
committer Antonio Rojas
2022-09-14 11:15:08 UTC
parent 140cc0c378b258eec300bf15a5169238cebdbd3a

Fix xdg-desktop-portal-kde breakage with recent qt5-base (FS#75851)

9bf0e56d.patch +49 -0
PKGBUILD +6 -3

diff --git a/9bf0e56d.patch b/9bf0e56d.patch
new file mode 100644
index 0000000..b257523
--- /dev/null
+++ b/9bf0e56d.patch
@@ -0,0 +1,49 @@
+From 9bf0e56da84de5e9bd2b3ff28bdb2cb1af6de91e Mon Sep 17 00:00:00 2001
+From: Harald Sitter <sitter@kde.org>
+Date: Tue, 13 Sep 2022 13:54:04 +0200
+Subject: [PATCH] delay ksplash until after env is set up
+
+otherwise we can dbus invoke with the wrong environment. specifically
+this happens with the latest qtbase changes that introduced color
+picking support on wayland. when we start a qguiapplication with
+incomplete environment that dbus invokes the xdg-portal system and that
+in turn has an incomplete environment resulting in theming and the likes
+not properly applying because the portal doesn't know that it runs
+inside a plasma session.
+
+https://invent.kde.org/qt/qt/qtbase/-/commit/2dc083df009a45c5dacfea27b0affeb85b01f847
+
+BUG: 458865
+---
+ startkde/startplasma-x11.cpp | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
+index f8123557e5..08a4c0d1c0 100644
+--- a/startkde/startplasma-x11.cpp
++++ b/startkde/startplasma-x11.cpp
+@@ -57,9 +57,6 @@ int main(int argc, char **argv)
+         }
+     }
+ 
+-    setupCursor(false);
+-    QScopedPointer<QProcess, KillBeforeDeleter> ksplash(setupKSplash());
+-
+     runEnvironmentScripts();
+ 
+     out << "startkde: Starting up...\n";
+@@ -80,6 +76,11 @@ int main(int argc, char **argv)
+     // variables (e.g. LANG and LC_*)
+     importSystemdEnvrionment();
+ 
++    // NOTE: Do not start QGuiApplications before setting up the environment. We'd be at risk of dbus invoking other
++    // processes with an incomplete environment.
++    setupCursor(false);
++    QScopedPointer<QProcess, KillBeforeDeleter> ksplash(setupKSplash());
++
+     if (!startPlasmaSession(false))
+         return 1;
+ 
+-- 
+GitLab
+
diff --git a/PKGBUILD b/PKGBUILD
index e96e4a3..0711435 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
 pkgbase=plasma-workspace
 pkgname=(plasma-workspace plasma-wayland-session)
 pkgver=5.25.5
-pkgrel=2
+pkgrel=3
 pkgdesc='KDE Plasma Workspace'
 arch=(x86_64)
 url='https://kde.org/plasma-desktop/'
@@ -18,11 +18,13 @@ depends=(knotifyconfig ksystemstats ktexteditor libqalculate kde-cli-tools appst
 makedepends=(extra-cmake-modules kdoctools gpsd baloo networkmanager-qt plasma-wayland-protocols kunitconversion kinit)
 groups=(plasma)
 source=(https://download.kde.org/stable/plasma/$pkgver/$pkgbase-$pkgver.tar.xz{,.sig} kde.pam
-        https://invent.kde.org/plasma/plasma-workspace/-/commit/c7ba560c.patch)
+        https://invent.kde.org/plasma/plasma-workspace/-/commit/c7ba560c.patch
+        9bf0e56d.patch)
 sha256sums=('bd74390273a18b117932b883a085840b3f364da6756262217337ea03e278bc5f'
             'SKIP'
             '00090291204baabe9d6857d3b1419832376dd2e279087d718b64792691e86739'
-            'd6d050aa8e7a8827f2b6c9110425a10f3e1c738a65019821c320fa1102890203')
+            'd6d050aa8e7a8827f2b6c9110425a10f3e1c738a65019821c320fa1102890203'
+            '61598f2334a50ff1607d41c31fbe121350d8a64f4e265966a171beeb52182c33')
 validpgpkeys=('E0A3EB202F8E57528E13E72FD7574483BB57B18D'  # Jonathan Esk-Riddell <jr@jriddell.org>
               '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D'  # Bhushan Shah <bshah@kde.org>
               'D07BD8662C56CB291B316EB2F5675605C74E02CF'  # David Edmundson <davidedmundson@kde.org>
@@ -31,6 +33,7 @@ options=(debug)
 
 prepare() {
   patch -d $pkgname-$pkgver -p1 < c7ba560c.patch # Fix infinite recursion in widget explorer
+  patch -d $pkgname-$pkgver -p1 < 9bf0e56d.patch # Fix xdg-desktop-portal-kde breakage with recent qt5-base
 }
 
 build() {