Patrick Ohly changed bug 65998
What Removed Added

Comment # 1 on bug 65998 from
Thanks for the detailed setup log. That answers a lot of questions already. It
all looks good.

(In reply to comment #0)
> [roubach@localhost ~]$ syncevolution --print-items @default todo
> [roubach@localhost ~]$

Are you absolutely sure that akonadi:?collection=262 contains items?

Do you know how to use gdb or how to recompile SyncEvolution?

I have the suspicion that the items are found, but their mime type isn't what
is expected. In a recent commit, the "sub mime type" was changed from
"text/calendar" to the more specific "application/x-vnd.akonadi.calendar.todo",
because that is the type used by Akonadi to describe what kinds of items the
collection contains. See

commit 05fb1aebc3242c0cf734f18f0582df8cb05e0999
Author: Diane Trout <>
Date:   Thu Apr 25 10:07:25 2013 +0200

    KDE: fix Akonadi backend for tasks

    Because of a too generic mime type in SyncEvolution, task collections
    were not found.

diff --git a/src/backends/akonadi/akonadisyncsource.h
index 5c11ff9..6e88188 100644
--- a/src/backends/akonadi/akonadisyncsource.h
+++ b/src/backends/akonadi/akonadisyncsource.h
@@ -128,7 +128,7 @@ class AkonadiTaskSource : public AkonadiSyncSource
     AkonadiTaskSource(const SyncSourceParams &params)
-        : AkonadiSyncSource("text/calendar", params)
+        : AkonadiSyncSource("application/x-vnd.akonadi.calendar.todo", params)

Perhaps it uses that type for the collection and "text/calendar" for the items?
In that case, the following code will not find the tasks:

void AkonadiSyncSource::listAllItems(SyncSourceRevisions::RevisionMap_t
    // copy all local IDs and the corresponding revision
    std::auto_ptr<ItemFetchJob> fetchJob(DisableAutoDelete(new

    if (!fetchJob->exec()) {
        throwError("listing items");
    BOOST_FOREACH (const Item &item, fetchJob->items()) {
        // Filter out items which don't have the right type (for example, VTODO
        // syncing events)
        if (item.mimeType() == m_subMime.c_str()) {
            revisions[QByteArray::number(] =

You can check this theory by single-stepping through that function. Bonus
points for the output of "print item.mimeType()". Not sure whether gdb will be
able to call the function. In that case, recompile and add
         LOG_INFO(NULL, "item mime type: %s", item.mimeType());

You are receiving this mail because: