update patch "Qt applications lose system theme if launched via dbus activation" (#1754395)

epel9
Rex Dieter 5 years ago
parent f5f45c432e
commit 245480a5a8

@ -0,0 +1,41 @@
diff -r -U3 plasma-workspace-5.18.4.1.orig/startkde/startplasma.cpp plasma-workspace-5.18.4.1/startkde/startplasma.cpp
--- plasma-workspace-5.18.4.1.orig/startkde/startplasma.cpp 2020-03-31 17:33:37.000000000 +0300
+++ plasma-workspace-5.18.4.1/startkde/startplasma.cpp 2020-04-03 20:43:32.178541309 +0300
@@ -22,6 +22,8 @@
#include <QStandardPaths>
#include <QTextStream>
#include <QDBusConnectionInterface>
+#include <QRegularExpression>
+#include <QProcessEnvironment>
#include <KConfig>
#include <KConfigGroup>
@@ -64,8 +66,26 @@
int runSync(const QString& program, const QStringList &args, const QStringList &env)
{
QProcess p;
- if (!env.isEmpty())
- p.setEnvironment(QProcess::systemEnvironment() << env);
+ auto pEnv = QProcessEnvironment::systemEnvironment();
+ if (!env.isEmpty()) {
+ for (const auto &value : env) {
+ int pos = value.indexOf(QStringLiteral("="));
+ if (pos != -1) {
+ pEnv.insert(value.left(pos), value.mid(pos+1));
+ }
+ }
+ }
+ if (program.endsWith(QStringLiteral("dbus-update-activation-environment"))) {
+ const QRegularExpression re(QStringLiteral("[^A-Z0-9_]"));
+ for (const auto &key : pEnv.keys()) {
+ const auto match = re.match(key);
+ if (match.hasMatch()) {
+ pEnv.remove(key);
+ qInfo() << "program:" << program << "environment variable removed:" << key;
+ }
+ }
+ }
+ p.setProcessEnvironment(pEnv);
p.setProcessChannelMode(QProcess::ForwardedChannels);
p.start(program, args);
// qDebug() << "started..." << program << args;

@ -1,29 +0,0 @@
diff -r -U3 plasma-workspace-5.18.4.1.orig/startkde/startplasma.cpp plasma-workspace-5.18.4.1/startkde/startplasma.cpp
--- plasma-workspace-5.18.4.1.orig/startkde/startplasma.cpp 2020-03-31 17:33:37.000000000 +0300
+++ plasma-workspace-5.18.4.1/startkde/startplasma.cpp 2020-04-03 12:47:34.812587755 +0300
@@ -22,6 +22,8 @@
#include <QStandardPaths>
#include <QTextStream>
#include <QDBusConnectionInterface>
+#include <QRegularExpression>
+#include <QProcessEnvironment>
#include <KConfig>
#include <KConfigGroup>
@@ -265,6 +267,16 @@
// In that case, the update in startplasma might be too late.
bool syncDBusEnvironment()
{
+ const QRegularExpression re(QString::fromUtf8("[^A-Z0-9_]"));
+ const auto env = QProcessEnvironment::systemEnvironment();
+ for (const auto &key : env.keys()) {
+ const auto match = re.match(key);
+ if (match.hasMatch()) {
+// qDebug() << "environment variable filtered:" << key;
+ qunsetenv(key.toUtf8().constData());
+ }
+ }
+
int exitCode;
// At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
if (!QStandardPaths::findExecutable(QStringLiteral("dbus-update-activation-environment")).isEmpty()) {

@ -7,7 +7,7 @@
Name: plasma-workspace
Summary: Plasma workspace, applications and applets
Version: 5.18.4.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2+
URL: https://cgit.kde.org/%{name}.git
@ -45,7 +45,7 @@ Patch101: plasma-workspace-5.3.0-set-fedora-default-look-and-feel.patch
# https://github.com/notmart/artwork-lnf-netrunner-core/blob/master/usr/share/plasma/look-and-feel/org.kde.netrunner-core.desktop/contents/defaults
Patch105: plasma-workspace-5.7.3-folderview_layout.patch
# workaround https://bugzilla.redhat.com/show_bug.cgi?id=1754395
Patch106: plasma-workspace-5.18.4.1-filter-environment.patch
Patch106: plasma-workspace-5.18.4.1-filter-environment-v2.patch
## upstreamable Patches
@ -609,6 +609,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.{klipper,
%changelog
* Thu Apr 09 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.18.4.1-2
- update patch "Qt applications lose system theme if launched via dbus activation" (#1754395)
* Sat Apr 04 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.18.4.1-1
- 5.18.4.1

Loading…
Cancel
Save