Open Source, All Things Android, (Astro) Photography and Personal Opinion.

Menu

GSoC updates: the client agent

This follow-up post is about my proceedings for my GSoC project to integrate SyncML support in Akonadi. This consists basically of two parts, a server agent and a client agent. The former allows other devices to talk to your Akonadi server while the latter let’s your Akonadi server speak with others. Quite simple? Not really, SyncML is a complex and error-prone beast. That said, the server component might take some time to be ready, but the client agent is actually useful now. So let’s have a little test session!

The following stuff is pretty low-level, requires some compiler/shell knowledge, a KDE development environment set up and is not intended for end-users. Still there?

Compilation
If you have your KDE development environment up and running, just checkout trunk/playground/pim/syncml from KDE SVN. You need to have libfunambol installed, which you can either compile for yourself from source our use a package from that repository (a patched libsyncml is available too, if you want to build the server agent). Not much to say here, just build and install it.

Setup
If you’ve reached this step you now should be able to add a SyncML client agent in the Akonadi resource configuration control module (system settings -> advanced tab -> akonadi configuration):

If you did so, you should now be presented with the following configuration dialog:

There you can setup the remote server (speak web-service) you want to sync with. Your job is basically to decide what parts of your PIM-data you want to be synced (contacts, calendar, etc.) and how to match the corresponding local Akonadi resource with the remote database on the server. Some more advanced values will be exposed soon, SyncML has gazillions of options available! Here are some possible values to toy with:

Rumors have it that some Google services are also SyncML-capable but I don’t know the settings needed. Feel free to post a comment if you know something here. As a sidenote, you can actually have multiple agents for several remote sides in parallel.

Showtime!
For now all that stuff lacks a GUI, there’s some initial work on a KControl module but for now we have to communicate via D-Bus with the client agent. The same is true for visual feedback. The agent is able to tell you whether the sync succeeded or not. If you want to know more, you have to watch Akonadi’s debug output for now. Fire up a terminal and enter the following stuff:

I have some trouble making this work. Installation of libfunambol and syncml-client work great and after a restart of the Akonadi server, I also can add the SyncML Client Agent.

I paste the correct settings (same as on my phone) and then want to set the local contact resource (I use a std.vcf file and have configured it in Akonadi). But when I click on the floppy icon, the new window which should contain a list of resources is empty.
When I use an older version of the agent, clicking “OK” will colour the missing resource red but clicking on the floppy icon again will give me no choice of resources.

When I uncheck all resources (no contacts, events, todos or noted), and click “OK”, no new entry will show up in the Akonadi list.

I’ve seen some Wrap up’s from other GSoC students. But this project I’m eager to hear about remains quiet ;(

No, just kidding, but can you give a status update? I know the GSoC period is over now and there’s still a lot to do for this project. I can’t code myself, but it might get the attention of some others?

Hi and thanks for your work on this. I was able to sync my contacts from my computer to my phone over Funambol, which was quite nice considering that I just lost all my data as I had to full-reset my phone.

This was using Fedora 11 with KDE 4.3, with homecompiled syncml client and the libfunambol package offered in the repository you linked.

Wow, just found this page and am deeply impressed how far the thing iwas dreaming about already got… But do you know about the “akunambol” project (somewhat around end 2008) which also tried to make a funambol/syncml-client for akonadi???

Hello, I installed both funambol and the syncML client, but when I go to Akonadi and the client, nothing happens. It closes the add screen, but no config dialog comes up and it is not listed in the resource list. Any ideas?

Nope, it certainly won’t. First of all we’re already past the feature freeze, furthermore the code is just not ready yet. I haven’t had the time to improve it much recently, however this will change soon.

Hi, I also managed to install your Plugin on Gentoo with kde-4.3.4. But when I close the config dialog, it doesn’t show up in the Resource List, though it is apparently present: qdbus shows a new instance oforg.freedesktop.Akonadi.Agent.akonadi_syncmlclient_agent_ each time I close the config dialog.

But when I issue the dbus command at the console, the KDE Crash Handler shows up and reports a segfault in akonadi_syncmlclient_agent, and at the konsole appears:

Error: org.freedesktop.DBus.Error.NoReply
Message did not receive a reply (timeout by message bus)

It certainly won’t make it for KDE-4.4, it simply isn’t ready for that, yet. Furthermore I’m in the middle of adapting to a different SyncML backend. If you want to test it, you have to build it from source (it’s found under playground/pim/syncml in KDE SVN).

Sascha, does version from svn works successfully on kde 4.4 or it isn’t ready for normal work at now?
I didn’t try to compile from sources before, but I try to start with your package, because I very needs to SyncML sync my mobile contacts and KDE addressbook.

As I said, it can be used and (mostly) works but it is not ready for productive use, it could even eat your contacts, who knows. Be sure to have a backup ready before trying it. I promise to continue work after christmas *g*

Hello, I installed funambol and the syncML client. I open Akonadi and the syncml client appears to be added. The configuration dialog opens and I can write on it,but when I push “ok” in this dialog, it is not listed in the resource list. I don’t get any error message, simply nothing happens. What could be wrong? Thank you!

Hi Sascha,
I’d really like to use your tool, but I can’t even get akonadi to show it.
I installed funambol, even installed the libfunambol from your repository (aliened it do kubuntu), checked out the source and moved it to /opt/kcmsync.
Ran cmake, make, make install.
Did I do something terribly wrong?