diff --git a/0001-sync-bookmarkmanager-only-if-change-was-by-process.patch b/0001-sync-bookmarkmanager-only-if-change-was-by-process.patch new file mode 100644 index 0000000..6a80e31 --- /dev/null +++ b/0001-sync-bookmarkmanager-only-if-change-was-by-process.patch @@ -0,0 +1,122 @@ +From e7e0f2d8f06e4086a1872757d779e19a06537b2a Mon Sep 17 00:00:00 2001 +From: Marco Martin +Date: Mon, 9 Feb 2015 18:18:33 +0100 +Subject: [PATCH 1/1] sync bookmarkmanager only if change was by process + +This is an attempt to fix a bug that seems quite difficult to reproduce, +It seems there is a weird race condition linked to the sync of the two files +.local/share/user-places.xbel +.local/share/kfileplaces/bookmarks.xml +causing the bug +https://bugs.kde.org/show_bug.cgi?id=343735 +all processes that are listening for changes in the bookmark manager will +try to sync their bookmarks with the shared ones (user-places.xbel) +and depending what process arrives first, some bookmarks may be lost + +The same commit will happen on kdelibs4 as well + +CCBUG:343735 +REVIEW:122459 +--- + src/filewidgets/kfileplacesmodel.cpp | 9 +++++++++ + src/filewidgets/kfileplacessharedbookmarks.cpp | 7 +------ + src/filewidgets/kfileplacessharedbookmarks_p.h | 3 ++- + 3 files changed, 12 insertions(+), 7 deletions(-) + +diff --git a/src/filewidgets/kfileplacesmodel.cpp b/src/filewidgets/kfileplacesmodel.cpp +index d8da868098ca8dd46129aa718e4dc75ebf871192..6c9201223c7576866de5f2e7ff91069e1e68bebe 100644 +--- a/src/filewidgets/kfileplacesmodel.cpp ++++ b/src/filewidgets/kfileplacesmodel.cpp +@@ -656,6 +656,8 @@ bool KFilePlacesModel::dropMimeData(const QMimeData *data, Qt::DropAction action + return false; + } + ++ d->sharedBookmarks->updateSharedBookmarks(); ++ + d->reloadAndSignal(); + + return true; +@@ -683,6 +685,8 @@ void KFilePlacesModel::addPlace(const QString &text, const QUrl &url, + d->bookmarkManager->root().moveBookmark(bookmark, item->bookmark()); + } + ++ d->sharedBookmarks->updateSharedBookmarks(); ++ + d->reloadAndSignal(); + } + +@@ -710,6 +714,8 @@ void KFilePlacesModel::editPlace(const QModelIndex &index, const QString &text, + bookmark.setIcon(iconName); + bookmark.setMetaDataItem("OnlyInApp", appName); + ++ d->sharedBookmarks->updateSharedBookmarks(); ++ + d->reloadAndSignal(); + emit dataChanged(index, index); + } +@@ -733,6 +739,7 @@ void KFilePlacesModel::removePlace(const QModelIndex &index) const + } + + d->bookmarkManager->root().deleteBookmark(bookmark); ++ d->sharedBookmarks->updateSharedBookmarks(); + d->reloadAndSignal(); + } + +@@ -752,6 +759,8 @@ void KFilePlacesModel::setPlaceHidden(const QModelIndex &index, bool hidden) + + bookmark.setMetaDataItem("IsHidden", (hidden ? "true" : "false")); + ++ d->sharedBookmarks->updateSharedBookmarks(); ++ + d->reloadAndSignal(); + emit dataChanged(index, index); + } +diff --git a/src/filewidgets/kfileplacessharedbookmarks.cpp b/src/filewidgets/kfileplacessharedbookmarks.cpp +index fbd6b5363f8229e113a6c9d49715e6ee210ab9fd..3e7ffb9348ae5996ac2ae46ddc1ef27418400152 100644 +--- a/src/filewidgets/kfileplacessharedbookmarks.cpp ++++ b/src/filewidgets/kfileplacessharedbookmarks.cpp +@@ -127,11 +127,6 @@ KFilePlacesSharedBookmarks::KFilePlacesSharedBookmarks(KBookmarkManager *mgr) + connect(m_sharedBookmarkManager, SIGNAL(bookmarksChanged(QString)), + this, SLOT(slotSharedBookmarksChanged())); + +- connect(m_placesBookmarkManager, SIGNAL(changed(QString,QString)), +- this, SLOT(slotBookmarksChanged())); +- connect(m_placesBookmarkManager, SIGNAL(bookmarksChanged(QString)), +- this, SLOT(slotBookmarksChanged())); +- + integrateSharedBookmarks(); + } + +@@ -278,7 +273,7 @@ void KFilePlacesSharedBookmarks::slotSharedBookmarksChanged() + } + } + +-void KFilePlacesSharedBookmarks::slotBookmarksChanged() ++void KFilePlacesSharedBookmarks::updateSharedBookmarks() + { + //qDebug() << "places bookmarks changed"; + bool dirty = exportSharedBookmarks(); +diff --git a/src/filewidgets/kfileplacessharedbookmarks_p.h b/src/filewidgets/kfileplacessharedbookmarks_p.h +index 4c9f6a4da4ff42dc16dd148fc29c8a93b27e6a48..2f9f4b8a84bcfbb85c701adc2c2ad4f453663609 100644 +--- a/src/filewidgets/kfileplacessharedbookmarks_p.h ++++ b/src/filewidgets/kfileplacessharedbookmarks_p.h +@@ -38,6 +38,8 @@ public: + /* delete m_sharedBookmarkManager; */ + } + ++ void updateSharedBookmarks(); ++ + private: + + bool integrateSharedBookmarks(); +@@ -49,7 +51,6 @@ private: + private Q_SLOTS: + + void slotSharedBookmarksChanged(); +- void slotBookmarksChanged(); + + }; + +-- +2.2.2 + diff --git a/kio-5.6.0.tar.xz b/kio-5.6.0.tar.xz deleted file mode 100644 index 2610d9b..0000000 --- a/kio-5.6.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bdf88ac7aac80304b11f9a3413e4b740ee77a92c154360af71b35b937aa07d1a -size 2820560 diff --git a/kio-5.7.0.tar.xz b/kio-5.7.0.tar.xz new file mode 100644 index 0000000..0dcd6b5 --- /dev/null +++ b/kio-5.7.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47284fbd03bd4f7fdb3eed9f6d67c2741628517bc82c822c4f9e5409c1bc475 +size 2837928 diff --git a/kio.changes b/kio.changes index 7997cd5..54fe41d 100644 --- a/kio.changes +++ b/kio.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Sun Feb 8 18:15:28 UTC 2015 - hrvoje.senjan@gmail.com + +- Update to 5.7.0 + * Fixed crash in jobs when linking to KIOWidgets but only + using a QCoreApplication + * Fixed editing web shortcuts + * Added option KIOCORE_ONLY, to compile only KIOCore and its + helper programs, but not KIOWidgets or KIOFileWidgets, thus + reducing greatly the necessary dependencies + * Added class KFileCopyToMenu, which adds Copy To / Move To" + to popupmenus + * SSL-enabled protocols: added support for TLSv1.1 and TLSv1.2 + protocols, remove SSLv3 + * Fixed negotiatedSslVersion and negotiatedSslVersionName to + return the actual negotiated protocol + * Apply the entered URL to the view when clicking the button + that switches the URL navigator back to breadcrumb mode + * Fixed two progress bars/dialogs appearing for copy/move jobs + * KIO now uses its own daemon, kiod, for out-of-process services + previously running in kded, in order to reduce dependencies; + currently only replaces kssld + * Fixed "Could not write to " error when kioexec is triggered + * Fixed "QFileInfo::absolutePath: Constructed with empty filename" + warnings when using KFilePlacesModel + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.7.0.php +- Added 0001-sync-bookmarkmanager-only-if-change-was-by-process.patch, + kde#343735 + ------------------------------------------------------------------- Sat Jan 3 18:03:27 UTC 2015 - hrvoje.senjan@gmail.com diff --git a/kio.spec b/kio.spec index a4eab8f..a7192d7 100644 --- a/kio.spec +++ b/kio.spec @@ -1,7 +1,7 @@ # # spec file for package kio # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,12 +16,13 @@ # +%define _tar_path 5.7 Name: kio -Version: 5.6.0 +Version: %{_tar_path}.0 Release: 0 %define kf5_version %{version} BuildRequires: cmake >= 2.8.12 -BuildRequires: extra-cmake-modules >= 1.6.0 +BuildRequires: extra-cmake-modules >= 1.7.0 BuildRequires: fdupes BuildRequires: karchive-devel >= %{kf5_version} BuildRequires: kbookmarks-devel >= %{kf5_version} @@ -67,8 +68,10 @@ Summary: Network transparent access to files and data License: LGPL-2.1+ Group: System/GUI/KDE Url: http://www.kde.org -Source: http://download.kde.org/stable/frameworks/5.6/%{name}-%{version}.tar.xz +Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz Source1: baselibs.conf +# PATCH-FIX-UPSTREAM 0001-sync-bookmarkmanager-only-if-change-was-by-process.patch +Patch0: 0001-sync-bookmarkmanager-only-if-change-was-by-process.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -98,6 +101,7 @@ Development files. %lang_package %prep %setup -q +%patch0 -p1 %build %cmake_kf5 -d build @@ -145,6 +149,8 @@ Development files. %{_kf5_libexecdir}/kioslave %{_kf5_libexecdir}/kioexec %{_kf5_notifydir}/proxyscout.notifyrc +%{_kf5_libexecdir}/kiod5 +%{_kf5_sharedir}/dbus-1/services/org.kde.kiod5.service %doc %lang(en) %{_kf5_mandir}/*/kcookiejar5.* %dir %{_kf5_htmldir}/en %dir %{_kf5_htmldir}