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 - [email protected]
+
+- 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 <control.h>
 #include <collection.h>
 #include <item.h>
+#include <itemdeletejob.h>
 #include <itemfetchjob.h>
 #include <itemfetchscope.h>
 #include <itemsync.h>
@@ -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) <[email protected]>\n"
 "Language-Team: Galician <[email protected]>\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 <[email protected]>\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 <[email protected]>\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 {


Reply via email to