Skip to content

SyncEvolution 0.8 alpha 1

I have prepared a first snapshot of what is going to become release 0.8. In contrast to previous pre-releases this one is still a bit rough and I am skipping some manual testing in order to get it out before leaving for a two-week business trip. But some people have asked for features that are only in the development tree, so I don’t want to keep them waiting any longer. If 0.7 works for you, then please don’t upgrade yet unless you want to help testing the new release. Please report problems in the bug tracker and add a comment here so that it others have an easier time keeping track of the state of 0.8.

Changes in 0.8

  • New configuration file layout: following the recommendation, new configurations are stored in $XDG_CONFIG_HOME/syncevolution or $HOME/.config/syncevolution if XDG_CONFIG_HOME is not set. The old layout under $HOME/.sync4j/evolution is still supported.
  • New command line options: new configurations can be created by syncevolution itself (--configure), including setting of all configuration properties (--sync-property, --source-property). The configuration can dumped to stdout (--print-config), with or without comments explaining each property (--quiet). See the README for details.
  • The evolutionsource source property no longer has to be configured. If left blank, the default client database will be synchronized.
  • Selecting which kind of data is to be synchronized under a specific source name is a lot easier now and the same on all supported platforms: the SyncEvolution backends can be selected via aliases (e.g. “contacts”) and the format is specified via an optional MIME type (e.g. “contacts:text/x-vcard”). In the unlikely situation that multiple backends are active which can synchronize the same kind of data, then the right one can be selected by the unique name of the backend (e.g. “Evolution Address Book”).
  • New configurations automatically get a random client ID string. Setting it manually is still possible, but no longer necessary.
  • All passwords can be read from stdin at runtime or an environment variable (see --sync-property password=? or README for details). Both avoids the less secure storing of plain text passwords in the configuration files (SF #1832458).
  • Detached recurrences: meeting series where some occurrences were modified are now supported. Previously only the main event was synchronized. All exceptions got lost when copying back from the server.
  • Time zone support: the time zones of incoming events are mapped to native time zone definitions whenever possible. Currently this works if the TZID follows the Olson naming scheme with a location at the end. Matching the time zone has the advantage of being able to update the time zone definition without having to recreate the event. If matching fails and the VTIMEZONE definition differs from one already imported earlier, then SyncEvolution works arounds limitation in Evolution by renaming the time zone. Previously the new event used the old and most likely out-dated time zone definition.
  • On Maemo/Nokia Internet Tablets, calendar synchronization now works because the new calendar change tracking no longer depends on some of the backend calls which used to fail (SF #1734977).
  • Added SSL configuration options: certificate checking can be relaxed or disabled completely (SF #1852647).
  • Adding support for new local data sources is easier now. The SyncEvolution frame work itself never depended on GNOME or Evolution, only the Evolution data sources did. If you want support for other ways of storing your data, consider writing a new data source – it is really simple. See EvolutionSyncSource or TrackingSyncSource for details.
  • Messages are printed to the screen immediately. More readable log file format.
  • Various other minor changes and fixes.

Switching between alpha and stable release

This version introduces a new, simplified configuration layout. Old configurations still work. They can be converted to the new format via a new --migrate command line option.

This version also uses a different change tracking for calendars, task lists and memos. After switching from a previous release to the current one or vice versa, do a syncevolution --sync --refresh-from-server once to reset the change tracking. Not doing so can result in applying the same changes to the server multiple times and thus duplicates.


Installation is done almost as described for the the stable release. But because I don’t want users of the stable version to pick up the alpha version accidentally, you need to use different repositories:


This is the biggest difference compared to 0.7, and hopefully a big step forward: on all platforms a single command is enough to create a fully operational configuration: syncevolution --configure --sync-property username=<your SyncML account name> --sync-property password=<SyncML account password> <server name>. A unique device ID is chosen automatically. “addressbook”, “calendar”, “memo”, “todo” sources are enabled if possible and use the default local database. No more editing of config files…

syncevolution --template ? prints a list of built-in server templates. The example configurations still included in the distribution are no longer needed and will be removed.

To review the configuration, use syncevolution --print-config <server name>. There are several other configuration options which might be of interest, for example proxy and the new SSL settings. Those can be changed using the same syntax as for creating the initial configuration.

Known Problems

When testing detached recurrences with ScheduleWorld it turned out that ScheduleWorld accepted the events, but didn’t forward them to other clients. This is still under investigation.

Regarding the improved time zone handling: Evolution itself does not do either of these steps itself yet, thus importing meeting invitations via Evolution still fails in some cases. The code implementing the time zone handling described above was written with inclusion into Evolution itself in mind; a discussion with the Evolution developers about that is in progress.

[Updated 2008-06-11] The setup procedure on Maemo was supposed to not configure sources for which no data is found. This doesn’t seem to work as intended, leading to error reports for “memo” and “tasks”. Until this is fixed, please disable the extraneous sources with syncevolution --configure --source-property sync=none <server> memo todo.

{ 9 } Comments

  1. Ryan W | April 26, 2008 at 2:03 pm | Permalink

    This is great!! I was having issues syncing my tasks in evolution, and this managed to fix it!
    Thank you!

  2. Thomas Novin | May 19, 2008 at 9:41 pm | Permalink

    Thanks for the awesome work. Looking forward for a plugin for Evolution so that I don’t have to run it as a command-line cron job.

    Today I have a script which runs every 10 minutes from crontab. If Evolution is running, syncevolution is run.

  3. Mike Wright | June 11, 2008 at 2:40 pm | Permalink

    Trying to setup 0.8 on an N800 (OS2008)

    Got it all installed (including Pimlico dates) but getting error messages when running

    Nokia-N800-50-2:~/.config/syncevolution/scheduleworld/sources# syncevolution
    Evolution Address Book = Evolution Contacts = evolution-contacts:
    <> (file:///root/.osso-abook/db)

    Evolution Calendar = evolution-calendar:
    Personal (file:///home/user/.evolution/calendar/local/system)

    Evolution Task List = Evolution Tasks = evolution-tasks:

    Evolution Memos = evolution-memos:
    14:39:21 [ERROR] list: unable to access calendars: failure
    Nokia-N800-50-2:~/.config/syncevolution/scheduleworld/sources# syncevolution scheduleworld
    14:39:54 [ERROR] memo: unable to access calendars: failure

    Synchronization failed, see /var/tmp/SyncEvolution-root-scheduleworld/client.log for details.

    Changes applied during synchronization:
    +——————-|——-ON CLIENT——-|——-ON SERVER——-|
    | | successful / total | successful / total |
    | Source | NEW | MOD | DEL | NEW | MOD | DEL |

    Would appreciate a bit of help please?


  4. Patrick Ohly | June 11, 2008 at 10:01 pm | Permalink

    Mike, thanks for pointing this out. There are no memos or tasks on the device, so 0.8 shouldn’t have created sync sources for them. This is something that I’ll have to investigate and fix. In the meantime, please disable the extraneous sources with “syncevolution –configure –source-property sync=none memo todo”.

  5. Mike Wright | June 11, 2008 at 11:42 pm | Permalink

    Hmm – it seems to be complaining about the calendar though!

    And I just installed Pimlico dates which looks like a calendar to me!

  6. Mike Wright | June 11, 2008 at 11:50 pm | Permalink

    Ok – made the changes and now it syncs the addressbook but NOT the calendar

    ================= from a second run after major sync ===============
    ~/.config/syncevolution/scheduleworld/sources/todo $ syncevolution scheduleworld
    Local changes to be applied to server during synchronization:
    *** calendar ***
    no changes
    *** addressbook ***
    no changes

    23:46:01 [INFO] Preparing synchronization of calendar…
    23:46:01 [INFO] Preparing synchronization of addressbook…
    23:46:03 [ERROR] AlertStatus from server 404
    23:46:03 [INFO] addressbook: sync mode is ‘two-way’
    23:46:06 [ERROR] Error in ending sync: AlertStatus from server 404
    23:46:06 [ERROR] AlertStatus from server 404

    Synchronization failed, see /var/tmp/SyncEvolution-user-scheduleworld/client.log for details.

    Changes applied during synchronization:
    +——————-|——-ON CLIENT——-|——-ON SERVER——-|
    | | successful / total | successful / total |
    | Source | NEW | MOD | DEL | NEW | MOD | DEL |
    | calendar | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 |
    | addressbook | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 |

    Changes applied to client during synchronization:
    *** calendar ***
    no changes
    *** addressbook ***
    no changes

    syncevolution[1732]: GLIB WARNING ** libecal – TODO: free memory

  7. Patrick Ohly | June 12, 2008 at 5:45 pm | Permalink

    Mike, the error message refers to “calendar” incorrectly. The reason is that the backend was originally written only for calendar events, then later also applied to memos and tasks. Evolution’s libecal is used for all of these. I fixed the message.

    Regarding the 404 error: as in HTTP, this code is used to indicate “Not Found”. The full message from the server in the client.log might contain more information. The “addressbook” config seems okay, so would you mind checking the “calendar” source config? “syncevolution --quiet --print-config scheduleworld calendar” will show you this; without the “--quiet” you’ll also get the help texts.

    The most relevant setting is “uri” – is it set to “cal2″, the iCalendar 2.0 source of ScheduleWorld?

  8. Mike Wright | June 12, 2008 at 6:44 pm | Permalink

    It was set to “event2″!

    Changed it to “cal2″ and it is syncing as i type!

  9. Patrick Ohly | June 12, 2008 at 7:54 pm | Permalink

    Darn, I didn’t remember the URI correctly when creating the server templates for 0.8. Well, it’s an alpha after all :-/ Fixed in trunk. Thanks for reporting this.

{ 1 } Trackback

  1. [...] have tagged and compiled beta 1 of SyncEvolution 0.8. In contrast to the previous alpha, this one is considered stable and ready for wider testing and usage. Therefore I have prepared the [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *