summaryrefslogtreecommitdiff
path: root/kde-frameworks
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-30 17:27:54 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-30 17:27:54 +0100
commitf70a1bfc721336d4fc7dfb711c2f518a6b18cf16 (patch)
treee907cb121b30e3c1df1710719c0ddf4029597a47 /kde-frameworks
parentdb063b515939ab15261136b24e4bc44386335c0c (diff)
gentoo resync : 30.09.2020
Diffstat (limited to 'kde-frameworks')
-rw-r--r--kde-frameworks/Manifest.gzbin14386 -> 14385 bytes
-rw-r--r--kde-frameworks/kdeclarative/Manifest3
-rw-r--r--kde-frameworks/kdeclarative/files/kdeclarative-5.74.0-block-shortcuts-when-recording-key-sequences.patch104
-rw-r--r--kde-frameworks/kdeclarative/kdeclarative-5.74.0-r1.ebuild (renamed from kde-frameworks/kdeclarative/kdeclarative-5.74.0.ebuild)4
-rw-r--r--kde-frameworks/kio/Manifest4
-rw-r--r--kde-frameworks/kio/files/kio-5.74.1-handle-shell-scripts-consistenty.patch310
-rw-r--r--kde-frameworks/kio/files/kio-5.74.1-kio_trash-too-strict-perms-check.patch67
-rw-r--r--kde-frameworks/kio/kio-5.74.1-r1.ebuild (renamed from kde-frameworks/kio/kio-5.74.1.ebuild)5
-rw-r--r--kde-frameworks/kirigami/Manifest4
-rw-r--r--kde-frameworks/kirigami/files/kirigami-5.74.0-remove-actions-from-ToolBarLayout-when-destroyed.patch40
-rw-r--r--kde-frameworks/kirigami/files/kirigami-5.74.0-revert-fix-avatar-loading.patch30
-rw-r--r--kde-frameworks/kirigami/kirigami-5.74.0-r1.ebuild (renamed from kde-frameworks/kirigami/kirigami-5.74.0.ebuild)5
-rw-r--r--kde-frameworks/kxmlgui/Manifest3
-rw-r--r--kde-frameworks/kxmlgui/files/kxmlgui-5.74.0-fix-multiple-tabs-popup-on-logout.patch68
-rw-r--r--kde-frameworks/kxmlgui/kxmlgui-5.74.0-r1.ebuild (renamed from kde-frameworks/kxmlgui/kxmlgui-5.74.0.ebuild)2
-rw-r--r--kde-frameworks/plasma/Manifest3
-rw-r--r--kde-frameworks/plasma/files/plasma-5.74.0-fix-pc3-button-icons-color-set.patch28
-rw-r--r--kde-frameworks/plasma/plasma-5.74.0-r1.ebuild (renamed from kde-frameworks/plasma/plasma-5.74.0.ebuild)2
-rw-r--r--kde-frameworks/qqc2-desktop-style/Manifest3
-rw-r--r--kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-5.74.0-move-dbus-connection-in-singleton.patch67
-rw-r--r--kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-5.74.0-r1.ebuild (renamed from kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-5.74.0.ebuild)5
21 files changed, 750 insertions, 7 deletions
diff --git a/kde-frameworks/Manifest.gz b/kde-frameworks/Manifest.gz
index b27037491c4b..455fa531eec4 100644
--- a/kde-frameworks/Manifest.gz
+++ b/kde-frameworks/Manifest.gz
Binary files differ
diff --git a/kde-frameworks/kdeclarative/Manifest b/kde-frameworks/kdeclarative/Manifest
index 31ffbc523430..316ed1c8becc 100644
--- a/kde-frameworks/kdeclarative/Manifest
+++ b/kde-frameworks/kdeclarative/Manifest
@@ -1,5 +1,6 @@
+AUX kdeclarative-5.74.0-block-shortcuts-when-recording-key-sequences.patch 3597 BLAKE2B 366b97d001781e6c471db9cf01c1a11e3c2c22afa78fe9fcf6bf15b456146c5d0c700f6f458d36ca5c7b1c437e2f88418a787fd84d9dd3d08b69bd33d2c482e9 SHA512 e9dddeb06e8776cfbba8de37362a3decdfa103aed0a0bcf8565833d96b4d583986d63d331cd1f5ed8ee3c423dcff784ff361fa4e4019f5ed48b28773f6eb4803
DIST kdeclarative-5.70.0.tar.xz 175644 BLAKE2B cbf1c33a8798aca1ed78bc77aedf5ba7988622de939727f6452facb271ac98801f8875fb5a33bfb6ee058263216e88eb87be5e4134bcafb032035af0dbb069ed SHA512 c974edf29cf5e02ce01bd0e158c1ee25ede8bac192d30d1398afa680420de05e0a8f4ba1b7f74577b6fd9c3e41d4bb5f7ec2730eddf1834b79dcda623b5f6714
DIST kdeclarative-5.74.0.tar.xz 190360 BLAKE2B cf4ac587189c4f6fba6a13eaea4eea95e7e8aacf902c8ed809fac03f5ca76c9e42eff9fa74c1dfb0d0618c71bd4109a1c6b8f6964b242659757efadcc149ddb5 SHA512 8428a60146275dff201518764678bb7c5acce473bcfa584ea1b4924db485ade1b45e55f3aa758fbcf326b15e0e24dcb0913fbabbedd795b7b47e3b3f7e897f78
EBUILD kdeclarative-5.70.0.ebuild 949 BLAKE2B adbd8cfbf9991458690cf378cccac33d8f6b87df6859224f2c3099011763c48c3acbad2a89292c19b94ea68ddcb7b9ffa526f107e55264231a2143be69aba15f SHA512 dde8be85b85a1fd983e098627f5373d114eef1d6a2e4a6f6c99c6581da0837abfe4c8c39a20ad16f9ee944c9636b0b3c75a87b38918553e47f151d6dc7d9b27f
-EBUILD kdeclarative-5.74.0.ebuild 996 BLAKE2B e60f5611affbb10f142e4694a7678fee3d09d59d7301564cbbb8746a425a47290d67b79c5fe20da1e010905865d2ac8bbfa3fef4f468047b12dc584e9e5198e3 SHA512 4896c21762d7d33047fd420bd08679e16151e5de23031d7a6bc19b2b06bbfef04df6af495feb1802351e95df981b532774a3b75ed20197cbc938f405e8b082ff
+EBUILD kdeclarative-5.74.0-r1.ebuild 1080 BLAKE2B b2ac3fde03915e443c114eb3238a4ddcc9a81c66ee57162845b72a96e19a661c0cc043634bf571bd3774c98f6be28ecab3ce5d6568a3bb410496ee87b389f3d7 SHA512 68dba207b9dcb85f64ebcc72370d4b7831634574cea71543d910ba816d069353f3c4dea62f63a5d6681d040fa6ff95a44fdfa4c7fd3008fa4a14f574ab727cf9
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/kde-frameworks/kdeclarative/files/kdeclarative-5.74.0-block-shortcuts-when-recording-key-sequences.patch b/kde-frameworks/kdeclarative/files/kdeclarative-5.74.0-block-shortcuts-when-recording-key-sequences.patch
new file mode 100644
index 000000000000..66808f910bf0
--- /dev/null
+++ b/kde-frameworks/kdeclarative/files/kdeclarative-5.74.0-block-shortcuts-when-recording-key-sequences.patch
@@ -0,0 +1,104 @@
+From 88aabf069a0e454777c15227126732a04c8cb8b2 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Fri, 18 Sep 2020 00:13:07 +0100
+Subject: [PATCH] Block shortcuts when recording key sequences
+
+Otherwise you can't select alt+a as a shortcut without triggering the
+nmenomic generated shortcut on the "add application" button.
+
+Testing done:
+- clicked "Add custom shortcut", pressed alt+a, it was recorded
+successfully
+
+- focussed "Add custom shortcut", pressed alt+a, the relevant shortcut
+activated
+
+Note that isRecording was already declared, but not defined, which is
+why it looks like my diff misses something.
+
+BUG: 425979
+---
+ src/qmlcontrols/kquickcontrols/KeySequenceItem.qml | 7 +++++++
+ .../kquickcontrols/private/keysequencehelper.cpp | 8 +++++++-
+ .../kquickcontrols/private/keysequencehelper.h | 7 +++++++
+ 3 files changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/src/qmlcontrols/kquickcontrols/KeySequenceItem.qml b/src/qmlcontrols/kquickcontrols/KeySequenceItem.qml
+index 9d8e035..d1fbc02 100644
+--- a/src/qmlcontrols/kquickcontrols/KeySequenceItem.qml
++++ b/src/qmlcontrols/kquickcontrols/KeySequenceItem.qml
+@@ -83,6 +83,13 @@ RowLayout {
+ }
+ }
+
++ Keys.onShortcutOverride: {
++ if (_helper.isRecording) {
++ _helper.keyPressed(event.key, event.modifiers);
++ event.accepted = true;
++ }
++ }
++
+ Keys.onPressed: {
+ _helper.keyPressed(event.key, event.modifiers);
+ event.accepted = true;
+diff --git a/src/qmlcontrols/kquickcontrols/private/keysequencehelper.cpp b/src/qmlcontrols/kquickcontrols/private/keysequencehelper.cpp
+index ba7ce01..26b0331 100644
+--- a/src/qmlcontrols/kquickcontrols/private/keysequencehelper.cpp
++++ b/src/qmlcontrols/kquickcontrols/private/keysequencehelper.cpp
+@@ -237,7 +237,10 @@ void KeySequenceHelper::setCheckAgainstShortcutTypes(KeySequenceHelper::Shortcut
+ Q_EMIT checkAgainstShortcutTypesChanged();
+ }
+
+-
++bool KeySequenceHelper::isRecording() const
++{
++ return d->isRecording;
++}
+
+ void KeySequenceHelper::clearKeySequence()
+ {
+@@ -251,6 +254,7 @@ void KeySequenceHelperPrivate::startRecording()
+ oldKeySequence = keySequence;
+ keySequence = QKeySequence();
+ isRecording = true;
++ emit q->isRecordingChanged();
+ grabbedWindow = QQuickRenderControl::renderWindowFor(q->window());
+ if (!grabbedWindow) {
+ grabbedWindow = q->window();
+@@ -265,6 +269,8 @@ void KeySequenceHelper::doneRecording()
+ {
+ d->modifierlessTimeout.stop();
+ d->isRecording = false;
++ emit isRecordingChanged();
++
+ d->stealActions.clear();
+ if (d->grabbedWindow) {
+ d->grabbedWindow->setKeyboardGrabEnabled(false);
+diff --git a/src/qmlcontrols/kquickcontrols/private/keysequencehelper.h b/src/qmlcontrols/kquickcontrols/private/keysequencehelper.h
+index c9068e8..daeedc5 100644
+--- a/src/qmlcontrols/kquickcontrols/private/keysequencehelper.h
++++ b/src/qmlcontrols/kquickcontrols/private/keysequencehelper.h
+@@ -51,6 +51,12 @@ class KeySequenceHelper : public QQuickItem
+ NOTIFY checkAgainstShortcutTypesChanged
+ )
+
++ Q_PROPERTY(
++ bool isRecording
++ READ isRecording
++ NOTIFY isRecordingChanged
++ )
++
+ public:
+
+ enum ShortcutType {
+@@ -116,6 +122,7 @@ Q_SIGNALS:
+ void shortcutDisplayChanged(const QString &string);
+ void captureFinished();
+ void checkAgainstShortcutTypesChanged();
++ void isRecordingChanged();
+
+ public Q_SLOTS:
+ void captureKeySequence();
+--
+GitLab
+
diff --git a/kde-frameworks/kdeclarative/kdeclarative-5.74.0.ebuild b/kde-frameworks/kdeclarative/kdeclarative-5.74.0-r1.ebuild
index f1974ae53ddf..6e28a831ed99 100644
--- a/kde-frameworks/kdeclarative/kdeclarative-5.74.0.ebuild
+++ b/kde-frameworks/kdeclarative/kdeclarative-5.74.0-r1.ebuild
@@ -33,3 +33,7 @@ DEPEND="
media-libs/libepoxy
"
RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-block-shortcuts-when-recording-key-sequences.patch
+)
diff --git a/kde-frameworks/kio/Manifest b/kde-frameworks/kio/Manifest
index 84c8c84b9d0d..354fb1d75f0e 100644
--- a/kde-frameworks/kio/Manifest
+++ b/kde-frameworks/kio/Manifest
@@ -1,6 +1,8 @@
AUX kio-5.70.0-fix-run-in-terminal.patch 4162 BLAKE2B 5fb81c0bce45dc22a8dea27b81e962e267f000aa224fa7ce2dfbf3dd01bb9cd90a73623482a1580a1b95de91e3d40a157988dc3123b3e1a942827ded77174588 SHA512 64b068ea2bc9eca10f8144bcace49989c75ab64d4991b12d4720421464e3c372c5a95d56d510f68d84424e4071e2b2ec9bc447fc30e5e3c9189ccd6156d56738
+AUX kio-5.74.1-handle-shell-scripts-consistenty.patch 13311 BLAKE2B a579f98dd358748654a9f3627eaea9d85f706d4f741a8ab7142d2f2b2a2acdb1ee1eb7c4dbdc34dd0edf2eb879f60bdd8edd7791c7fab1f001a9a5e49da54d58 SHA512 76caaadaa4ce1d3cf2d5a9418c70f44769445185f0752ae0aa00acf77ac7a215bc3f95fac860a90c7e6e6739d82c9250901dde1bad97ebb01b0ba51ed1a37f3e
+AUX kio-5.74.1-kio_trash-too-strict-perms-check.patch 2982 BLAKE2B 4ce5f193979a99755f1d5bcb454ab50a6c90e922ce40966dda8dd43765646a42bf6cefe8b237af69a07b5e20b45f92d092818ca6ce19148f3cb0d0855cb5b59f SHA512 21c8b31080bea94343a5618af780e50b09ff0477f563941955bae94ac8eb676312dd1b63b4a5b2f19b37317652996147614b22e47a17eb7c0f3beeff38ee6f70
DIST kio-5.70.1.tar.xz 3200752 BLAKE2B cc56ee412cb647c8921a36c3e47747640d5574444630f70887401c69ca1a367205adf4d7cd45b721abd103efcb1265c956654fce2dfc5b3fe6241413c51f1b88 SHA512 12287f330e8e7b9ac9c0ff24c1f8f980fbd338ce3f341d8005d6dc6e3acdf96da07adeea693b3361909819d8814192503e8d2c93ca9b9958d985f0d09f202661
DIST kio-5.74.1.tar.xz 3281248 BLAKE2B 584fde1483477b70ee7892bf0de37aedb62672c2ada57d85c9646894606f10b6a03750030e1926441707b12b18ece167fa3a0dbbb75a8155bddfd35342d372f8 SHA512 a563b939d2bc71443c6c748ddf293fab84072efebdcea639707d7aaf2739356a906668be3dca915464ce7c81b63d7482ac024df786e04bbafcf999cde5ebc5e2
EBUILD kio-5.70.1-r1.ebuild 2458 BLAKE2B cd466f2258c565420ff6e34a42a0ea1ea85aa9f4e32fee0b9833e696994576de4feebda2001bab8d5b6f0b19b8bb4c6e53d3a716d21f516579836e83547d1c1c SHA512 d4ec508f1ec53a12d2d994cf6a02186fbccf3f44f5cd0897844c21af19ec136e0d50a73381a32c55418de334f6f7b21d0939977ef49763582147617fec3c00ad
-EBUILD kio-5.74.1.ebuild 2395 BLAKE2B 34e8488cf9edd0371b618757ca46a363040fc3766af3a82c833acb0a1e048001d9f8b0962f53857351258ae8706c6285639cbd0f0966ae323cc8c5674241e932 SHA512 8cadbd0d04604844750d670a7316aaf1da657e828a17ee46089b304dd1ec4ba30a3ead2e1bb7fc2922f68b40cd8c3254a71c0c3631bfe18c18a893ca84a12503
+EBUILD kio-5.74.1-r1.ebuild 2526 BLAKE2B 1e91b7dc1a3fdc9c94e569644fef4f0ec1849aa2c7bdd78d80290227661d05e8276e71daea274124dd894ca79719515d774f5db0f997de2d3e7f497cbcd55ccb SHA512 8167ad0e258a656ffd9712270225f9bd06420eee499f563e1f2e4184b6bf0bfa53ac117b7d098025d06db3bd21632f88afc121d64f91133c979a76c6557dd5a8
MISC metadata.xml 465 BLAKE2B f419d817ff7a98c06ebb921974d1c68f1c50eef4548f1d7bb819fb907b7379ad4d4b4424b598f9f216dc96f00a4e9acf7f051cc628af067954b13c3cb80ddada SHA512 6fae28d51cefecbf80962e976366b86ef54ac666421477787b8a438ae18101ea936865db76464b6a95e8ec6559138a063b269b1a17ff1687c73bb6ad398d4f89
diff --git a/kde-frameworks/kio/files/kio-5.74.1-handle-shell-scripts-consistenty.patch b/kde-frameworks/kio/files/kio-5.74.1-handle-shell-scripts-consistenty.patch
new file mode 100644
index 000000000000..f5e17f338fda
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.74.1-handle-shell-scripts-consistenty.patch
@@ -0,0 +1,310 @@
+From fdd7c47c85d5d6dbf21e05e7a0d6afcf383f1d24 Mon Sep 17 00:00:00 2001
+From: Ahmad Samir <a.samirh78@gmail.com>
+Date: Tue, 15 Sep 2020 20:06:49 +0200
+Subject: [PATCH] OpenUrlJob: handle all text scripts consistently
+
+Previously we only handled application/x-shellscript, but there are other
+scripts; a script is technically a file that inherits both text/plain and
+application/x-executable, e.g. .sh, .csh, .py, perl scripts ...etc. Treat
+all those mime types the way we handled shell scripts:
+ - if it's not a local url, or isn't executable we open it in the preferred
+ text editor
+ - if it's executable either show the OpenOrExecute dialog or execute
+ directly depending on how the job is configured
+
+The mimetype world is a confusing one:
+ - Executables, this includes .exe files (MS Windows); and "application/x-executable"
+ and "application/x-sharedlib", this depends on various parameters (e.g.
+ stripped executables are x-sharedlib, the same executable if not stripped
+ is x-executable...)
+ - Scripts: shell, python, perl... etc scripts, which are text files that
+ can be executed or opened as text.
+
+Adjust the unit test.
+
+BUG: 425829
+BUG: 425177
+FIXED-IN: 5.75
+---
+ autotests/openurljobtest.cpp | 56 +++++++++++++++++++++++--------
+ autotests/openurljobtest.h | 2 ++
+ src/gui/openurljob.cpp | 65 ++++++++++++++++++++++--------------
+ 3 files changed, 85 insertions(+), 38 deletions(-)
+
+diff --git a/autotests/openurljobtest.cpp b/autotests/openurljobtest.cpp
+index 2f2ef8ad..ed2211a8 100644
+--- a/autotests/openurljobtest.cpp
++++ b/autotests/openurljobtest.cpp
+@@ -103,14 +103,13 @@ void OpenUrlJobTest::initTestCase()
+ KConfigGroup grp = mimeAppsCfg.group("Default Applications");
+ grp.writeEntry("text/plain", s_tempServiceName);
+ grp.writeEntry("text/html", s_tempServiceName);
+- grp.writeEntry("application/x-shellscript", s_tempServiceName);
+ grp.sync();
+
+- for (const char *mimeType : {"text/plain", "application/x-shellscript"}) {
+- KService::Ptr preferredTextEditor = KApplicationTrader::preferredService(QString::fromLatin1(mimeType));
+- QVERIFY(preferredTextEditor);
+- QCOMPARE(preferredTextEditor->entryPath(), m_fakeService);
+- }
++
++ // "text/plain" encompasses all scripts (shell, python, perl)
++ KService::Ptr preferredTextEditor = KApplicationTrader::preferredService(QStringLiteral("text/plain"));
++ QVERIFY(preferredTextEditor);
++ QCOMPARE(preferredTextEditor->entryPath(), m_fakeService);
+
+ // As used for preferredService
+ QVERIFY(KService::serviceByDesktopName("openurljobtest_service"));
+@@ -230,17 +229,38 @@ void OpenUrlJobTest::invalidUrl()
+ QCOMPARE(job2->errorString(), QStringLiteral("Malformed URL\n/pathonly"));
+ }
+
++void OpenUrlJobTest::refuseRunningNativeExecutables_data()
++{
++ QTest::addColumn<QString>("mimeType");
++
++ // Executables under e.g. /usr/bin/ can be either of these two mimetypes
++ // see https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/11
++ QTest::newRow("x-sharedlib") << "application/x-sharedlib";
++ QTest::newRow("x-executable") << "application/x-executable";
++}
++
+ void OpenUrlJobTest::refuseRunningNativeExecutables()
+ {
+- KIO::OpenUrlJob *job = new KIO::OpenUrlJob(QUrl::fromLocalFile(QCoreApplication::applicationFilePath()), QStringLiteral("application/x-executable"), this);
++ QFETCH(QString, mimeType);
++
++ KIO::OpenUrlJob *job = new KIO::OpenUrlJob(QUrl::fromLocalFile(QCoreApplication::applicationFilePath()), mimeType, this);
+ QVERIFY(!job->exec());
+ QCOMPARE(job->error(), KJob::UserDefinedError);
+ QVERIFY2(job->errorString().contains("For security reasons, launching executables is not allowed in this context."), qPrintable(job->errorString()));
+ }
+
++void OpenUrlJobTest::refuseRunningRemoteNativeExecutables_data()
++{
++ QTest::addColumn<QString>("mimeType");
++ QTest::newRow("x-sharedlib") << "application/x-sharedlib";
++ QTest::newRow("x-executable") << "application/x-executable";
++}
++
+ void OpenUrlJobTest::refuseRunningRemoteNativeExecutables()
+ {
+- KIO::OpenUrlJob *job = new KIO::OpenUrlJob(QUrl("protocol://host/path/exe"), QStringLiteral("application/x-executable"), this);
++ QFETCH(QString, mimeType);
++
++ KIO::OpenUrlJob *job = new KIO::OpenUrlJob(QUrl("protocol://host/path/exe"), mimeType, this);
+ job->setRunExecutables(true); // even with this enabled, an error will occur
+ QVERIFY(!job->exec());
+ QCOMPARE(job->error(), KJob::UserDefinedError);
+@@ -273,8 +293,11 @@ void OpenUrlJobTest::runScript_data()
+ {
+ QTest::addColumn<QString>("mimeType");
+
++ // All text-based scripts inherit text/plain and application/x-executable, no need to test
++ // all flavours (python, perl, lua, awk ...etc), this sample should be enough
+ QTest::newRow("shellscript") << "application/x-shellscript";
+- QTest::newRow("native") << "application/x-executable";
++ QTest::newRow("pythonscript") << "text/x-python";
++ QTest::newRow("javascript") << "application/javascript";
+ }
+
+ void OpenUrlJobTest::runScript()
+@@ -305,16 +328,23 @@ void OpenUrlJobTest::runScript()
+
+ void OpenUrlJobTest::runNativeExecutable_data()
+ {
++ QTest::addColumn<QString>("mimeType");
+ QTest::addColumn<bool>("withHandler");
+ QTest::addColumn<bool>("handlerRetVal");
+
+- QTest::newRow("no_handler") << false << false;
+- QTest::newRow("handler_false") << true << false;
+- QTest::newRow("handler_true") << true << true;
++ QTest::newRow("no_handler_x-sharedlib") << "application/x-sharedlib" << false << false;
++ QTest::newRow("handler_false_x-sharedlib") << "application/x-sharedlib" << true << false;
++ QTest::newRow("handler_true_x-sharedlib") << "application/x-sharedlib" << true << true;
++
++ QTest::newRow("no_handler_x-executable") << "application/x-executable" << false << false;
++ QTest::newRow("handler_false_x-executable") << "application/x-executable" << true << false;
++ QTest::newRow("handler_true_x-executable") << "application/x-executable" << true << true;
++
+ }
+
+ void OpenUrlJobTest::runNativeExecutable()
+ {
++ QFETCH(QString, mimeType);
+ QFETCH(bool, withHandler);
+ QFETCH(bool, handlerRetVal);
+
+@@ -335,7 +365,7 @@ void OpenUrlJobTest::runNativeExecutable()
+ KIO::setDefaultUntrustedProgramHandler(withHandler ? &s_handler : nullptr);
+
+ // When using OpenUrlJob to run the executable
+- KIO::OpenUrlJob *job = new KIO::OpenUrlJob(QUrl::fromLocalFile(scriptFile), QStringLiteral("application/x-executable"), this);
++ KIO::OpenUrlJob *job = new KIO::OpenUrlJob(QUrl::fromLocalFile(scriptFile), mimeType, this);
+ job->setRunExecutables(true); // startProcess tests the case where this isn't set
+ const bool success = job->exec();
+
+diff --git a/autotests/openurljobtest.h b/autotests/openurljobtest.h
+index e71987d9..f5b9a5be 100644
+--- a/autotests/openurljobtest.h
++++ b/autotests/openurljobtest.h
+@@ -26,7 +26,9 @@ private Q_SLOTS:
+
+ void noServiceNoHandler();
+ void invalidUrl();
++ void refuseRunningNativeExecutables_data();
+ void refuseRunningNativeExecutables();
++ void refuseRunningRemoteNativeExecutables_data();
+ void refuseRunningRemoteNativeExecutables();
+ void notAuthorized();
+ void runScript_data();
+diff --git a/src/gui/openurljob.cpp b/src/gui/openurljob.cpp
+index 8ac187b4..3e35c95c 100644
+--- a/src/gui/openurljob.cpp
++++ b/src/gui/openurljob.cpp
+@@ -73,9 +73,9 @@ public:
+
+ private:
+ void executeCommand();
+- void handleExecutables(const QMimeType &mimeType);
++ void handleBinaries(const QMimeType &mimeType);
+ void handleDesktopFiles();
+- void handleShellscripts();
++ void handleScripts();
+ void openInPreferredApp();
+ void runLink(const QString &filePath, const QString &urlStr, const QString &optionalServiceName);
+
+@@ -439,14 +439,29 @@ void KIO::OpenUrlJobPrivate::emitAccessDenied()
+ q->emitResult();
+ }
+
+-// was: KRun::isExecutable (minus application/x-desktop and application/x-shellscript mimetypes).
++// was: KRun::isExecutable (minus application/x-desktop mimetype).
+ // Feel free to make public if needed.
+-static bool isExecutableMime(const QMimeType &mimeType)
++static bool isBinary(const QMimeType &mimeType)
+ {
+- return (mimeType.inherits(QStringLiteral("application/x-executable")) ||
+- /* e.g. /usr/bin/ls, see https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/11 */
+- mimeType.inherits(QStringLiteral("application/x-sharedlib")) ||
+- mimeType.inherits(QStringLiteral("application/x-ms-dos-executable")));
++ // - Binaries could be e.g.:
++ // - application/x-executable
++ // - application/x-sharedlib e.g. /usr/bin/ls, see
++ // https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/11
++ //
++ // - Mimetypes that inherit application/x-executable _and_ text/plain are scripts, these are
++ // handled by handleScripts()
++
++ return (mimeType.inherits(QStringLiteral("application/x-executable"))
++ || mimeType.inherits(QStringLiteral("application/x-sharedlib"))
++ || mimeType.inherits(QStringLiteral("application/x-ms-dos-executable")));
++}
++
++// Helper function that returns whether a file is a text-based script
++// e.g. ".sh", ".csh", ".py", ".js"
++static bool isTextScript(const QMimeType &mimeType)
++{
++ return (mimeType.inherits(QStringLiteral("application/x-executable"))
++ && mimeType.inherits(QStringLiteral("text/plain")));
+ }
+
+ // Helper function that returns whether a file has the execute bit set or not.
+@@ -456,7 +471,7 @@ static bool hasExecuteBit(const QString &fileName)
+ }
+
+ // Handle native binaries (.e.g. /usr/bin/*); and .exe files
+-void KIO::OpenUrlJobPrivate::handleExecutables(const QMimeType &mimeType)
++void KIO::OpenUrlJobPrivate::handleBinaries(const QMimeType &mimeType)
+ {
+ if (!KAuthorized::authorize(QStringLiteral("shell_access"))) {
+ emitAccessDenied();
+@@ -475,11 +490,9 @@ void KIO::OpenUrlJobPrivate::handleExecutables(const QMimeType &mimeType)
+
+ const QString localPath = m_url.toLocalFile();
+
+- // Check whether file is an executable script
+-#ifdef Q_OS_WIN
+- const bool isNativeBinary = !mimeType.inherits(QStringLiteral("text/plain"));
+-#else
+- const bool isNativeBinary = !mimeType.inherits(QStringLiteral("text/plain")) && !mimeType.inherits(QStringLiteral("application/x-ms-dos-executable"));
++ bool isNativeBinary = true;
++#ifndef Q_OS_WIN
++ isNativeBinary = !mimeType.inherits(QStringLiteral("application/x-ms-dos-executable"));
+ #endif
+
+ if (m_showOpenOrExecuteDialog) {
+@@ -497,6 +510,8 @@ void KIO::OpenUrlJobPrivate::handleExecutables(const QMimeType &mimeType)
+ }
+ };
+
++ // Ask the user for confirmation before executing this binary (for binaries
++ // the dialog will only show Execute/Cancel)
+ showOpenOrExecuteFileDialog(dialogFinished);
+ return;
+ }
+@@ -601,15 +616,15 @@ void KIO::OpenUrlJobPrivate::runUrlWithMimeType()
+ return;
+ }
+
+- // Shell scripts
+- if (mimeType.inherits(QStringLiteral("application/x-shellscript"))) {
+- handleShellscripts();
++ // Scripts (e.g. .sh, .csh, .py, .js)
++ if (isTextScript(mimeType)) {
++ handleScripts();
+ return;
+ }
+
+- // Binaries (e.g. /usr/bin/konsole) and .exe files
+- if (isExecutableMime(mimeType)) {
+- handleExecutables(mimeType);
++ // Binaries (e.g. /usr/bin/{konsole,ls}) and .exe files
++ if (isBinary(mimeType)) {
++ handleBinaries(mimeType);
+ return;
+ }
+
+@@ -677,8 +692,9 @@ void KIO::OpenUrlJobPrivate::handleDesktopFiles()
+ openInPreferredApp();
+ }
+
+-void KIO::OpenUrlJobPrivate::handleShellscripts()
++void KIO::OpenUrlJobPrivate::handleScripts()
+ {
++ // Executable scripts of any type can run arbitrary shell commands
+ if (!KAuthorized::authorize(QStringLiteral("shell_access"))) {
+ emitAccessDenied();
+ return;
+@@ -687,8 +703,7 @@ void KIO::OpenUrlJobPrivate::handleShellscripts()
+ const bool isLocal = m_url.isLocalFile();
+ const QString localPath = m_url.toLocalFile();
+ if (!isLocal || !hasExecuteBit(localPath)) {
+- // Open remote shell scripts or ones without the execute bit, with the
+- // default application
++ // Open remote scripts or ones without the execute bit, with the default application
+ openInPreferredApp();
+ return;
+ }
+@@ -706,7 +721,7 @@ void KIO::OpenUrlJobPrivate::handleShellscripts()
+ return;
+ }
+
+- if (m_runExecutables) { // Local executable shell script, proceed
++ if (m_runExecutables) { // Local executable script, proceed
+ executeCommand();
+ } else { // Open in the default (text editor) app
+ openInPreferredApp();
+@@ -767,7 +782,7 @@ void KIO::OpenUrlJobPrivate::showOpenOrExecuteFileDialog(std::function<void(bool
+
+ if (!s_openOrExecuteFileHandler) {
+ // No way to ask the user whether to execute or open
+- if (mimeType.inherits(QStringLiteral("application/x-shellscript"))
++ if (isTextScript(mimeType)
+ || mimeType.inherits(QStringLiteral("application/x-desktop"))) { // Open text-based ones in the default app
+ openInPreferredApp();
+ } else {
+--
+GitLab
+
diff --git a/kde-frameworks/kio/files/kio-5.74.1-kio_trash-too-strict-perms-check.patch b/kde-frameworks/kio/files/kio-5.74.1-kio_trash-too-strict-perms-check.patch
new file mode 100644
index 000000000000..d0b0ca0769cc
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.74.1-kio_trash-too-strict-perms-check.patch
@@ -0,0 +1,67 @@
+From 03bcb3d3ff89074a68839b6ebeb8030ef0ee4fd1 Mon Sep 17 00:00:00 2001
+From: David Faure <faure@kde.org>
+Date: Fri, 11 Sep 2020 11:54:09 +0200
+Subject: [PATCH] kio_trash: remove unnecessarily strict permission check
+
+Tested with `chmod 0770 /d/.Trash-1000` (where /d is a mount point),
+kio_trash complained about security checks before this commit,
+and works with it.
+
+Also tested with a USB key which ends up mounted as
+type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=100,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2). After kio_trash creates .Trash-1000
+it complained about a "strange filesystem", and while this is still true :),
+the removal of the code in TrashImpl::initTrashDirectory makes
+the trash dir on the USB key usable.
+
+BUG: 76380
+FIXED-IN: 5.74
+---
+ src/ioslaves/trash/trashimpl.cpp | 25 ++++---------------------
+ 1 file changed, 4 insertions(+), 21 deletions(-)
+
+diff --git a/src/ioslaves/trash/trashimpl.cpp b/src/ioslaves/trash/trashimpl.cpp
+index b1ba87a4..9ec7cc7a 100644
+--- a/src/ioslaves/trash/trashimpl.cpp
++++ b/src/ioslaves/trash/trashimpl.cpp
+@@ -1210,9 +1210,9 @@ QString TrashImpl::trashForMountPoint(const QString &topdir, bool createIfNeeded
+ const QByteArray trashDir_c = QFile::encodeName(trashDir);
+ if (QT_LSTAT(trashDir_c.constData(), &buff) == 0) {
+ if ((buff.st_uid == uid) // must be owned by user
+- && (S_ISDIR(buff.st_mode)) // must be a dir
+- && (!S_ISLNK(buff.st_mode)) // not a symlink
+- && ((buff.st_mode & 0777) == 0700)) { // rwx for user, ------ for group and others
++ && S_ISDIR(buff.st_mode) // must be a dir
++ && !S_ISLNK(buff.st_mode) // not a symlink
++ && ((buff.st_mode & 0700) == 0700)) { // and we need write access to it
+
+ if (checkTrashSubdirs(trashDir_c)) {
+ return trashDir;
+@@ -1248,24 +1248,7 @@ bool TrashImpl::initTrashDirectory(const QByteArray &trashDir_c) const
+ return false;
+ }
+ //qCDebug(KIO_TRASH);
+- // This trash dir will be useable only if the directory is owned by user.
+- // In theory this is the case, but not on e.g. USB keys...
+- uid_t uid = getuid();
+- QT_STATBUF buff;
+- if (QT_LSTAT(trashDir_c.constData(), &buff) != 0) {
+- return false; // huh?
+- }
+- if ((buff.st_uid == uid) // must be owned by user
+- && ((buff.st_mode & 0777) == 0700)) { // rwx for user, --- for group and others
+-
+- return checkTrashSubdirs(trashDir_c);
+-
+- } else {
+- qCWarning(KIO_TRASH) << trashDir_c << "just created, by it doesn't have the right permissions, probably some strange unsupported filesystem";
+- ::rmdir(trashDir_c.constData());
+- return false;
+- }
+- return true;
++ return checkTrashSubdirs(trashDir_c);
+ }
+
+ bool TrashImpl::checkTrashSubdirs(const QByteArray &trashDir_c) const
+--
+GitLab
+
diff --git a/kde-frameworks/kio/kio-5.74.1.ebuild b/kde-frameworks/kio/kio-5.74.1-r1.ebuild
index b2b55fc7759f..b77cae090c8c 100644
--- a/kde-frameworks/kio/kio-5.74.1.ebuild
+++ b/kde-frameworks/kio/kio-5.74.1-r1.ebuild
@@ -71,6 +71,11 @@ PDEPEND="
# tests hang
RESTRICT+=" test"
+PATCHES=(
+ "${FILESDIR}"/${P}-kio_trash-too-strict-perms-check.patch
+ "${FILESDIR}"/${P}-handle-shell-scripts-consistenty.patch
+)
+
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package acl ACL)
diff --git a/kde-frameworks/kirigami/Manifest b/kde-frameworks/kirigami/Manifest
index a9d96ab8ddf4..1e87bafac8d3 100644
--- a/kde-frameworks/kirigami/Manifest
+++ b/kde-frameworks/kirigami/Manifest
@@ -1,5 +1,7 @@
+AUX kirigami-5.74.0-remove-actions-from-ToolBarLayout-when-destroyed.patch 1052 BLAKE2B 517e9e9956a8c773272a05b6217d18360742fd0ed72fb5179a6dcecc1426fd5eeae5b0d6b759612f13d3f88d5fe5659921631758ef98e9632d1a3f0474f1b03f SHA512 543ec519467800d4e27836834fbb9f846335a283a13e5414caf1fa8684d21a464a151709d8f238a37fc48ae2aee1cb5ebfdcd63c566d43406d3ec99c46f2ccdc
+AUX kirigami-5.74.0-revert-fix-avatar-loading.patch 969 BLAKE2B a44a3d4961b523fabc79fdc8ea4abc9b036c7b51e16b88dcfd6167046066f4589860ff3d0d37cc00d473617a72f02b2130dcae686c0f93875915e71d2b240309 SHA512 3626e74ad0be79b0861f1b4fcf10ec6d07495cbc9a4879d12b93e5b14d70ea0b432d5174d40f2c0a370e932a30eba235a3d19a2f75e04cb07cae62b29cf25ea1
DIST kirigami2-5.70.0.tar.xz 257720 BLAKE2B 034d4ad0a6ab78c5ad1f5beffdc41e5702d956ee7e6e527f003da40ba0e55a4900404c2e2a58fd4d28b4169eb22407b8cb7c2a377c39d8ae1977558cf3eb54d4 SHA512 45c582110cc4d7595c6d467f16f77aba6d66ba0701fea2d1049e7c6af8a73376c0521126031cd1748a8735b0ea75917a8ba1c6f6f72497778d8a883671ef0afb
DIST kirigami2-5.74.0.tar.xz 282820 BLAKE2B bd3cbdf3b98ee88518a9347180f59fb7cdb262fa6acf824da1de3103c516213a42cf106425eafaf497cab5be15f91bbf9dc4f3e10c7464cce19f0e0b564b4f4d SHA512 43059bc682e2d729a0a926e26ce5ba68947f275ffdd74836c124d9e063273429ccde8c0cebaef53168c46cfd62f41cb2c33d86f1f515ca619bde604aa7f5da5f
EBUILD kirigami-5.70.0.ebuild 1032 BLAKE2B b82aa6be9a425c787d13fbe9fb3d00f5c2bb241579f6ca39276552e949fce5fde63d01dc74e2ba359e7be2b8c34de12dd70a91de02cb1a52a9127b0cb82a4bb0 SHA512 34b0076c28f6c3946780031d6deadd8d6cf1016164b67bd963c24d02af4100f6d9c1ac79da5e757a75444dca2848d0eddf5c1e4a21a4e32451badbe7284a68ec
-EBUILD kirigami-5.74.0.ebuild 978 BLAKE2B a8fc110a4e61a5d381c094c04ab27ad0edc888bacfcaba4782ad1962aeb8d9eccb008ea1931c347442da2b9f649637f045ec39128b94a3d7e94fa17b8026f6f0 SHA512 b01e3b320b834f82b0c2e44fbf91fb3cef72db08ebeea4af45cf9813f4be906173c6022b0fd4650c992400e3e2f3ef2dcd8cf276e74c1dcbad0255d43112da39
+EBUILD kirigami-5.74.0-r1.ebuild 1118 BLAKE2B 262597aeb3de66d191b89f44aedd5595d79c2ae623788fb6def60efddb11a6eb9d5ef16d18218bbdeaf2c0319aef6641c750ac644139bf4e5b74967a7a8e3b48 SHA512 f51515bb6e7ce0f345e09da68657477d5dafd40783ac23376fe5ca3f35dee1fd5e7bdd58144911ccf1a14332360bc9ffd8254279a0f6f3aacbc440d358a8c1e2
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/kde-frameworks/kirigami/files/kirigami-5.74.0-remove-actions-from-ToolBarLayout-when-destroyed.patch b/kde-frameworks/kirigami/files/kirigami-5.74.0-remove-actions-from-ToolBarLayout-when-destroyed.patch
new file mode 100644
index 000000000000..192ba9dcf67f
--- /dev/null
+++ b/kde-frameworks/kirigami/files/kirigami-5.74.0-remove-actions-from-ToolBarLayout-when-destroyed.patch
@@ -0,0 +1,40 @@
+From 6eaefba5001445fa7e198e4caa0bde738240d66f Mon Sep 17 00:00:00 2001
+From: Arjen Hiemstra <ahiemstra@heimr.nl>
+Date: Wed, 9 Sep 2020 13:00:59 +0200
+Subject: [PATCH] Remove actions and delegates from ToolBarLayout when they get
+ destroyed
+
+Otherwise we're keeping around stale entries that no longer point to
+valid stuff.
+
+BUG: 425670
+---
+ src/toolbarlayout.cpp | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/toolbarlayout.cpp b/src/toolbarlayout.cpp
+index cbf31062..c2df5998 100644
+--- a/src/toolbarlayout.cpp
++++ b/src/toolbarlayout.cpp
+@@ -112,6 +112,18 @@ void ToolBarLayout::addAction(QObject* action)
+ d->actions.append(action);
+ d->actionsChanged = true;
+
++ connect(action, &QObject::destroyed, this, [this](QObject *action) {
++ auto itr = d->delegates.find(action);
++ if (itr != d->delegates.end()) {
++ d->delegates.erase(itr);
++ }
++
++ d->actions.removeOne(action);
++ d->actionsChanged = true;
++
++ relayout();
++ });
++
+ relayout();
+ }
+
+--
+GitLab
+
diff --git a/kde-frameworks/kirigami/files/kirigami-5.74.0-revert-fix-avatar-loading.patch b/kde-frameworks/kirigami/files/kirigami-5.74.0-revert-fix-avatar-loading.patch
new file mode 100644
index 000000000000..60dae8389abf
--- /dev/null
+++ b/kde-frameworks/kirigami/files/kirigami-5.74.0-revert-fix-avatar-loading.patch
@@ -0,0 +1,30 @@
+From aaaabf1ea84d9c5ae9cf50a306b79f15f44f5b35 Mon Sep 17 00:00:00 2001
+From: Carson Black <uhhadd@gmail.com>
+Date: Sat, 19 Sep 2020 12:21:33 -0400
+Subject: [PATCH] Revert "Fix: avatar loading"
+
+This reverts commit 338d91be7254099c1ad4c1f475acb6368df2b114, which
+introduced a visual regression in the users KCM among other places
+that use the Avatar by causing the image to fail to resize according
+to the size of the avatar component.
+---
+ src/controls/Avatar.qml | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/controls/Avatar.qml b/src/controls/Avatar.qml
+index a4f59448..775e5987 100644
+--- a/src/controls/Avatar.qml
++++ b/src/controls/Avatar.qml
+@@ -133,9 +133,6 @@ QQC2.Control {
+ mipmap: true
+ smooth: true
+
+- sourceSize.width: avatarRoot.implicitWidth
+- sourceSize.height: avatarRoot.implicitHeight
+-
+ fillMode: Image.PreserveAspectFit
+ anchors.fill: parent
+ }
+--
+GitLab
+
diff --git a/kde-frameworks/kirigami/kirigami-5.74.0.ebuild b/kde-frameworks/kirigami/kirigami-5.74.0-r1.ebuild
index a916f233d0b7..0064f84f415c 100644
--- a/kde-frameworks/kirigami/kirigami-5.74.0.ebuild
+++ b/kde-frameworks/kirigami/kirigami-5.74.0-r1.ebuild
@@ -37,6 +37,11 @@ RDEPEND="${DEPEND}
# requires package to already be installed
RESTRICT+=" test"
+PATCHES=(
+ "${FILESDIR}"/${P}-revert-fix-avatar-loading.patch
+ "${FILESDIR}"/${P}-remove-actions-from-ToolBarLayout-when-destroyed.patch
+)
+
src_configure() {
local mycmakeargs=(
-DBUILD_EXAMPLES=$(usex examples)
diff --git a/kde-frameworks/kxmlgui/Manifest b/kde-frameworks/kxmlgui/Manifest
index a625b5667e35..7d84efd4d19c 100644
--- a/kde-frameworks/kxmlgui/Manifest
+++ b/kde-frameworks/kxmlgui/Manifest
@@ -1,5 +1,6 @@
+AUX kxmlgui-5.74.0-fix-multiple-tabs-popup-on-logout.patch 2160 BLAKE2B c467d71f6ce8d24f90aa29192e1f19d10ff8c2d290a1695259e93fb90b1f0d77ed46a2346599c8c5a540a406c55ef68a3fe8cf9b8fe40bcbdb8cca9f113df755 SHA512 4188f192ac437f6334d261f8f178dd2ca29d2ea48fa4d51e23483b2212369ee79521f098a9a51e8e8ac1ec0f861b76a96fefe5a1620149102d2d9268ca794cb3
DIST kxmlgui-5.70.0.tar.xz 857852 BLAKE2B 7908b175c34761832dfa835ec96978ab2c107263f0e358074b2d26ce54f8eb71236f65bfac5be480bc3f487f854d1de2843ecfc757e0417b4378b67c866f7863 SHA512 d50394c42bf494d70acab91f77817e96fb76efcf1f15af2a17dd027a175d87ea27778756124c15dd104278773f74c9a1d2fca7f0671b12adcd9851532a0958e2
DIST kxmlgui-5.74.0.tar.xz 864784 BLAKE2B d6cc88603f0036415981411bbaeca6ba7877df085d5b5095b04b7d5567d0e1f23ad3d8c8b1472a365018e9360ee4351c7523fd791d4e53ecca3e9143cc8f2b72 SHA512 98f3e65c30a095d17c0512894bbba0bb172b2044652a0d23324f843489f5bb726359be40a9d68a7916d45a2a6e135f0bbbf7924b35a1939611b75ad6d44ccd92
EBUILD kxmlgui-5.70.0.ebuild 1285 BLAKE2B 4017f3fb0eab9abf2d9e049c0b3d3050d37e886f4a6d8a9fc09874dc72c6f30ca9b398be7e120e86e56361eb9bbadaead4e9dc7883ecbc6f026292c98fb2d7bf SHA512 4e363d9b13c5b6f6e80ad26e80c486040ba649da079a3f6e87276a4a7546912e3c06a4f669368d849c1853ae791e869c4c6ccff87715d3d4396762859301bd53
-EBUILD kxmlgui-5.74.0.ebuild 1288 BLAKE2B 5e44c255d4fc9af7bffcd8111ae506b9ac0bc209d01b7aeec1d01a5e48646babcdc36aa954448b16fd5e24764cdd3a590ac9f59aeb470cac994db4691f52f7e9 SHA512 4ddbc5d9bf270f33a92bf52f1dbc05ae97ea1d18c6eab15fd08a1048eb3ed527e3733a8a594c9a7ac684a763b8750771a531ead695abc649bf4ff413ae102a5d
+EBUILD kxmlgui-5.74.0-r1.ebuild 1360 BLAKE2B b932a130e9863f04bc5e36539366eb88d67cabc4e725f5c85c9aadf8d7be494bebe1227ac22e9d915ad0b8efa9ab1250655e707808de29ed3e37a4d977aa3fd0 SHA512 166c3dcadd074b384a140d6dd51b8e1d48d6062306434fe2a041e80dd9ed2e526a175d740dd7192a91923fceaf1eeeb7849bdb4e19b4bfb514ca378e5ff75f1a
MISC metadata.xml 340 BLAKE2B a8e14dd471ebcdaf382d71d9dec13809433c811acbc813ea4c74b1cd05829474df09efba54d8e3aa1041bce3f5e4a61db879e228bab4f79e3b4d9eed32e40a25 SHA512 c6fa7ef3ff6e38f17ef6db3784bfe04e35607464521488253d03863919392c38e76b7d4cf92e83502b1bec109fa1b1a257a7e4a955ea2c01d61e1784f89f59ae
diff --git a/kde-frameworks/kxmlgui/files/kxmlgui-5.74.0-fix-multiple-tabs-popup-on-logout.patch b/kde-frameworks/kxmlgui/files/kxmlgui-5.74.0-fix-multiple-tabs-popup-on-logout.patch
new file mode 100644
index 000000000000..f49999eb6490
--- /dev/null
+++ b/kde-frameworks/kxmlgui/files/kxmlgui-5.74.0-fix-multiple-tabs-popup-on-logout.patch
@@ -0,0 +1,68 @@
+From 7cefdcf3d04669978aa28481d8ea274402935374 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@qt.io>
+Date: Mon, 10 Aug 2020 09:54:14 +0200
+Subject: [PATCH] Handle double close in main window
+
+After a bug fix in Qt 5.14 we now get real close events for unclosed windows
+when the application closes, so we would be getting two close events breaking
+our logic when when to suppress on-close dialogs.
+
+Suppress the real close event after we have handled our own simulated one. Also
+works if there is no real close event.
+
+BUG: 416728
+
+* Fixup after git merged the wrong commit
+---
+ src/kmainwindow.cpp | 8 ++++++++
+ src/kmainwindow_p.h | 1 +
+ 2 files changed, 9 insertions(+)
+
+diff --git a/src/kmainwindow.cpp b/src/kmainwindow.cpp
+index b9bc2b6..33babb9 100644
+--- a/src/kmainwindow.cpp
++++ b/src/kmainwindow.cpp
+@@ -269,6 +269,7 @@ void KMainWindowPrivate::init(KMainWindow *_q)
+ letDirtySettings = true;
+
+ sizeApplied = false;
++ suppressCloseEvent = false;
+ }
+
+ static bool endsWithHashNumber(const QString &s)
+@@ -532,6 +533,10 @@ void KMainWindow::appHelpActivated()
+ void KMainWindow::closeEvent(QCloseEvent *e)
+ {
+ K_D(KMainWindow);
++ if (d->suppressCloseEvent) {
++ e->accept();
++ return;
++ }
+
+ // Save settings if auto-save is enabled, and settings have changed
+ if (d->settingsTimer && d->settingsTimer->isActive()) {
+@@ -556,6 +561,9 @@ void KMainWindow::closeEvent(QCloseEvent *e)
+ } else {
+ e->ignore(); //if the window should not be closed, don't close it
+ }
++ // If saving session, we are processing a fake close event, and might get the real one later.
++ if (e->isAccepted() && qApp->isSavingSession())
++ d->suppressCloseEvent = true;
+ }
+
+ bool KMainWindow::queryClose()
+diff --git a/src/kmainwindow_p.h b/src/kmainwindow_p.h
+index 13f6f19..bdd1eb4 100644
+--- a/src/kmainwindow_p.h
++++ b/src/kmainwindow_p.h
+@@ -33,6 +33,7 @@ public:
+ bool settingsDirty: 1;
+ bool autoSaveWindowSize: 1;
+ bool sizeApplied: 1;
++ bool suppressCloseEvent: 1;
+ KConfigGroup autoSaveGroup;
+ QTimer *settingsTimer;
+ QTimer *sizeTimer;
+--
+2.28.0
+
diff --git a/kde-frameworks/kxmlgui/kxmlgui-5.74.0.ebuild b/kde-frameworks/kxmlgui/kxmlgui-5.74.0-r1.ebuild
index 38761c0a0a10..04c5486ff737 100644
--- a/kde-frameworks/kxmlgui/kxmlgui-5.74.0.ebuild
+++ b/kde-frameworks/kxmlgui/kxmlgui-5.74.0-r1.ebuild
@@ -35,6 +35,8 @@ DEPEND="
"
RDEPEND="${DEPEND}"
+PATCHES=( "${FILESDIR}"/${P}-fix-multiple-tabs-popup-on-logout.patch )
+
src_configure() {
local mycmakeargs=(
-DCMAKE_DISABLE_FIND_PACKAGE_KF5Attica=ON
diff --git a/kde-frameworks/plasma/Manifest b/kde-frameworks/plasma/Manifest
index dd308722c269..d72e5c02bf31 100644
--- a/kde-frameworks/plasma/Manifest
+++ b/kde-frameworks/plasma/Manifest
@@ -1,5 +1,6 @@
+AUX plasma-5.74.0-fix-pc3-button-icons-color-set.patch 1276 BLAKE2B b74a469f50ba5c31edf6bf7ab80113a68f91eb27ebbabb6eb18b53d8fff1c71fd352fc93baf51114e6f964c75a3ec9ba516c87b02b664fc649fd8d6bc484aab9 SHA512 b527e08d5f116cc00390ccbc960501e6f95f80da6d3d42153c8a07675799aa0d8dd002e4f2f52088d66133090b888e5acef3e6be70f66acf39c38e9652f0cb38
DIST plasma-framework-5.70.1.tar.xz 3132736 BLAKE2B 6f6dc34c6e9f5c433e2a6302fffc7172a7dbf187cc8ebeef1a5c47dc3b329269d71891508e41c3b0a7a7d8de8af519d7a9c320defec6726e9fdf9b859d158017 SHA512 2b022f0e1e6abec8b7cf0ff77dd862a78f17692d17a78ad5a42a1a784c98a57070a5a721b44e808e299f374248769b90449201ae3c6dba17a292726e3b646930
DIST plasma-framework-5.74.0.tar.xz 3140648 BLAKE2B dfc8df92d351446a146204f48c42cd4d6325f2652b5b61e0a530b27763fb3b6f07bf14319c86a54f933a58329d214977545e00f261cc784c0d8659eebd8cddb0 SHA512 7aae44d94a175dcdbd779a6801626d20e8d986597d1d05c82c5c035997b874ebb9b4412191e1fa7a26aa4e045ceaf22a7ef359d3e817d812357d51219eb5fb46
EBUILD plasma-5.70.1.ebuild 1927 BLAKE2B 3b100a046afc977d7a11aba841275d4be2ba0e7ba6e489afb03f0cc4c7dd4c43b1abdb2b40240a55e4a70e783f24d75caf6fd5d341261ad78b6c55d965f738b6 SHA512 c7e7f6021addbd03c6cdf463376a4bdaadba600f070aff8365f0e86fd6fa47004846b6732717fa72d664e2fb0c6b6c93d221bd043fb0b142ffe80272279f053f
-EBUILD plasma-5.74.0.ebuild 1873 BLAKE2B 2c0723714f1f7fc5874370eaa641effc20a3aba9af14883120dfc35aef7f7cb58d65578ad5a93e12b9692d06dd074dd5744203f903bd6145477afe867c1ca4bf SHA512 8f7e26d1259c5274f6aae10fea0ab26eddb739b29da59028f1e6ccdc1f4f9b2d2052bf57e2ae847704651aae6b829f8d6ed2e8b617f4716c6ddccbab03d35d89
+EBUILD plasma-5.74.0-r1.ebuild 1942 BLAKE2B 2162ca9a9717a33e16d7c39257872d9ffdfa38388a34a2525cabaf3f219f14adeaf054d378ee0caaa8df1c040c8f372372b6a0a629f96bec6afc34ec2c6048b7 SHA512 363737a93ed7d5dad8c9e65204a24c5a438389956f76b367e3ea740f486ec5b646c43a0d228e24d3cc105be8c2f20094927a6981138d160c9ca8031482a8bc68
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/kde-frameworks/plasma/files/plasma-5.74.0-fix-pc3-button-icons-color-set.patch b/kde-frameworks/plasma/files/plasma-5.74.0-fix-pc3-button-icons-color-set.patch
new file mode 100644
index 000000000000..8f938b00b89b
--- /dev/null
+++ b/kde-frameworks/plasma/files/plasma-5.74.0-fix-pc3-button-icons-color-set.patch
@@ -0,0 +1,28 @@
+From 3167717797d07a8645391e093fa91526c4645f4f Mon Sep 17 00:00:00 2001
+From: Noah Davis <noahadvs@gmail.com>
+Date: Wed, 23 Sep 2020 20:23:08 -0400
+Subject: [PATCH] Fix PC3 Button/ToolButton icons not always having the right
+ color set
+
+BUG: 426556
+FIXED-IN: 5.75
+---
+ .../plasmacomponents3/private/ButtonContent.qml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/declarativeimports/plasmacomponents3/private/ButtonContent.qml b/src/declarativeimports/plasmacomponents3/private/ButtonContent.qml
+index 6dc2ce085..91428bdb3 100644
+--- a/src/declarativeimports/plasmacomponents3/private/ButtonContent.qml
++++ b/src/declarativeimports/plasmacomponents3/private/ButtonContent.qml
+@@ -42,7 +42,7 @@ GridLayout {
+
+ implicitWidth: root.parent.icon.width > 0 ? root.parent.icon.width : defaultIconSize
+ implicitHeight: root.parent.icon.height > 0 ? root.parent.icon.height : defaultIconSize
+-
++ colorGroup: parent.PlasmaCore.ColorScope.colorGroup
+ visible: source.length > 0 && root.parent.display !== T.Button.TextOnly
+ source: root.parent.icon ? (root.parent.icon.name || root.parent.icon.source) : ""
+ status: usingFocusBackground ? PlasmaCore.Svg.Selected : PlasmaCore.Svg.Normal
+--
+GitLab
+
diff --git a/kde-frameworks/plasma/plasma-5.74.0.ebuild b/kde-frameworks/plasma/plasma-5.74.0-r1.ebuild
index 4dd229e01593..445cbc96d858 100644
--- a/kde-frameworks/plasma/plasma-5.74.0.ebuild
+++ b/kde-frameworks/plasma/plasma-5.74.0-r1.ebuild
@@ -61,6 +61,8 @@ DEPEND="${RDEPEND}
RESTRICT+=" test"
+PATCHES=( "${FILESDIR}"/${P}-fix-pc3-button-icons-color-set.patch )
+
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package !gles2-only OpenGL)
diff --git a/kde-frameworks/qqc2-desktop-style/Manifest b/kde-frameworks/qqc2-desktop-style/Manifest
index c779374c268e..0665ec2d0fe0 100644
--- a/kde-frameworks/qqc2-desktop-style/Manifest
+++ b/kde-frameworks/qqc2-desktop-style/Manifest
@@ -1,5 +1,6 @@
+AUX qqc2-desktop-style-5.74.0-move-dbus-connection-in-singleton.patch 2617 BLAKE2B e0a7b44d4df2dc62f9778337beca7ac3c52fecb8558022df58224615a414131b20b6e37e3df89c7217ced582b45a4b62df79b9370aa5dbe08bbf836b11dc43bb SHA512 b6af1ea12353cb15b2c41b9aec5fc6ed9c135374213306999fb21f1901ca24b7fbc070e08d0c256e0b3dd0955f786c962d9cdefd989ba07d6f09b7acbe709899
DIST qqc2-desktop-style-5.70.0.tar.xz 58388 BLAKE2B 8eeeac78f137eb38256076f7a31b9b9ebebd3ac897ead75e5c3fb348cc0909f6b41af42e5384bdd6a47656c4062b537a66b8860fc97898d816cfdcf5a9c01928 SHA512 4064acfe3864c539708571e2ff1f72aec34d40a98f7ecc5a4579bd244dd2f9c5404bb382cc2b7d598cfa97b7bbb96eebed06400d6cf99bfcfe327c522bbcbea0
DIST qqc2-desktop-style-5.74.0.tar.xz 58632 BLAKE2B a4f3545d83f03eb57cd7dd9ee81db59bd56a22b7907af4eb00a50a9fa1d2a5e507a271fcb4d2a2e7465691076122251f48c0baed05e7c30042489f6dd93e60ee SHA512 88c91d5933bc2c0020a574be05a851aea54382b6c1dd5f459cba792e4ac784782bc88a36670c28f2df29188cf001bf2c9af98b3e9bc84dd59c110fd7bf936258
EBUILD qqc2-desktop-style-5.70.0.ebuild 676 BLAKE2B 43534376c93b7ae2252c7c3bc642b0bc22519cb1213e27e8db3693ba33e70cd4ba39c451b59662a363c9920aa5369bee558d8c5ded3d85b1d1597c7d9418e7ec SHA512 af76a42cfa3d4947bf5d82c23448b04e995a24c04ba31afb9c16dcf58b3e6ee81a60b962af44d795f2838614878c526aac805a0103799d2eb83fdde5f7ba1fe9
-EBUILD qqc2-desktop-style-5.74.0.ebuild 679 BLAKE2B be29de8fe382baf35c4e839362466b1a95023dd371ba175c4639792cfabc6f086f37a9ba1775569b47293c7788f1fb9d18d7425388ed9590afa3d2a11252b696 SHA512 c9f1ce854c7d1c7f76a9663425b9b33a97a68a6f5c6552738466e223a152015ad3be0b6e15cd591f8d589b8ec7a65147f5b55da169179cca17532fe224377cd2
+EBUILD qqc2-desktop-style-5.74.0-r1.ebuild 752 BLAKE2B 8ba7f5571b9ba0988d3757bc2294e0440475660ed7cf99d4a4028cc980d20da8fe063007c6a1059f979288630781ab202aff6b38d46a412f87ebb04b3940156f SHA512 c266e3f67df4d4429379c026f41014ab3da5254d20f0db05a62bcfb934786feddb642169c1ab6ff564bf05d7a1ae1459884512c8e595110cc0322785d9edb24b
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-5.74.0-move-dbus-connection-in-singleton.patch b/kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-5.74.0-move-dbus-connection-in-singleton.patch
new file mode 100644
index 000000000000..026a5b65d02f
--- /dev/null
+++ b/kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-5.74.0-move-dbus-connection-in-singleton.patch
@@ -0,0 +1,67 @@
+From f8e56a22721057107bccdf319da36ff82ca2a804 Mon Sep 17 00:00:00 2001
+From: Marco Martin <notmart@gmail.com>
+Date: Mon, 7 Sep 2020 09:52:57 +0000
+Subject: [PATCH] move the dbus connection in the singleton
+
+connecting to dbus is expensive, do it only once in the singleton
+the theme instance will only connecto to the signal forwarded by
+the singleton
+---
+ .../plasmadesktoptheme.cpp | 20 +++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp b/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
+index babb433..ff046eb 100644
+--- a/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
++++ b/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
+@@ -45,6 +45,14 @@ public:
+ {
+ connect(qGuiApp, &QGuiApplication::paletteChanged,
+ this, &StyleSingleton::refresh);
++
++ // Use DBus in order to listen for kdeglobals changes directly, as the
++ // QApplication doesn't expose the font variants we're looking for,
++ // namely smallFont.
++ QDBusConnection::sessionBus().connect( QString(),
++ QStringLiteral( "/KGlobalSettings" ),
++ QStringLiteral( "org.kde.KGlobalSettings" ),
++ QStringLiteral( "notifyChange" ), this, SIGNAL(configurationChanged()));
+ }
+
+ void refresh()
+@@ -125,6 +133,7 @@ public:
+ KColorScheme viewScheme;
+
+ Q_SIGNALS:
++ void configurationChanged();
+ void paletteChanged();
+
+ private:
+@@ -161,14 +170,6 @@ PlasmaDesktopTheme::PlasmaDesktopTheme(QObject *parent)
+ });
+ }
+
+- // Use DBus in order to listen for kdeglobals changes directly, as the
+- // QApplication doesn't expose the font variants we're looking for,
+- // namely smallFont.
+- QDBusConnection::sessionBus().connect( QString(),
+- QStringLiteral( "/KGlobalSettings" ),
+- QStringLiteral( "org.kde.KGlobalSettings" ),
+- QStringLiteral( "notifyChange" ), this, SLOT(configurationChanged()));
+-
+ //TODO: correct? depends from https://codereview.qt-project.org/206889
+ connect(qGuiApp, &QGuiApplication::fontDatabaseChanged, this, [this]() {setDefaultFont(qApp->font());});
+ configurationChanged();
+@@ -181,6 +182,9 @@ PlasmaDesktopTheme::PlasmaDesktopTheme(QObject *parent)
+ connect(s_style->data(), &StyleSingleton::paletteChanged,
+ this, &PlasmaDesktopTheme::syncColors);
+
++ connect(s_style->data(), &StyleSingleton::configurationChanged,
++ this, &PlasmaDesktopTheme::configurationChanged);
++
+ syncColors();
+ }
+
+--
+GitLab
+
diff --git a/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-5.74.0.ebuild b/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-5.74.0-r1.ebuild
index 87eb0019645e..5c012a581d59 100644
--- a/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-5.74.0.ebuild
+++ b/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-5.74.0-r1.ebuild
@@ -9,8 +9,9 @@ QTMIN=5.14.2
inherit ecm kde.org
DESCRIPTION="Style for QtQuickControls 2 that uses QWidget's QStyle for painting"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
LICENSE="|| ( GPL-2+ LGPL-3+ )"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
IUSE=""
DEPEND="
@@ -25,3 +26,5 @@ RDEPEND="${DEPEND}
>=dev-qt/qtgraphicaleffects-${QTMIN}:5
>=dev-qt/qtquickcontrols2-${QTMIN}:5
"
+
+PATCHES=( "${FILESDIR}"/${P}-move-dbus-connection-in-singleton.patch )