diff --git a/KDesktopPropsPlugin-create-destination-dir.patch b/KDesktopPropsPlugin-create-destination-dir.patch new file mode 100644 index 0000000..5ea95e0 --- /dev/null +++ b/KDesktopPropsPlugin-create-destination-dir.patch @@ -0,0 +1,29 @@ +From a0fc624d50bbd7942834913ece52d26849ba7243 Mon Sep 17 00:00:00 2001 +From: Wolfgang Bauer +Date: Thu, 17 Aug 2017 12:51:53 +0200 +Subject: [KDesktopPropsPlugin] Create destination directory if it doesn't + exist + +If the directory doesn't exist, applying the changes will fail with +"Could not save properties. You do not have sufficient access to write +to xxx". +--- + src/widgets/kpropertiesdialog.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/widgets/kpropertiesdialog.cpp b/src/widgets/kpropertiesdialog.cpp +index 860ad0e..0abcc9c 100644 +--- a/src/widgets/kpropertiesdialog.cpp ++++ b/src/widgets/kpropertiesdialog.cpp +@@ -3674,6 +3674,8 @@ void KDesktopPropsPlugin::applyChanges() + + const QString path(url.toLocalFile()); + ++ // make sure the directory exists ++ QDir().mkpath(QFileInfo(path).absolutePath()); + QFile f(path); + if (!f.open(QIODevice::ReadWrite)) { + KMessageBox::sorry(nullptr, i18n("Could not save properties. You do not have " +-- +cgit v0.11.2 + diff --git a/Really-rate-limit-INF_PROCESSED_SIZE-messages.patch b/Really-rate-limit-INF_PROCESSED_SIZE-messages.patch new file mode 100644 index 0000000..c4ef2e4 --- /dev/null +++ b/Really-rate-limit-INF_PROCESSED_SIZE-messages.patch @@ -0,0 +1,41 @@ +From 801f58e7e76acd4bcb23d6e8092825cdda203a81 Mon Sep 17 00:00:00 2001 +From: Kevin Funk +Date: Tue, 22 Aug 2017 14:11:03 +0200 +Subject: Really rate-limit INF_PROCESSED_SIZE messages + +Summary: +Fixing an ancient porting bug which popped up when porting from Qt4 to +Qt5. + +FIXED-IN: 5.38 +BUG: 383843 + +Reviewers: dfaure + +Reviewed By: dfaure + +Subscribers: dfaure, #frameworks + +Tags: #frameworks + +Differential Revision: https://phabricator.kde.org/D7463 +--- + src/core/slavebase.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/slavebase.cpp b/src/core/slavebase.cpp +index 3778df8..149564b 100644 +--- a/src/core/slavebase.cpp ++++ b/src/core/slavebase.cpp +@@ -535,7 +535,7 @@ void SlaveBase::processedSize(KIO::filesize_t _bytes) + emitSignal = true; + } else { + if (d->lastTimeout.isValid()) { +- emitSignal = d->lastTimeout.msecsTo(now); // emit size 10 times a second ++ emitSignal = d->lastTimeout.msecsTo(now) >= 100; // emit size 10 times a second + } else { + emitSignal = true; + } +-- +cgit v0.11.2 + diff --git a/fix-applying-special-file-attributes.patch b/fix-applying-special-file-attributes.patch new file mode 100644 index 0000000..c93d38e --- /dev/null +++ b/fix-applying-special-file-attributes.patch @@ -0,0 +1,81 @@ +From 9ac7832b859bfcbc88448c4ae0f6dc14b2d54a06 Mon Sep 17 00:00:00 2001 +From: Kai Uwe Broulik +Date: Tue, 15 Aug 2017 14:41:36 +0200 +Subject: [File KIO slave] Fix applying special file attributes + +QFile does not support special attributes like sticky. This would cause us to always discard them. + +BUG: 365795 + +Differential Revision: https://phabricator.kde.org/D7326 +--- + autotests/jobtest.cpp | 20 ++++++++++++++++++++ + autotests/jobtest.h | 3 +++ + src/ioslaves/file/file.cpp | 5 +++++ + 3 files changed, 28 insertions(+) + +diff --git a/autotests/jobtest.cpp b/autotests/jobtest.cpp +index 80a8921..557d1b5 100644 +--- a/autotests/jobtest.cpp ++++ b/autotests/jobtest.cpp +@@ -1473,6 +1473,26 @@ void JobTest::chmodFile() + QFile::remove(filePath); + } + ++#ifdef Q_OS_UNIX ++void JobTest::chmodSticky() ++{ ++ const QString filePath = homeTmpDir() + "fileForChmodSticky"; ++ createTestFile(filePath); ++ KFileItem item(QUrl::fromLocalFile(filePath)); ++ const mode_t origPerm = item.permissions(); ++ mode_t newPerm = origPerm ^ S_ISVTX; ++ QVERIFY(newPerm != origPerm); ++ KFileItemList items({item}); ++ KIO::Job *job = KIO::chmod(items, newPerm, S_ISVTX, QString(), QString(), false, KIO::HideProgressInfo); ++ job->setUiDelegate(nullptr); ++ QVERIFY(job->exec()); ++ ++ KFileItem newItem(QUrl::fromLocalFile(filePath)); ++ QCOMPARE(QString::number(newItem.permissions(), 8), QString::number(newPerm, 8)); ++ QFile::remove(filePath); ++} ++#endif ++ + void JobTest::chmodFileError() + { + // chown(root) should fail +diff --git a/autotests/jobtest.h b/autotests/jobtest.h +index 96b4264..e3d800a 100644 +--- a/autotests/jobtest.h ++++ b/autotests/jobtest.h +@@ -84,6 +84,9 @@ private Q_SLOTS: + #endif + void mostLocalUrl(); + void chmodFile(); ++#ifdef Q_OS_UNIX ++ void chmodSticky(); ++#endif + void chmodFileError(); + void mimeType(); + void mimeTypeError(); +diff --git a/src/ioslaves/file/file.cpp b/src/ioslaves/file/file.cpp +index 47fb0a5..a7f1a47 100644 +--- a/src/ioslaves/file/file.cpp ++++ b/src/ioslaves/file/file.cpp +@@ -225,7 +225,12 @@ void FileProtocol::chmod(const QUrl &url, int permissions) + const QString path(url.toLocalFile()); + const QByteArray _path(QFile::encodeName(path)); + /* FIXME: Should be atomic */ ++#ifdef Q_OS_UNIX ++ // QFile::Permissions does not support special attributes like sticky ++ if (::chmod(QFile::encodeName(path).constData(), permissions) == -1 || ++#else + if (!QFile::setPermissions(path, modeToQFilePermissions(permissions)) || ++#endif + (setACL(_path.data(), permissions, false) == -1) || + /* if not a directory, cannot set default ACLs */ + (setACL(_path.data(), permissions, true) == -1 && errno != ENOTDIR)) { +-- +cgit v0.11.2 + diff --git a/kio-5.36.0.tar.xz b/kio-5.36.0.tar.xz deleted file mode 100644 index d230ca7..0000000 --- a/kio-5.36.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f18f51d5d85156de52bf21e7344e06b9fcb6c815043797615171c7a66bb743c8 -size 3081976 diff --git a/kio-5.37.0.tar.xz b/kio-5.37.0.tar.xz new file mode 100644 index 0000000..1439b8e --- /dev/null +++ b/kio-5.37.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49448ebcfe182805f8f9cd40c1e2c8e686578cc2e7fa3688204d5ca4e182ac5b +size 3084204 diff --git a/kio.changes b/kio.changes index ec07cbf..9c1c5a6 100644 --- a/kio.changes +++ b/kio.changes @@ -1,3 +1,43 @@ +------------------------------------------------------------------- +Tue Aug 22 14:53:37 UTC 2017 - wbauer@tmo.at + +- Add Really-rate-limit-INF_PROCESSED_SIZE-messages.patch to not + cause high CPU load during file copies (kde#383843, boo#1016920, + boo#1051349) +- Add KDesktopPropsPlugin-create-destination-dir.patch to fix + modifying applications' .desktop files in the "Edit File Type" + dialog if the corresponding directory doesn't exist in + ~/.local/share/ (boo#1000946) + +------------------------------------------------------------------- +Tue Aug 15 12:49:25 UTC 2017 - wbauer@tmo.at + +- Add fix-applying-special-file-attributes.patch to fix modifying + advanced permissions in the file/folder properties dialog + (boo#978935, kde#365795) + +------------------------------------------------------------------- +Sat Aug 12 09:23:30 UTC 2017 - christophe@krop.fr + +- Update to 5.37.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.37.0.php +- Changes since 5.36.0 : + * Fix assert in UrlUtil::firstChildUrl() + * Add new method urlSelectionRequested to KUrlNavigator + * Revert "Emit a "." UDSEntry when not present, even on empty directories." + * KUrlNavigator: expose the KUrlNavigatorButton that received a drop event + * Fix build on musl libc by exposing setgroups(2). + * Emit a "." UDSEntry when not present, even on empty directories. (kde#382046) + * Fix test not found when setting CMAKE_RUNTIME_OUTPUT_DIRECTORY, for some reason. + * Stash without asking the user with a Copy/Cancel popup. + * Ensure KDirLister updates items whose target URL has changed. (kde#382341) + * Fix kdirwatch warning + * API dox: use official name "D-Bus" consistently + * Make advanced options of "open with" dialog collabsible and hidden by default + * Minor: Fix a couple of deprecation warnings + ------------------------------------------------------------------- Wed Jul 12 07:14:01 CEST 2017 - lbeltrame@kde.org diff --git a/kio.spec b/kio.spec index a692eff..3e9170c 100644 --- a/kio.spec +++ b/kio.spec @@ -17,9 +17,9 @@ %bcond_without lang -%define _tar_path 5.36 +%define _tar_path 5.37 Name: kio -Version: 5.36.0 +Version: 5.37.0 Release: 0 %define kf5_version %{version} BuildRequires: cmake >= 3.0 @@ -75,6 +75,12 @@ Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-% Source1: baselibs.conf # PATCH-FIX-OPENSUSE kio_help-fallback-to-kde4-docs.patch -- allow kio_help to see into kde4 documentation, needed especially for khelpcenter5 Patch0: kio_help-fallback-to-kde4-docs.patch +# PATCH-FIX-UPSTREAM +Patch1: fix-applying-special-file-attributes.patch +# PATCH-FIX-UPSTREAM +Patch2: KDesktopPropsPlugin-create-destination-dir.patch +# PATCH-FIX-UPSTREAM +Patch3: Really-rate-limit-INF_PROCESSED_SIZE-messages.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -121,6 +127,9 @@ Development files. %prep %setup -q %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build %cmake_kf5 -d build