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