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