SyncEvolution 1.5.2

SyncEvolution 1.5.2

Maintenance release. syncevolution.org binaries are now getting compiled for distros >= Ubuntu Trusty 14.04 LTS, which allowed removing several hacks that were needed when building binaries that also had to run on older distros. Compilation from source for old distros should still work as before, but is not getting tested anymore.

Compile problems with recent libraries (libical v2) and tools (GCC v6) were resolved. Syncing via Bluetooth with certain phones now should work reliably in incremental mode.

New backends for the Trinity Desktop Environment (TDE) were added to the source code. Details: * ObexTransportAgent.cpp: properly shut down connection (FDO #91485)

Apparently there's a race condition in the OBEX transport that causes the connection to phones via Bluetooth to be shut down prematurely. Some phones react by doing a slow sync instead of an incremental sync the next time.

  • support non-readable parent directories (FDO #91000)

    The previous mkdir_p() walked down top to bottom and checked each path entry as it went along. That approach failed unnecessarily when some existing parent directory could not be read (non-readable /home, for example).

  • avoid using dbus-launch (Debian #836399)

    dbus-launch is considered deprecated because of the X11 dependency. See https://lists.debian.org/debian-devel/2016/08/msg00554.html "Mass bug filing: use and misuse of dbus-launch (dbus-x11)"

    The dbus-session.sh script still needs to start the D-Bus daemon when used in the nightly testing, so the code now does it by invoking the dbus-daemon directly.

    syncevo-http-server still has some usage of dbus-launch left, but that's strictly for systems which don't have the more modern D-Bus.

  • syncevo-dbus-server integrates better with systemd (FDO #92164)

    A .service file allows the D-Bus daemon to start the service via systemd, thus ensuring that the process environment is correct. Patch from Simon McVittie. Auto-starting as part of the desktop login uses D-Bus activation if the "dbus-send" tool is installed.

  • syncevolution.org: compile on Ubuntu Trusty, libical v1/v2 compatibility

    syncevolution.org binaries are now getting compiled on Ubuntu Trusty and thus no longer support distros with older EDS. The code should still compile against older EDS (for example, for Maemo), but that is not getting tested anymore.

    This allows removing the dynamic linker hacks related to older libraries, which was only used in those binaries. Instead, backends using libical or EDS get compiled on Ubuntu Trusty and then the soname of those libs get patched to make the backend module usable in combination with a different set of libs. That patching is part of a script maintained in the syncevolution.org build infrastructure.

    This approach was already used before to generate different EDS backends for EDS versions with the newer EClient API, because that turned out to be easier than the dynamic loading approach. It works because none of the methods used by SyncEvolution changed their ABI, only some other parts of the libraries did. Should there ever be a situation again that cannot be handled like this, then backends also get compiled on different distros than Ubuntu Trusty (for example, the ActiveSync backend for Debian Stretch is built on Debian Stretch).

    libical still requires one special hack: system time zone loading in libical v1 (and only in that version, v2 has builtin support again) must be overridden such that time zones are generated with rules instead of transitions because that is more compatible with the peers that SyncEvolution exchanges data with.

    That hack now relies on overriding the two relevant functions inside the main binaries (has to be there, otherwise libical still ends up calling its own internal implementation). The overriding code is in libsyncevo-icaltz-util.so.0 and depends on libical.so.1. If libsyncevo-icaltz-util.so.0 can be loaded, the wrappers in the main binary use it, otherwise they fall through to the code from the current libical.so, which then should be libical.so.2 or more recent.

    This hack is active by default when libical v1 is detected during configuration.

  • optionally show debug output in --version output

    SYNCEVOLUTION_DEBUG=1 syncevolution --daemon=no --version now dumps also the debug information gathered by the binary compatibility code. It was only available in sync logs before.

  • various build fixes for libical v2, GCC v6/C++14

Upgrading from releases <= 1.3.99.4:

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 1.3.99.5. 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 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 https://download.01.org/syncevolution/syncevolution/sources and the original source is in the git repositories http://cgit.freedesktop.org/SyncEvolution/

i386 and amd64 binaries for Debian-based distributions are available via the "stable" syncevolution.org repository. Add the following entry to your /etc/apt/source.list:

deb https://download.01.org/syncevolution/apt stable main

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

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 43D03AD9

The signing key was renewed for this release. If the key was already added earlier, refresh it with:

apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys 43D03AD9

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

These binaries include the "sync-ui" GTK GUI and were compiled for Ubuntu 14.04 LTS (Trusty) and should be compatible also with more recent distros. ActiveSync binaries were compiled for Debian Jessie, the upcoming Debian Stretch (based on current Testing), and Ubuntu Trusty. The packages mentioned above are meta-packages which pull in suitable packages matching the distro during installation.

Older distributions can no longer be supported with precompiled binaries because of missing or incompatible libraries, but the source should still compile on older distros.

The same binaries are also available as .tar.gz archives in https://download.01.org/syncevolution/syncevolution/. 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. When using activesyncd, run "glib-compile-schemas /usr/share/glib-2.0/schemas" as root after unpacking the archive.

rpm packages are no longer provided due to lack of demand; SyncEvolution is provided by Fedora as a distro package.

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