Hello community,
here is the log from the commit of package akonadi-server for openSUSE:Factory checked in at 2017-11-16 14:18:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/akonadi-server (Old)
and /work/SRC/openSUSE:Factory/.akonadi-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "akonadi-server"
Thu Nov 16 14:18:33 2017 rev:36 rq:540801 version:17.08.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/akonadi-server/akonadi-server.changes 2017-10-23 16:26:17.412516441 +0200
+++ /work/SRC/openSUSE:Factory/.akonadi-server.new/akonadi-server.changes 2017-11-16 14:18:33.943475625 +0100
@@ -1,0 +2,11 @@
+Thu Nov 09 23:10:40 CET 2017 - lbeltrame@kde.org
+
+- Update to 17.08.3
+ * New bugfix release
+ * For more details please see:
+ * https://www.kde.org/announcements/announce-applications-17.08.3.php
+- Changes since 17.08.2:
+ * akonaditest: port "app.disableSessionManagement" to Qt5
+ * ItemSync: speed up by not using takeFirst().
+
+-------------------------------------------------------------------
Old:
----
akonadi-17.08.2.tar.xz
New:
----
akonadi-17.08.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ akonadi-server.spec ++++++
--- /var/tmp/diff_new_pack.WxSOaT/_old 2017-11-16 14:18:34.595452019 +0100
+++ /var/tmp/diff_new_pack.WxSOaT/_new 2017-11-16 14:18:34.599451874 +0100
@@ -20,7 +20,7 @@
%define rname akonadi
Name: akonadi-server
-Version: 17.08.2
+Version: 17.08.3
Release: 0
%define kf5_version 5.26.0
# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
++++++ akonadi-17.08.2.tar.xz -> akonadi-17.08.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/CMakeLists.txt new/akonadi-17.08.3/CMakeLists.txt
--- old/akonadi-17.08.2/CMakeLists.txt 2017-10-10 02:15:20.000000000 +0200
+++ new/akonadi-17.08.3/CMakeLists.txt 2017-11-07 02:24:58.000000000 +0100
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.0)
-set(PIM_VERSION "5.6.2")
+set(PIM_VERSION "5.6.3")
project(Akonadi VERSION ${PIM_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/autotests/libs/itemsynctest.cpp new/akonadi-17.08.3/autotests/libs/itemsynctest.cpp
--- old/akonadi-17.08.2/autotests/libs/itemsynctest.cpp 2017-10-04 14:21:04.000000000 +0200
+++ new/akonadi-17.08.3/autotests/libs/itemsynctest.cpp 2017-10-29 08:18:48.000000000 +0100
@@ -24,6 +24,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -49,7 +50,7 @@
private:
Item::List fetchItems(const Collection &col)
{
- qDebug() << col.remoteId();
+ qDebug() << "fetching items from collection" << col.remoteId() << col.name();
ItemFetchJob *fetch = new ItemFetchJob(col, this);
fetch->fetchScope().fetchFullPayload();
fetch->fetchScope().fetchAllAttributes();
@@ -575,6 +576,62 @@
syncer->deliveryDone();
QTRY_COMPARE(spy.count(), 1);
}
+
+ void testFullSyncManyItems()
+ {
+ const Collection col = Collection(collectionIdFromPath(QStringLiteral("res2/foo2")));
+ QVERIFY(col.isValid());
+
+ Akonadi::Monitor monitor;
+ monitor.setCollectionMonitored(col);
+ QSignalSpy addedSpy(&monitor, SIGNAL(itemAdded(Akonadi::Item,Akonadi::Collection)));
+ QVERIFY(addedSpy.isValid());
+
+ const int itemCount = 1000;
+ for (int i = 0; i < itemCount; ++i) {
+ Item item(QStringLiteral("application/octet-stream"));
+ item.setRemoteId(QStringLiteral("rid") + QString::number(i));
+ item.setGid(QStringLiteral("gid") + QString::number(i));
+ item.setPayload<QByteArray>("payload1");
+ ItemCreateJob *job = new ItemCreateJob(item, col);
+ AKVERIFYEXEC(job);
+ }
+
+ QTRY_COMPARE(addedSpy.count(), itemCount);
+ addedSpy.clear();
+
+ const Item::List origItems = fetchItems(col);
+
+ //Since the item sync affects the knut resource we ensure we actually managed to load all items
+ //This needs to be adjusted should the testdataset change
+ QCOMPARE(origItems.size(), itemCount);
+
+ QSignalSpy deletedSpy(&monitor, SIGNAL(itemRemoved(Akonadi::Item)));
+ QVERIFY(deletedSpy.isValid());
+ QSignalSpy changedSpy(&monitor, SIGNAL(itemChanged(Akonadi::Item,QSet<QByteArray>)));
+ QVERIFY(changedSpy.isValid());
+
+ QBENCHMARK {
+ ItemSync *syncer = new ItemSync(col);
+ syncer->setTransactionMode(ItemSync::SingleTransaction);
+ QSignalSpy transactionSpy(syncer, SIGNAL(transactionCommitted()));
+ QVERIFY(transactionSpy.isValid());
+ syncer->setFullSyncItems(origItems);
+ AKVERIFYEXEC(syncer);
+ QCOMPARE(transactionSpy.count(), 1);
+ }
+
+ const Item::List resultItems = fetchItems(col);
+ QCOMPARE(resultItems.count(), origItems.count());
+ QTest::qWait(100);
+ QCOMPARE(deletedSpy.count(), 0);
+ QCOMPARE(addedSpy.count(), 0);
+ QCOMPARE(changedSpy.count(), 0);
+
+ // delete all items; QBENCHMARK leads to the whole method being called more than once
+ ItemDeleteJob *job = new ItemDeleteJob(resultItems);
+ AKVERIFYEXEC(job);
+ }
};
QTEST_AKONADIMAIN(ItemsyncTest)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/autotests/libs/testrunner/main.cpp new/akonadi-17.08.3/autotests/libs/testrunner/main.cpp
--- old/akonadi-17.08.2/autotests/libs/testrunner/main.cpp 2017-10-04 14:21:04.000000000 +0200
+++ new/akonadi-17.08.3/autotests/libs/testrunner/main.cpp 2017-10-29 08:18:48.000000000 +0100
@@ -30,6 +30,7 @@
#include <QApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>
+#include <QSessionManager>
static SetupTest *setup = nullptr;
static TestRunner *runner = nullptr;
@@ -78,7 +79,11 @@
parser.process(app);
aboutdata.processCommandLine(&parser);
- //QT5 app.disableSessionManagement();
+ auto disableSessionManagement = [](QSessionManager &sm) {
+ sm.setRestartHint(QSessionManager::RestartNever);
+ };
+ QObject::connect(qApp, &QGuiApplication::commitDataRequest, disableSessionManagement);
+ QObject::connect(qApp, &QGuiApplication::saveStateRequest, disableSessionManagement);
if (parser.isSet(QStringLiteral("config"))) {
Config::instance(parser.value(QStringLiteral("config")));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/po/gl/libakonadi5.po new/akonadi-17.08.3/po/gl/libakonadi5.po
--- old/akonadi-17.08.2/po/gl/libakonadi5.po 2017-10-10 02:15:19.000000000 +0200
+++ new/akonadi-17.08.3/po/gl/libakonadi5.po 2017-11-07 02:24:56.000000000 +0100
@@ -15,7 +15,7 @@
"Project-Id-Version: libakonadi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2017-09-23 05:36+0200\n"
-"PO-Revision-Date: 2017-10-04 21:00+0100\n"
+"PO-Revision-Date: 2017-10-22 17:20+0100\n"
"Last-Translator: Adrián Chaves (Gallaecio) \n"
"Language-Team: Galician \n"
"Language: gl\n"
@@ -1484,7 +1484,7 @@
"the Akonadi server installed."
msgstr ""
"O programa «akonadictl» debe estar accesíbel mediante $PATH. Verifique que "
-"ten instalado o servidor Akonadi."
+"ten o servidor Akonadi instalado."
#: widgets/selftestdialog.cpp:405
#, kde-format
@@ -1685,7 +1685,7 @@
#: widgets/selftestdialog.cpp:508
#, kde-format
msgid "No previous Akonadi server error log found."
-msgstr "Non se atopou ningún rexistro anterior de erros do servidor Akonadi"
+msgstr "Non se atopou ningún rexistro anterior de erros do servidor Akonadi."
#: widgets/selftestdialog.cpp:509
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/po/zh_CN/akonadi_knut_resource.po new/akonadi-17.08.3/po/zh_CN/akonadi_knut_resource.po
--- old/akonadi-17.08.2/po/zh_CN/akonadi_knut_resource.po 2017-10-10 02:15:20.000000000 +0200
+++ new/akonadi-17.08.3/po/zh_CN/akonadi_knut_resource.po 2017-11-07 02:24:58.000000000 +0100
@@ -8,7 +8,7 @@
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2016-11-19 20:17+0100\n"
-"PO-Revision-Date: 2017-09-30 17:48-0400\n"
+"PO-Revision-Date: 2017-10-19 10:50-0400\n"
"Last-Translator: guoyunhebrave \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/po/zh_CN/libakonadi5.po new/akonadi-17.08.3/po/zh_CN/libakonadi5.po
--- old/akonadi-17.08.2/po/zh_CN/libakonadi5.po 2017-10-10 02:15:20.000000000 +0200
+++ new/akonadi-17.08.3/po/zh_CN/libakonadi5.po 2017-11-07 02:24:58.000000000 +0100
@@ -8,7 +8,7 @@
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2017-09-23 05:36+0200\n"
-"PO-Revision-Date: 2017-09-30 17:48-0400\n"
+"PO-Revision-Date: 2017-10-19 10:50-0400\n"
"Last-Translator: guoyunhebrave \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-17.08.2/src/core/itemsync.cpp new/akonadi-17.08.3/src/core/itemsync.cpp
--- old/akonadi-17.08.2/src/core/itemsync.cpp 2017-10-04 14:21:04.000000000 +0200
+++ new/akonadi-17.08.3/src/core/itemsync.cpp 2017-10-29 08:18:48.000000000 +0100
@@ -344,9 +344,10 @@
if (mRemoteItemQueue.size() >= mBatchSize || mDeliveryDone) {
//we have a new batch to process
const int num = qMin(mBatchSize, mRemoteItemQueue.size());
- for (int i = 0; i < num; i++) {
- mCurrentBatchRemoteItems << mRemoteItemQueue.takeFirst();
- }
+ mCurrentBatchRemoteItems.reserve(mBatchSize);
+ std::move(mRemoteItemQueue.begin(), mRemoteItemQueue.begin() + num, std::back_inserter(mCurrentBatchRemoteItems));
+ mRemoteItemQueue.erase(mRemoteItemQueue.begin(), mRemoteItemQueue.begin() + num);
+
mCurrentBatchRemovedRemoteItems += mRemovedRemoteItemQueue;
mRemovedRemoteItemQueue.clear();
} else {