SyncEvolution 0.9 released#

SyncEvolution 0.9 has been released! The 0.9 version replaces 0.8.1 as the stable version on Linux desktops. Mac OS X and Maemo have not been updated and remain at 0.8.1 (hint: volunteers wanted). 0.9 binaries in .deb, .tar.gz and (for the first time) .rpm format are provided for x86 in 32 and 64 bit mode. Moblin 2.0 comes with SyncEvolution included in the normal Moblin image, with updates provided via the package repositories. Planning and work for SyncEvolution 1.0 is in full swing. 1.0 is intended to add the SyncML server role for direct synchronization with other devices. If you want to get involved, then contact the team: http://syncevolution.org/support

Changes SyncEvolution 0.8.1 -> 0.9#

This is a major new release, with first steps towards further improvements. From this release on, the Synthesis SyncML engine will be the underlying SyncML and data conversion engine. A native GTK GUI is now included. The “sync-ui” program depends on a backend D-Bus service (“synevo-dbus-server”) and several auxiliary files. Therefore, it only runs without hacks after installation in /usr (possible with .deb, .rpm and binary .tar.gz archives, and with “sudo make install”, after compiling from source). The normal command line tool still works without being installed. In this release, the data handling model was changed from “all items are sent verbatim to the SyncML server” to “parse and convert”. The argument for the former approach was that the SyncML server should be the only entity in the system which does data conversion. The previous releases already had to deviate from this approach to accommodate for minor client/server incompatibilities and for vCard 2.1 support, so the new approach just takes it one step further. The main reason for going to full semantic conversion is vCalendar 1.0 support. Support by servers for iCalendar 2.0, the only format supported by 0.8.1, is often still incomplete or even non-existent. By doing the conversion on the client side, SyncEvolution is now able to synchronize events and tasks with a wider variety of servers. It is still true that properties not supported by a server cannot be synchronized to other devices, so using a server with full iCalendar 2.0 support is recommended. But in contrast to 0.8.1, information that can be stored only locally is no longer lost when receiving an incomplete update from the SyncML server, thanks to intelligent merging, provided by the Synthesis engine. This depends on an accurate description of the server’s capabilities, which might not be provided by all of them. This still needs to be tested in more detail. Interoperability with servers tested extensively in this release. The following servers are now supported:

  • ScheduleWorld. There is very complete support for Evolution data. The only known issues are around resuming from an interrupted sync.

  • Google contact sync. Google follows the vCard 2.1 specification, and thus does not support some of the vCard 3.0 additions, nor some of the common extensions. As a result, several properties are not synchronized (nickname, birthday, spouse/manager, URLs, …). Only one top-level organization seems to be supported. For details, see README.google. Regarding Google’s SyncML support, refresh-from-client and one-way-from-client sync modes are not supported. Deleting contacts moves them out of the main address without deleting them permanently. When adding such a contact again, the server discards the data sent by the client and recreates the contact with the data that it remembered. Because SSL certificate checking for Google works only with libsoup if the platform has a patched libsoup (http://bugzilla.gnome.org/show_bug.cgi?id=589323) or libsoup >= 2.28, certificate checking remains turned off by default for Google. If your platform has a suitable libsoup (like Moblin 2.0), then enable checking with: syncevolution --configure \             --sync-property SSLVerifyServer=true \             --sync-property SSLVerifyHost=true \             google

  • Funambol, with calendar and task support. Funambol supports iCalendar 2.0 in the current server, so this is enabled in the configuration template. Not all iCalendar 2.0 features are supported by the server, most notably support for meetings (drops attendees), meeting invitations (drops UID), detached recurrences (drops RECURRENCE-ID). See README.funambol for details. Interoperability with the Funambol server was improved by adding support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY, #2418). Lost ACTION property has a work around (#2422). To enable that support in an existing configuration so that it exchanges items in the more suitable iCalendar 2.0 format, use: syncevolution --configure \             --source-property sync=two-way \             funambol calendar todo syncevolution --configure \             --source-property type='calendar:text/calendar!' \             funambol calendar syncevolution --configure \             --source-property type='todo:text/calendar!' \             funambol todo Without the exclamation mark, format auto-negotiation would pick the less capable vCalendar 1.0 format because that is marked as preferred by the server.

WARNING: After switching from a previous release to the current one, or vice versa, do a “syncevolution –sync refresh-from-server” or “–sync refresh-from-client” (depending on which side has the authoritative copy of the data) once, to get client and server into a consistent state. Not doing so can result in applying the same changes to the server multiple times, and thus duplicates. Other changes in detail:

  • vCalendar 1.0 is now supported.

  • Both libcurl and libsoup can be selected at compile time as HTTP(S) transport mechanism.

  • SF #2101015: Expect: 100-continue header results in 417 Error with proxy. Should no longer occur with the HTTP transports in this release.

  • SF #1874805: Syncing with Funambol results in loosing all-day property. This now works thanks to the Synthesis data conversion rules.

  • SF #2586600: Synchronisation with mobical.net fails in 0.8.1. Works now, but there are some known issues (Bugzilla #3009) and therefore mobical.net is not officially supported yet.

  • SF #2542968: Separator for categories should not be escaped. Done correctly by the Synthesis vcard conversion.

  • bug fix: Evolution notes with only a summary and no description were not sent correctly to the server. Instead of sending the summary, an empty text was sent.

  • CTRL-C no longer kills SyncEvolution right away. Instead it asks the server to suspend the session. If that takes too long, then pressing CTRL-C twice quickly will abort the sync without waiting for the server (Warning, this may lead to a slow sync in the next session).

  • WBXML is enabled by default now, except for Funambol (#2415). Using WBXML reduces message sizes and increases parsing performance.

  • New configuration templates can be added to /etc/default/applications/syncevolution. These templates may contain icons, which are used by the GUI (no icons shipped right now).

  • Information about previous synchronization sessions is now stored in a machine-readable format and can be accessed using the new –print-sessions options. The output of this information is more complete and more nicely formatted.

  • –status now shows not only data changes since the last sync, but also item changes (see README for the difference between the two).

  • The new –restore option allows restoring local data to the state as it was before or after a sync. For this to work, “logdir” must be set (done by default for new configurations). The format of database dumps was changed to implement this feature. Instead of in a flat file, items are now saved as individual files in a directory. To get the previous format back (for example, to import as one .vcf or .ics file manually) concatenate these files.

  • With –remove, one can remove configurations. It leaves data files and the local databases untouched. Known issues:

  • The GUI includes the number of locally deleted items during a refresh-from-server sync in the number of “received changes” (#5185), which is a bit misleading. This is a result of #3314, which introduced changes not “received” from the server.

  • When a network error occurs and the client never notices that the connection to the server was lost, it will hang forever, waiting for the server’s reply (#3427).

  • The file backend now works only for data formats understood by SyncEvolution and the Synthesis engine. Items are parsed when exchanging them among the backend, engine, and server, in contrast to 0.8.1, where item content was not touched locally (#5046).

  • The ZYB.com server sends conflicting sync anchors, so most syncs don’t work as expected (#2424).

  • The sqlite demo and Mac OS X contacts backends do not compile at the moment because they still need to be adapted to the new infrastructure.

Source, Installation, Further information#

Source snapshots are in http://downloads.syncevolution.org/syncevolution/sources Binaries for Debian-based distributions are available via the “stable” syncevolution.org repository. Add the following entry to your /apt/source.list, then install “syncevolution-evolution”:

deb http://downloads.syncevolution.org/apt stable main

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 http://downloads.syncevolution.org/syncevolution/evolution. In contrast to 0.8.x archives, the 0.9 .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.