PC Mandriva 2010.2 i586 kde 4.8.4 akonadi 1.7.2 syncevolution-kde 1.3.99.3-2 funambol 10.0.3 Samsung SII Plus android 4.1.2 funv10 configuration *************************************************************************** [@localhost ~]$ syncevolution --version SyncEvolution 1.3.99.3 (pre-release) using libedataserver-1.2.so.13 using libebook-1.2.so.9 using libebook-1.2.so.9 using libecal-1.2.so.7 using libecal-1.2.so.7 using libbluetooth.so.3 Loading backend library /usr/lib/syncevolution/backends/platformgnome.so Loading backend library /usr/lib/syncevolution/backends/platformkde.so Loading backend library /usr/lib/syncevolution/backends/syncaddressbook.so Loading backend library /usr/lib/syncevolution/backends/syncakonadi.so Loading backend library /usr/lib/syncevolution/backends/syncdav.so Loading backend library /usr/lib/syncevolution/backends/syncebook.so Loading backend library /usr/lib/syncevolution/backends/syncecal.so Loading backend library /usr/lib/syncevolution/backends/syncfile.so Loading backend library /usr/lib/syncevolution/backends/synckcalextended.so Loading backend library /usr/lib/syncevolution/backends/syncmaemocal.so Loading backend library /usr/lib/syncevolution/backends/syncpbap.so Loading backend library /usr/lib/syncevolution/backends/syncqtcontacts.so Loading backend library /usr/lib/syncevolution/backends/syncsqlite.so Loading backend library /usr/lib/syncevolution/backends/syncxmlrpc.so [@localhost ~]$ ******************************************************************************* [@localhost ~]$ syncevolution --print-databases CalDAV: select database via absolute URL, set username/password to scan, set syncURL to base URL if server does not support auto-discovery (<path>) CalDAVTodo: select database via absolute URL, set username/password to scan, set syncURL to base URL if server does not support auto-discovery (<path>) CalDAVJournal: select database via absolute URL, set username/password to scan, set syncURL to base URL if server does not support auto-discovery (<path>) CardDAV: select database via absolute URL, set username/password to scan, set syncURL to base URL if server does not support auto-discovery (<path>) Evolution Address Book = Evolution Contacts = evolution-contacts: <<system>> (file:///home/roubach/.evolution/addressbook/local/system) <default> Evolution Calendar = evolution-calendar: <<system>> (file:///home/roubach/.evolution/calendar/local/system) Evolution Task List = Evolution Tasks = evolution-tasks: <<system>> (file:///home/roubach/.evolution/tasks/local/system) Evolution Memos = evolution-memos: KDE Address Book = KDE Contacts = kde-contacts: Contacts personnels (akonadi:?collection=2) <default> KDE Calendar = kde-calendar: Agenda personnel (akonadi:?collection=262) <default> Dates de naissance et anniversaires (akonadi:?collection=267) KDE Task List = KDE Tasks = kde-tasks: Agenda personnel (akonadi:?collection=262) <default> KDE Memos = kde-memos: Notes (akonadi:?collection=3) <default> [@localhost ~]$ ************************************************************************** command used to configure syncevolution --configure keyring=KDE addressbook/backend=kde-contacts addressbook/database=akonadi:?collection=2 calendar/backend=kde-calendar calendar/database=akonadi:?collection=262 todo/backend=kde-tasks todo/database=akonadi:?collection=262 @default addressbook calendar todo *************************************************************************** in the todo source .ini backend = KDE Task List database = akonadi:?collection=262 *************************************************************************** akonadi addressbook and calendar are well synchronized local calendar is a folder of vcs/ics files if i use syncevolution --print-items @default calendar then [@localhost ~]$ syncevolution --print-items @default calendar 100 101 102 ... 108 13713 13714 ... 17058 17131 98 99 [@localhost ~]$ but [roubach@localhost ~]$ syncevolution --print-items @default todo [roubach@localhost ~]$
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 <diane@ghic.org> 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 b/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 { public: AkonadiTaskSource(const SyncSourceParams ¶ms) - : 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 &revisions) { // copy all local IDs and the corresponding revision std::auto_ptr<ItemFetchJob> fetchJob(DisableAutoDelete(new ItemFetchJob(m_collection))); 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 when // syncing events) if (item.mimeType() == m_subMime.c_str()) { revisions[QByteArray::number(item.id()).constData()] = QByteArray::number(item.revision()).constData(); } } } 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());
>> Are you absolutely sure that akonadi:?collection=262 contains items? how to know this ? is there any tool to explore the akonadi db ? kde calendar and kde tasks have the same "262" collection number as you can see above (see syncevolution --print-databases result) >> Do you know how to use gdb or how to recompile SyncEvolution? - gdb : i hardly know it. - compile i only know to type ./configure , make , su -c "make install" if there is a pb i am lost >> the "sub mime type" was changed from "text/calendar" to the more specific >> "application/x-vnd.akonadi.calendar.todo" yes in the list of the file types associated to apps there is "application/x-vnd.akonadi.calendar.todo" perhaps to avoid futur pb it would be easier not to hardcode the mime/type and to have the ability to assign a value by the way of syncevolution cli tool.
(In reply to comment #2) > >> Are you absolutely sure that akonadi:?collection=262 contains items? > > how to know this ? is there any tool to explore the akonadi db ? There is a tool called akonadiconsole. Typically is packaged separately because only developers need it. I don't remember whether it shows individual items. There may be another check: syncevolution --export - @default calendar | grep -e BEGIN:VEVENT -e BEGIN:VTODO If you see BEGIN:VTODO, then the tasks in the collection are impossible to tell apart from events by their mime type, and therefore the SyncEvolution code needs to be changed. > kde calendar and kde tasks have the same "262" collection number as you can > see above (see syncevolution --print-databases result) Yes, that's why it is important that only VTODO items are used when acting as task source - the engine can only one or the other, but not both mixed in the same data source. > >> Do you know how to use gdb or how to recompile SyncEvolution? > > - gdb : i hardly know it. > > - compile > > i only know to type ./configure , make , su -c "make install" > if there is a pb i am lost Let's try the check above first.
$ syncevolution --export - @default calendar | grep -e BEGIN:VEVENT -e BEGIN:VTODO BEGIN:VEVENT BEGIN:VEVENT BEGIN:VEVENT ... BEGIN:VEVENT BEGIN:VEVENT BEGIN:VEVENT $ no BEGIN:VTODO
Created attachment 81173 [details] here is the sole task i recorded
Created attachment 81174 [details] here is the sole task i recorded (another try)
Created attachment 81176 [details] payload of the task
Created attachment 81177 [details] raw payload of the task
I just realized that the version you are using, 1.3.99.3, does not yet contain the patch that I mentioned. Change akonadisyncsource.h as shown in comment #1 and recompile. In other words, it should look like: AkonadiTaskSource(const SyncSourceParams ¶ms) : AkonadiSyncSource("application/x-vnd.akonadi.calendar.todo", params) Because of the incorrect type, the search for items of the right type never succeeds, leading to the empty list. I was thrown off track because I thought the incorrect type also (and only) prevented listing the task collections (that was the original error report), and that worked for you.
I believe this problem was fixed in 1.3.99.4. Please reopen if it persists.
i use the free version of funv10 10.1.3 i think this version does not take care of any task anyway it is only to make test; i don't use task feature thanks
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.