[SyncEvolution] SyncEvolution 1.5.1 released
by Patrick Ohly
About SyncEvolution
===================
SyncEvolution synchronizes personal information management (PIM) data
via various protocols (SyncML, CalDAV/CardDAV, ActiveSync). It syncs
contacts, appointments, tasks and memos. It syncs to web services or to
SyncML-capable phones via Bluetooth.
Binaries are available for Linux desktops (using GNOME Evolution, or
KDE's Akonadi), for Maemo (Nokia N900, N9) and Sailfish OS (Jolla
phone).
About 1.5.1
===========
Maintenance release. Binaries now also get compiled for Debian 8.0
"Jessie".
Details:
* 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 1.4.99.3. 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
NULL).
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
pkg-config.
* 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 1.4.99.4, 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
Source, Installation, Further information
=========================================
http://syncevolution.org/blogs/pohly/2015/syncevolution-151-released
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, lpia 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 B2EC3981
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 ActiveSync binaries which were
compiled for Debian Wheezy, Ubuntu Saucy, Ubuntu Trusty an 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
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.
After installation, follow the
http://syncevolution.org/documentation/getting-started steps.
--
Patrick Ohly, on behalf of everyone who has helped
to make SyncEvolution possible:
http://syncevolution.org/about/contributors
2 years, 12 months
[SyncEvolution] "Comparison was impossible" "
by Vincent Lambert
Hi, I have an Ubuntu phone and it use syncevolution as backend for the
contacts. I use command lines to have my CardDav contacts on my phone.
But since I switched from self signed certificate to letsencrypt
(related or not), I have tons of errors.
$ syncevolution owncloud contacts
[WARNING] owncloud: ignoring username , it is not needed
[INFO] @default/9frfrenchholiday: inactive
[INFO] @default/9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] @default/addressbook: inactive
[INFO] @default/calendar: inactive
[INFO] @default/memo: inactive
[INFO] @default/todo: inactive
[WARNING] owncloud: ignoring username , it is not needed
[INFO @owncloud] target side of local sync ready
[INFO @owncloud] @owncloud/addressbook: inactive
[INFO @owncloud] @owncloud/calendar: inactive
[INFO @owncloud] @owncloud/memo: inactive
[INFO @owncloud] @owncloud/todo: inactive
[INFO @owncloud] @owncloud/contacts: using configured
database=https://cloud.influence-pc.fr/remote.php/carddav/addressbooks/Vincent/contacts
[INFO @owncloud] @owncloud/contacts: starting slow sync, two-way (peer
is server)
[INFO @owncloud] @owncloud/contacts: slow sync done unsuccessfully
*[ERROR @owncloud] @owncloud/contacts: local, status 20048*
*[ERROR @owncloud] error code from Synthesis engine local, status 20048*
*Synchronization failed, see
/home/phablet/.cache/syncevolution/target_+config(a)owncloud-2017-04-19-10-34-a/syncevolution-log.html
for details.*
Changes applied during synchronization (@owncloud):
+---------------|-----------------------|-----------------------|-CON-+
| | @owncloud | @default | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| slow, 0 KB sent by client, 0 KB received |
| unexpected slow sync (local, status 22000) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Wed Apr 19 10:34:14 2017, duration 0:01min |
| unexpected slow sync (local, status 22000) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
*First ERROR encountered: local, status 20048*
Doing a slow synchronization may lead to duplicated items or
lost data when the server merges items incorrectly. Choosing
a different synchronization mode may be the better alternative.
Restart synchronization of affected source(s) with one of the
following sync modes to recover from this problem:
slow, refresh-from-server, refresh-from-client
Analyzing the current state:
syncevolution --status target-config@owncloud contacts
Running with one of the three modes:
syncevolution --sync [slow|refresh-from-remote|refresh-from-local]
target-config@owncloud contacts
[ERROR] error code from SyncEvolution unexpected slow sync (local,
status 22000): failure on target side @owncloud of local sync
[INFO] @default/contacts: inactive
[ERROR] @default/contacts: aborted on behalf of user (local, status 20017)
[INFO] creating complete data backup after sync (enabled with dumpData
and needed for printChanges)
*Synchronization failed, see
/home/phablet/.cache/syncevolution/owncloud-2017-04-19-10-34/syncevolution-log.html
for details.*
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | @default | @owncloud | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| unexpected slow sync (local, status 22000) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Wed Apr 19 10:34:13 2017, duration 0:02min |
| unexpected slow sync (local, status 22000) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
*First ERROR encountered: local, status 20048*
Doing a slow synchronization may lead to duplicated items or
lost data when the server merges items incorrectly. Choosing
a different synchronization mode may be the better alternative.
So I decided to try some things I don't remember exactly (like forcing
sync with refresh from local/remote) and changed the end of previous log by:
*First ERROR encountered: local, status 20048*
Doing a slow synchronization may lead to duplicated items or
lost data when the server merges items incorrectly. Choosing
a different synchronization mode may be the better alternative.
Restart synchronization of affected source(s) with one of the
following sync modes to recover from this problem:
slow, refresh-from-server, refresh-from-client
Analyzing the current state:
syncevolution --status owncloud contacts
Running with one of the three modes:
syncevolution --sync [slow|refresh-from-remote|refresh-from-local]
owncloud contacts
Then:
Data modified @default during synchronization:
*** @default/calendar ***
*Comparison was impossible.*
Since this step, I'm not able anymore to delete contact from my phone
and make it sync on the server (to delete the contact on the server
itself), instead the contact is just "cleared" (any information
disappear but the contact is still here and keep firstname and
lastname). I can sync contact created on the server on my phone and send
contacts created on my phone on the server.
It seems the backup database is corrupted but I'm not able to reset
completely my config. I just wanted to start by zero but I can't find
any way to do this. :'(
phablet@ubuntu-phablet:~$ syncevolution --print-sessions owncloud
/home/phablet/.cache/syncevolution/owncloud-2017-04-20-11-04-b
+---------------|-----------------------|-----------------------|-CON-+
| | LOCAL | REMOTE | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| two-way, 0 KB sent by client, 0 KB received |
| item(s) in database backup: 2 before sync, 2 after it |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Thu Apr 20 11:04:51 2017, duration 0:05min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
/home/phablet/.cache/syncevolution/owncloud-2017-04-20-11-05
+---------------|-----------------------|-----------------------|-CON-+
| | LOCAL | REMOTE | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| two-way, 0 KB sent by client, 0 KB received |
| item(s) in database backup: 2 before sync, 2 after it |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Thu Apr 20 11:05:24 2017, duration 0:05min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
phablet@ubuntu-phablet:~$ syncevolution --restore
/home/phablet/.cache/syncevolution/owncloud-2017-04-20-11-05 --before
owncloud contacts
[INFO] 9frfrenchholiday: inactive
[INFO] 9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] addressbook: inactive
[INFO] calendar: inactive
[INFO] memo: inactive
[INFO] todo: inactive
[INFO] contacts: restore from backup
Data changes to be applied locally during restore:
*** contacts ***
*Comparison was impossible.*
[INFO] contacts: started
[INFO] contacts: restore done successfully
[INFO] Item changes that were applied locally during restore:
[INFO]
+---------------------------------------|-----------------------------+
[INFO] | | LOCAL |
[INFO] | Source | NEW | MOD | DEL | ERR
|TOTAL|
[INFO]
+---------------------------------------+-----+-----+-----+-----+-----+
[INFO] | contacts | 0 | 0 | 0 | 0 |
2 |
[INFO]
+---------------------------------------+-----+-----+-----+-----+-----+
[INFO] The same incremental changes will be applied to the server during
the next sync.
[INFO] Use -sync refresh-from-client to replace the complete data on the
server.
phablet@ubuntu-phablet:~$ syncevolution --sync=refresh-from-client
owncloud contacts
[WARNING] owncloud: ignoring username , it is not needed
[INFO] @default/9frfrenchholiday: inactive
[INFO] @default/9rd2q8ps5e2r48skvidunfkoms8: inactive
[INFO] @default/addressbook: inactive
[INFO] @default/calendar: inactive
[INFO] @default/memo: inactive
[INFO] @default/todo: inactive
[WARNING] owncloud: ignoring username , it is not needed
[INFO @owncloud] target side of local sync ready
[INFO @owncloud] @owncloud/addressbook: inactive
[INFO @owncloud] @owncloud/calendar: inactive
[INFO @owncloud] @owncloud/memo: inactive
[INFO @owncloud] @owncloud/todo: inactive
[INFO @owncloud] @owncloud/contacts: using configured
database=https://cloud.influence-pc.fr/remote.php/carddav/addressbooks/Vincent/contacts
[INFO @owncloud] @owncloud/contacts: starting first time sync from
client (peer is server)
[INFO @owncloud] @owncloud/contacts: sent 2/2
[INFO] @default/contacts: starting slow sync from client (peer is client)
[INFO] creating complete data backup of datastore contacts before sync
(enabled with dumpData and needed for printChanges)
@default data changes to be applied during synchronization:
*** @default/contacts ***
*Comparison was impossible.*
[INFO] @default/contacts: deleting "test estse"
[INFO] @default/contacts: deleting "Gvv"
[INFO] @default/contacts: deleting 2/2
[INFO] @default/contacts: started
[INFO] @default/contacts: adding "test estse"
[INFO] @default/contacts: adding "Gvv"
[INFO] @default/contacts: received 2
[INFO @owncloud] @owncloud/contacts: started
[INFO] @default/contacts: slow sync done successfully
[INFO @owncloud] @owncloud/contacts: first time sync done successfully
Synchronization successful.
Changes applied during synchronization (@owncloud):
+---------------|-----------------------|-----------------------|-CON-+
| | @owncloud | @default | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| refresh-from-local, 0 KB sent by client, 0 KB received |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Thu Apr 20 11:24:17 2017, duration 0:04min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
[INFO] creating complete data backup after sync (enabled with dumpData
and needed for printChanges)
Synchronization successful.
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | @default | @owncloud | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| contacts | 2 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
| refresh-from-remote, 0 KB sent by client, 0 KB received |
| item(s) in database backup: 2 before sync, 2 after it |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Thu Apr 20 11:24:17 2017, duration 0:04min |
| synchronization completed successfully |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Data modified @default during synchronization:
*** @default/contacts ***
*Comparison was impossible.*
--
*Vincent Lambert*
Développeur informatique
5 years