Last update: 09/07/2005

Welcome

This page is mainly intended for developpers willing to help with KSyncML. I hope it will soon become usable for end users too.

Update: 09/07/2005

It seems OpenSync if finally taking up (with some preliminary SyncML support). There is also an idea to use it directly inside KDE. And given the fact that KSyncML has stalled since some time, please consider this project dead. I just hope I will find some time to help with OpenSync now...


Menu:

News
What is it?
What does it provide?
What will it provide?
How to use it?
Ressources

News

14/03/2005

Major updates to the konnector:

As usual, get the new release.

13/03/2005

One more breakeage of kdepim (another abstract function to override). Fixed. Please install the new release.

22/02/2005

KSyncML compiles with the latest KDEPIM now. Sorry for troubles.

12/12/2004

As promised: deleting of the data (only on the remote side) works now.

11/12/2004

I have uploaded the new version of the konnector. It starts to be usable: it works quite nicely with the contact database of a P900. You can modify and add contacts on both sides and it works! Deleting is not implemented yet, but it won't be too complicated.
Please, use the multisynk frontend when testing the konnector (and reporting the bugs). I have encountered many problems with kitchensync that simply went away when multisynk entered the scene.

28/10/2004

A big update: KSyncML works now with CVS HEAD of KDEPIM. The code has been cleaned up and debugged a little bit. The code is tested with a P900 and it does not crash the phone ;+).
Unfortunately, there are some problems with "Map" handling, so the upload of contacts to the device has been disabled. I am still working on it, though.

15/08/2004

A very first ultra alpha is available. It only synchronizes the addressbook data, and it tries to do it reasonably well: it forces the full upload of data, and it handles more or less correctly all cases. The "Map" command handling is also implemented, so you shouldn't get any duplicates during the subsequent syncs. The local database is stored in ~/.kitchensync/KSyncML/...

What is it?

The KSyncML is a SyncML Konnector for Kitchensync.

The SyncML is a protocol invented by Nokia, Ericsson and others in order to provide a standard platform for synchronizing various data between various devices. Theoreticaly it is possible to synchronize anything using SyncML. The current devices however, use it mainly for all kind of PIM (Personal Information Management) data: calendars, contacts and so on....

Kitchensync is the synchronization program and framework for the KDE PIM suite. The current stable version is 0.0.6, but there is a lot of things going in the KDE CVS tree and we target this version for KSyncML development.
A "konnector" is a plugin for KitchenSync allowing it to connect to a specific device.

KSyncML is heavily based on an old, abandoned open-source project LibSyncML. LibSyncML was based on CommonC++ library and the STL. As of today, there is no more dependency to CommonC++, and the source is going to be gradually (very gradually) migrated from STL to a pure Qt/KDE code.

The main changes in respect to LibSyncML (just in case you care) are:

What does it provide?

What will it provide?

In my opinion the roadmap is to make an HTTP server that implements the complete slow sync implementation for contacts and organizer databases as soon as possible. Then, we can concentrate on other (also important) features. This is mainly because at least at first, the main users of SyncML in KDE would be the owners of phone-organizers (P900, N9210) connected locally (which means we don't care about bandwith and we don't care about security).

Please treat this as a TODO list in more or less descending order of priorities.

Howto

I hope this will make a way into the official KDEPIM CVS, but in the meanwhile, take the sources from here. Unpack the tarball to kdepim/kitchensync/libkonnector2/plugins/. Change the Makefile.am file in kdepim/kitchensync/libkonnector2/plugins/ to add "syncml" at the end of the line "SUBDIRS". Reconfigure, recompile.Make a backup of your data! Enjoy.

The Konnector is pretty verbose, so you can more or less easily guess what's going on. There is also a #define DUMP_SESSION_DATA in mlhttpserver.cpp, if defined (by default), all XML data going from the client to the session object and vice-versa will be logged to a file "ksyncml.log" in the current directory. Absolutely needed when reporting problems.

Please report any problems to the Kde-pim mailing list, or directly to me.
Maciek Borowka

Ressources

I really advice you to explore the Developer Works content searching for SyncML. There is quite a lot of high-quality material there.