|
|
Subscribe / Log in / New account

SyncEvolution 1.0 released

From:  Patrick Ohly <patrick.ohly-AT-intel.com>
To:  SyncEvolution <syncevolution-AT-syncevolution.org>
Subject:  SyncEvolution 1.0 released
Date:  Wed, 16 Jun 2010 17:51:51 +0200
Message-ID:  <1276703511.30675.168.camel@pohly-mobl1.ikn.intel.com>
Cc:  lwn-AT-lwn.net

After several betas and lot of testing, it's finally time to announce
the end of the 1.0 development cycle: SyncEvolution 1.0 is released and
replaces 0.9.2 as the stable version.

0.1 was released over four years ago. It has always bee part of the
long-term vision to bring "personal SyncML" to desktops. Thanks to the
Synthesis engine and Intel's support for the project, this goal has been
reached and this release really deserves the magic 1.0 label.

For those not familiar with the project, SyncEvolution synchronizes
personal information management (PIM) data like contacts, calenders,
tasks, and memos using the SyncML information synchronization standard.
Up to and including 0.9.2, a third-party SyncML server was required. In
1.0, SyncEvolution itself is able to act as a SyncML server, both via
HTTP and Bluetooth (direct sync with phones).


SyncEvolution 1.0
=================

Major new features compared to previous stable release:
* synchronize directly with a phone over Bluetooth/OBEX
* accept Bluetooth/OBEX connections in cooperation with obexd >= 0.19
* run SyncEvolution as a rudimentary HTTP SyncML server

The GTK sync-UI can be used to select a paired phone and create a
configuration for it based on the bundled configuration templates.
Configuration templates are included for Nokia phones; for other
phones see the http://syncevolution.org/development/sync-phone HOWTO
and check out the Wiki there. Some users have already reported success
for Sony Ericsson phones and added setup instructions. New templates
from the Wiki can be dropped into ~/.config/syncevolution-templates
under an arbitrary file name.

