summaryrefslogtreecommitdiff
path: root/kde-frameworks/kio/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-12-01 03:04:39 +0000
committerV3n3RiX <venerix@redcorelinux.org>2017-12-01 03:04:39 +0000
commit407525b571b48cfd65e1ad7a02d250a927c967c9 (patch)
tree844bea44d85dc7218f54970af1c42cc9d55c3f1a /kde-frameworks/kio/files
parent89c6c06b8c42107dd231687a1012354e7d3039fc (diff)
gentoo resync : 01.12.2017
Diffstat (limited to 'kde-frameworks/kio/files')
-rw-r--r--kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch80
-rw-r--r--kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch65
2 files changed, 145 insertions, 0 deletions
diff --git a/kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch b/kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch
new file mode 100644
index 000000000000..9645620d04d7
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch
@@ -0,0 +1,80 @@
+From 298c0e734efdd8a7b66a531959e3fb5357a6495d Mon Sep 17 00:00:00 2001
+From: Eike Hein <hein@kde.org>
+Date: Tue, 28 Nov 2017 19:42:46 +0900
+Subject: Fix creating a directory via KNewFileMenu+KIO::mkpath on Qt 5.9.3+
+
+Summary:
+f62768d04652 in qtbase.git introduced a behavior change in QUrl
+causing it to reject URLs with a path of "//foo" (note the double
+slash) as invalid.
+
+Both KNewFileMenu and KIO::mkpath contained code following this
+pattern:
+
+ url.path() + '/' + name
+
+This is a bad mix with forwarding slaves like kio_desktop, which
+translate a top-level path of / to some other URL:
+
+ (desktop:)/ + / + foo = //foo
+
+This patch addresses the two instances of this by wrapping the
+string building in QDir::cleanPath, which I think is the shortest
+and most readable way to go.
+
+2353119aae8f in kio.git (D8836) was another commit fixing fallout
+from this Qt change. Is unlikely this patch will be the last one.
+I suspect many other variations of this problem lurk about the
+codebase.
+
+BUG:387073
+
+Reviewers: dfaure, thiago, elvisangelaccio
+
+Subscribers: #frameworks
+
+Tags: #frameworks
+
+Differential Revision: https://phabricator.kde.org/D9029
+---
+ src/core/mkpathjob.cpp | 3 ++-
+ src/filewidgets/knewfilemenu.cpp | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/core/mkpathjob.cpp b/src/core/mkpathjob.cpp
+index c77a9fe..f67a489 100644
+--- a/src/core/mkpathjob.cpp
++++ b/src/core/mkpathjob.cpp
+@@ -25,6 +25,7 @@
+ #include "mkdirjob.h"
+ #include <QTimer>
+ #include <QDebug>
++#include <QDir>
+ #include <QFileInfo>
+
+ using namespace KIO;
+@@ -123,7 +124,7 @@ void MkpathJobPrivate::slotStart()
+ }
+
+ if (m_pathIterator != m_pathComponents.constEnd()) {
+- m_url.setPath(m_url.path() + '/' + *m_pathIterator);
++ m_url.setPath(QDir::cleanPath(m_url.path() + '/' + *m_pathIterator));
+ KIO::Job* job = KIO::mkdir(m_url);
+ q->addSubjob(job);
+ q->setProcessedAmount(KJob::Directories, q->processedAmount(KJob::Directories) + 1);
+diff --git a/src/filewidgets/knewfilemenu.cpp b/src/filewidgets/knewfilemenu.cpp
+index 023eebd..98c9852 100644
+--- a/src/filewidgets/knewfilemenu.cpp
++++ b/src/filewidgets/knewfilemenu.cpp
+@@ -855,7 +855,7 @@ void KNewFileMenuPrivate::_k_slotCreateDirectory(bool writeHiddenDir)
+ }
+ }
+ url = baseUrl;
+- url.setPath(url.path() + '/' + name);
++ url.setPath(QDir::cleanPath(url.path() + '/' + name));
+ }
+ }
+
+--
+cgit v0.11.2
+
diff --git a/kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch b/kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch
new file mode 100644
index 000000000000..d9cf7402741d
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch
@@ -0,0 +1,65 @@
+From 2353119aae8f03565bc7779ed1d597d266f5afda Mon Sep 17 00:00:00 2001
+From: Elvis Angelaccio <elvis.angelaccio@kde.org>
+Date: Thu, 16 Nov 2017 10:41:19 +0100
+Subject: Fix KIO::mkpath with qtbase 5.10 beta 4
+
+Summary:
+The latest Qt 5.10 beta includes [1] which breaks a bunch of unit tests,
+since `url.setPath("//foo")` will now result in an invalid (empty) QUrl.
+
+This patch fixes the KIO::mkpath() case.
+
+[1]: http://code.qt.io/cgit/qt/qtbase.git/commit/?id=f62768d046528636789f901ac79e2cfa1843a7b7
+
+Test Plan:
+
+* I can now create folders from dolphin and plasma.
+* fileundomanagertest and mkpathjobtest no longer fail
+
+Reviewers: #frameworks, dfaure
+
+Tags: #frameworks
+
+Differential Revision: https://phabricator.kde.org/D8836
+---
+ src/core/mkpathjob.cpp | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/core/mkpathjob.cpp b/src/core/mkpathjob.cpp
+index bff46ca..a177805 100644
+--- a/src/core/mkpathjob.cpp
++++ b/src/core/mkpathjob.cpp
+@@ -43,8 +43,13 @@ public:
+ m_url.setPath(QStringLiteral("/"));
+ int i = 0;
+ for (; i < basePathComponents.count() && i < m_pathComponents.count(); ++i) {
+- if (m_pathComponents.at(i) == basePathComponents.at(i)) {
+- m_url.setPath(m_url.path() + '/' + m_pathComponents.at(i));
++ const QString pathComponent = m_pathComponents.at(i);
++ if (pathComponent == basePathComponents.at(i)) {
++ if (m_url.path() == QLatin1Char('/')) {
++ m_url.setPath(m_url.path() + pathComponent);
++ } else {
++ m_url.setPath(m_url.path() + '/' + pathComponent);
++ }
+ } else {
+ break;
+ }
+@@ -57,7 +62,13 @@ public:
+ if (m_url.isLocalFile()) {
+ i = 0;
+ for (; i < m_pathComponents.count(); ++i) {
+- QString testDir = m_url.toLocalFile() + '/' + m_pathComponents.at(i);
++ const QString localFile = m_url.toLocalFile();
++ QString testDir;
++ if (localFile == QLatin1Char('/')) {
++ testDir = localFile + m_pathComponents.at(i);
++ } else {
++ testDir = localFile + '/' + m_pathComponents.at(i);
++ }
+ if (QFileInfo(testDir).isDir()) {
+ m_url.setPath(testDir);
+ } else {
+--
+cgit v0.11.2
+