Skip to content

SyncEvolution 0.8 beta 1

I have tagged and compiled beta 1 of SyncEvolution 0.8. In contrast to the previous alpha, this one is considered stable and ready for wider testing and usage. Therefore I have prepared the full range of binary packages, including Mac OS X (which I had skipped in the alpha). There is no iPhone package, because Funambol is now carrying on with that work.

Please report problems in the bug tracker and/or add a comment here so that it others have an easier time keeping track of the state of 0.8. Encouragements to release the final 0.8 because the beta already works well are also welcome ;-)

When testing I noticed some minor issues, but I’m not going to recompile because of them:

  • The sqlite backend is active although it serves no useful purpose other than as source code example; please ignore it. The final 0.8 won’t have it.
  • I screwed up the versioning of the Debian packages. The new “beta1″ version is considered less than the previous “alpha1″. If you have installed that alpha, then you’ll have to ask your packaging tool explicitly to install the beta1.

Changes in 0.8 beta 1 compared to alpha 1 (see 0.8 alpha 1 for previous changes)

  • Added support for detached recurrences (aka modified instances of a recurring event). Requires a SyncML server which supports this. ScheduleWorld was extended to do that.
  • Fixed segfaults caused by logging certain data. The reason was an API change in the client library’s logging calls which the older SyncEvolution code hadn’t been adapted to. Did not normally occur, but might have been the reason for SF #1830149 (unconfirmed).
  • when creating a config for the first time, only enable sync sources which can be synchronized (SF #1991286)The check for that was completely missing. Now SyncEvolution checks that the backend is available and there is at least one database (the first one will be synchronized unless explicitly changed). If these checks fail and the sync source was explicitly requested by the user by listing it after the server name, then an error is printed and no configuration is written. If the user wants the default setup, then the source is silently disabled.
  • Fixed incorrect properties in some of the new server templates (ScheduleWorld syncURL + calender URI, Funambol syncURL, ScheduleWorld addressbook type)
  • Device IDs must start with the “sc-pim-” prefix, otherwise myFUNAMBOL may treat different devices as the single phone that myFUNAMBOL supports, leading to unwanted slow syncs.
  • Maemo package is build again so that backends are loaded dynamically: installing Dates application is optional, as it was with the 0.7 release (SF #1993109). The useless "list: unable to access calendars: failure" error message is avoided. It was triggered by not having memo support in Evolution Data Server. Cleaned up the code so that it properly distinguishes between ‘calendar’, ‘memo list’ and ‘task list’.
  • added server template for MemoToo; note that the server has not been tested
  • added synchronization of Evolution memo summary Most devices only synchronize plain text and do not have a separate summary field. Such an extra summary field was added to Evolution after memo support was initially implemented in SyncEvolution, therefore SyncEvolution did not transmit that field.Added transmitting the summary by inserting it as first line of the plain text blob *if* it is not already identical with the first line. When receiving a memo, the summary is set from the first line *without* removing the first line because the first line might have been used as a normal part of the memo.
  • removed --properties option: it wasn’t implemented yet and won’t be in 0.8
  • fixed regression in alpha 1: setting sync mode during status query or sync affected *all* sources, even the disabled ones. Now it only affects the enabled ones, as intended. To enable disabled sync sources, list them after the server name.

Switching between 0.8 and 0.7

This version introduces a new, simplified configuration layout. Old configurations still work. They can be converted to the new format via a new --migrate command line option.

This version also uses a different change tracking for Evolution calendars, task lists, memos and Mac OS X AddressBook. After switching from a release <0.8 to the current one or vice versa, do a syncevolution --sync refresh-from-server once to reset the change tracking. Not doing so can result in applying the same changes to the server multiple times and thus duplicates.

Installation

Installation is done almost as described for the the stable release. But because I don’t want users of the stable version to pick up the beta version accidentally, you need to use different repositories:

{ 12 } Comments

  1. Romano Giannetti | July 14, 2008 at 10:45 am | Permalink

    Tested it, it seems to work like a charm. In two way mode I have still a lot of update – add things after just deleting an entry from the phone, but the final result seems ok (maybe it’s just a skew in the time or similar thing.)
    Thanks!

    (By the way: it’s syncevolution –sync refresh-from-server , you have a “–” before refresh here.)

  2. Patrick Ohly | July 14, 2008 at 4:34 pm | Permalink

    Romano, thanks for pointing out the “–refresh-from-server” typo. Fixed. A good chance to point out that the new config/option handling is smart enough to detect this right away and lists the valid options: ERROR: '--sync --refresh-from-server': not one of the valid values (two-way, slow, refresh-from-client = refresh-client, refresh-from-server = refresh-server = refresh, one-way-from-client = one-way-client, one-way-from-server = one-way-server = one-way, disabled = none)

    Regarding the unwanted updates in two-way mode: are these changes applied by the server to the local data? In that case the server is confused about what needs to be modified on the client. This shouldn’t happen. Is this with ScheduleWorld by any chance? I have seen similar behavior when testing beta 1 and already told the developer about it, but it would be good if you would also describe your problem in more detail. If it is with ScheduleWorld, can you post about it in the forum over there? I’m watching that and can chime in if necessary. Please describe in detail what steps you take to trigger the problem (modifications made on which client, which syncs, etc.).

  3. Combatdoc | July 15, 2008 at 12:29 am | Permalink

    Where exactly is the configuration file now on Nokia Tablets?
    I installed syncevolution .8 from fresh and ran syncevolution -c scheduleworld.
    It created a config without a username/auth somewhere on my n810, but I can’t find it. There is no .syncevolution or the other directory in home/user or /root. Nothing in etc. The only thing I can find it the client.log file in /var/tmp

    Thanks

  4. Combatdoc | July 15, 2008 at 12:47 am | Permalink

    Sorry, found the config file.
    On my Nokia n810 I get the follwoing when running it though:

    $syncevolution scheduleworld
    Local changes to be applied to server during synchronization:
    *** addressbook ***
    Comparison was impossible.

    16:46:18 [INFO] Preparing synchronization of addressbook…
    16:46:19 [INFO] addressbook: sync mode is ’slow’
    Segmentation fault

  5. Patrick Ohly | July 15, 2008 at 6:28 pm | Permalink

    Combatdoc, when using 0.8, all parameters can be set via the command line (see the blog post about the alpha for an example). If you want to, you can still edit config files, of course. syncevolution --print-servers prints a list of all existing configurations and their location.

    Regarding the crash, this is a known problem. A string returned by the Evolution lib seems to be uninitialized. I’ll stop using that string and release an update.

  6. jukey | July 15, 2008 at 10:27 pm | Permalink

    Tested the new Version with my scheduleworld account and it works very fine. Thanks Patrick! :-)

  7. Patrick Ohly | July 15, 2008 at 10:59 pm | Permalink

    I have updated the Maemo .deb package: 0.7+0.8-beta1a disables the feature which depends on the string which is garbage, so now the segfault should be gone. For the curious, it is the feature that contacts marked for removal by the address book GUI are removed by SyncEvolution as part of a sync. ITOS 2006 used to keep those contacts around forever, therefore contacts were not deleted on the SyncML server either. Later ITOS releases seemed to delete the contacts by themselves, so deleting them in SyncEvolution should no longer be necessary.

    If you delete contacts on the Tablet and this change is not sent to the server, then please let me know what ITOS you are using and whether eds-sync is active.

  8. Combatdoc | July 16, 2008 at 1:37 am | Permalink

    It seemed to work just fine.
    I did notice an oddity related to the database. I had contacts in both Pimlico Contacts and the Tablet Contacts. When I sync’d to scheduleworld, it uploaded everything, so I had some duplicates in Scheduleworld. I guess each app uses an ID to differentiate in the database.

    Anyway, I deleted all the Tablet Contacts info and it crossed over just finr to scheduleworld, and I modded a contact and that worked just fine as well. I’ll continue to report back if I notice anything else.

    I think I’ll install DATES and see how that works.

    Great work BTW, and much needed.

  9. Combatdoc | July 16, 2008 at 6:19 am | Permalink

    How do we setup multiple calendar sync now? I have two calendars in scheduleworld and I need to sync both to DATES on the NIT.

    I read through the site and tried syncevolution –configure –sync-property username= –sync-property password=
    putting the new calendar in as the account name, but that did nothing but overwrite the existing config.

    The site led me to believe if I did that it would create a new config I could just change. The wiki is about useless now.

  10. Combatdoc | July 16, 2008 at 7:09 am | Permalink

    Ok, I got it, but just to let you know the issue with ClientAuthType=syncml:auth-md5 still exists when syncing multiple calendars. And you still have to add the ?cal=XXXXX to the end of the SyncURL as well.

    You need to change it to auth-basic, and then its almost intolerably slow -esp in two-way mode. It took about 3 minutes to sync 4 items.

  11. Patrick Ohly | July 16, 2008 at 6:43 pm | Permalink

    I had contacts in both Pimlico Contacts and the Tablet Contacts. When I sync’d to scheduleworld, it uploaded everything, so I had some duplicates in Scheduleworld.

    Both Pimlico Contacts and Tablet Contacts access the same Evolution Data Server database, which is the one synchronized by SyncEvolution. If there were duplicates after the sync, then it most likely was due to the failed syncs earlier.

    Regarding synchronizing two calendars: yes, the Wiki should be updated now that 0.8 beta 1 is available… done. It shouldn’t be slower than other syncs, though. Perhaps ScheduleWorld was especially loaded when you ran the command. The client.log of each sync contains time stamps which show when messages are sent to the server and when the reply comes back.

  12. Frederik | July 30, 2008 at 3:21 pm | Permalink

    Just a small update from the Genesis side: Genesis 0.4b1 is now released, which is the first official Genesis release compatible with the new config handling in syncevolution 0.8: https://launchpad.net/genesis-sync/+announcement/777

    Everyone’s invited to try it out. I think it’s quite stable right now, but I’d be glad to iron any potential issues out so Genesis 0.4 could be released as soon as SyncEvolution 0.8 is ready.

Post a Comment

Your email is never published nor shared. Required fields are marked *