Hello community, here is the log from the commit of package kdepim-runtime for openSUSE:Factory checked in at 2015-10-19 22:40:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kdepim-runtime (Old) and /work/SRC/openSUSE:Factory/.kdepim-runtime.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdepim-runtime" Changes: -------- --- /work/SRC/openSUSE:Factory/kdepim-runtime/kdepim-runtime.changes 2015-10-03 20:16:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kdepim-runtime.new/kdepim-runtime.changes 2015-10-19 22:40:33.000000000 +0200 @@ -1,0 +2,25 @@ +Sun Oct 11 13:29:13 UTC 2015 - tittiatc...@gmail.com + +- Update to KDE Applications 15.08.2 + * KDE Applications 15.08.2 + * https://www.kde.org/announcements/announce-applications-15.08.2.php + +- Drop patch due to upstream inclusion + * switch-to-gid-based-merge.diff + +------------------------------------------------------------------- +Mon Sep 14 18:17:48 UTC 2015 - lbeltr...@kde.org + +- Add switch-to-gid-based-merge.diff: upstream changes to fix IMAP + syncing of non-email objects (fixes email syncing with Kolab + servers) + +------------------------------------------------------------------- +Sun Sep 13 19:12:11 UTC 2015 - tittiatc...@gmail.com + +- Update to KDE Applications 15.08.1 + * KDE Applications 15.08.1 + * https://www.kde.org/announcements/announce-applications-15.08.1.php + + +------------------------------------------------------------------- Old: ---- kdepim-runtime-15.08.0.tar.xz New: ---- kdepim-runtime-15.08.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdepim-runtime.spec ++++++ --- /var/tmp/diff_new_pack.dZD1xq/_old 2015-10-19 22:40:33.000000000 +0200 +++ /var/tmp/diff_new_pack.dZD1xq/_new 2015-10-19 22:40:33.000000000 +0200 @@ -17,9 +17,9 @@ %define kf5_version 5.1.0 -%define kf5_pimlibs_version 15.08.0 +%define kf5_pimlibs_version 15.08.2 Name: kdepim-runtime -Version: 15.08.0 +Version: 15.08.2 Release: 0 Summary: Runtime modules for kdepim License: GPL-2.0 ++++++ kdepim-runtime-15.08.0.tar.xz -> kdepim-runtime-15.08.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/.arcconfig new/kdepim-runtime-15.08.2/.arcconfig --- old/kdepim-runtime-15.08.0/.arcconfig 1970-01-01 01:00:00.000000000 +0100 +++ new/kdepim-runtime-15.08.2/.arcconfig 2015-10-04 15:00:52.000000000 +0200 @@ -0,0 +1,4 @@ +{ + "phabricator.uri" : "https://phabricator.kde.org/project/profile/34/", + "history.immutable" : true +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/CMakeLists.txt new/kdepim-runtime-15.08.2/CMakeLists.txt --- old/kdepim-runtime-15.08.0/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -32,10 +32,10 @@ # 3.2 alpha1 if(NOT DEFINED KDEPIM_RUNTIME_DEV_VERSION) - set(KDEPIM_RUNTIME_DEV_VERSION "beta1") + set(KDEPIM_RUNTIME_DEV_VERSION "") endif() -set(KDEPIM_RUNTIME_VERSION_NUMBER "4.80") +set(KDEPIM_RUNTIME_VERSION_NUMBER "5.0.2") set(KDEPIM_RUNTIME_VERSION "${KDEPIM_RUNTIME_VERSION_NUMBER}${KDEPIM_RUNTIME_DEV_VERSION}") configure_file(kdepim-runtime-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kdepim-runtime-version.h @ONLY) @@ -54,9 +54,9 @@ 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}.0") +set(KDEPIMRUNTIME_LIB_VERSION "${KDEPIM_RUNTIME_VERSION_NUMBER}") set(KDEPIMRUNTIME_LIB_SOVERSION "5") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/agents/CMakeLists.txt new/kdepim-runtime-15.08.2/agents/CMakeLists.txt --- old/kdepim-runtime-15.08.0/agents/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/agents/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -28,7 +28,7 @@ find_package(KF5Mime ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiMime ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5MailTransport ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) - find_package(KF5PimIdentities ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) + find_package(KF5IdentityManagement ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiContact ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5CalendarCore ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/kcm/kcm_akonadi_resources.desktop new/kdepim-runtime-15.08.2/kcm/kcm_akonadi_resources.desktop --- old/kdepim-runtime-15.08.0/kcm/kcm_akonadi_resources.desktop 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/kcm/kcm_akonadi_resources.desktop 2015-10-04 15:00:52.000000000 +0200 @@ -32,6 +32,7 @@ Name[pl]=Konta i zasoby ZIO Name[pt]=Contas e Recursos de PIM Name[pt_BR]=Contas e Recursos de PIM +Name[ru]=Личные данные Name[sk]=Účty a zdroje PIM Name[sl]=Računi in viri PIM Name[sr]=ПИМ налози и ресурси @@ -62,6 +63,7 @@ Comment[pl]=Zasoby zarządzania informacjami osobistymi (Akonadi) Comment[pt]=Recursos de Gestão de Informações Pessoais (Akonadi) Comment[pt_BR]=Recursos do Gerenciador de Informações Pessoais (Akonadi) +Comment[ru]=Настройка источников данных для электронного секретаря (Akonadi) Comment[sk]=Zdroje správy osobných informácií (Akonadi) Comment[sl]=Viri za upravljanje z osebnimi podatki (Akonadi) Comment[sr]=Ресурси управљања личним подацима (Аконади) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davcollectionsfetchjob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davcollectionsfetchjob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davcollectionsfetchjob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davcollectionsfetchjob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -81,6 +81,8 @@ } else { // Just give up here. + setError(davJob->error()); + setErrorText(davJob->errorText()); emitResult(); } @@ -102,7 +104,7 @@ if (homeSet.startsWith(QLatin1Char('/'))) { // homeSet is only a path, use request url to complete - url.setEncodedPath(homeSet.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(homeSet.toLatin1())); } else { // homeSet is a complete url KUrl tmpUrl(homeSet); @@ -265,7 +267,7 @@ url.setUser(QString()); if (href.startsWith(QLatin1Char('/'))) { // href is only a path, use request url to complete - url.setEncodedPath(href.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(href.toLatin1())); } else { // href is a complete url KUrl tmpUrl(href); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davitemcreatejob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davitemcreatejob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davitemcreatejob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davitemcreatejob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -92,7 +92,7 @@ url = storedJob->url(); } else if (location.startsWith(QLatin1Char('/'))) { url = storedJob->url(); - url.setEncodedPath(location.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(location.toLatin1())); } else { url = location; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davitemmodifyjob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davitemmodifyjob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davitemmodifyjob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davitemmodifyjob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -106,7 +106,7 @@ url = storedJob->url(); } else if (location.startsWith(QLatin1Char('/'))) { url = storedJob->url(); - url.setEncodedPath(location.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(location.toLatin1())); } else { url = location; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davitemsfetchjob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davitemsfetchjob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davitemsfetchjob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davitemsfetchjob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -116,7 +116,7 @@ url.setUser(QString()); if (href.startsWith(QLatin1Char('/'))) { // href is only a path, use request url to complete - url.setEncodedPath(href.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(href.toLatin1())); } else { // href is a complete url KUrl tmpUrl(href); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davitemslistjob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davitemslistjob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davitemslistjob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davitemslistjob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -170,7 +170,7 @@ url.setUser(QString()); if (href.startsWith(QLatin1Char('/'))) { // href is only a path, use request url to complete - url.setEncodedPath(href.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(href.toLatin1())); } else { // href is a complete url KUrl tmpUrl(href); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davprincipalhomesetsfetchjob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davprincipalhomesetsfetchjob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davprincipalhomesetsfetchjob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davprincipalhomesetsfetchjob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -208,7 +208,7 @@ if (nextRoundHref.startsWith(QLatin1Char('/'))) { // nextRoundHref is only a path, use request url to complete - nextRoundUrl.setEncodedPath(nextRoundHref.toLatin1()); + nextRoundUrl.setPath(QUrl::fromPercentEncoding(nextRoundHref.toLatin1())); } else { // href is a complete url KUrl tmpUrl(nextRoundHref); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/common/davprincipalsearchjob.cpp new/kdepim-runtime-15.08.2/resources/dav/common/davprincipalsearchjob.cpp --- old/kdepim-runtime-15.08.0/resources/dav/common/davprincipalsearchjob.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/common/davprincipalsearchjob.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -173,7 +173,7 @@ KUrl url = mUrl.url(); if (href.startsWith(QLatin1Char('/'))) { // href is only a path, use request url to complete - url.setEncodedPath(href.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(href.toLatin1())); } else { // href is a complete url KUrl tmpUrl(href); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/protocols/caldavprotocol.cpp new/kdepim-runtime-15.08.2/resources/dav/protocols/caldavprotocol.cpp --- old/kdepim-runtime-15.08.0/resources/dav/protocols/caldavprotocol.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/protocols/caldavprotocol.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -282,9 +282,14 @@ foreach (const QString &url, urls) { QDomElement hrefElement = document.createElementNS(QStringLiteral("DAV:"), QStringLiteral("href")); - const KUrl pathUrl(url); + const QUrl pathUrl = QUrl::fromUserInput(url); + QString encodedUrl = QString::fromAscii(pathUrl.encodedPath()); + if ( pathUrl.hasQuery() ) { + encodedUrl.append(QStringLiteral("?")); + encodedUrl.append(QString::fromAscii(pathUrl.encodedQuery())); + } - const QDomText textNode = document.createTextNode(pathUrl.encodedPathAndQuery()); + const QDomText textNode = document.createTextNode(encodedUrl); hrefElement.appendChild(textNode); multigetElement.appendChild(hrefElement); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/protocols/carddavprotocol.cpp new/kdepim-runtime-15.08.2/resources/dav/protocols/carddavprotocol.cpp --- old/kdepim-runtime-15.08.0/resources/dav/protocols/carddavprotocol.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/protocols/carddavprotocol.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -116,9 +116,14 @@ foreach (const QString &url, urls) { QDomElement hrefElement = document.createElementNS(QStringLiteral("DAV:"), QStringLiteral("href")); - const KUrl pathUrl(url); + const QUrl pathUrl = QUrl::fromUserInput(url); + QString encodedUrl = QString::fromAscii(pathUrl.encodedPath()); + if ( pathUrl.hasQuery() ) { + encodedUrl.append(QStringLiteral("?")); + encodedUrl.append(QString::fromAscii(pathUrl.encodedQuery())); + } - const QDomText textNode = document.createTextNode(pathUrl.encodedPathAndQuery()); + const QDomText textNode = document.createTextNode(encodedUrl); hrefElement.appendChild(textNode); multigetElement.appendChild(hrefElement); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/dav/resource/davfreebusyhandler.cpp new/kdepim-runtime-15.08.2/resources/dav/resource/davfreebusyhandler.cpp --- old/kdepim-runtime-15.08.0/resources/dav/resource/davfreebusyhandler.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/dav/resource/davfreebusyhandler.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -109,7 +109,7 @@ KUrl url(davJob->property("url").toString()); if (result.value.startsWith(QLatin1Char('/'))) { // href is only a path, use request url to complete - url.setEncodedPath(result.value.toLatin1()); + url.setPath(QUrl::fromPercentEncoding(result.value.toLatin1())); } else { // href is a complete url KUrl tmpUrl(result.value); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/folderarchivesettings/CMakeLists.txt new/kdepim-runtime-15.08.2/resources/folderarchivesettings/CMakeLists.txt --- old/kdepim-runtime-15.08.0/resources/folderarchivesettings/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/folderarchivesettings/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -23,7 +23,7 @@ set_target_properties(folderarchivesettings PROPERTIES VERSION ${KDEPIMRUNTIME_LIB_VERSION} SOVERSION ${KDEPIMRUNTIME_LIB_SOVERSION} ) -install(TARGETS folderarchivesettings ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS folderarchivesettings ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) if (BUILD_TESTING) add_subdirectory(autotests) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/additemtask.cpp new/kdepim-runtime-15.08.2/resources/imap/additemtask.cpp --- old/kdepim-runtime-15.08.0/resources/imap/additemtask.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/additemtask.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -136,7 +136,8 @@ } else { search->addSearchCriteria(KIMAP::SearchJob::New); - UidNextAttribute *uidNext = collection().attribute<UidNextAttribute>(); + Akonadi::Collection c = collection(); + UidNextAttribute *uidNext = c.attribute<UidNextAttribute>(); if (!uidNext) { cancelTask(i18n("Could not determine the UID for the newly created message on the server")); search->deleteLater(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/autotests/dummyresourcestate.cpp new/kdepim-runtime-15.08.2/resources/imap/autotests/dummyresourcestate.cpp --- old/kdepim-runtime-15.08.0/resources/imap/autotests/dummyresourcestate.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/autotests/dummyresourcestate.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -27,7 +27,8 @@ 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 @@ return 10; } +void DummyResourceState::setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode) +{ + m_mergeMode = mergeMode; +} + MessageHelper::Ptr DummyResourceState::messageHelper() const { return MessageHelper::Ptr(new MessageHelper()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/autotests/dummyresourcestate.h new/kdepim-runtime-15.08.2/resources/imap/autotests/dummyresourcestate.h --- old/kdepim-runtime-15.08.0/resources/imap/autotests/dummyresourcestate.h 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/autotests/dummyresourcestate.h 2015-10-04 15:00:52.000000000 +0200 @@ -143,6 +143,7 @@ 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 @@ int m_intervalCheckTime; QChar m_separator; + Akonadi::ItemSync::MergeMode m_mergeMode; + Akonadi::Collection m_collection; Akonadi::Item::List m_items; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/changecollectiontask.cpp new/kdepim-runtime-15.08.2/resources/imap/changecollectiontask.cpp --- old/kdepim-runtime-15.08.0/resources/imap/changecollectiontask.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/changecollectiontask.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -63,7 +63,7 @@ m_pendingJobs = 0; if (parts().contains("AccessRights")) { - Akonadi::ImapAclAttribute *aclAttribute = collection().attribute<Akonadi::ImapAclAttribute>(); + Akonadi::ImapAclAttribute *aclAttribute = m_collection.attribute<Akonadi::ImapAclAttribute>(); if (aclAttribute == Q_NULLPTR) { emitWarning(i18n("ACLs for '%1' need to be retrieved from the IMAP server first. Skipping ACL change", @@ -128,8 +128,9 @@ } if (parts().contains("collectionannotations") && serverSupportsAnnotations()) { + Akonadi::Collection c = collection(); Akonadi::CollectionAnnotationsAttribute *annotationsAttribute = - collection().attribute<Akonadi::CollectionAnnotationsAttribute>(); + c.attribute<Akonadi::CollectionAnnotationsAttribute>(); if (annotationsAttribute) { // No annotations it seems... server is lieing to us? QMap<QByteArray, QByteArray> annotations = annotationsAttribute->annotations(); @@ -163,7 +164,8 @@ } if (parts().contains("imapacl")) { - Akonadi::ImapAclAttribute *aclAttribute = collection().attribute<Akonadi::ImapAclAttribute>(); + Akonadi::Collection c = collection(); + Akonadi::ImapAclAttribute *aclAttribute = c.attribute<Akonadi::ImapAclAttribute>(); if (aclAttribute) { const QMap<QByteArray, KIMAP::Acl::Rights> rights = aclAttribute->rights(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/moveitemstask.cpp new/kdepim-runtime-15.08.2/resources/imap/moveitemstask.cpp --- old/kdepim-runtime-15.08.0/resources/imap/moveitemstask.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/moveitemstask.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -217,7 +217,8 @@ search->setSearchLogic(KIMAP::SearchJob::And); search->addSearchCriteria(KIMAP::SearchJob::New); - UidNextAttribute *uidNext = targetCollection().attribute<UidNextAttribute>(); + Akonadi::Collection c = targetCollection(); + UidNextAttribute *uidNext = c.attribute<UidNextAttribute>(); if (!uidNext) { cancelTask(i18n("Could not determine the UID for the newly created message on the server")); search->deleteLater(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/resourcestate.cpp new/kdepim-runtime-15.08.2/resources/imap/resourcestate.cpp --- old/kdepim-runtime-15.08.0/resources/imap/resourcestate.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/resourcestate.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -362,3 +362,8 @@ { m_resource->relationsRetrieved(relations); } + +void ResourceState::setItemMergingMode(Akonadi::ItemSync::MergeMode mode) +{ + m_resource->setItemMergingMode(mode); +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/resourcestate.h new/kdepim-runtime-15.08.2/resources/imap/resourcestate.h --- old/kdepim-runtime-15.08.0/resources/imap/resourcestate.h 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/resourcestate.h 2015-10-04 15:00:52.000000000 +0200 @@ -153,6 +153,8 @@ MessageHelper::Ptr messageHelper() const Q_DECL_OVERRIDE; + void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode); + private: ImapResourceBase *m_resource; const TaskArguments m_arguments; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/resourcestateinterface.h new/kdepim-runtime-15.08.2/resources/imap/resourcestateinterface.h --- old/kdepim-runtime-15.08.0/resources/imap/resourcestateinterface.h 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/resourcestateinterface.h 2015-10-04 15:00:52.000000000 +0200 @@ -26,6 +26,7 @@ #include <Collection> #include <Item> +#include <ItemSync> #include <kimap/listjob.h> @@ -125,6 +126,8 @@ virtual Akonadi::Relation::List addedRelations() const = 0; virtual Akonadi::Relation::List removedRelations() const = 0; + + virtual void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode) = 0; }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/resourcetask.cpp new/kdepim-runtime-15.08.2/resources/imap/resourcetask.cpp --- old/kdepim-runtime-15.08.0/resources/imap/resourcetask.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/resourcetask.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -591,3 +591,8 @@ } return KIMAP::Acl::None; } + +void ResourceTask::setItemMergingMode(Akonadi::ItemSync::MergeMode mode) +{ + m_resource->setItemMergingMode(mode); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/resourcetask.h new/kdepim-runtime-15.08.2/resources/imap/resourcetask.h --- old/kdepim-runtime-15.08.0/resources/imap/resourcetask.h 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/resourcetask.h 2015-10-04 15:00:52.000000000 +0200 @@ -140,6 +140,7 @@ virtual bool serverSupportsCondstore() const; int batchSize() const; + void setItemMergingMode(Akonadi::ItemSync::MergeMode mode); ResourceStateInterface::Ptr resourceState(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/imap/retrieveitemstask.cpp new/kdepim-runtime-15.08.2/resources/imap/retrieveitemstask.cpp --- old/kdepim-runtime-15.08.0/resources/imap/retrieveitemstask.cpp 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/imap/retrieveitemstask.cpp 2015-10-04 15:00:52.000000000 +0200 @@ -89,6 +89,16 @@ 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 @@ -377,7 +387,7 @@ } qCDebug(IMAPRESOURCE_LOG) << "Fetching complete mailbox " << mailBox; setTotalItems(messageCount); - retrieveItems(KIMAP::ImapSet(1, 0), scope, false, true); + retrieveItems(KIMAP::ImapSet(1, nextUid), scope, false, true); } else if (nextUid <= 0) { //This is a compatibilty codepath for Courier IMAP. It probably introduces problems, but at least it syncs. //Since we don't have uidnext available, we simply use the messagecount. This will miss simultaneously added/removed messages. @@ -420,7 +430,7 @@ qCWarning(IMAPRESOURCE_LOG) << "Detected inconsistency in local cache, we're missing some messages. Server: " << messageCount << " Local: " << realMessageCount; qCWarning(IMAPRESOURCE_LOG) << "Refetching complete mailbox."; setTotalItems(messageCount); - retrieveItems(KIMAP::ImapSet(1, 0), scope, false, true); + retrieveItems(KIMAP::ImapSet(1, nextUid), scope, false, true); } else if (nextUid > oldNextUid) { //New messages are available. Fetch new messages, and then check for changed flags and removed messages qCDebug(IMAPRESOURCE_LOG) << "Fetching new messages: UidNext: " << nextUid << " Old UidNext: " << oldNextUid; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/kolab/kolabresource.desktop new/kdepim-runtime-15.08.2/resources/kolab/kolabresource.desktop --- old/kdepim-runtime-15.08.0/resources/kolab/kolabresource.desktop 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/kolab/kolabresource.desktop 2015-10-04 15:00:52.000000000 +0200 @@ -65,6 +65,7 @@ Comment[pl]=Zapewnia dostęp do katalogów do pracy grupowej Kolab i poczty elektronicznej na serwerze Kolab IMAP. Comment[pt]=Oferece o acesso às pastas de 'groupware' e de e-mail num servidor IMAP do Kolab. Comment[pt_BR]=Fornece acesso as pastas groupware Kolab em de e-mail em um servidor IMAP Kolab. +Comment[ru]=Доступ к папкам совместной работы Kolab и к электронной почте на сервере IMAP от Kolab. Comment[sk]=Poskytuje prístup k priečinkom Kolab groupware a e-mailu na Kolab IMAP serveri. Comment[sl]=Omogoča dostop do Kolabovih map za skupinsko delo na strežniku IMAP. Comment[sr]=Омогућава приступ Колабовим групверским фасциклама и е‑пошти на Колабовом ИМАП серверу. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/maildir/libmaildir/CMakeLists.txt new/kdepim-runtime-15.08.2/resources/maildir/libmaildir/CMakeLists.txt --- old/kdepim-runtime-15.08.0/resources/maildir/libmaildir/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/maildir/libmaildir/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -14,4 +14,4 @@ set_target_properties(maildir PROPERTIES VERSION ${KDEPIMRUNTIME_LIB_VERSION} SOVERSION ${KDEPIMRUNTIME_LIB_SOVERSION} ) -install(TARGETS maildir ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS maildir ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/mixedmaildir/kmindexreader/CMakeLists.txt new/kdepim-runtime-15.08.2/resources/mixedmaildir/kmindexreader/CMakeLists.txt --- old/kdepim-runtime-15.08.0/resources/mixedmaildir/kmindexreader/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/mixedmaildir/kmindexreader/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -20,4 +20,4 @@ set_target_properties(kmindexreader PROPERTIES VERSION ${KDEPIMRUNTIME_LIB_VERSION} SOVERSION ${KDEPIMRUNTIME_LIB_SOVERSION} ) -install(TARGETS kmindexreader ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS kmindexreader ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/pop3/wizard/pop3wizard.desktop new/kdepim-runtime-15.08.2/resources/pop3/wizard/pop3wizard.desktop --- old/kdepim-runtime-15.08.0/resources/pop3/wizard/pop3wizard.desktop 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/pop3/wizard/pop3wizard.desktop 2015-10-04 15:00:52.000000000 +0200 @@ -24,6 +24,7 @@ Name[pl]=POP3 Name[pt]=POP3 Name[pt_BR]=POP3 +Name[ru]=POP3 Name[sk]=POP3 Name[sl]=POP3 Name[sr]=ПОП3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/shared/filestore/CMakeLists.txt new/kdepim-runtime-15.08.2/resources/shared/filestore/CMakeLists.txt --- old/kdepim-runtime-15.08.0/resources/shared/filestore/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/shared/filestore/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -34,7 +34,7 @@ set_target_properties(akonadi-filestore PROPERTIES VERSION ${KDEPIMRUNTIME_LIB_VERSION} SOVERSION ${KDEPIMRUNTIME_LIB_SOVERSION} ) -install(TARGETS akonadi-filestore ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS akonadi-filestore ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) if (BUILD_TESTING) add_subdirectory( autotests ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/shared/singlefileresource/CMakeLists.txt new/kdepim-runtime-15.08.2/resources/shared/singlefileresource/CMakeLists.txt --- old/kdepim-runtime-15.08.0/resources/shared/singlefileresource/CMakeLists.txt 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/shared/singlefileresource/CMakeLists.txt 2015-10-04 15:00:52.000000000 +0200 @@ -52,7 +52,7 @@ ) set_target_properties(akonadi-singlefileresource PROPERTIES VERSION ${KDEPIMRUNTIME_LIB_VERSION} SOVERSION ${KDEPIMRUNTIME_LIB_SOVERSION} ) -install(TARGETS akonadi-singlefileresource ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS akonadi-singlefileresource ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) if (BUILD_TESTING) add_subdirectory(autotests) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/shared/singlefileresource/singlefileresource.h new/kdepim-runtime-15.08.2/resources/shared/singlefileresource/singlefileresource.h --- old/kdepim-runtime-15.08.0/resources/shared/singlefileresource/singlefileresource.h 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/shared/singlefileresource/singlefileresource.h 2015-10-04 15:00:52.000000000 +0200 @@ -53,7 +53,7 @@ , mSettings(new Settings(componentData().config())) { // The resource needs network when the path refers to a non local file. - setNeedsNetwork(!QUrl::fromLocalFile(mSettings->path()).isLocalFile()); + setNeedsNetwork(!QUrl(mSettings->path()).isLocalFile()); } ~SingleFileResource() { @@ -80,7 +80,7 @@ return; } - mCurrentUrl = QUrl::fromLocalFile(mSettings->path()); + mCurrentUrl = QUrl(mSettings->path()); // path already has scheme if (mCurrentHash.isEmpty()) { // First call to readFile() lets see if there is a hash stored in a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/shared/singlefileresource/singlefileresourceconfigdialog.h new/kdepim-runtime-15.08.2/resources/shared/singlefileresource/singlefileresourceconfigdialog.h --- old/kdepim-runtime-15.08.0/resources/shared/singlefileresource/singlefileresourceconfigdialog.h 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/shared/singlefileresource/singlefileresourceconfigdialog.h 2015-10-04 15:00:52.000000000 +0200 @@ -42,7 +42,7 @@ : SingleFileResourceConfigDialogBase(windowId) , mSettings(settings) { - ui.kcfg_Path->setUrl(QUrl::fromLocalFile(mSettings->path())); + ui.kcfg_Path->setUrl(QUrl::fromUserInput(mSettings->path())); mManager = new KConfigDialogManager(this, mSettings); mManager->updateWidgets(); } @@ -50,7 +50,7 @@ protected: void save() Q_DECL_OVERRIDE { mManager->updateSettings(); - mSettings->setPath(ui.kcfg_Path->url().toLocalFile()); + mSettings->setPath(ui.kcfg_Path->url().toString()); mSettings->save(); } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepim-runtime-15.08.0/resources/vcard/wizard/vcardwizard.desktop new/kdepim-runtime-15.08.2/resources/vcard/wizard/vcardwizard.desktop --- old/kdepim-runtime-15.08.0/resources/vcard/wizard/vcardwizard.desktop 2015-08-10 23:01:02.000000000 +0200 +++ new/kdepim-runtime-15.08.2/resources/vcard/wizard/vcardwizard.desktop 2015-10-04 15:00:52.000000000 +0200 @@ -58,6 +58,7 @@ Comment[pl]=Wczytuje kontakty z pliku vCard Comment[pt]=Carrega um contacto de um ficheiro vCard Comment[pt_BR]=Carrega os contatos de um arquivo vCard +Comment[ru]=Загрузка контакта из файла vCard Comment[sk]=Načíta kontakt zo súboru vCard Comment[sl]=Naloži stik iz datoteke vCard Comment[sr]=Учитава контакт из в‑кард фајла