SyncEvolution 1.3.99.6 released

This update focuses on SyncEvolution in IVI again. It adds support for
GENIVI Diagnostic Log and Trace (DLT) and enhances searching in the
unified address book.

The biggest change for normal Linux desktop users is enhanced support
for recent distros. Binaries on syncevolution.org now work with EDS >=
3.6 and < 3.6. Distros with libical1 like Ubuntu Saucy are also
supported. Automated testing was updated to cover these newer
platforms more thoroughly.

The binaries support Google CalDAV in combination with GNOME Online Accounts (GOA) >= 3.8 and and Google CardDAV with GOA >= 3.10. To use CardDAV with GOA 3.8, one has to patch or recompile GOA.

Support for Google CalDAV/CardDAV with Ubuntu Online Accounts requires recompilation of SyncEvolution with one additional patch.

Details:

  • GNOME Online Accounts: fix D-Bus problem in syncevolution.org binaries

    Support was included in syncevolution.org binaries, but was not
    tested and did not actually work due to some issue accessing
    the D-Bus session.

  • libsynthesis: partial fix batching of items

    The batching of contact writes introduced with SyncEvolution
    1.3.99.4 caused problems with non-SyncEvolution SyncML peers when
    syncing contacts stored in EDS >= 3.6. EDS < 3.6 was not affected.

    That part is fixed. However, even in SyncEvolution<->SyncEvolution
    syncs another crash was found. This will require more investigation.
    Clearly the feature is not ready yet for general sync, so for now
    it is disabled by default and only enabled in the simpler PBAP
    sync.

  • libsynthesis: avoid redundant (and sometimes slow) getaddrbyname() (FDO #70771)

    The network lookup of the hostname can be slow (10 second delay when
    not connected) and shouldn’t be necessary anyway, so disable it.

  • PIM: accent-insensitive and transliterated search (FDO #56524)

    Accent-insensitive search ignores accents, using the same code as in
    EDS. Transliterated search ignores foreign scripts by transliterating
    search term and contact properties to Latin first. That one is using
    ICU directly in the same way as EDS, but doesn’t use the EDS
    ETransliterator class to avoid extra string copying.

    This commit changes the default behavior such that searching is by
    default most permissive (case- and accent-insensitive, does
    transliteration). Flags exist to restore more restrictive matching.

  • PIM: relax phone number matching

    Previously, the current default country was used to turn phone numbers
    without an explicit country code into full E164 numbers, which then
    had to match the search term when doing a caller ID lookup.

    This was inconsistent with EDS, where a weaker
    EQUALS_NATIONAL_PHONE_NUMBER was done. The difference is that a
    comparison between a number with country code matches one without if
    the national number of the same, regardless of the current default
    country. This is better because it reduces the influence of the hard
    to guess default country on matching.

    Another advantage of this change is the lower memory consumption and
    faster comparison, because strings are now stored in 4 + 8 byte
    numbers instead of strings of varying length.

  • PIM: fix incorrect write into pim-manager.ini (FDO #70772)

    Removing a peer accidentally wrote the updated list of active
    address books into the “sort” property of pim-manager.ini, which
    then prevented starting the PIM Manager.

  • PIM: ignore broken sort order in config (FDO #70772)

    Failure to set the sort order from pim-manager.ini should not
    prevent the startup of the PIM Manager because the client cannot
    really diagnose and fix the problem. It is better to try again with
    the default sort order.

  • PIM: adapt to locale changes at runtime (FDO #66618)

    Listen to signals from localed D-Bus system service and update all
    internal state which depends on the current locale. This state includes:

    • pre-computed data in all loaded contacts
    • filtering (for example, case sensitivity is locale dependent)
    • the sort order

    This feature can be controlled by setting the SYNCEVOLUTION_LOCALED
    env variable:

    • “session” – use a localed instance on the D-Bus session bus instead
      of the system instance. This was originally meant for
      testing, but might also be useful for per-user setting changes.
    • “none” – disables the feature
  • PIM: fix sync.py + multiple peers

    Due to overwriting a variable, configuring multiple different
    peers did not work.

  • D-Bus server: support DLT (FDO #66769)

    Diagnostic Log and Trace (DLT) manages a sequence of log messages,
    with remote controllable level of detail. SyncEvolution optionally
    (can be chosen at compile time and again at runtime) uses DLT
    instead of its own syncevolution-log.html files. See README-DLT.rst
    for more information.

    To use the feature, configure SyncEvolution with
    “–enable-dbus-server=–dlt –no-syslog”

  • EDS: enhanced compatibility mode

    SyncEvolution compiled for EDS < 3.6 can now also load EDS backends
    compiled for EDS >= 3.6. The packaging for syncevolution.org uses
    that to bundle EDS backends compiled on different distros in the
    same package.

  • EDS: SYNCEVOLUTION_EBOOK_QUERY env variable

    Setting the SYNCEVOLUTION_EBOOK_QUERY env variable to a valid EBook
    query string limits the results to contacts matching that
    query. Useful only in combination with –print-items or
    –export. Only implemented for EDS >= 3.6.

  • EDS: fix compile problem with boost and EDS > 3.36

    This fixes the following problem, seen with Boost 1.53.0 on altlinux
    when compiling for EDS >= 3.6:

    /usr/include/boost/smart_ptr/shared_ptr.hpp: In instantiation of ‘typename boost::detail::sp_array_access::type boost::shared_ptr::operator const [with T = char*; typename boost::detail::sp_array_access::type = void; std::ptrdiff_t = long int]‘:
    src/backends/evolution/EvolutionSyncSource.cpp:163:38: required from here
    /usr/include/boost/smart_ptr/shared_ptr.hpp:663:22: error: return-statement with a value, in function returning ‘void’ [-fpermissive]
    make[2]: *** [src/backends/evolution/src_backends_evolution_syncecal_la-EvolutionSyncSource.lo]

  • PBAP: add support for obexd 0.48

    obexd 0.48 is almost the same as obexd 0.47, except that it dropped
    the SetFilter and SetFormat methods in favor of passing a Bluex 5-style
    filter parameter to PullAll.

    SyncEvolution now supports 4, in words, four different obexd
    APIs. Sigh.

    This feature was originally announced for SyncEvolution 1.3.99.5,
    but not actually included in the code yet.

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
manually:
syncevolution –configure \
enableRefreshSync=TRUE \
funambol

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
http://downloads.syncevolution.org/syncevolution/sources
and the original source is the git repositories.

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

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

These binaries include the “sync-ui” GTK GUI and were compiled for
Ubuntu 10.04 LTS (Lucid), except for “syncevolution-activesync” which
depends on libraries in Debian Squeeze, for example EDS 3.4.

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
otherwise.

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