Skip to content

{ Monthly Archives } April 2010

Linux Desktop

The source of SyncEvolution should be compatible with any Evolution release since 2.0. The packages prepared for regular releases >= 0.9 are compiled on a Ubuntu Hardy 8.04 LTS system (32 and 64 bit x86), and tested with different versions of Evolution. The binaries should run on all distributions that are more recent than Ubuntu Hardy and have a compatible Evolution.

Evolution Release GNOME Linux Distributions Library Dependencies
2.6.1 2.14 Ubuntu 6.06 (Dapper) libedataserver1.2-7, libecal1.2-3, libebook1.2-5
2.6.3 (Debian 4.0) 2.14 Debian 4.0 (Etch) libedataserver1.2-7, libecal1.2-6, libebook1.2-5
2.8.x 2.16 Ubuntu 6.10 (Edgy) libedataserver1.2-7, libecal1.2-7, libebook1.2-9
2.10.x 2.18 Ubuntu 7.04 (Feisty) libedataserver1.2-9, libecal1.2-7, libebook1.2-9
2.12.x 2.20 Ubuntu 7.10 (Gutsy)
2.22.x 2.22 Ubuntu 8.04 (Hardy)
2.24.x 2.24 Ubuntu 8.10 (Intrepid) libedataserver1.2-11, libecal1.2-7, libebook1.2-9
> 2.24 should work as long as EDS remains backwards-compatible; SyncEvolution binaries no longer link directly against specific EDS libraries

KDE is supported indirectly via the SyncEvolution file backend, which synchronizes items stored as single files inside a directory. That format is supported by KDE PIM. An old blog post contains some information and links about this. The SyncEvolution source code contains a “akonadi” branch with a database backend that talks directly to Akonadi, the PIM storage in KDE 4.x, but it needs a maintainer and more work to be usable. Perhaps a Google Summer of Code 2010 project will enhance it and SyncEvolution’s integration into KDE.

Known Issues

Evolution GUI

When importing or updating a contact from the server, some telephone numbers might only be displayed in the contact summary after editing the contact once. Evolution 2.0.4 till 2.6.3, ContactSync::testMerge test. Starting with SyncEvolution 0.4, this is solved by modifying the contact in the same way as the internal editor does. If it still fails, the server might send phone numbers without setting their type correctly.

End date of recurring events

Older versions of Evolution (like 2.0.4) use an Evolution-specific extension of iCalendar 2.0 to mark the end data of a recurring event. SyncEvolution makes no attempts to translate that into something that servers like eGroupware understand . This will not be added because this problem can be avoided by updating Evolution. Since at least version 2.6.3, Evolution uses the normal end date parameter.

Removing a recurrence not synchronized

The file backend of Evolution Data Server <= 2.27.5 does not increase the LAST-MODIFIED property of a recurring event when removing specific recurrences, therefore SyncEvolution does not recognize the event as modified and thus does not update the server. A fix for this is expected to be included in Evolution 2.28.

Adding timezone to Evolution

Evolution has a problem when SyncEvolution receives a calendar event with a new timezone definition. SyncEvolution adds the definition to the Evolution database, but an already running Evolution crashes, when trying to open the new event. Restarting Evolution solves that problem. The problem was found in Evolution 2.0.4, but has been resolved since.

Creating new address book

In Evolution, an address book has to be viewed once in Evolution after creating it (observed in 2.0.4). Otherwise, accessing it in SyncEvolution fails with:

[ERROR] addressbook: opening address book: EBookStatus returned 19

gconf required

In an installation of Evolution, the libraries used by SyncEvolution crash unless the gconfd was started earlier, for instance, by logging into GNOME or running the Evolution GUI (observed with

SyncEvolution 1.0 beta 3 released

SyncEvolution 1.0 beta 3 is available. This release is feature complete and has been tested thoroughly, so only minor bug fixes are expected before releasing 1.0. Beta 3 is ready for day-to-day use and for getting packaged in staging distros as replacement for 0.9.2 or previous betas. If you find issues, please report them.

Binary packages are provided, including Bluetooth support. Major improvements:

  • automatic, time-driven synchronization in the background
  • command line integrates properly into the daemon concept
  • full support for suspend&resume and message resend when using SyncEvolution as client and server
  • compatible with more phones
  • a tool to determine a working configuration for a phone automatically (”syncevo-phone-config”)

Because the release of 1.0 is close, the documentation on is getting updated to cover it. A Wiki was set up as part of the site to simplify the editing of certain pages, in particular HOWTOs and compatibility reports.

Call for action: test with your phone and report which config works and how well.


Automatic synchronization is supported by the syncevo-dbus-server (MB #6378). When that is installed, it will be started as part of a user session and keep running to trigger syncs in the background. Notifications are emitted when syncs start, end or fail (MB #10000).

Automatic synchronization can be enabled separately for each peer (”autoSync=0/1″, off by default), will be done at regular intervals (”autoSyncInterval=30″ minutes) when online long enough (”autoSyncDelay=5″ minutes). That last option ensures that a) an automatic sync does not attempt to use a network connection unless it was already active and b) hopefully is also around long enough to complete the sync.

Detecting online status depends on ConnMan. Without it, SyncEvolution assumes that the network is available. For Bluetooth it is enough to have a peer paired.

