Accepting request 547260 from KDE:Frameworks5
- Fix error upon directory creation with Dolphin (kde#387073): * Add kio-5.40-fix-directory-creation.patch. (Bug occurs with Qt 5.9.3+.) (forwarded request 547257 from 1Antoine1) OBS-URL: https://build.opensuse.org/request/show/547260 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kio?expand=0&rev=56
This commit is contained in:
commit
1580cc96a4
80
kio-5.40-fix-directory-creation.patch
Normal file
80
kio-5.40-fix-directory-creation.patch
Normal file
@ -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
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 30 20:01:35 UTC 2017 - antoine.belvire@opensuse.org
|
||||||
|
|
||||||
|
- Fix error upon directory creation with Dolphin (kde#387073):
|
||||||
|
* Add kio-5.40-fix-directory-creation.patch.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Nov 13 07:01:14 CET 2017 - lbeltrame@kde.org
|
Mon Nov 13 07:01:14 CET 2017 - lbeltrame@kde.org
|
||||||
|
|
||||||
|
3
kio.spec
3
kio.spec
@ -81,6 +81,8 @@ Source1: baselibs.conf
|
|||||||
Patch0: kio_help-fallback-to-kde4-docs.patch
|
Patch0: kio_help-fallback-to-kde4-docs.patch
|
||||||
# PATCH-FIX-UPSTREAM
|
# PATCH-FIX-UPSTREAM
|
||||||
Patch1: fix-handling-of-KCookieAdvice_AcceptForSession.patch
|
Patch1: fix-handling-of-KCookieAdvice_AcceptForSession.patch
|
||||||
|
# PATCH-FIX-UPSTREAM kio-5.40-fix-directory-creation.patch -- Fix kde#387073
|
||||||
|
Patch2: kio-5.40-fix-directory-creation.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -128,6 +130,7 @@ Development files.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake_kf5 -d build
|
%cmake_kf5 -d build
|
||||||
|
Loading…
Reference in New Issue
Block a user