8052d7f19f4843fb2c2cd767382c16e5de2aa5ac
[platform/upstream/syncevolution.git] / NEWS
1 SyncEvolution 1.0 beta 1 -> beta 2, 23.02.2010
2 ==============================================
3
4 Several new features and some bug fixing. Despite some open issues
5 (see below), this release is ready for getting packaged in staging
6 areas of distros as replacement for 0.9.2.
7
8 As before, documentation for 1.0 is only available in the
9 "Development" section of syncevolution.org, including HOWTOs for
10 setting up the HTTP SyncML server and phones manually.
11
12 Setting up a phone became a bit easier with beta 2, because
13 SyncEvolution is now integrated with the GNOME Bluetooth panel: once a
14 device with SyncML client support is paired, a button offers to bring
15 up the sync-UI and configure or synchronize with that device. We do a
16 fuzzy match against the Bluetooth device name to find a suitable
17 template (not manufacturer/model, because that is not readily
18 available). Still not many (read: hardly any) templates available,
19 though.
20
21 The binaries on syncevolution.org are compiled with Bluetooth support.
22 libbluetooth2 or libbluetooth3 should be installed, but are not
23 essential. If there is no suitable version of it, the Bluetooth
24 channel has to be selected manually as part of the syncURL.
25
26 Unexpected slow syncs are prevented by default, in contrast to beta 1
27 where this feature was available but turned off. When an unexpected
28 slow sync is detected in a client, users have to follow the
29 instructions provided by the command line or sync-ui and choose how to
30 proceed (explicitly request slow sync, refresh from server or client,
31 restore from backup). SyncEvolution as server currently cannot prevent
32 slow syncs, even when initiating the sync with a phone.
33
34 In preparation for syncing automatically, logdir and database handling
35 was improved considerably. Backups use less disk space because
36 identical files share the same file content via hard links. This also
37 speeds up the synccompare Perl script. Database dumps and the
38 corresponding comparison are delayed until the session really runs,
39 which avoids doing needless work a) when the server a client tries to
40 contact is unreachable or down and b) by only including sources that
41 are really in use during a sync on the server side.
42
43 The Synthesis XML configuration was split up into different parts
44 which are assembled from /usr/share/syncevolution/xml. Files in
45 ~/.config/syncevolution-xml override and extend the default files,
46 which my be useful when adding support for a new phone.
47  
48
49 Summary of changes since 1.0 beta 1:
50
51 * sync-ui: recovery dialog (MB #8050), device setup, config usable with
52   long strings (MB #9278), fixed displaying of source phases during sync
53   (MB #9320)
54 * sync-ui + syncevo-dbus-server: integration with Bluez to detect paired
55   devices (MB #9216, MB #7089), select template based on device name (MB #7838),
56   detect network and Bluetooth connectivity (only with ConnMan, MB #7700),
57   passwords stored in GNOME keyring by syncevo-dbus-server are shown with
58   dots in sync-ui (MB #9169)
59 * Evolution addressbook backend: avoid picking CouchDB, second try (MB #7877)
60 * Evolution calendar backend: minor fix for change tracking when deleting
61   a single instance of a recurring event
62 * build fixes: Bluetooth compatibility (MB #9289), use libical _r variant
63   of calls because 0.43 has issues in the normal version, conflict with
64   system libsynthesis and libsmltk (MB #9811)
65 * Horde: avoid confusing the server with a deviceId that starts like the
66   ones used in old Funambol clients, helps with calendar sync (MB #9347)
67 * better reporting when SyncEvolution dies during a sync (only happend once
68   when it wasn't installed properly, but still... MB #9844)
69 * performance improvements: synccompare much faster/database dumps consume
70   less disk space/more intelligent about expiring obsolete session directories
71   and backups/database accesses are reduced in several backends (MB #7708),
72   shorter logs (MB #8092)
73 * slow sync detection: now also works in the case where the client detects
74   an anchor mismatch and enabled by default (MB #2416)
75 * OBEX transport: some error handling changes and removal of polling, now
76   also possible via sync-ui + syncevo-dbus-server (MB #9436)
77 * API changes: SyncSource introduces an "isEmpty" operation which is
78   needed for the slow sync detection
79 * SyncML: split up configuration (MB #7712), increased default message size
80   because the old one might have been too small for large DevInf structures
81 * several fixes for virtual data sources ("calendar+todo"): now works
82   on client side, fixed naming on server (MB #9664), fixed error message
83   for slow sync detection, supported in combination with sync-UI (MB #9535)
84 * fixes for shared configuration layout: finding sessions of peers in
85   non-default context, adding sources affected peers in the same context
86   (MB #9329), wrong context during --configure when using shortcut for peers
87   in non-default context (MB #9338)
88
89
90 Known gaps for 1.0 final and beyond:
91
92 Redesigned and reimplemented D-Bus API, required by sync-UI:
93 - 'syncevolution' command line tool bypasses D-Bus server and runs
94   sync sessions itself (MB #5043)
95 - availability of peers not detected when using NetworkManager
96   (connected for HTTP, paired for Bluetooth; MB #7700)
97
98 SyncML server in general:
99 - suspend/resume support is untested (MB #2425)
100 - the progress events and statistics reported for a SyncML client
101   are not generated when running as SyncML server, will require
102   a fair amount of refactoring in the Synthesis engine (MB #7709)
103
104 HTTP SyncML server:
105 - a configuration must be created for each peer manually, including
106   a remoteDeviceId value that contains the peer's SyncML device ID
107   (MB #7838)
108
109 OBEX SyncML server ("sync with phones"):
110 - does not support phones which require a SAN 1.0 message (MB #9312)
111 - determining a working configuration for an unknown phone requires
112   a bit of experimenting, which should be automated (MB #9862)
113
114 OBEX SyncML client:
115 - parsing of SAN message is rudimentary and depends on an existing local
116   configuration, needs to be refined depending on which SyncML server software
117   it is meant to work with (MB #6175)
118
119 Automatic sync (MB #6378):
120 - no support for the various server push notification mechanisms
121 - no intelligent detection of local changes
122 - no regular background sync, development is in progress
123
124 Upgrading from 1.0 beta 1: moving back and forth should work seamlessly
125 Upgrading from 0.9.x: see under beta 1
126
127
128 SyncEvolution 0.9.2 -> 1.0 beta 1, 26.01.2010
129 ==============================================
130
131 Compared to the current stable release, 0.9.2, this beta release can also:
132 * synchronize directly with a phone over Bluetooth/OBEX
133 * accept Bluetooth/OBEX connections in cooperation with obexd 0.19
134 * run SyncEvolution as a rudimentary HTTP SyncML server
135
136 These feature were already available in a source-only 1.0 alpha
137 release. For the beta, we fixed some issues (nothing major)
138 and in addition to the source, also make binaries available. As
139 before, we hope to get feedback on where we are going with 1.0 and its
140 SyncML server and direct synchronization features. If you want to get
141 involved, now is a good time because a) there is something which works
142 and b) there is still time to influence the final 1.0, scheduled for
143 March 2010.
144
145 Documentation of the new features can be found in the "Development"
146 section (http://syncevolution.org/development) for HOWTOs or ask on
147 the mailing list (http://syncevolution.org/support).
148
149 Here is a more complete list of features compared to the stable
150 release. The full (and up-to-date) list can be retrieved from the
151 Moblin Bugzilla (MB) issue tracking system with this query:
152 http://bugzilla.moblin.org/showdependencytree.cgi?id=7892&hide_resolved=0
153 For changes compared to the 1.0 alpha please consult the
154 change log.
155
156 Implemented features are marked with a plus +, open ones with a minus -.
157
158 ZYB.com
159 + now works thanks to a workaround for anchor handling (MB #2424)
160 - only contacts tested because everything is considered legacy
161   by ZYB.com
162
163 Slow sync handling (MB #2416)
164 + Unexpected slow syncs can be detected when running as client and
165   if configured (see "preventSlowSync"), abort the session so that
166   the situation can be analyzed. A refresh from client or server
167   might be more suitable. Because this required manual intervention
168   by the user, the feature is off by default.
169 - Catching slow syncs does not work yet when running as server and
170   in one corner case in a client.
171
172 Improved sync-UI:
173 + settings for HTTP servers are now done inside the list of
174   all configs and server templates instead of poping up a
175   separate window
176 + uses the new D-Bus API
177 + no longer uses private gconf key to select default peer,
178   replaced by "defaultPeer" in SyncEvolution config
179 + added recovery features like handling of unexpected slow syncs (MB #2416)
180 - restoring from backup only supported by command line (MB #8050)
181 - spinner to indicate network activity missing (MB #2229)
182 - interactive password request not implemented yet (MB #6376)
183
184 Command line:
185 + fixed printing of rejected items (MB #7755)
186 + improved error reporting (textual descriptions instead of plain
187   error codes MB #2069, partial success MB #7755, record and show
188   first ERROR encountered MB #7708)
189 + can create new sources (MB #8424)
190
191 Redesigned and reimplemented D-Bus API, required by sync-UI:
192 + central syncevo-dbus-server controls configurations and sync sessions:
193   http://syncevolution.org/development/direct-synchronization-aka-syncml-server
194 + accepts incoming SyncML connection requests and messages received by
195   independent transport stubs (obexd, HTTP server, ...)
196 + can be used by multiple user interfaces at once
197 + fully documented, see src/dbus/interfaces
198 + no longer depends on dbus-glib with hand-written glue code for C++,
199   instead uses gdbus plus automatic C++ binding generated via C++ templates
200 - 'syncevolution' command line tool bypasses D-Bus server and runs
201   sync sessions itself (MB #5043)
202 - availability of peers not detected (connected for HTTP, paired for
203   Bluetooth; MB #7700)
204 - Bluetooth peers can only be configured via command line (MB #9216)
205
206 Revised configuration layout (MB #8048, design document at
207 http://syncevolution.org/development/configuration-handling):
208 + several peer-independent sync and source properties are shared
209   between multiple peers
210 + they can be accessed without selecting a specific peer, by using an
211   empty config name or with the new "@<specific context>" syntax
212 + user interface in command line and D-Bus API unchanged
213 + old configurations can be read and written, without causing
214   unwanted slow syncs when moving between stable and unstable
215   SyncEvolution versions
216 + old configurations can be migrated with the "--migrate" command
217   line switch; however, then older SyncEvolution can no longer
218   access them and migrating more than one old configuration causes
219   the second or later configuration to loose its "deviceId" property
220   (which is shared now), causing a slow sync once
221 + config names may contain characters that are not allowed in the
222   file names used for the underlying files; will be replaced with
223   underscores automatically (MB #8350)
224 - users of the sync-ui will not know about the --migrate option,
225   so if they have only one configuration, it should be migrated
226   automatically
227
228 SyncML server in general:
229 + incoming connections are accepted by syncevo-dbus-server via
230   the D-Bus Connection API; because this is a "personal SyncML
231   server", all local data is meant to belong to a single user,
232   and only one sync session can be active at any point in time
233 + different users on the same machine can run their own server,
234   as long as they ensure that listening for incoming connections
235   does not conflict with each other (different port in HTTP)
236 + the session of an HTTP client which stops sending messages expires
237   after "RetryDuration" seconds instead of blocking the server
238   forever (MB #7710)
239 - suspend/resume support is untested (MB #2425)
240 - automatic backup of server databases is inefficient (done
241   even when client is not allowed to do a sync; always backs up
242   all data, including sources which are not active; MB #7708)
243 - the progress events and statistics reported for a SyncML client
244   are not generated when running as SyncML server, will require
245   a fair amount of refactoring in the Synthesis engine (MB #7709)
246 - the Synthesis server example config contains workarounds for
247   specific phones, but SyncEvolution does not currently use those;
248   adding new workarounds should be made very simple (MB #7712)
249
250 HTTP SyncML server:
251 + test/syncevo-http-server.py provides an experimental HTTP server
252   based on Python and Twisted
253 - a configuration must be created for each peer manually, including
254   a remoteDeviceId value that contains the peer's SyncML device ID
255   (MB #7838)
256
257 OBEX SyncML server ("sync with phones"):
258 + peers are contacted via a builtin transport that uses libopenobex (MB #5188)
259 + Server Alerted Notification (SAN) message triggers syncs; server ID
260   and URI are configurable (MB #7871)
261 - a configuration must be created for each peer manually, including
262   a syncURL that contains the peer's MAC address (MB #7838)
263 - should be integrated into the system's Bluetooth pairing (MB #7089)
264
265 OBEX SyncML client:
266 + obexd 0.19 contains a plugin which passes SyncML messages to syncevo-dbus-server
267 - parsing of SAN message is rudimentary and depends on an existing local
268   configuration, needs to be refined depending on which SyncML server software
269   it is meant to work with (MB #6175)
270
271 Automatic sync (MB #6378):
272 - no support for the various server push notification mechanisms
273 - no intelligent detection of local changes
274 - no regular background sync
275 - depends on safe handling of concurrent editing, which is blocked
276   by merging of a new Evolution Data Server API (MB #3479)
277
278 Upgrading from 0.9.x:
279
280 * Upgrading and downgrading should work seamlessly when using existing
281   configurations. But this being an alpha, better ensure that you have
282   backups of both your data and your configurations in
283   ~/.config/syncevolution.
284
285 * The new configuration layout is only used when creating new
286   configurations or explicitly invoking "syncevolution --migrate" (see
287   above). Such configs cannot be used by older SyncEvolution releases.
288
289
290 SyncEvolution 0.9.1 -> 0.9.2, 23.01.2010
291 ========================================
292 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
293
294 New Maemo 5/Nokia N900 calendar backend and packages, brought to you
295 by Ove Kaaven. These packages are available via the Maemo extras-devel
296 repository. Bug reports can be submitted both in http://bugs.maemo.org
297 and http://bugzilla.moblin.org. The latter is the tracker that is
298 monitored by the SyncEvolution team, which will also incorporate
299 patches. In general, Ove is the main maintainer of the new backend.
300
301 New XMLRPC backend, contributed by Franz Knipp/M-otion. It accesses
302 data inside a web service via a SOUP API and thus allows synchronizing
303 it via SyncML. See src/backends/xmlrpc/README for more information.
304
305 Added templates for Oracle Beehive and Goosync. Both are not currently
306 part of the regular testing.
307
308 In addition to that, 0.9.2 is an incremental update, with several
309 updated translations and addressing all of the issues reported by
310 users for 0.9.1:
311
312 - vCard dialects: added "X-GENDER/X-SIP" (used by Maemo) and X-SKYPE
313   (used by Maemo and recent Evolution, MB #8948)
314
315 - Evolution Address Book: avoid picking CouchDB by default (MB #7877, evolution-couchdb #479110)
316
317   CouchDB address books are appended at the end of the local database
318   list, otherwise preserving the order of address books. The initial
319   release of evolution-couchdb in Ubuntu 9.10 is unusable because it
320   does not support the REV property.
321
322   Reordering the entries ensures that the CouchDB address book is not
323   used as the default database by SyncEvolution, as it happened in
324   Ubuntu 9.10.  Users can still pick it intentionally via
325   "evolutionsource".
326
327 - installation: templates now in $(datadir)/syncevolution/templates (MB #7808)
328   This are files used internally, meant to be extended by distributors.
329   Storing them in /etc is no longer supported, but also unlikely to be
330   needed. Added warnings that these files cannot simply be copied into
331   .config because they are not complete configurations.
332
333 - installation: "make install" populates $(docdir) (MB #7168)
334   Previously README, COPYING, NEWS, and server READMEs were copied
335   into syncevolution.org .tar.gz/.deb/.rpm archives as part of
336   custom make rules and thus missing in other installations.
337
338 - building: --with-boost had no effect (MB#7856), detect incorrect
339   use of --with-synthesis-src, workaround for lack of --with-docdir
340   in older autoconf, do not unnecessarily depend on CPPUnit header
341   files and GNOME/EDS libs (MB#8338), workaround for libtool bug
342   ("cannot install `syncecal.la' to a directory not ending in ..."),
343
344 - clarified documentation of properties for file backend (MB#8146)
345   
346 - stderr redirection: detect "error" messages and show them (MB#7655)
347   The "GConf Error: Failed to contact configuration server..." error
348   message was suppressed by the code which catches noise from libraries
349   invoked by SyncEvolution. Now it is printed as ERROR, making it
350   easier to detect why running SyncEvolution inside cron needs
351   additional changes:
352   http://www.estamos.de/blog/2009/05/08/running-syncevolution-as-cron-job/
353
354 - importing contacts from SyncML server without full name (MB#5664):
355   Evolution expects the name to be set and shows an empty string if
356   it is missing. Now the name is re-added by appending first, middle and
357   last name.
358
359 - Evolution calendar: work around 'cannot encode item' problem (MB #7879)
360   Happens when the calendar file contains broken events which reference
361   a timezone that is not defined. Now the event is treated like one in
362   the local timezone.
363
364 - "http_proxy" env variable is supported regardless which HTTP transport
365   is used (MB#8177).
366
367 - avoid crashes when libecal sets neither error nor pointer (MB#8005)
368   and when aborting a running sync in the syncevo-dbus-server (MB#8385)
369
370 - "--status" output: fixed missing total item counts (MB #9097)
371
372
373 Upgrading from 0.9.1:
374
375 * nothing to do, upgrading and downgrading should work seamlessly
376
377
378 SyncEvolution 0.9 -> 0.9.1, 26.10.2009
379 ======================================
380 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
381
382 Mobical and Memotoo are now officially supported.
383
384 Memotoo uses vCard 2.1 with several Evolution specific extensions. It
385 uses iCalendar 2.0, however, without actually supporting the advanced
386 features of it. Times are converted to UTC and meeting information are
387 lost.
388
389 Mobical uses vCard 2.1 and vCalendar 1.0 as data formats, with the
390 result that many properties used in Evolution are not supported by the
391 server.  In particular calendar support is very limited (known issues
392 when events are in time zones different from the one selected locally
393 and on the server, no support for meetings). For details see
394 README.mobical.
395
396 *** Beware *** that the Mobical SyncML password is *not* the same as
397 the one for their web site. Log into mobical.net, then go to "my accounts
398 >> configure new device >> manual settings" to find the SyncML
399 credentials.
400
401 It is now possible to compile database backends outside of
402 SyncEvolution, install them and have SyncEvolution use them
403 automatically like any other backend. The backend API has been
404 enhanced considerably. For example, backend developers have
405 access to a modular set of utility classes that can be mixed
406 into a specific implementation. Backends can access the internal
407 Synthesis representation directly and therefore no longer need
408 their own vCard/vCalendar/iCalendar parser.
409
410 The sqlite demo backend can be enabled and compiled again with
411 --enable-sqlite. It demonstrates how to map directly from the
412 Synthesis field list to some internal format (an SQLite database
413 schema in this case).
414
415 Other changes:
416
417 * Resend messages to cope with intermittent loss of network
418   connectivity (Moblin Bugzilla #3427). See the new "ResendDuration"
419   and "ResendDelay" configuration properties for details.
420
421 * SyncEvolution command line uses the GNOME keyring when
422   the new --keyring option is given.
423
424 * The logging of added and updated items was enhanced. Events,
425   tasks and memos are logged with a short description instead of
426   just the local ID. The description for contacts was improved.
427
428 * Receiving photos from Mobical failed because Mobical
429   does not quite follow the vCard 2.1 (Moblin Bugzilla #6668).
430   Sending photos worked, but added a few bytes of garbage
431   at the end of each photo (typically ignored when showing).
432   Parser was made more tolerant by Synthesis and encoder bug
433   was fixed.
434
435 * Task priorities used by Mobical and Evolution did not match:
436   vCalendar 1.0 uses 1-3, iCalendar 2.0 uses 1-9 (MB #6664).
437   SyncEvolution now translates between the two ranges, with
438   some information getting lost when talking to a peer which
439   only supports the smaller range.
440
441 * Importing work and home phone numbers from Google into desktop
442   Evolution works better, because SyncEvolution now adds the "VOICE"
443   flag expected by Evolution (MB#6501).
444
445 * SSL certificate checking with Google is enabled by default
446   and enabled in Moblin, because libsoup in that distro has
447   the necessary fix. Without that fix, all connection attempts
448   fail. The binaries on syncevolution.org are compiled with
449   --disable-ssl-certificate-check, so users who want the
450   additional security must enable it.
451
452 * .rpms on syncevolution.org no longer specify a dependency
453   on certain Perl features. This depencency was a problem on
454   Mandriva. Unwanted hard dependencies on libecal in syncevolution.org
455   binaries are avoided for real this time (MB#6552).
456
457 * Some sync-UI enhancements (describe sync services, avoid crash
458   with very long input in some of the text boxes (MB#5219), set
459   application icon, improved some strings).
460
461 * sync-UI: now disables sources which are not supported when
462   setting up a configuration, like memos on Moblin (MB #6672).
463   Previously the source was enabled, which prevented using
464   using the configuration as-is on the command line.
465
466 * The sync UI allowed to enable calendar and task synchronization
467   with Google although Google does not support that (MB#5871).
468   In new installations this is prevented by clearing the URI
469   for those data categories.
470
471 * Trying to remove a non-existent configuration via the command
472   line now raises an error, to catch typos (MB #6673).
473
474 * Improved checks which logs in the logdir belong to the current
475   server (MB#5215).
476
477 * Improved sanity checking of integer configuration parameters
478   (MB#6500).
479
480 * Spelling fix: "aboring" => "aborting"
481
482
483 Known issue:
484
485 * Mobical and Memotoo do not have a description in the GUI yet.
486
487 * ZYB.com is not supported because of a known anchor handling
488   problem in the server (MB#2424).
489
490
491 Upgrading from 0.9:
492
493 * nothing to do, upgrading and downgrading should work seamlessly
494
495
496 SyncEvolution 0.9.1 beta 2 -> 0.9.1, 26.10.2009
497 ===============================================
498 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
499
500 Minor changes:
501
502 * spelling fixes in NEWS file (--source-type => --source-property)
503 * update to zh_CN
504 * improved autotools compilation of libsynthesis
505
506
507 SyncEvolution 0.9.1 beta 1 -> 0.9.1 beta 2, 19.10.2009
508 ======================================================
509 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
510
511 Several fixes:
512
513 * Receiving photos from Mobical failed because Mobical
514   does not quite follow the vCard 2.1 (Moblin Bugzilla #6668).
515   Sending photos worked, but added a few bytes of garbage
516   at the end of each photo (typically ignored when showing).
517   Parser was made more tolerant by Synthesis and encoder bug
518   was fixed.
519
520 * Task priorities used by Mobical and Evolution did not match:
521   vCalendar 1.0 uses 1-3, iCalendar 2.0 uses 1-9 (MB #6664).
522   SyncEvolution now translates between the two ranges, with
523   some information getting lost when talking to a peer which
524   only supports the smaller range.
525
526 * The workaround for detecting an endless stream of Alert 222
527   messages (caused by misbehavior of certain servers when
528   a specific message has to be resent) aborted certain
529   valid (albeit somewhat pathologic) sync sessions. Improved
530   the heuristic so that it still catches the real loop without
531   aborting in that other case.
532
533 * sync-ui: now disables sources which are not supported when
534   setting up a configuration, like memos on Moblin (MB #6672).
535   Previously the source was enabled, which prevented using
536   using the configuration as-is on the command line.
537
538 * .rpms on syncevolution.org no longer specify a dependency
539   on certain Perl features. This depencency was a problem on
540   Mandriva. Unwanted hard dependencies on libecal in syncevolution.org
541   binaries are avoided for real this time (MB#6552).
542
543 * Trying to remove a non-existent configuration via the command
544   line now raises an error, to catch typos (MB #6673).
545
546 * Message resend options: added sanity checks to catch negative
547   values, clarified that duration is given in seconds, 0s resend
548   interval disables resending (MB #6500).
549
550 * Spelling fix: "aboring" => "aborting"
551
552
553 SyncEvolution 0.9 -> 0.9.1 beta 1, 06.10.2009
554 =============================================
555 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
556
557 Mobical and Memotoo are now officially supported.
558
559 Memotoo uses vCard 2.1 with several Evolution specific extensions. It
560 uses iCalendar 2.0, however, without actually supporting the advanced
561 features of it. Times are converted to UTC and meeting information are
562 lost.
563
564 Mobical uses vCard 2.1 and vCalendar 1.0 as data formats, with the
565 result that many properties used in Evolution are not supported by the
566 server.  In particular calendar support is very limited (known issues
567 when events are in time zones different from the one selected locally
568 and on the server, no support for meetings). For details see
569 README.mobical.
570
571 *** Beware *** that the Mobical SyncML password is *not* the same as
572 the one for their web site. Log into mobical.net, then go to "my accounts
573 >> configure new device >> manual settings" to find the SyncML
574 credentials.
575
576 It is now possible to compile database backends outside of
577 SyncEvolution, install them and have SyncEvolution use them
578 automatically like any other backend. The backend API has been
579 enhanced considerably. For example, backend developers have
580 access to a modular set of utility classes that can be mixed
581 into a specific implementation. Backends can access the internal
582 Synthesis representation directly and therefore no longer need
583 their own vCard/vCalendar/iCalendar parser.
584
585 The sqlite demo backend can be enabled and compiled again with
586 --enable-sqlite. It demonstrates how to map directly from the
587 Synthesis field list to some internal format (an SQLite database
588 schema in this case).
589
590 Other changes:
591
592 * Resend messages to cope with intermittent loss of network
593   connectivity (Moblin Bugzilla #3427). See the new "ResendDuration"
594   and "ResendDelay" configuration properties for details.
595
596 * The logging of added and updated items was enhanced. Events,
597   tasks and memos are logged with a short description instead of
598   just the local ID. The description for contacts was improved.
599
600 * The sync UI allowed to enable calendar and task synchronization
601   with Google although Google does not support that (MB#5871).
602   In new installations this is prevented by clearing the URI
603   for those data categories.
604
605 * Importing work and home phone numbers from Google into desktop
606   Evolution works better, because SyncEvolution now adds the "VOICE"
607   flag expected by Evolution (MB#6501).
608
609 * SyncEvolution command line uses the GNOME keyring when
610   the new --keyring option is given.
611
612 * SSL certificate checking with Google is enabled by default
613   and enabled in Moblin, because libsoup in that distro has
614   the necessary fix. Without that fix, all connection attempts
615   fail. The binaries on syncevolution.org are compiled with
616   --disable-ssl-certificate-check, so users who want the
617   additional security must enable it.
618
619 * syncevolution.org binaries should be compatible with a wider
620   range of Evolution releases again (MB#6552).
621
622 * Some sync UI enhancements (describe sync services, avoid crash
623   with very long input in some of the text boxes (MB#5219), set
624   application icon, improved some strings).
625
626 * Improved checks which logs in the logdir belong to the current
627   server (MB#5215).
628
629 * Improved sanity checking of integer configuration parameters
630   (MB#6500).
631
632 Known issue:
633
634 * Mobical and Memotoo do not have a description in the GUI yet.
635
636 * ZYB.com is not supported because of a known anchor handling
637   problem in the server (MB#2424).
638
639
640 SyncEvolution 0.8.1 -> 0.9, 12.08.2009
641 --------------------------------------
642 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
643
644 This is a major new release, with first steps towards further improvements.
645 From this release on, the Synthesis SyncML engine will be the
646 underlying SyncML and data conversion engine.
647
648 A native GTK GUI is now included. The "sync-ui" program depends on a
649 backend D-Bus service ("synevo-dbus-server") and several auxiliary
650 files. Therefore, it only runs without hacks after installation in 
651 /usr (possible with .deb, .rpm and binary .tar.gz archives, and
652 with "sudo make install", after compiling from source). The
653 normal command line tool still works without being installed.
654
655 In this release, the data handling model was changed from "all items
656 are sent verbatim to the SyncML server" to "parse and convert". The
657 argument for the former approach was that the SyncML server should be
658 the only entity in the system which does data conversion. The previous
659 releases already had to deviate from this approach to accommodate for
660 minor client/server incompatibilities and for vCard 2.1 support, so the
661 new approach just takes it one step further.
662
663 The main reason for going to full semantic conversion is vCalendar 1.0
664 support. Support by servers for iCalendar 2.0, the only format
665 supported by 0.8.1, is often still incomplete or even non-existent. By
666 doing the conversion on the client side, SyncEvolution is now able to
667 synchronize events and tasks with a wider variety of servers.
668
669 It is still true that properties not supported by a server cannot
670 be synchronized to other devices, so using a server with full
671 iCalendar 2.0 support is recommended. But in contrast to 0.8.1,
672 information that can be stored only locally is no longer lost when
673 receiving an incomplete update from the SyncML server, thanks to
674 intelligent merging, provided by the Synthesis engine. This depends on
675 an accurate description of the server's capabilities, which might not
676 be provided by all of them. This still needs to be tested in more detail.
677
678 Interoperability with servers tested extensively in this release.
679 The following servers are now supported:
680
681 * ScheduleWorld. There is very complete support for Evolution data. The
682   only known issues are around resuming from an interrupted sync.
683
684 * Google contact sync.
685
686   Google follows the vCard 2.1 specification, and thus does not support
687   some of the vCard 3.0 additions, nor some of the common extensions. As
688   a result, several properties are not synchronized (nickname, birthday,
689   spouse/manager, URLs, ...). Only one top-level organization seems to
690   be supported. For details, see README.google.
691
692   Regarding Google's SyncML support, refresh-from-client and
693   one-way-from-client sync modes are not supported. Deleting contacts
694   moves them out of the main address without deleting them permanently. When
695   adding such a contact again, the server discards the data sent by the
696   client and recreates the contact with the data that it remembered.
697
698   Because SSL certificate checking for Google works only with libsoup
699   if the platform has a patched libsoup
700   (http://bugzilla.gnome.org/show_bug.cgi?id=589323) or libsoup >=
701   2.28, certificate checking remains turned off by default for
702   Google. If your platform has a suitable libsoup (like Moblin 2.0),
703   then enable checking with:
704
705   syncevolution --configure \
706                 --sync-property SSLVerifyServer=true \
707                 --sync-property SSLVerifyHost=true \
708                 google
709
710 * Funambol, with calendar and task support. Funambol supports iCalendar 2.0
711   in the current server, so this is enabled in the configuration template.
712   Not all iCalendar 2.0 features are supported by the server,
713   most notably support for meetings (drops attendees), meeting
714   invitations (drops UID), detached recurrences
715   (drops RECURRENCE-ID). See README.funambol for details.
716
717   Interoperability with the Funambol server was improved by adding
718   support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY,
719   #2418). Lost ACTION property has a work around (#2422).
720
721   To enable that support in an existing configuration so that it
722   exchanges items in the more suitable iCalendar 2.0 format, use:
723
724   syncevolution --configure --source-property sync=two-way \
725                 funambol calendar todo
726   syncevolution --configure --source-property type='calendar:text/calendar!' \
727                 funambol calendar
728   syncevolution --configure --source-property type='todo:text/calendar!' \
729                 funambol todo
730
731   Without the exclamation mark, format auto-negotiation would pick the
732   less capable vCalendar 1.0 format because that is marked as preferred
733   by the server.
734
735
736 *** WARNING ***: After switching from a previous release to the
737 current one, or vice versa, do a "syncevolution --sync
738 refresh-from-server" or "--sync refresh-from-client" (depending on
739 which side has the authoritative copy of the data) once, to get client
740 and server into a consistent state. Not doing so can result in
741 applying the same changes to the server multiple times, and thus
742 duplicates.
743
744 Other changes in detail:
745
746 * vCalendar 1.0 is now supported.
747
748 * Both libcurl and libsoup can be selected at compile time as HTTP(S)
749   transport mechanism.
750
751 * SF #2101015: Expect: 100-continue header results in 417 Error with proxy.
752   Should no longer occur with the HTTP transports in this release.
753
754 * SF #1874805: Syncing with Funambol results in loosing all-day property.
755   This now works thanks to the Synthesis data conversion rules.
756
757 * SF #2586600: Synchronisation with mobical.net fails in 0.8.1.
758   Works now, but there are some known issues (Bugzilla #3009)
759   and therefore mobical.net is not officially supported yet.
760
761 * SF #2542968: Separator for categories should not be escaped.
762   Done correctly by the Synthesis vcard conversion.
763
764 * bug fix: Evolution notes with only a summary and no description were
765   not sent correctly to the server. Instead of sending the summary,
766   an empty text was sent. 
767
768 * CTRL-C no longer kills SyncEvolution right away. Instead it
769   asks the server to suspend the session. If that takes too
770   long, then pressing CTRL-C twice quickly will abort the sync
771   without waiting for the server (Warning, this may lead to a
772   slow sync in the next session).
773
774 * WBXML is enabled by default now, except for Funambol (#2415).
775   Using WBXML reduces message sizes and increases parsing
776   performance.
777
778 * New configuration templates can be added to
779   /etc/default/applications/syncevolution. These templates may contain
780   icons, which are used by the GUI (no icons shipped right now).
781
782 * Information about previous synchronization sessions is now stored in a
783   machine-readable format and can be accessed using the new
784   --print-sessions options. The output of this information is more
785   complete and more nicely formatted.
786
787 * --status now shows not only data changes since the last sync, but also
788   item changes (see README for the difference between the two).
789
790 * The new --restore option allows restoring local data to the state as
791   it was before or after a sync. For this to work, "logdir" must be set
792   (done by default for new configurations). The format of database dumps
793   was changed to implement this feature. Instead of in a flat file,
794   items are now saved as individual files in a directory. To get the
795   previous format back (for example, to import as one .vcf or .ics file
796   manually) concatenate these files.
797
798 * With â€“-remove, one can remove configurations. It leaves data files and
799   the local databases untouched.
800
801
802 Known issues:
803
804 * The GUI includes the number of locally deleted items during a
805   refresh-from-server sync in the number of "received changes"
806   (#5185), which is a bit misleading. This is a result of #3314,
807   which introduced changes not "received" from the server.
808
809 * When a network error occurs and the client
810   never notices that the connection to the server was lost, 
811   it will hang forever, waiting for the server's reply (#3427).
812
813 * The file backend now works only for data formats understood
814   by SyncEvolution and the Synthesis engine. Items are parsed
815   when exchanging them among the backend, engine, and server,
816   in contrast to 0.8.1, where item content was not touched
817   locally (#5046).
818
819 * The ZYB.com server sends conflicting sync anchors, so
820   most syncs don't work as expected (#2424).
821
822
823 SyncEvolution 0.9 beta 3 hotfix -> 0.9 final, 12.08.2009
824 --------------------------------------------------------
825
826 Because SSL certificate checking for Google only works with libsoup if
827 the platform has a patched libsoup
828 (http://bugzilla.gnome.org/show_bug.cgi?id=589323) or libsoup >= 2.28,
829 certificate checking remains turned off by default for Google. If your
830 platform has a suitable libsoup (like Moblin 2.0), then enable
831 checking with:
832
833   syncevolution --configure \
834                 --sync-property SSLVerifyServer=true \
835                 --sync-property SSLVerifyHost=true \
836                 google
837
838 Only minor changes:
839 * updated translations
840 * refresh-from-server syncs now report how many items were
841   deleted locally at the start of the sync (Bugzilla #3314).
842   The GUI includes the number of locally deleted items during a
843   refresh-from-server sync in the number of "received changes",
844   which is a bit misleading (#5185).
845 * fixed build issue on Fedora 11/g++ 4.4 (Bugzilla #5061)
846 * some build and test improvements
847 * proper fix for D-Bus error functions (#4919)
848 * improve sync-ui startup time by avoiding an unnecessary
849   copying of the sync config into itself (#5021)
850 * adapted tooltip style (used for SyncML server links) to new
851   Moblin theme, they weren't visible earlier (#5017)
852 * notify zone selector in Moblin 2.0 about sync-ui startup (#4752)
853 * sync-ui: minor layout change for fatal error situation
854
855
856 SyncEvolution 0.9 beta 3 -> 0.9 beta 3 hotfix, 23.07.2009
857 ---------------------------------------------------------
858
859 Found additional Google limitation: the server drops photos if they
860 exceed a certain size. The limit is somewhere between 40KB (okay) and
861 80KB (dropped).
862
863 The last-minute workaround for Google/libsoup/gnutls (using http)
864 didn't work because apparently Google only supports SyncML over https
865 (Bugzilla #4551).  Now the default configuration template uses https
866 with all certificate checking disabled. A patch for libsoup was
867 submitted to upstream.
868
869 Some error messages by the "syncevolution" command line tool were not
870 printed (#4676). The root cause was the intentional interception of
871 stderr to hide the noise printed by various system libraries
872 (#1333). Unfortunately remarks about incorrect command line options
873 were among swallowed messages. No good workaround available short of
874 disabling the redirection with SYNCEVOLUTION_DEBUG=1, so let's release
875 an update...
876
877 Other changes:
878 * updated translations
879
880
881 SyncEvolution 0.9 beta 2 -> 0.9 beta 3, 21.07.2009
882 --------------------------------------------------
883 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
884
885 Enabled calendar and task synchronization for myFunambol.com.
886 Not all iCalendar 2.0 features are supported by the server,
887 most notably support for meetings (drops attendees), meeting
888 invitations (drops UID), detached recurrences
889 (drops RECURRENCE-ID). See README.funambol for details.
890
891 Interoperability with the Funambol server was improved by adding
892 support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY,
893 Bugzilla #2418). Lost ACTION property is worked around (#2422).
894
895 Synchronization with Google Contacts was enabled and tested.
896 A configuration template for that server is now provided. Google
897 follows the vCard 2.1 specification and thus does not support some
898 of the vCard 3.0 additions, nor some of the common extensions. As
899 a result, several properties are not synchronized (nickname, birthday,
900 spouse/manager, URLs, ...). Only one top-level organization seems to
901 be supported. For details, see README.google.
902
903 Regarding Google's SyncML support, refresh-from-client and
904 one-way-from-client sync modes are not supported. Deleting contacts
905 moves them out of the main address without deleting them permanently. When
906 adding such a contact again, the server discards the data sent by the
907 client and recreates the contact with the data that it remembered.
908
909 SSL certificate checking with libsoup (the default transport) is now
910 supported (#2431). However, libsoup/gnutls are very strict about SSL
911 certificate checking and reject version 1 certificates, like the one
912 used by Verisign for Google (#4551). At the moment the only solution
913 is to fall back to plain http in the Google configuration template.
914
915 CTRL-C no longer kills SyncEvolution right away. Instead it
916 asks the server to suspend the session. If that takes too
917 long, then pressing CTRL-C twice quickly will abort the sync
918 without waiting for the server (warning, this may lead to a
919 slow sync in the next session).
920
921 WBXML is enabled by default now, except for Funambol (#2415).
922 Using WBXML reduces message sizes and increases parsing
923 performance. It was not enabled initially in the 0.9 releases in order
924 to test this new feature more thoroughly. Old configs don't have an
925 explicit enableWBXML setting and therefore will automatically use the
926 new default.
927
928 Various bug fixes and improvements:
929
930 * only show servers in GUI which are tested and supported (Bugzilla #3336)
931 * a single log file is written in .html format (#3474)
932 * added several translations of the GUI
933 * lots of testing improvements, build binary packages again
934
935 UPGRADING
936
937 When enabling calendar and todo synchronization with Funambol
938 in an existing configuration, set the type so that iCalendar 2.0 is used:
939   syncevolution --configure --source-property sync=two-way funambol calendar todo
940   syncevolution --configure --source-property type='calendar:text/calendar!' funambol calendar
941   syncevolution --configure --source-property type='todo:text/calendar!' funambol todo
942
943 When creating a configuration anew, this is not necessary because the
944 configuration template contains those types.
945
946
947 SyncEvolution 0.9 beta 1 -> 0.9 beta 2, 12.06.2009
948 --------------------------------------------------
949 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
950
951 Major new feature: a GTK GUI! The "sync-ui" program depends on a
952 backend D-Bus service ("synevo-dbus-server") and several auxiliary
953 files. Therefore it only runs without hacks after "sudo make install",
954 in contrast to the normal command line which can be invoked directly.
955
956 New configuration templates can be added to
957 /etc/default/applications/syncevolution. These templates may contain
958 icons which are used by the GUI (no icons shipped right now).
959
960 Information about previous synchronization sessions is now stored in a
961 machine-readable format and can be accessed via the new
962 --print-sessions options. The output of this information is more
963 complete and nicer formatted.
964
965 --status now not only shows data changes since the last sync, but also
966 the item changes (see README for the difference between the two).
967
968 The new --restore option allows restoring local data to the state as
969 it was before or after a sync. For this to work, "logdir" must be set
970 (done by default for new configurations). The format of database dumps
971 was changed to implement this feature: instead of in a flat file,
972 items are now saved as individual files in a directory. To get the
973 previous format back (for example, to import as one .vcf or .ics file
974 manually) concatenate these files.
975
976 With --remove one can remove configurations. It leaves data files and
977 the local databases untouched.
978
979 Various bug fixes and improvements:
980
981 * compiles and works again on Debian Etch if Boost 1.35 is installed
982   from www.backports.org (without GUI, see Bugzilla #3358)
983
984 * uses XDG_CACHE_HOME (= ~/.cache) for logs and database dumps to
985   avoid interfering with .desktop search in XDG_DATA_HOME; the
986   directory there is automatically moved when running syncevolution
987   (Bugzilla #3309)
988
989 * re-enabled certain config options (clientAuthType, maxMsgSize, maxObjSize);
990   normally it shouldn't be necessary to modify those (Bugzilla #3242, #2784)
991
992 * fixed error handling of unexpected server reply in libsoup transport
993   (Bugzilla #3041)
994
995 * message logging is enabled at logLevel 3 (XML translation) and 4 (also
996   original XML or WBXML message)
997
998 * GTK GUI fixes since initial Moblin 2.0 beta: only start it once if
999   libunique is available (Bugzilla #3154), wrap text in change sync service"
1000   button (Bugzilla #2064), sort sources alphabetically in UI (Bugzilla #2070)
1001
1002
1003 SyncEvolution 0.8.1 -> 0.9 beta 1, 13.05.2009
1004 ---------------------------------------------
1005 Synthesis SyncML Engine version: see src/synthesis/ChangeLog
1006
1007 A major new release and the first step towards further improvements:
1008 from this release onwards, the Synthesis SyncML engine is used as the
1009 underlying SyncML and data conversion engine. The focus of this first
1010 beta was to reach the same level of functionality and stability as in
1011 0.8.1. Therefore this beta does not yet bring much new features; this
1012 will be the focus of further beta releases until finally 0.9 will be a
1013 full replacement for 0.8.1.
1014
1015 This release also switches from an "all items are sent verbatim to the
1016 SyncML server" to a "parse and convert" data handling model. The
1017 argument for the former approach was that the SyncML server should be
1018 the only entity in the system which does data conversion. The previous
1019 releases already had to deviate from this approach to accommodate for
1020 minor client/server incompatibilities and for vCard 2.1 support.
1021
1022 The main reason for going to full semantic conversion is vCalendar 1.0
1023 support. Support by servers for iCalendar 2.0, the only format
1024 supported by 0.8.1, is often still incomplete or even non-existent. By
1025 doing the conversion on the client side, SyncEvolution is now able to
1026 synchronize events and tasks with a wider variety of servers.
1027
1028 It is still true that properties not supported by a server cannot
1029 be synchronized to other devices, so using a server with full
1030 iCalendar 2.0 support is recommended. But in contrast to 0.8.1,
1031 information that can only be stored locally is no longer lost when
1032 receiving an incomplete update from the SyncML server thanks to
1033 intelligent merging provided by the Synthesis engine. This depends on
1034 an accurate description of the server's capabilities, which might not
1035 be provided by all of them - still needs to be tested in more detail.
1036
1037 *** WARNING ***: after switching from a previous release to the
1038 current one or vice versa, do a "syncevolution --sync
1039 refresh-from-server" or "--sync refresh-from-client" (depending on
1040 which side has the authoritative copy of the data) once to get client
1041 and server into a consistent state. Not doing so can result in
1042 applying the same changes to the server multiple times and thus
1043 duplicates.
1044
1045 Changes in detail:
1046
1047 * vCalendar 1.0 is now supported. Because this hasn't been tested that
1048   much yet, events and tasks are still disabled in the Funambol default
1049   configuration (SF #2635973).
1050
1051 * Both libcurl and libsoup can be selected at compile time as HTTP(S)
1052   transport mechanism.
1053
1054 * SF #2101015: Expect: 100-continue header results in 417 Error with proxy
1055   Should no longer occur with the HTTP transports in this release.
1056
1057 * SF #1874805: Syncing with Funambol results in loosing all-day property
1058   This now works thanks to the Synthesis data conversion rules.
1059
1060 * SF #2586600: Synchronisation with mobical.net fails
1061   Should work now because of the different SyncML implementation (untested).
1062
1063 * SF #2542968: separator for categories should not be escaped
1064   Done correctly by the Synthesis vcard conversion.
1065
1066 * bug fix: Evolution notes with only a summary and no description were
1067   not sent correctly to the server: an empty text was sent instead of
1068   sending the summary
1069
1070 Known shortcomings in this release which will be fixed before the
1071 final 0.9:
1072
1073 * Verbatim file backups of items on the SyncML server are currently
1074   not possible: the SyncEvolution "file" backend still exists, but
1075   all items are converted by the Synthesis engine and therefore must
1076   be in a format supported by the engine.
1077
1078 * HTTPS can be used with libsoup, but certificate checking is always
1079   disabled. Need to find a portable way to determine where the
1080   certificate file is on various systems.
1081
1082 * Log file handling is not yet unified: the traditional client.log
1083   contains only high-level SyncEvolution log entries. Low-level
1084   SyncML and engine log entries are in sysync_*.html files.
1085
1086 * stdout and stderr messages from system libraries are visible on the
1087   console. 0.8.1 used to redirect those into the client.log to hide
1088   this noise; this will be added again. In the meantime, ignore
1089   messages like "Deadlock potential - avoiding evil bug!". This is
1090   liborbit telling us that it is (hopefully successfully) handling
1091   something nasty.
1092
1093
1094 SyncEvolution 0.8.1 -> 0.8.1a, 15.12.2008
1095 -----------------------------------------
1096 C++ client library: 7.0 plus some patches, see github
1097 repository referenced in configure script.
1098
1099 A minor bug fix release, updating only necessary on Mac OS X.
1100
1101 * #2307976 "Trace/BPT trap - sync failure": occurs randomly in
1102   Mac OS X specific transport layer of the Funambol C++ client
1103   library. Avoided in 0.8.1a by using libcurl as transport,
1104   as in 0.7.
1105
1106
1107 SyncEvolution 0.8 -> 0.8.1, 11.10.2008
1108 --------------------------------------
1109 C++ client library: 7.0 plus some patches, see github
1110 repository referenced in configure script.
1111
1112 A minor bug fix release, updating not really necessary.
1113 The binary packages for Evolution are built now so that
1114 one package works for all compatible Evolution releases,
1115 including the new Evolution 2.24.
1116
1117 * Evolution calendar: regression in 0.8: one-way sync of virtual
1118   birthday calendar (#2095433). "refresh-from-client" works again
1119   for the birthday calendar. Other modes are not supported.
1120   In contrast to previous releases SyncEvolution now does some
1121   sanity checks that the sync mode is right.
1122 * Mac OS X: removing old logdirs failed (#2087389). Fixed.
1123 * SyncML client library: "Expect: 100-continue" header
1124   resulted in 417 error with certain proxies (#2101015).
1125   Now this header is always disabled; it doesn't make
1126   much sense with SyncML anyway.
1127 * The development of the Funambol C++ client library is now
1128   tracked in a git repository on github.com. Modifications
1129   and tags for SyncEvolution are checked in there. The
1130   configure script checks out the right sources from there
1131   automatically; can be controlled via --with-funambol-src
1132   parameter.
1133 * Evolution desktop: the version of the used Evolution libraries
1134   is included in the "--version" output and log files.
1135 * Cleaned up README. Kudos to Martin Wetterstedt for pointing
1136   out mistakes in the README and the web site.
1137
1138
1139 SyncEvolution 0.7 -> 0.8, 29.08.2008
1140 ------------------------------------
1141 C++ client library: 7.0 plus compatibility patch for Synthesis
1142
1143 Updating user configuration: this version introduces a new, simplified
1144 configuration layout. Old configurations still work. They can be
1145 converted to the new format via a new "--migrate" command line option.
1146
1147 *** WARNING ***: this version uses a different change tracking for Mac
1148 OS X address book, Evolution calendars, task lists and memos.  After
1149 switching from a previous release to the current one or vice versa, do
1150 a "syncevolution --sync refresh-from-server" once to reset the change
1151 tracking. Not doing so can result in applying the same changes to the
1152 server multiple times and thus duplicates.
1153
1154 * New configuration file layout: following the freedesktop.org
1155   recommendation, new configurations are stored in
1156   $XDG_CONFIG_HOME/syncevolution or $HOME/.config/syncevolution if
1157   XDG_CONFIG_HOME is not set. The old layout under
1158   $HOME/.sync4j/evolution is still supported.
1159
1160 * New command line options: new configurations can be created by
1161   syncevolution itself (--configure), including setting of all
1162   configuration properties (--sync-property, --source-property).
1163   The configuration can dumped to stdout (--print-config), with or
1164   without comments explaining each property (--quiet). See the
1165   README for details.
1166
1167 * The "evolutionsource" source property no longer has to be configured.
1168   If left blank, the default client database will be synchronized.
1169
1170 * Selecting which kind of data is to be synchronized under a specific
1171   source name is a lot easier now and the same on all supported
1172   platforms: the SyncEvolution backends can be selected via aliases
1173   (e.g. "contacts") and the format is specified via an optional
1174   MIME type (e.g. "contacts:text/x-vcard"). In the unlikely situation
1175   that multiple backends are active which can synchronize the same
1176   kind of data, then the right one can be selected by the unique
1177   name of the backend (e.g. "Evolution Address Book").
1178
1179 * New configurations automatically get a random client ID string.
1180   Setting it manually is still possible, but no longer necessary.
1181   Disabling unavailable data sources is also done automatically.
1182
1183   SyncEvolution checks that the backend is available and there is
1184   at least one database (the first one will be synchronized unless
1185   explicitly changed). If these checks fail and the sync source was
1186   explicitly requested by the user by listing it after the server
1187   name, then an error is printed and no configuration is written.
1188   If the user wants the default setup, then the source is silently
1189   disabled.
1190
1191 * All passwords can be read from stdin at runtime or an environment
1192   variable (see "--sync-property password=?" or README for details).
1193   Both avoids the less secure storing of plain text passwords in the
1194   configuration files (SF #1832458).
1195
1196 * Detached recurrences: meeting series where some occurrences were
1197   modified are now supported. Previously only the main event was
1198   synchronized. All exceptions got lost when copying back from the
1199   server. Requires a SyncML server which supports this. ScheduleWorld
1200   was extended to do that.
1201
1202 * Fixed segfaults caused by logging certain data. The reason was an 
1203   API change in the client library's logging calls which the older
1204   SyncEvolution code hadn't been adapted to. Did not normally occur,
1205   but might have been the reason for SF #1830149 (unconfirmed).
1206
1207 * Time zone support: the time zones of incoming events are mapped
1208   to native time zone definitions whenever possible. Currently
1209   this works if the TZID follows the Olson naming scheme with a
1210   location at the end. Matching the time zone has the advantage of
1211   being able to update the time zone definition without having to
1212   recreate the event. If matching fails and the VTIMEZONE definition
1213   differs from one already imported earlier, then SyncEvolution works
1214   arounds limitation in Evolution by renaming the time zone.
1215   Previously the new event used the old and most likely out-dated
1216   time zone definition.
1217
1218   ***WARNING***: Evolution itself does not do either of these steps
1219   itself yet, thus importing meeting invitations via Evolution still
1220   fails in some cases. The code implementing the time zone handling
1221   described above was written with inclusion into Evolution itself in
1222   mind; a discussion with the Evolution developers about that is in
1223   progress.
1224
1225 * On Maemo/Nokia Internet Tablets, calendar synchronization now
1226   works because the new calendar change tracking no longer depends
1227   on some of the backend calls which used to fail (SF #1734977).
1228
1229 * Added SSL configuration options: certificate checking can be
1230   relaxed or disabled completely (SF #1852647).
1231
1232 * Added a new file backend: stores each SyncML item as a separate file
1233   in a directory.  The directory has to be specified via the database
1234   name, using [file://]<path> as format. The file:// prefix is
1235   optional, but the directory is only created if it is used.
1236
1237   Change tracking is done via the file systems modification time
1238   stamp: editing a file treats it as modified and then sends it to the
1239   server in the next sync. Removing and adding files also works.
1240
1241   The local unique identifier for each item is its name in the
1242   directory. New files are created using a running count which
1243   initialized based on the initial content of the directory to
1244   "highest existing number + 1" and incremented to avoid collisions.
1245  
1246   Although this sync source itself does not care about the content of
1247   each item/file, the server needs to know what each item sent to it
1248   contains and what items the source is able to receive. Therefore
1249   the "type" property for this source must contain a data format
1250   specified, including a version for it. Here are some examples:
1251   - type=file:text/vcard:3.0
1252   - type=file:text/plain:1.0
1253
1254 * Code restructuring: it is now possible to add new backends and thus
1255   write SyncML clients for other kinds of data without touching any
1256   line of code in SyncEvolution itself. All the required interfaces
1257   are documented inside SyncEvolution itself. A HTML documentation can
1258   be built via the new "make doc" target (requires Doxygen and dot).
1259
1260   The SyncEvolution framework itself never depended on GNOME or
1261   Evolution, only the Evolution data sources did. If you want
1262   support for other ways of storing your data, consider writing
1263   a new data source - it is really easy. See EvolutionSyncSource
1264   or TrackingSyncSource for details.
1265
1266 * Messages are printed to the screen immediately. More readable
1267   log file format.
1268
1269 * Maemo: the useless ''list: unable to access calendars:
1270   failure' error message is avoided. It was triggered by not having
1271   memo support in Evolution Data Server. Cleaned up the code so that
1272   it properly distinguishes between 'calendar', 'memo list' and
1273   'task list'.
1274
1275 * added server template for MemoToo; note that the server has not been
1276   tested
1277
1278 * added synchronization of Evolution memo summary
1279
1280   Most devices only synchronize plain text and do not have a
1281   separate summary field. Such an extra summary field was added to
1282   Evolution after memo support was initially implemented in
1283   SyncEvolution, therefore SyncEvolution did not transmit that
1284   field.
1285   
1286   Added transmitting the summary by inserting it as first line of
1287   the plain text blob *if* it is not already identical with the
1288   first line. When receiving a memo, the summary is set from the
1289   first line *without* removing the first line because the first
1290   line might have been used as a normal part of the memo.
1291
1292 * Various other minor changes, fixes and lots of code cleanups.
1293
1294 * license cleanup: SyncEvolution is GPL v2 or later
1295
1296
1297 SyncEvolution 0.8 beta 2 -> 0.8 final, 29.08.2008
1298 -------------------------------------------------
1299 C++ client library: 7.0 plus compatibility patch for Synthesis
1300
1301 * license cleanup: SyncEvolution is GPL v2 or later
1302
1303
1304 SyncEvolution 0.8 beta 2 -> 0.8 beta 3, 17.08.2008
1305 --------------------------------------------------
1306 C++ client library: 7.0 plus compatibility patch for Synthesis
1307
1308 * Another revision of updating events in Evolution calendars:
1309   the method introduced in 0.8 beta 1 for dealing with
1310   detached recurrences did not work with the Evolution Exchange
1311   Connector. Now both Exchange and local calendars pass the unit
1312   tests again.
1313
1314 * minor code cleanup (testing, writing additional backends)
1315
1316
1317 SyncEvolution 0.8 beta 1 -> 0,8 beta 2, 03.08.2008
1318 --------------------------------------------------
1319 C++ client library: 7.0 plus compatibility patch for Synthesis
1320
1321 * To prevent accidental sync runs when a configuration change
1322   was intented, a new --run switch must be used when configuration
1323   properties are given on the command line. When neither --run
1324   nor --configure are specified, SyncEvolution prints an
1325   error and refuses to do anything.
1326
1327 * Improved documentation for command line, in particular the synopsis.
1328
1329 * Added a new file backend: stores each SyncML item as a separate file
1330   in a directory.  The directory has to be specified via the database
1331   name, using [file://]<path> as format. The file:// prefix is
1332   optional, but the directory is only created if it is used.
1333
1334   Change tracking is done via the file systems modification time
1335   stamp: editing a file treats it as modified and then sends it to the
1336   server in the next sync. Removing and adding files also works.
1337
1338   The local unique identifier for each item is its name in the
1339   directory. New files are created using a running count which
1340   initialized based on the initial content of the directory to
1341   "highest existing number + 1" and incremented to avoid collisions.
1342  
1343   Although this sync source itself does not care about the content of
1344   each item/file, the server needs to know what each item sent to it
1345   contains and what items the source is able to receive. Therefore
1346   the "type" property for this source must contain a data format
1347   specified, including a version for it. Here are some examples:
1348   - type=file:text/vcard:3.0
1349   - type=file:text/plain:1.0
1350
1351 * Code restructuring: it is now possible to add new backends and thus
1352   write SyncML clients for other kinds of data without touching any
1353   line of code in SyncEvolution itself. All the required interfaces
1354   are documented inside SyncEvolution itself. A HTML documentation can
1355   be built via the new "make doc" target (requires Doxygen and dot).
1356
1357
1358 SyncEvolution 0.8 alpha 1 -> 0.8 beta 1, 12.07.2008
1359 ---------------------------------------------------
1360 C++ client library: the frozen 7.0 code, but before the release
1361
1362 * Added support for detached recurrences (aka modified instances of
1363   a recurring event). Requires a SyncML server which supports this.
1364   ScheduleWorld was extended to do that.
1365
1366 * Fixed segfaults caused by logging certain data. The reason was an 
1367   API change in the client library's logging calls which the older
1368   SyncEvolution code hadn't been adapted to. Did not normally occur,
1369   but might have been the reason for SF #1830149 (unconfirmed).
1370
1371 * when creating a config for the first time, only enable sync sources
1372   which can be synchronized (SF #1991286)
1373
1374   The check for that was completely missing. Now SyncEvolution
1375   checks that the backend is available and there is at least one
1376   database (the first one will be synchronized unless explicitly
1377   changed). If these checks fail and the sync source was explicitly
1378   requested by the user by listing it after the server name, then
1379   an error is printed and no configuration is written. If the user
1380   wants the default setup, then the source is silently disabled.
1381
1382 * Fixed incorrect properties in some of the new server templates
1383   (ScheduleWorld syncURL + calender URI, Funambol syncURL, ScheduleWorld
1384    addressbook type)
1385
1386 * Device IDs must start with the "sc-pim-" prefix, otherwise myFUNAMBOL
1387   may treat different devices as the single phone that myFUNAMBOL
1388   supports, leading to unwanted slow syncs.
1389
1390 * Maemo package is build again so that backends are loaded dynamically:
1391   installing Dates application is as it was with the 0.7 release
1392   (SF #1993109). The useless ''list: unable to access calendars:
1393   failure' error message is avoided. It was triggered by not having
1394   memo support in Evolution Data Server. Cleaned up the code so that
1395   it properly distinguishes between 'calendar', 'memo list' and
1396   'task list'.
1397
1398 * added server template for MemoToo; note that the server has not been
1399   tested
1400
1401 * added synchronization of Evolution memo summary
1402
1403   Most devices only synchronize plain text and do not have a
1404   separate summary field. Such an extra summary field was added to
1405   Evolution after memo support was initially implemented in
1406   SyncEvolution, therefore SyncEvolution did not transmit that
1407   field.
1408   
1409   Added transmitting the summary by inserting it as first line of
1410   the plain text blob *if* it is not already identical with the
1411   first line. When receiving a memo, the summary is set from the
1412   first line *without* removing the first line because the first
1413   line might have been used as a normal part of the memo.
1414
1415 * removed --properties option: it wasn't implemented yet and won't be in 0.8
1416
1417 * fixed regression in alpha 1: setting sync mode during status query
1418   or sync affected *all* sources, even the disabled ones. Now it only
1419   affects the enabled ones, as intended. To enable disabled sync sources,
1420   list them after the server name.
1421
1422 *** WARNING ***: this version uses a different change tracking for
1423 for Mac OS X AddressBook. After switching from a previous release to the current
1424 one or vice versa, do a "syncevolution --sync refresh-from-server"
1425 once to reset the change tracking. Not doing so can result in applying
1426 the same changes to the server multiple times and thus duplicates.
1427
1428 A similar change was necessary in 0.8 alpha 1 for Evolution calendar,
1429 tasks, and memos. When switching from a version >= 0.8 alpha 1 to an
1430 older version or vice versa also refresh the local databases.
1431
1432 0.8 alpha 1 did not create correct configurations. When you want to continue
1433 using such a configuration, make sure that in addition to the obviously
1434 wrong syncURLs also the less obvious ScheduleWorld config mistakes are fixed:
1435 * calendar: uri=cal2
1436 * addressbook: type=addressbook:text/vcard
1437 * deviceId must start with "sc-pim-" if you synchronize with myFUNAMBOL,
1438   otherwise there may be unwanted slow syncs when multiple devices with
1439   a different deviceId connect. Note that changing the deviceId causes
1440   a slow sync, so you should get client and server in sync before changing
1441   the value, change it, then do a "--sync refresh-from-server".
1442
1443
1444 SyncEvolution 0.7 -> 0.8 alpha 1, 19.04.2008
1445 --------------------------------------------
1446 C++ client library: a snapshot of the development version
1447
1448 Updating user configuration: this version introduces a new, simplified
1449 configuration layout. Old configurations still work. They can be
1450 converted to the new format via a new "--migrate" command line option.
1451
1452 *** WARNING ***: this version uses a different change tracking for
1453 Evolution calendars, task lists and memos. After switching from a previous
1454 release to the current one or vice versa, do a "syncevolution --sync
1455 refresh-from-server" once to reset the change tracking. Not doing so
1456 can result in applying the same changes to the server multiple times
1457 and thus duplicates.
1458
1459 * New configuration file layout: following the freedesktop.org
1460   recommendation, new configurations are stored in
1461   $XDG_CONFIG_HOME/syncevolution or $HOME/.config/syncevolution if
1462   XDG_CONFIG_HOME is not set. The old layout under
1463   $HOME/.sync4j/evolution is still supported.
1464
1465 * New command line options: new configurations can be created by
1466   syncevolution itself (--configure), including setting of all
1467   configuration properties (--sync-property, --source-property).
1468   The configuration can dumped to stdout (--print-config), with or
1469   without comments explaining each property (--quiet). See the
1470   README for details.
1471
1472 * The "evolutionsource" source property no longer has to be configured.
1473   If left blank, the default client database will be synchronized.
1474
1475 * Selecting which kind of data is to be synchronized under a specific
1476   source name is a lot easier now and the same on all supported
1477   platforms: the SyncEvolution backends can be selected via aliases
1478   (e.g. "contacts") and the format is specified via an optional
1479   MIME type (e.g. "contacts:text/x-vcard"). In the unlikely situation
1480   that multiple backends are active which can synchronize the same
1481   kind of data, then the right one can be selected by the unique
1482   name of the backend (e.g. "Evolution Address Book").
1483
1484 * New configurations automatically get a random client ID string.
1485   Setting it manually is still possible, but no longer necessary.
1486
1487 * All passwords can be read from stdin at runtime or an environment
1488   variable (see "--sync-property password=?" or README for details).
1489   Both avoids the less secure storing of plain text passwords in the
1490   configuration files (SF #1832458).
1491
1492 * Detached recurrences: meeting series where some occurrences were
1493   modified are now supported. Previously only the main event was
1494   synchronized. All exceptions got lost when copying back from the
1495   server. ***WARNING***: such events are accepted by ScheduleWorld,
1496   but not propagated to other clients. Under investigation.
1497
1498 * Time zone support: the time zones of incoming events are mapped
1499   to native time zone definitions whenever possible. Currently
1500   this works if the TZID follows the Olson naming scheme with a
1501   location at the end. Matching the time zone has the advantage of
1502   being able to update the time zone definition without having to
1503   recreate the event. If matching fails and the VTIMEZONE definition
1504   differs from one already imported earlier, then SyncEvolution works
1505   arounds limitation in Evolution by renaming the time zone.
1506   Previously the new event used the old and most likely out-dated
1507   time zone definition.
1508
1509   ***WARNING***: Evolution itself does not do either of these steps
1510   itself yet, thus importing meeting invitations via Evolution still
1511   fails in some cases. The code implementing the time zone handling
1512   described above was written with inclusion into Evolution itself in
1513   mind; a discussion with the Evolution developers about that is in
1514   progress.
1515
1516 * On Maemo/Nokia Internet Tablets, calendar synchronization now
1517   works because the new calendar change tracking no longer depends
1518   on some of the backend calls which used to fail (SF #1734977).
1519
1520 * Added SSL configuration options: certificate checking can be
1521   relaxed or disabled completely (SF #1852647).
1522
1523 * Adding support for new local data sources is easier now. The
1524   SyncEvolution frame work itself never depended on GNOME or
1525   Evolution, only the Evolution data sources did. If you want
1526   support for other ways of storing your data, consider writing
1527   a new data source - it is really easy. See EvolutionSyncSource
1528   or TrackingSyncSource for details.
1529
1530 * Messages are printed to the screen immediately. More readable
1531   log file format.
1532
1533  * Various other minor changes and fixes.
1534
1535
1536 SyncEvolution 0.6 -> 0.7, 17.12.2007
1537 ------------------------------------
1538 C++ client library: r_6_5_3_1
1539
1540 Updating user configuration: no relevant changes in this release. For those
1541 who haven't done so already, enabling large object support is recommended
1542 (see syncml/config.txt sample configs).
1543
1544 * added port for iPhone and Mac OS X Address Book
1545
1546 * fixed Nokia packaging problem which prevented installation
1547   via the package manager unless it was in "red pill" mode
1548   (SF #1781652)
1549
1550 * sync with eGroupware - lost or messed up telephones: SyncEvolution
1551   incorrectly added TYPE=OTHER to phone numbers sent with e.g.
1552   CELL instead of TYPE=CELL (SF #1796086). Another patch was
1553   required for eGroupware itself to correctly map phone numbers
1554   as sent by SyncEvolution, see Compatibility web page.
1555
1556 * added .deb packages
1557
1558 * adapted calendar event insert/update to Evolution 2.12: the UID needs to be
1559   restored, otherwise the Evolution backend crashes (GNOME issue #488881)
1560
1561 * new feature: if the previous log directory is still available,
1562   then local changes made since last sync can be queried
1563   before starting a sync (new option --status) and will be
1564   printed directly before a sync. Setting the "logdir" option
1565   will automatically keep the most recent logs and database
1566   dumps around.
1567
1568 * added command line options:
1569   --sync|-s <mode>
1570     Temporarily synchronize the active sources in that mode. Useful
1571     for a 'refresh-from-server' or 'refresh-from-client' sync which
1572     clears all data at one end and copies all items from the other.
1573
1574   --status|-t
1575     The changes made to local data since the last synchronization are
1576     shown without starting a new one. This can be used to see in advance
1577     whether the local data needs to be synchronized with the server.
1578
1579   --quiet|-q
1580     Suppresses most of the normal output during a synchronization. The
1581     log file still contains all the information.
1582
1583   --help|-h
1584     Prints usage information.
1585
1586   --version
1587     Prints the SyncEvolution version.
1588
1589 * default configurations now reference the normal Evolution databases
1590   ("Personal") thus requiring less changes to use. The account information
1591   is now clearly marked as placeholder which needs to be entered.
1592
1593 * bugfix: vCard 3.0 with mixed case were not converted properly to vCard 2.1
1594   by SyncEvolution (must convert to upper case because vCard 2.1 only allows
1595   that), leading to problems with mapping phone numbers in the Funambol server.
1596   Diagnosed and reported by Paul McDermott, thanks a lot!
1597
1598 * support receiving plain text notes with \n and \r\n line breaks;
1599   always send with \r\n
1600
1601 * added explicit error message when syncevolution is invoked
1602   with incorrect names in the list of sources to synchronize:
1603   previously it silently ignored unknown names
1604
1605 * improved output: less verbose ("extracting" items is now
1606   logged at debug level and thus not normally shown) and more
1607   informative printing of changes (table summarizes number of
1608   changes on client and server, heading for comparison changed
1609   to make it clear that it shows changes on the client)
1610
1611 * SyncCap is not generated unless syncModes are configured: added
1612   a comment to example config (SF #1764123)
1613
1614 * improved error handling: catch errors during post-processing and
1615   continue
1616
1617
1618 SyncEvolution 0.7-pre2 -> 0.7, 17.12.2007
1619 -----------------------------------------
1620 C++ client library: r_6_5_3_1
1621
1622 * bugfix: vCard 3.0 with mixed case were not converted properly to vCard 2.1
1623   by SyncEvolution (must convert to upper case because vCard 2.1 only allows
1624   that), leading to problems with mapping phone numbers in the Funambol server.
1625   Diagnosed and reported by Paul McDermott, thanks a lot!
1626
1627 * support receiving plain text notes with \n and \r\n line breaks;
1628   always send with \r\n
1629
1630 * added explicit error message when syncevolution is invoked
1631   with incorrect names in the list of sources to synchronize:
1632   previously it silently ignored unknown names
1633
1634 * added stack dumping in case of premature abort;
1635   removed workaround for lost connection to Evolution Dataserver
1636   again because the workaround itself caused random segfaults inside
1637   glib
1638
1639
1640 SyncEvolution 0.7-pre1 -> 0.7-pre2, 08.11.2007
1641 ----------------------------------------------
1642 C++ client library: branch b_v65
1643
1644 Updating user configuration: no relevant changes in this release. For those
1645 who haven't done so already, enabling large object support is recommended
1646 (see syncml/config.txt sample configs). It is required for myFUNAMBOL to
1647 synchronize very large address books and some users have reported segfaults
1648 unless this option was enabled.
1649
1650 * iPhone bug fix: syncing contacts with photos was unreliable (export) and
1651   crashed (import) because the API had not been called correctly
1652
1653 * iPhone + ScheduleWorld: when configured to use vcard3 (recommended!) then
1654   contacts are exchanged as vCard 3.0
1655
1656 * iPhone + ScheduleWorld bugfix: importing vCard 3.0 did not correctly
1657   classify the phone numbers. A sync with the new "--sync refresh-from-server"
1658   option will fix this, assuming that the server has the correct data.
1659
1660 * Evolution: detect a crashed backend and abort SyncEvolution instead of
1661   hanging forever.
1662
1663 * adapted calendar event insert/update to Evolution 2.12: the UID needs to be
1664   restored, otherwise the Evolution backend crashes (GNOME issue #488881)
1665
1666 * new feature: if the previous log directory is still available,
1667   then local changes made since last sync can be queried
1668   before starting a sync (new option --status) and will be
1669   printed directly before a sync. Setting the "logdir" option
1670   will automatically keep the most recent logs and database
1671   dumps around.
1672
1673 * added command line options:
1674   --sync|-s <mode>
1675     Temporarily synchronize the active sources in that mode. Useful
1676     for a 'refresh-from-server' or 'refresh-from-client' sync which
1677     clears all data at one end and copies all items from the other.
1678
1679   --status|-t
1680     The changes made to local data since the last synchronization are
1681     shown without starting a new one. This can be used to see in advance
1682     whether the local data needs to be synchronized with the server.
1683
1684   --quiet|-q
1685     Suppresses most of the normal output during a synchronization. The
1686     log file still contains all the information.
1687
1688   --help|-h
1689     Prints usage information.
1690
1691   --version
1692     Prints the SyncEvolution version.
1693
1694 * default configurations now reference the normal Evolution databases
1695   ("Personal") thus requiring less changes to use. The account information
1696   is now clearly marked as placeholder which needs to be entered.
1697
1698
1699 SyncEvolution 0.6 -> 0.7-pre1, 17.10.2007
1700 -----------------------------------------
1701 * C++ client library: tag "sdkcpp_6_0_9_1" (same as before)
1702 * added support for Mac OS X/iPhone address book
1703 * fixed Nokia packaging problem which prevented installation
1704   via the package manager unless it was in "red pill" mode
1705 * improved output: less verbose ("extracting" items is now
1706   logged at debug level and thus not normally shown) and more
1707   informative printing of changes (table summarizes number of
1708   changes on client and server, heading for comparison changed
1709   to make it clear that it shows changes on the client)
1710 * example configs were in share/share directory (SF #1767329)
1711 * Nokia 770/800: uninstallable package fixed by setting category
1712   (SF #1781652)
1713 * sync with eGroupware - lost or messed up telephones: SyncEvolution
1714   incorrectly added TYPE=OTHER to phone numbers sent with e.g.
1715   CELL instead of TYPE=CELL (SF #1796086). Another patch was
1716   required for eGroupware itself to correctly map phone numbers
1717   as sent by SyncEvolution, see Compatibility web page.
1718 * SyncCap is not generated unless syncModes are configured: added
1719   a comment to example config (SF #1764123)
1720 * improved error handling: catch errors during post-processing and
1721   continue
1722
1723
1724 SyncEvolution 0.5 -> 0.6, 13.07.2007
1725 ------------------------------------
1726 * C++ client library: tag "sdkcpp_6_0_9_1"
1727 * added support for synchronizing Evolution notes (aka memos) as
1728   plain text where the first line serves as summary; this is the
1729   format understood by ScheduleWorld
1730 * added support for synchronizing Evolution notes (aka memos) as
1731   iCal 2.0 journal; not currently supported by any server and 
1732   untested
1733 * revamped example configs and documentation: only one set of
1734   config files for each server is provided, because this is more
1735   likely to be needed by users
1736 * example configs are now installed in share/doc/syncevolution,
1737   enabled message limit and large object support in them
1738 * added support for Nokia 770/800 (aka Maemo):
1739   built with loadable modules so that it works with whatever
1740   backends are installed, improved log handling to accomodate
1741   for limited space on filesystem (see below), some workarounds
1742 * added workaround for Nokia 770:
1743   contacts are not really deleted unless the EDS-Sync with
1744   instant messaging servers is activated; now SyncEvolution
1745   will delete contacts marked as deleted by the GUI before
1746   a sync if it finds any.
1747   WARNING: if you use EDS-Sync and SyncEvolution, then give
1748   EDS-Sync enough time after going online to finish its own
1749   synchronization of modified/deleted contacts before starting
1750   SyncEvolution.
1751 * improved log handling: writing log and database dumps can be
1752   disabled with "logdir=none", verbosity of log is controlled by
1753   "loglevel", better handling of errors during initial database
1754   access
1755 * added workaround for Evolution bug #455274:
1756   the separator for multiple categories in events and tasks
1757   is not generated and interpreted according to iCalendar 2.0
1758   by Evolution; as a consequence of that items sent to the server
1759   had all categories merged into one and items imported into
1760   Evolution only used one of the catories
1761   http://bugzilla.gnome.org/show_bug.cgi?id=455274
1762 * fixed off-by-one counting of months in backup directory names
1763 * fixed error handling: a failed source was not forced into a slow
1764   sync as required; one failed source prevented saving configs of
1765   not-failed ones and thus forced those into an unnecessary slow
1766   sync
1767 * uses the Funambol C++ testing framework (which is based on the
1768   previous SyncEvolution testing); now creates its configs
1769   and (when using CLIENT_TEST_EVOLUTION_PREFIX=file://<path>)
1770   also the Evolution databases automatically
1771 * implemented synccompare as pure Perl script using Algorithm::Diff
1772   instead of external diff tool
1773 * synccompare did not figure out width of shell window as it should have
1774 * better error handling if creating the before/after database dumps
1775   fails (SF #1685637)
1776 * workaround for Funambol 3.0 trailing = parser bug
1777
1778 UPGRADING
1779
1780 Old config files from 0.5 or older continue to work, but it is recommended
1781 to set the following options to enable message size limits:
1782   maxMsgSize = 8192
1783   maxObjSize = 500000
1784   loSupport = 1
1785
1786
1787 SyncEvolution 0.6pre2 -> 0.6, 13.07.2007
1788 ----------------------------------------
1789 * improved README/HACKING documents
1790 * fixed the new example configs: use event/task for Funambol 6.0,
1791   name was wrong
1792 * added workaround for Evolution bug #455274:
1793   the separator for multiple categories in events and tasks
1794   is not generated and interpreted according to iCalendar 2.0
1795   by Evolution; as a consequence of that items sent to the server
1796   had all categories merged into one and items imported into
1797   Evolution only used one of the catories
1798   http://bugzilla.gnome.org/show_bug.cgi?id=455274
1799 * added workaround for Nokia 770:
1800   contacts are not really deleted unless the EDS-Sync with
1801   instant messaging servers is activated; now SyncEvolution
1802   will delete contacts marked as deleted by the GUI before
1803   a sync if it finds any.
1804   WARNING: if you use EDS-Sync and SyncEvolution, then give
1805   EDS-Sync enough time after going online to finish its own
1806   synchronization of modified/deleted contacts before starting
1807   SyncEvolution.
1808
1809
1810 SyncEvolution 0.6pre1 -> 0.6pre2, 23.04.2006
1811 --------------------------------------------
1812 * C++ client library: tag "sdkcpp_6_0_7" + revision 1.7 of
1813   build/autotools/test/Makefile.am
1814 * added support for synchronizing Evolution notes (aka memos) as
1815   plain text where the first line serves as summary; this is the
1816   format understood by ScheduleWorld, not the iCal 2.0 format
1817   added in 0.6pre1
1818 * improved log handling: writing log and database dumps can be
1819   disabled with "logdir=none", verbosity of log is controled by
1820   "loglevel", better handling of errors during initial database
1821   access
1822 * fixed off-by-one counting of months in backup directory names
1823 * fixed error handling: a failed source was not forced into a slow
1824   sync as required; one failed source prevented saving configs of
1825   not-failed ones and thus forced those into an unnecessary slow
1826   sync
1827 * revamped example configs: only one set of config files for each
1828   server is provided, because this is more likely to be needed
1829   by users
1830 * uses the Funambol C++ testing framework (which is based on the
1831   previous SyncEvolution testing); now creates its configs
1832   and (when using CLIENT_TEST_EVOLUTION_PREFIX=file://<path>)
1833   also the Evolution databases automatically
1834
1835
1836 SyncEvolution 0.5 -> 0.6pre1, 26.03.2006
1837 ----------------------------------------
1838 * C++ client library: CVS snapshot from 26.03.2006
1839 * added support for synchronizing Evolution notes (aka memos) as
1840   iCal 2.0 journal
1841 * added --enable-static-cxa = linking C++ runtime statically:
1842   binaries produced for 0.6 will have less external
1843   dependencies than the 0.5 binaries
1844 * added hacks for Maemo/Nokia 770, including a build
1845   mode with dynamically loadable modules (--enable-shared, --enable-maemo,
1846   --with-patched-dbus)
1847 * implemented synccompare as pure Perl script using Algorithm::Diff
1848   instead of external diff tool
1849 * synccompare did not figure out width of shell window as it should have
1850 * better error handling if creating the before/after database dumps
1851   fails (SF #1685637)
1852 * example configs are now installed in share/doc/syncevolution,
1853   enabled message limit and large object support in them
1854 * workaround for Funambol 3.0 trailing = parser bug
1855
1856 UPGRADING
1857
1858 Old config files continue to work, but it is recommended
1859 to set the following options to enable message size limits:
1860   maxMsgSize = 8192
1861   maxObjSize = 500000
1862   loSupport = 1
1863
1864
1865
1866 SyncEvolution 0.4 -> 0.5, 12.11.2006
1867 ------------------------------------
1868 * C++ client library revision "syncevolution-0-5":
1869   - added support for sending changes in smaller chunks
1870     ("Large Object Support"): disabled by default, see updated
1871     example configuration
1872   - time is printed with GMT offset so that a server admin in
1873     a different timezone can always figure out how a client log
1874     relates to events on the server
1875   - special item keys as they might be stored in some calendars after
1876     importing non-Evolution events are now properly supported
1877 * bug fix: in 0.4 it was necessary to manually configure the verDTD
1878   or the Funambol 3.0a server would choke on the invalid SyncML during
1879   the second synchronization with SyncEvolution; now this option is set
1880   automatically
1881 * added support and testing of transmitting just the changes
1882   from client to server or vice versa; see "one-way-from-server/client"
1883   in example configuration
1884 * fixed/updated comments in the example configuration
1885 * improved automated testing and fixed the problem that CPPUnit was not
1886   found unless it was part of the system
1887 * Now works on Maemo/Nokia 770: minor changes were necessary so that
1888   the system address book can now be selected under the name "<<system>>.
1889   Copying 300 contacts into the Nokia 770 went fine, but any further
1890   attempt to synchronize suffered from timeouts inside the embedded
1891   Evolution Data Server.
1892
1893
1894 SyncEvolution 0.3 -> 0.4, 11.09.2006 
1895 ------------------------------------
1896 * C++ client library revision "syncevolution-0-4":
1897   - added support for device information, required by some servers
1898   - fixed incompatibilities with non-Funambol servers
1899   - the user agent string can now be modified in the
1900     spds/syncml/config.txt, but it is recommended to not set
1901     it explicitly. Then SyncEvolution will automatically insert
1902     its current version.
1903   - #305795: for tasks the "text/x-todo" type from the configuration
1904     was sent to servers instead of the correct "text/calendar"
1905     provided by SyncEvolution itself
1906   - sync modes "refresh-client/server" can now be specified as
1907     "refresh-from-client/server" in the config
1908 * updated default syncml/config.txt:
1909   - firstTimeSyncMode has never been implemented in the library,
1910     removed its documentation,
1911   - added documentation for userAgent
1912   - use "refresh-from-client/server"
1913 * SF issue 1511951: support copying changes back from EGroupware
1914   server by not expecting the UID of calendar items to be unmodified
1915 * fixed a bug where after a refresh-from-client sync changes would
1916   be sent to the server again during a two-way sync although the
1917   server already had them
1918 * implemented authentication for Evolution databases
1919 * synccompare was removing too many parts of vCards with 
1920   single-value ORG properties
1921 * improved error reporting when selected server is not configured
1922 * changed vCard parser to make it compatible with servers
1923   which send a verbatim semicolon as part of properties where
1924   the semicolon has no special meaning
1925 * If minor errors occur like not being able to insert an
1926   item at the client or server side, then it is reported in the
1927   log and output, but the next synchronization will be a normal
1928   synchronization, not a forced slow one as in previous versions.
1929   The old approach ensured that the problem was noticed and fixed,
1930   but required user assistance. With the new approach synchronization
1931   continues to work, although without fixing the root cause of
1932   the problem.
1933 * Workaround for bug in Evolution 2.0.6 (and perhaps other versions):
1934   for calendars and task lists not all deleted items were reported
1935   at once thus a single synchronization would only tell the server
1936   about a subset of the changes. Repeating the synchronization would
1937   eventually be told of all changes, so now this repetition is built
1938   into the code which queries for changes and a single synchronization
1939   is sufficient as it should be.
1940
1941
1942 SyncEvolution 0.4 pre2 -> 0.4, 11.09.2006 
1943 -----------------------------------------
1944 * adapted to C++ client library from CVS head, tagged as syncevolution-0-4:
1945   devinfo.patch patch was merged with several changes to the API
1946 * SF issue 1511951: support copying changes back from EGroupware
1947   server by not expecting the UID of calendar items to be unmodified
1948
1949
1950 SyncEvolution 0.4 pre1 -> pre2, 21.08.2006
1951 ------------------------------------------
1952 * C++ client library revision "syncevolution-0-4-pre2":
1953   most patches were merged into CVS head, but .patches/devinfo.patch
1954   still needs to be applied manually when checking out from the
1955   Funambol CVS instead of using the bundled version
1956 * fixed a bug where after a refresh-from-client sync changes would
1957   be sent to the server again during a two-way sync although the
1958   server already had them
1959 * implemented authentication for Evolution databases
1960 * synccompare was removing too many parts of vCards with 
1961   single-value ORG properties
1962 * improved error reporting when selected server is not configured
1963 * use 7-bit quoted-printable encoding with explicit UTF-8 charset for
1964   vCard 2.1 to avoid any potential confusion about the content; not
1965   really necessary because SyncML specifies 8-bit UTF-8 as the default
1966 * fix for 0.4 pre 1: sending CHARSET is not allowed (and not
1967   needed) for vCard 3.0, so it was removed again (did not harm
1968   either)
1969 * fix for 0.4 pre 1: sending vCard 2.1 to Synthesis server did
1970   not work because the new device info always mentioned 3.0 as
1971   the preferred format - now the preferred format matches the one
1972   that was configured and that thus will be used.
1973
1974
1975 SyncEvolution 0.3 -> 0.4 pre 1, 2006-08-06
1976 ------------------------------------------
1977 * C++ client library revision "funambol30ga" plus the patches
1978   stored in its ".patches" directory:
1979   - the user agent string can now be modified in the
1980     spds/syncml/config.txt, but it is recommended to not set
1981     it explicitly. Then SyncEvolution will automatically insert
1982     its current version.
1983   - now compatible with additional servers (fixed some SyncML
1984     protocol issues, added support for sending device
1985     information)
1986   - revised API of the client library
1987   - #305795: for tasks the "text/x-todo" type from the configuration
1988     was sent to servers instead of the correct "text/calendar"
1989     provided by SyncEvolution itself
1990   - sync modes "refresh-client/server" can now be specified as
1991     "refresh-from-client/server" in the config
1992 * updated default syncml/config.txt:
1993   - firstTimeSyncMode has never been implemented in the library,
1994     removed its documentation,
1995   - added documentation for userAgent
1996   - use "refresh-from-client/server"
1997 * changed vCard parser to make it compatible with servers
1998   which send a verbatim semicolon as part of properties where
1999   the semicolon has no special meaning
2000 * If minor errors occur like not being able to insert an
2001   item at the client or server side, then it is reported in the
2002   log and output, but the next synchronization will be a normal
2003   synchronization, not a forced slow one as in previous versions.
2004   The old approach ensured that the problem was noticed and fixed,
2005   but required user assistance. With the new approach synchronization
2006   continues to work, although without fixing the root cause of
2007   the problem.
2008 * Workaround for bug in Evolution 2.0.6 (and perhaps other versions):
2009   for calendars and task lists not all deleted items were reported
2010   at once thus a single synchronization would only tell the server
2011   about a subset of the changes. Repeating the synchronization would
2012   eventually be told of all changes, so now this repetition is built
2013   into the code which queries for changes and a single synchronization
2014   is sufficient as it should be.
2015 * Made it compile on Maemo 2.0, the Nokia 770 build environment, by
2016   adding "--disable-ecal". Not tested yet, though.
2017
2018
2019 SyncEvolution 0.3, 2006-06-27
2020 -----------------------------
2021
2022 * added syncing of calendars and tasks as iCalendar 2.0
2023 * added syncing of contacts as vCard 3.0
2024 * tested extensively with sync.scheduleworld.com and
2025   added an example configuration for it
2026 * uses C++ client library revision "wmplugin_3_0_20"
2027   which contains several bug fixes, among them proper
2028   support for special characters and memory handling
2029   fixes
2030 * much nicer listing of changes made during a sync,
2031   handled by the improved "synccompare" utility script
2032   (formerly known as "normalize_vcard")
2033 * improved automated testing
2034
2035
2036 SyncEvolution 0.2, 2006-03-19
2037 -----------------------------
2038
2039 * added automatic backup mechanism and log storage,
2040   see "Automatic Backups and Logging".
2041 * output no longer is the original log data, but rather
2042   a human-readable report of errors and synchronization
2043   results.
2044 * "normalize_vcard" can now also compare two .vcf files
2045   directly.
2046 * improved unit tests to catch more errors
2047 * hide certain differences in vcards coming back from
2048   the server: duplication of extended vcard properties,
2049   missing TYPE=OTHER
2050 * fixed client library problems:
2051   see http://forge.objectweb.org/tracker/?group_id=96&atid=100096
2052       #304792, #304829
2053 * added some more problems to the "Known Problems" section
2054
2055
2056 SyncEvolution 0.1, 2006-03-13
2057 -----------------------------
2058
2059 * initial release