Unexpected slow syncs can be detected when running as client (MB
#2416) and unless turned off (see "preventSlowSync"), SyncEvolution
aborts the session so that the situation can be analyzed. A refresh
from client or server might be more suitable. The command line tool
provides instructions at the end of its output. The GTK sync-UI
points towards its recovery dialog.

Automatic synchronization is supported by the syncevo-dbus-server (MB
#6378). When that is installed, it will be started as part of a user
session and keep running to trigger syncs in the
background. Notifications are emitted when syncs start, end or fail
(MB #10000).

Automatic synchronization can be enabled separately for each peer
("autoSync=0/1", off by default), will be done at regular intervals
("autoSyncInterval=30" minutes) when online long enough
("autoSyncDelay=5" minutes). That last option ensures that a) an
automatic sync does not attempt to use a network connection unless it
was already active and b) hopefully is also around long enough to
complete the sync.

The Synthesis XML configuration was split up into different parts
which are assembled from /usr/share/syncevolution/xml. Files in
~/.config/syncevolution-xml override and extend the default files,
which my be useful when adding support for a new phone.

SyncML servers:
* ZYB.com now works thanks to a workaround for anchor handling (MB #2424);
  only contacts tested because everything else is considered legacy by ZYB.com
* Horde: avoid confusing the server with a deviceId that starts like the
  ones used in old Funambol clients, helps with calendar sync (MB #9347)
* Mobical.net (and other, similar services): fix vCalendar 1.0 alarm
  properties before importing them (MB #10458)
* desknow.com works when switching to SyncMLVersion = 1.1
* Funambol, Memotoo (and probably others): preserve meeting series when
  receiving update for detached recurrence (MBC #1916)

Evolution:
* calendar backend: minor fix for change tracking when deleting
  a single instance of a recurring event
* workaround for Evolution 2.30: "timezone cannot be retrieved because it
  doesn't exist" is triggered incorrectly when importing non-standard
  timezone definitions because libecal changed an error code (MB #9820)

Performance and reliability improvements (MB #7708):
* synccompare much faster
* database dumps consume less disk space
* more intelligent about expiring obsolete session directories
  and backups
* database accesses are reduced in several backends
* shorter logs (MB #8092)
* message resending helps under unreliable network connectivity ("RetryInterval")
* full support for suspend&resume in SyncEvolution client to SyncEvolution or
  Synthesis server syncs
* better handling of certain third-party time zone definitions (MBC #1332)

Improved GTK sync-UI:
* revised config screen: all in one list where entries can be expanded,
  integrated setup of sync with other devices
* recovery support: restore from backup, unexpected slow sync handling
* spinner while network is in use (MB #2229)
* interactive password requests (MB #6376)
* uses new D-Bus API

Command line:
* fixed printing of rejected items (MB #7755)
* consistent logging of added/updated/deleted items with short
  description
* improved error reporting (textual descriptions instead of plain
  error codes MB #2069, partial success MB #7755, record and show
  first ERROR encountered MB #7708)
* can create new sources (MB #8424)
* runs operations inside daemon and thus avoids conflicts with
  operations done by other clients; for testing purposes (like
  running a client which talks to a local server in the daemon) it is
  still possible to ignore the daemon (--daemon=no, MB #5043)
* revised README, now also available as man page (MBC #690)

Redesigned and reimplemented D-Bus API, used by sync-UI and command line:
* central syncevo-dbus-server controls configurations and sync sessions:
  http://syncevolution.org/development/direct-synchronizati...
* accepts incoming SyncML connection requests and messages received by
  independent transport stubs (obexd, HTTP server, ...)
* can be used by multiple user interfaces at once
* fully documented, see src/dbus/interfaces and http://api.syncevolution.org
* no longer depends on dbus-glib with hand-written glue code for C++,
  instead uses gdbus plus automatic C++ binding generated via C++ templates

Revised configuration layout (MB #8048, design document at
http://syncevolution.org/development/configuration-handling):
* several peer-independent sync and source properties are shared
  between multiple peers
* they can be accessed without selecting a specific peer, by using an
  empty config name or with the new "@<specific context>" syntax
* user interface of command line unchanged
* old configurations can be read and written, without causing
  unwanted slow syncs when moving between stable and unstable
  SyncEvolution versions
* old configurations can be migrated with the "--migrate" command
  line switch; however, then older SyncEvolution can no longer
  access them and migrating more than one old configuration causes
  the second or later configuration to loose its "deviceId" property
  (which is shared now), causing a slow sync once
* config names may contain characters that are not allowed in the
  file names used for the underlying files; will be replaced with
  underscores automatically (MB #8350)


Upgrading from 0.9.x:

* Upgrading and downgrading should work seamlessly when using existing
  configurations.

* The new configuration layout is only used when creating new
  configurations or explicitly invoking "syncevolution --migrate" (see
  above). Such configs cannot be used by older SyncEvolution releases.

* The new "RetryInterval" property causes messages to be resent
  after 2 minutes (increased from 1 minute in previous 1.0 betas).
  At least the Funambol server is known to not handle this correctly
  in all cases (http://funzilla.funambol.com/show_bug.cgi?id=7910).
  So in the Funambol config template the interval is set to zero,
  disabling the feature. Disabling the feature must be done manually
  in existing Funambol configurations.


SyncEvolution 1.0 beta 3 -> 1.0 final
=====================================

Bug fixes and new features:

* Configuration templates are stored in a single file (MBC #1208).
  New templates (like something downloaded from http://syncevolution.org/wiki)
  can be dropped into $HOME/.config/syncevolution-templates using an arbitrary
  file name.
* Progress and per-source status are now also reported and recorded when
  running in server mode (MBC #1359). There are still several limitations
  (sync mode not reported, no information about sent/received/processed items
  while the sync runs, see MBC #2786).
* Better handling of certain third-party time zone definitions (MBC #1332).
  Better logging to track down such problems.
* D-Bus server + command line: return error code when failed (MBC #2193)
* syncevo-phone-config: simplified command line options, several bug fixes
  (syntax error, incorrect handling of calendar+todo, MBC #1197)
* Revised README, now also available as man page (MBC #690). Conversion of D-Bus API
  documentation into .html page (MBC #1745).
* Funambol, Memotoo (and probably others): preserve meeting series when
  receiving update for detached recurrence (MBC #1916)
* Fix for potential out-of-bounds memory access (MBC #1007).
* HTTP server: fix for potential crash when second session was requested while an
  older one was still running, initial sync was done without libical time zone
  information and thus may have mismatched times (MBC #2435)
* Nokia E55: convert alarm times (MBC #1657). This is done via a new remote rule
  in /usr/share/syncevolution/xml/remoterules/server/46_E55.xml
  If another phone needs the same treatment, then copy that file to
  ~/.config/syncevolution-xml/remoterules/server and edit the <model> element.
* GTK GUI: styling fix (MBC #1372), updated toolbar for MeeGo 1.0 (MBC #1970),
  avoid duplicating configs when selecting a config created by syncevo-phone-config 
  or the command line (MBC #1266), scroll bars for emergency window (MBC #1296),
  avoid compile problem on Fedora Core 13 due to name collision with system sync()
  call, updated translations.


Known Issues
============

Compatibility with phones has not been tested as well as compatibility
with the officially supported SyncML servers. Some issues have been
reported which still need to be investigated:
      * Nokia N85: ignores refresh-from-server? (MBC #2722)
      * Sony Ericsson W595: All-day-events created in evolution are
        synchronized as all-day-events + 1 additional day in the mobile
        (MBC #2093)
      * Nokia N81: Evolution contacts loose "Other" email-addresses when
        synced two-way (MBC #2566)
      * Nokia phones: absolute alarm time? (MBC #1657)

*Call for action*: test with your phone and report which config works
and how well synchronization works. See
http://syncevolution.org/development/sync-phone
http://syncevolution.org/wiki/phone-compatibility-template

Other known issues:
      * server progress events: no information about sync mode (MBC
        #2786)
      * Calendar event alarm synchronization between N900 and Goosync
        (MBC #2764)


Source, Installation, Further information
=========================================

http://syncevolution.org/blogs/pohly/2010/syncevolution-1...

Source snapshots are in
http://downloads.syncevolution.org/syncevolution/sources

i386, amd64 and lpia binaries of 1.0 for Debian-based distributions are
available via the "stable" syncevolution.org repository. Add the
following entry to your /apt/source.list, then install
"syncevolution-evolution":

  deb http://downloads.syncevolution.org/apt stable main

These binaries include the new "sync-ui" GTK GUI and were compiled for
Ubuntu 8.04 LTS (Hardy). 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
http://downloads.syncevolution.org/syncevolution/evolution. In contrast
to 0.8.x archives, the 1.0 .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:
http://syncevolution.org/documentation/getting-started

-- 
Patrick Ohly, on behalf of everyone who has helped
to make SyncEvolution possible:
http://syncevolution.org/about/contributors





to post comments


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds