Skip to content

{ Monthly Archives } June 2015

SyncEvolution 1.5.1 released

Maintenance release. Binaries now also get compiled for Debian 8.0
“Jessie”. The apt repositories on (mirrored on are signed with a different key than before, see “Installation” below.

SyncEvolution 1.5.1 released

Maintenance release. Binaries now also get compiled for Debian 8.0
“Jessie”. The apt repositories on (mirrored on are signed with a different key than before, see “Installation” below.


  • avoid time zone issue with Funambol server

    The Funambol iCalendar 2.0 parser fails to handle time zones
    with quotation marks around the TZID value, which is something
    that SyncEvolution started to add in While it is valid
    to quote like that, it is not necessary, so avoid quoting in
    this case to restore interoperability.

  • syncevo-http-server: stop using deprecated twisted.web.error (FDO #90419)

    This has become a real problem for example on Fedora 22 where the
    old name is no longer available.

  • syncevo-http-server: use TLS instead of SSLv3

    This fixes a potential security risk and connection problems with clients
    that don’t support SSLv3 anymore.

  • syncing: avoid segfault for invalid text inside items (FDO #90118)

    As reported by Canonical, syncing fails if data items contain
    text which is not correct UTF-8 in one of the fields that
    SyncEvolution logs in the command line output (like SUMMARY of
    a calendar event).

    That is because the byte string coming from the item is passed
    unchecked to the D-Bus implementation for transmission via D-Bus. But
    D-Bus strings must be correct UTF-8, so depending on the D-Bus library
    in use, one gets a segfault (GIO D-Bus, due to an unchecked NULL
    pointer access) or an “out of memory” error (libdbus, which checks for

    SyncEvolution now replaces invalid bytes with a question mark in its
    output while preserving the rest of the text.

  • file backend: log item manipulation

    Extracting a meaningful description of each item from the Synthesis
    engine when updating and adding items is easy to do for items of
    certain known types (contacts and calendar items).

  • command line: preserve log prefix of target side of local sync

    In some cases, the prefix which was supposed to be embedded
    in the log messages from the target side of a local sync got
    lost on the way to the command line tool.

    Primarily this affected the added/updated/deleted messages, as in:

    [INFO remote@client] @client/addressbook: started
    [INFO remote@client] updating “Joan Doe”
    [INFO remote@client] @client/addressbook: received 1/1

  • compile fix: use ${PKG_CONFIG} instead of pkg-config.

    This fixes the build on Exherbo that only has prefixed versions of

  • WebDAV: handle 403 during Google OAuth authentication

    When sending an access token with insufficient scope (for example,
    because the Ubuntu Online Accounts service definition was incomplete,
    as documented in FDO #86824), Google responds with a 403 “service
    denied” error.

    This is now dealt with by retrying, just as for a transient 401 error.

  • CalDAV: more efficient “is empty” check (FDO #86335)

    Since, syncing WebDAV collections always checks first
    whether there are items in the collections. This was partly done for
    slow sync prevention (which is not necessary for empty collections),
    partly for the “is the datastore usable” check.

    However, this did not take into account that for CalDAV collections,
    the entire content gets downloaded for this check. That is because
    filtering by item type (VEVENT vs. VJOURNAL) is not implemented
    correctly by all servers. So now all CalDAV syncs, whether incremental
    or slow, always transfered all items, which is not the
    intention (incremental syncs should be fast and efficient).

    This release adds a more efficient isEmpty() check: for simple CardDAV
    collections, only luid and etag get transferred, as in
    listAllItems(). This is the behavior from 1.5.

    For CalDAV, a report with a filter for the content type is used and
    the transfer gets aborted after the first item, without actually
    double-checking the content of the item. This is different from
    listAllItems(), which really transfers the content. This extra content
    check would only be needed for some old servers (Radical 0.7) and is
    not essential, because reporting “not empty” even when empty is safe.

  • WebDAV: send Basic Auth via http in some cases (FDO #57248)

    It turned out that finding databases on an Apple Calendar server accessed via
    http depends on sending Basic Auth even when the server does not ask for it:
    without authentication, there is no information about the current principal,
    which is necessary for finding the user’s databases.

    To make this work again, sending the authentication header is now forced for
    plain http if (and only if) the request which should have returned the
    principal URL fails to include it. This implies sending the same request
    twice, but as this scenario should be rare in practise (was only done for
    testing), this is acceptable.

  • Ubuntu Online Accounts: support plain text credentials

    The backend for UOA was rewritten by Alberto Mardegan and now also
    can use plain username/password credentials stored in UOA.

  • various compiler error and warning fixes

Upgrading from releases <=

If the value of “username/databaseUser/proxyUser” contains a colon,
the “user:” prefix must be added to the value, to continue treating it
like a plain user name and not some reference to an unknown identity
provider (like “id:”, “goa:”, “signon:”, etc.).

The lookup of passwords in GNOME Keyring was updated slightly in It may be necessary to set passwords anew if the old one is
no longer found.

Upgrading from release 1.2.x:

The sync format of existing configurations for Mobical (aka Everdroid)
must be updated manually, because the server has encoding problems when
using vCard 3.0 (now the default for Evolution contacts):
syncevolution –configure \
syncFormat=text/x-vcard \
mobical addressbook

The Funambol template explicitly enables usage of the
“refresh-from-server” sync mode to avoid getting throttled with 417
‘retry later’ errors. The same must be added to existing configs
syncevolution –configure \
enableRefreshSync=TRUE \

Upgrading from releases before 1.2:

Old configurations can still be read. But writing, as it happens
during a sync, must migrate the configuration first. Releases >= 1.2
automatically migrates configurations. The old configurations
will still be available (see “syncevolution –print-configs”) but must
be renamed manually to use them again under their original names with
older SyncEvolution releases.

Source, Installation, Further information

Source code bundles for users are available in
and the original source is in the git repositories.

i386, lpia and amd64 binaries for Debian-based distributions are
available via the “stable” repository. Add the
following entry to your /apt/source.list:

The GPG key for the repository needs to be imported as root with:

  apt-key adv --keyserver --recv-keys B2EC3981

Then install “syncevolution-evolution”, “syncevolution-kde” and/or

These binaries include the “sync-ui” GTK GUI and were compiled for
Ubuntu 10.04 LTS (Lucid), except for ActiveSync binaries which were compiled for Debian Wheezy, Ubuntu Saucy and Ubuntu Trusty, and Debian Jessie. The packages mentioned above are meta-packages which pull in suitable packages matching the distro during installation.

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
the download directories. In contrast
to 0.8.x archives, the 1.x .tar.gz archives have to be unpacked and the
content must be moved to /usr, because several files would not be found

After installation, follow the getting started steps. More specific HOWTOs can be found in the Wiki.