diff options
-rw-r--r-- | nonprism/kdepim-runtime/PKGBUILD | 19 | ||||
-rw-r--r-- | nonprism/kdepim-runtime/kdepim-runtime-bug338658.patch | 181 |
2 files changed, 5 insertions, 195 deletions
diff --git a/nonprism/kdepim-runtime/PKGBUILD b/nonprism/kdepim-runtime/PKGBUILD index 518ea2bea..fe70cb6ff 100644 --- a/nonprism/kdepim-runtime/PKGBUILD +++ b/nonprism/kdepim-runtime/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 248353 2015-10-04 20:32:46Z arojas $ +# $Id: PKGBUILD 248965 2015-10-13 06:35:19Z arojas $ # Maintainer (Arch): Felix Yan <felixonmars@archlinux.org> # Contributor (Arch): Andrea Scarpino <andrea@archlinux.org> # Contributor (Arch): Pierre Schmitz <pierre@archlinux.de> # Maintainer: André Silva <emulatorman@parabola.nu> pkgname=kdepim-runtime -pkgver=15.08.1 -pkgrel=4.nonprism1 +pkgver=15.08.2 +pkgrel=1.nonprism1 pkgdesc='Extends the functionality of kdepim, without libkgapi support' arch=('i686' 'x86_64') url='https://projects.kde.org/projects/kde/kdepim-runtime' @@ -15,20 +15,11 @@ depends=(hicolor-icon-theme qt5-quick1 libkolab akonadi-socialutils akonadi-cale knotifyconfig kross kalarmcal kmbox kimap kde-syndication) makedepends=(extra-cmake-modules kdoctools boost) install=$pkgname.install -source=("http://download.kde.org/stable/applications/$pkgver/src/$pkgname-$pkgver.tar.xz" kdepim-runtime-bug338658.patch - ical-resource.patch::"https://quickgit.kde.org/?p=kdepim-runtime.git&a=commitdiff&h=1612e91&o=plain") -sha1sums=('fcab275175a82152ee2345a8657e0ab238f7033a' - '4d0bcdb3887f1146d289471d7e2494e2a76bb8bd' - '5c6f5128ca2a56124e4c0b09a911c7979d682466') +source=("http://download.kde.org/stable/applications/$pkgver/src/$pkgname-$pkgver.tar.xz") +sha1sums=('d7be7a77408bc7793d30976711b29c65aab9ff0c') prepare() { mkdir -p build - -# Fix https://bugs.kde.org/show_bug.cgi?id=338658 - cd $pkgname-$pkgver - patch -p1 -i ../kdepim-runtime-bug338658.patch -# Fix saving ical resources https://bugs.kde.org/show_bug.cgi?id=352693 - patch -p1 -i ../ical-resource.patch } build() { diff --git a/nonprism/kdepim-runtime/kdepim-runtime-bug338658.patch b/nonprism/kdepim-runtime/kdepim-runtime-bug338658.patch deleted file mode 100644 index c87880fc3..000000000 --- a/nonprism/kdepim-runtime/kdepim-runtime-bug338658.patch +++ /dev/null @@ -1,181 +0,0 @@ -From 038c604aba0cac22275e03c3497672cd254c2568 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20Vr=C3=A1til?= <dvratil@redhat.com> -Date: Mon, 7 Sep 2015 16:20:39 +0200 -Subject: [PATCH] IMAP: switch to GID-based merge when the Collection can - contain something else than emails - -In order to fix the recurrent multiple-merge-candidates issue which was breaking -ItemSync, ItemSync switched to RID-based merging, which is way more reliable. -However in some cases the IMAP resource still wants to use GID-based merging, -because RID might not be stable enough. - -(cherry picked from commit 93a2baac05a325b688aea2cc12d9714d6b186f69) ---- - CMakeLists.txt | 2 +- - resources/imap/autotests/dummyresourcestate.cpp | 8 +++++++- - resources/imap/autotests/dummyresourcestate.h | 3 +++ - resources/imap/resourcestate.cpp | 5 +++++ - resources/imap/resourcestate.h | 2 ++ - resources/imap/resourcestateinterface.h | 3 +++ - resources/imap/resourcetask.cpp | 5 +++++ - resources/imap/resourcetask.h | 1 + - resources/imap/retrieveitemstask.cpp | 10 ++++++++++ - 9 files changed, 37 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0511f78..17a39b0 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -54,7 +54,7 @@ include(ECMInstallIcons) - set(KF5_VERSION "5.12.0") - set(QT_REQUIRED_VERSION "5.4.0") - --set(KDEPIMLIBS_LIB_VERSION "4.88.0") -+set(KDEPIMLIBS_LIB_VERSION "4.89.0") - - set(KDEPIMRUNTIME_LIB_VERSION "${KDEPIM_RUNTIME_VERSION_NUMBER}") - set(KDEPIMRUNTIME_LIB_SOVERSION "5") -diff --git a/resources/imap/autotests/dummyresourcestate.cpp b/resources/imap/autotests/dummyresourcestate.cpp -index 8b28f0b..9497f8e 100644 ---- a/resources/imap/autotests/dummyresourcestate.cpp -+++ b/resources/imap/autotests/dummyresourcestate.cpp -@@ -27,7 +27,8 @@ Q_DECLARE_METATYPE(TagListAndMembers); - - DummyResourceState::DummyResourceState() - : m_automaticExpunge(true), m_subscriptionEnabled(true), -- m_disconnectedMode(true), m_intervalCheckTime(-1) -+ m_disconnectedMode(true), m_intervalCheckTime(-1), -+ m_mergeMode(Akonadi::ItemSync::RIDMerge) - { - qRegisterMetaType<QList<qint64> >(); - qRegisterMetaType<QVector<qint64> >(); -@@ -428,6 +429,11 @@ int DummyResourceState::batchSize() const - return 10; - } - -+void DummyResourceState::setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode) -+{ -+ m_mergeMode = mergeMode; -+} -+ - MessageHelper::Ptr DummyResourceState::messageHelper() const - { - return MessageHelper::Ptr(new MessageHelper()); -diff --git a/resources/imap/autotests/dummyresourcestate.h b/resources/imap/autotests/dummyresourcestate.h -index 39cb055..339501f 100644 ---- a/resources/imap/autotests/dummyresourcestate.h -+++ b/resources/imap/autotests/dummyresourcestate.h -@@ -143,6 +143,7 @@ public: - virtual void showInformationDialog(const QString &message, const QString &title, const QString &dontShowAgainName); - - virtual int batchSize() const; -+ virtual void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode); - - virtual MessageHelper::Ptr messageHelper() const; - -@@ -163,6 +164,8 @@ private: - int m_intervalCheckTime; - QChar m_separator; - -+ Akonadi::ItemSync::MergeMode m_mergeMode; -+ - Akonadi::Collection m_collection; - Akonadi::Item::List m_items; - -diff --git a/resources/imap/resourcestate.cpp b/resources/imap/resourcestate.cpp -index 9bf802a..690e562 100644 ---- a/resources/imap/resourcestate.cpp -+++ b/resources/imap/resourcestate.cpp -@@ -362,3 +362,8 @@ void ResourceState::relationsRetrieved(const Akonadi::Relation::List &relations) - { - m_resource->relationsRetrieved(relations); - } -+ -+void ResourceState::setItemMergingMode(Akonadi::ItemSync::MergeMode mode) -+{ -+ m_resource->setItemMergingMode(mode); -+} -\ No newline at end of file -diff --git a/resources/imap/resourcestate.h b/resources/imap/resourcestate.h -index 6471419..79ece01 100644 ---- a/resources/imap/resourcestate.h -+++ b/resources/imap/resourcestate.h -@@ -153,6 +153,8 @@ public: - - MessageHelper::Ptr messageHelper() const Q_DECL_OVERRIDE; - -+ void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode); -+ - private: - ImapResourceBase *m_resource; - const TaskArguments m_arguments; -diff --git a/resources/imap/resourcestateinterface.h b/resources/imap/resourcestateinterface.h -index eb34a25..35647be 100644 ---- a/resources/imap/resourcestateinterface.h -+++ b/resources/imap/resourcestateinterface.h -@@ -26,6 +26,7 @@ - - #include <Collection> - #include <Item> -+#include <ItemSync> - - #include <kimap/listjob.h> - -@@ -125,6 +126,8 @@ public: - - virtual Akonadi::Relation::List addedRelations() const = 0; - virtual Akonadi::Relation::List removedRelations() const = 0; -+ -+ virtual void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode) = 0; - }; - - #endif -diff --git a/resources/imap/resourcetask.cpp b/resources/imap/resourcetask.cpp -index 59532cd..e9c640c 100644 ---- a/resources/imap/resourcetask.cpp -+++ b/resources/imap/resourcetask.cpp -@@ -591,3 +591,8 @@ KIMAP::Acl::Rights ResourceTask::myRights(const Akonadi::Collection &col) - } - return KIMAP::Acl::None; - } -+ -+void ResourceTask::setItemMergingMode(Akonadi::ItemSync::MergeMode mode) -+{ -+ m_resource->setItemMergingMode(mode); -+} -diff --git a/resources/imap/resourcetask.h b/resources/imap/resourcetask.h -index 74aa518..d034c9d 100644 ---- a/resources/imap/resourcetask.h -+++ b/resources/imap/resourcetask.h -@@ -140,6 +140,7 @@ protected: - virtual bool serverSupportsCondstore() const; - - int batchSize() const; -+ void setItemMergingMode(Akonadi::ItemSync::MergeMode mode); - - ResourceStateInterface::Ptr resourceState(); - -diff --git a/resources/imap/retrieveitemstask.cpp b/resources/imap/retrieveitemstask.cpp -index a60c6ba..91b287c 100644 ---- a/resources/imap/retrieveitemstask.cpp -+++ b/resources/imap/retrieveitemstask.cpp -@@ -89,6 +89,16 @@ void RetrieveItemsTask::doStart(KIMAP::Session *session) - m_session = session; - - const Akonadi::Collection col = collection(); -+ // Only with emails we can be sure that RID is persistent and thus we can use -+ // it for merging. For other potential content types (like Kolab events etc.) -+ // use GID instead. -+ QStringList cts = col.contentMimeTypes(); -+ cts.removeOne(Akonadi::Collection::mimeType()); -+ cts.removeOne(KMime::Message::mimeType()); -+ if (!cts.isEmpty()) { -+ setItemMergingMode(Akonadi::ItemSync::GIDMerge); -+ } -+ - if (m_fetchMissingBodies && col.cachePolicy() - .localParts().contains(QLatin1String(Akonadi::MessagePart::Body))) { //disconnected mode, make sure we really have the body cached - --- -2.4.6 - |