When SyncEvolution is compiled with a backend sync daemon (”syncevo-dbus-server”), then conceptually that daemon controls the configuration and coordinates manually and automatically started sync sessions. Previously, the command line tool bypassed the daemon by running operations itself. Now it can hand over the command line parameters to the daemon to be executed there (”–daemon=yes”, the default if the daemon is available; MB #5043). Command line parameters and output of “syncevolution” are the same as before. Note that the daemon only runs one operation at a time, which delays the command line client when the daemon is busy. For testing purposes (like running a client which talks to a local server in the daemon) it is still possible to ignore the daemon (–daemon=no).

Thanks to fixes and improvements in both Synthesis engine and SyncEvolution, suspend and resume are fully supported in client and server (MB #2425). Previously it failed in some cases, as mercilessly exposed by our automated testing. Now all of these tests pass. The HTTP server now also handles message resends by clients correctly.

Direct synchronization with older phones (like Sony Ericsson K750i) can be started now by switching to an older version of the SyncML standard (”SyncMLVersion” property, MB #9312). No further interoperability testing with such phones has been done at this time. When acting as client, that same property allows talking to older SyncML servers, like

A minor workaround and the right configuration make it possible to synchronize with Nokia N85 and probably also other S60 devices. Added a template for “Nokia S60″. Also made the template for “Nokia N900″ accessible in the GTK GUI.

Because determining which configuration works for a phone involves a lot of trial-and-error, the new “syncevo-phone-config” script automates that process.

Other changes:

  • (and other, similar services): fix vCalendar 1.0 alarm specifications before importing them (MB #10458)
  • Nokia N900: added a config template for it and disabled the redundant RespURI when using Bluetooth. Preliminary testing shows that this solves some of the issues seen before (MB #10224).
  • workaround for Evolution 2.30: “timezone cannot be retrieved because it doesn’t exist” is triggered incorrectly when importing non-standard timezone definitions because libecal change an error code (MB #9820)
  • “syncevo-http-server” HTTP server script is included in normal install
  • binaries: finally solved the libbluetooth3 incompatibility (MB #9289). Binaries of beta 2 crashed on more recent distros because of that.
  • SyncML client and Bluetooth: a mobile device running SyncEvolution creates a configuration automatically (MB #6175). The peer contacting us has to use the standard SyncEvolution URIs (addressbook, calendar, todo, memo).
  • command line: when dealing with the shared non-peer part of a config, it checks for properties which are unsuitable only prints those (MB #8048)
  • GTK GUI: improved setup of devices, automatic sync switch, some fixes for crashes and other tweaks
  • Nokia 7210c: send time as UTC instead of relying on time zone information (MB #9907).
  • command line: setting up a configuration for a “SyncEvolution” server on a client was not possible because the “SyncEvolutionClient” configuration was picked instead (MB #10004). The latter has to be used when configuring a SyncEvolution server to talk to a SyncEvolution client.
  • restore: no longer updates the time of the backup (MB #9963)
  • various minor improvements and fixes, see ChangeLog


  • The new “RetryInterval” property causes messages to be resent after 2 minutes (increased from 1 minute in previous 1.0 betas). At least the Funambol server is known to not handle this correctly in all cases ( So in the Funambol config template the interval is set to zero, disabling the feature. Enabling or disabling the feature must be done manually in existing configurations.

Source, Installation, Further information

Source snapshots are in

i386, amd64 and lpia binaries of 1.0 beta 3 for Debian-based distributions are available via the “unstable” repository. Add the following entry to your /apt/source.list, then install “syncevolution-evolution”:

These binaries include the new “sync-ui” GTK GUI and were compiled for Ubuntu 8.04 LTS (Hardy). Older distributions like Debian 4.0 (Etch) can no longer be supported with precompiled binaries because of missing libraries, but the source still compiles when not enabling the GUI (the default).

The same binaries are also available as .tar.gz and .rpm archives in In contrast to 0.8.x archives, the 1.0 .tar.gz archives have to be unpacked and the content must be moved to /usr, because several files would not be found otherwise.

After installation, follow the getting started steps.

Phone Compatibility Template

To report your experience with a specific phone, edit this page to see its source, copy the text below, then create a new Wiki page.

Key Value
Phone manufacturer
Phone model
Phone firmware version
Data that can be synchronized contacts/events/tasks/memos
Data that has problems contacts/events/tasks/memos
SyncEvolution version 1.0 beta 3/1.0/…
SyncEvolution platform Linux desktop/MeeGo Netbook/…
SyncEvolution backend Evolution/as plain files/…
Configuration template included in SyncEvolution: no/no, but template xyz works/yes, since version xxx
Tested by full name/alias, email optional


Your comments here…

Configuration template:

If no existing template works, please write one manually based on your testing. This can be automated using syncevo-phone-config –create-template=”template-name”, then copy the output of the following command: for i in $(find “template-name” -type f | sort); do echo === $i ===; cat $i; done

template goes here...

Not dead – quite the opposite

This blog has been very quite for a year. All news about SyncEvolution got posted over at
Because that work keeps me busy and I tend to not blog about private activities, there wasn’t (and still isn’t) much else to report here.
To those who want to keep informed about SyncEvolution and everything else that I [...]