SyncEvolution 1.3.99.6 released

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.