03/02/2011, 05:52 PM
UPDATE Oct. 11 2013
Development of the SyncML synergy connector is currently halted. SyncML support on the server side seems to fade out... the new big thing seems to be caldav.
So, I put all my spare time right now into a caldav/carddav synergy connector which is meant to come a long with open webos ports, but is also working on legacy devices. The implementation is much more stable, also because caldav is much easier than SyncML, and already gives a pretty stable downsync of calendar and contact data from multiple caldav servers. Upsync is currently worked on, but to much alpha right now.
If you are interested, you can follow development here:
(or my own, more experimental, fork: https://github.com/Garfonso/org.webo...ntacts.carddav )
Hopefully we'll see some kind of alpha release, soon.
Status is now:
- Calendar sync is working.
- Contacts is prepared but still not in place, leave disabled!
- All sync modes should work (slow, two-way, refresh, one-way)
- webOs 2.x is necessary (maybe 3.x works, too, did not test that. But should require only few changes)
- service is still not implemented. only sync through the app possible (start sync button)
- account needs to be setup in account (configure button)
- will spam you with debug text, finished if spinner stops spinning (if it never does the app most probably locked up or is waiting for the server. Waiting can take some minutes especially on a slow sync with many events).
What's on my TODO List:
- Support for synergie in 2.X (working on that!)
- Polish the app (maybe :P)... (will be necessary to report debug logs, now.)
- Save user/password in keymanager. Currently it will be saved in db unencrypted
- Implement md5-auth (currently it's b64 encoded which can be easily decoded, so use https if possible. Else everyone in the network could get your server password)
- Contacts sync
- Maybe Memo/Tasks?
Feel free to install the ipk there. But be warned that you might lose your data (or much more likely) get your data screwed up by duplicates or similar... I'll be happy to hear your findings.
The most easy way to get the log from the device to me currently is to copy the file /var/log/messages and email it to me. But that's not really convinient, right? I'll try to get something better in place, soon.
(old stuff about the 1.4.5 app. For webOs 2.x and maybe als 3.x see above)
I'm currently working on a webOsSyncML Client. I compiled the funambol c++ SDK for webOs using the PDK and then started to implement a connection to webOs.
At the moment only calendar sync is working. Contact-Sync doesn't do anything (and might as well break everything, including your server! :P), better leave it switched OFF!
Some security advices:
DON'T USE THIS SOFTWARE WITH YOUR PRODUCTION SYSTEM (SERVER/PHONE). NO MATTER WHAT YOU DO, BACKUP YOUR DATA. A BUG COULD EASILY WHIPE ALL YOUR DATA!!! IT HAPPENED TO ME, BE WARNED, I'M NOT RESPONSIBLE FOR ANYTHING.
If any one wants to try it (or even wants to contribute), it's open source and available here: https://github.com/Garfonso/webOsSyncML (There is an build IPKG file, which should be the latest version.. No real version numbering, yet... and there is the complete source code. I also included the makefiles I used to compile the libfunambol.a and the binary of the lib itself. There are also other libs needed, which are inside the folder cpp-sdk/libs. I had no problem on my more or less "clean" pixi plus running the app without copying something...)
- Parts of the code are still quite dirty and might be very inefficient.
- It's an early unstable realease and it loggs VERY MUCH to it's own file (see next bullet) and the system log.
- All data that is transfered get's written to /media/internal/.webOsSyncML/output.txt So anyone that get's hold of your USB Drive might get all events that where transferred by the sorftware.
- It will save your password inside a cookie (no clue how "secure" that is).
- It is only working on webOs 1.4.5, webOs 2.X is just incompatible, because of a different way to work with accounts / calendars. I'll be looking into that later.
- Hybrid App support is not very good in 1.4.5, there might be issues (the c++ part won't run on one of my pre's until I doctored it). I can't help with such issues...
- As a hybrid app it will never make it's way into the 1.4.5 app catalog.
- It can only sync in UTC-Timezone, that means your server has to send times in UTC and expect times sent be the device to be UTC, too.
Calendar Sync with modes "Refresh from server, Slow, Two-Way" is working, at least in my test setup that is a Pixi Plus with an eGroupware 1.9svn-Server. It "should" be working with other SyncML Server, too. There might be incompatibilities in the iCal structure, though, so it would help me very much if people could test the software with their servers and send me (at least parts) of their output.txt, if they find some issues... Ah: Only iCal is supported, no sif support, I'm sorry.
Interestingly enough the sync mode "Refresh from client" is not working in my setup... It runs into an endless loop sending the server some packet and receiving the same answer over and over again. I consider that to be a bug (or incompatibility) between funambol and egroupware (but I'm not sure about that and haven't investigated that much, yet)... I have not tested the one direction sync modes, yet.
A short explanation of the app:
In order to sync you need to run the app. No magic background syncing yet (if it will ever exist: I don't know!). On first run, click on "Configure" and enter your SyncML Server details, first a name (which will also be visible in the webOs Calendar), url of the rpc file (for example egroupware/rpc.php), username and password (as stated that will be saved in a cookie!).
Then you should tick "sync calendar" (and keep "sync contacts" ticked off!!), select a sync mode (slow or refresh from server would be a good idea for the first sync, Two-Way is a fast "only changes" sync, which should be ok for later syncs) then enter a iCal-datastore of your server. I typed in ./calendar here, it might aswell be calendar or vcal or similar...
After that, you should go back and press "start sync". This will take you to the "syncScene" and now the app will try to create an account and an empty calendar (a calendar with the name you entered and with the funambol icon should appear after that in the calendar accounts card!). The card is not very polished.. diagnostic messages will "flood" the lower part... now, if no new messages are arriving and you are feeling lucky, press "start sync". If only a message "Object # has no method ..." appears, the c++ part was not started. You could try to press it again after a short wait (on my pixi plus it takes a few seconds to create the jail and start the app). If that doesn't help, have a look at the device-shell (you should know how to use putty for that step) with ps auxc and see if you find some "webOsSyncML_plugin" app in the list and if the status is "defunct" or similar.. if there is nothing or it is defunct => you're screwed. I had the same problem on my pre plus, it would only run the app, if I disabled the jail (I won't recommend that and I won't give instructions here on how to do it!!). The only solution was to doctor the phone...
Now, if the app is running and you clicked on "start sync" there will be much magic going on in the back (a pixi gets a bit unresponsive...), producing some diagnostic messages in the lower part of the card and eventually counting up some of the numbers in the upper part... If you are curious just follow the system log of your device, there will be massive output there!
In the end the diagnostic output eventually will say "Sync completed" or similar and maybe tell you that "there were errors" (which is not very accurate, it sometimes says that everything was fine, even if there were errors... I still need to polish that part).
You can now close the app and take a look at the webOs calendar and your new entries (hopefully).
For all 1.4.5 users: I'm sorry to say that I abandone support for the 1.4.5 version of the app. I'll only continue work on the 2.x version. You are still free to download the 1.4.5 version from the git repository above and see if it works for you. If not, you are free to fix any issues you encounter. It's open source after all.
Is there any interest in a SyncML client for webOs? I'd appreciate some comments...
This thing ate up all my spare time for the last two weeks (and a considerable amount of my normal sleeping time!). I'm not sure yet, if I just "leave the code" to the public and keep my "working" version for my private use, or if I should invest even more time to polish the app and get it released maybe to the homebrew feeds or even into the 2.x app catalog someday... So some positive feedback would help my motivation here... I will definitively have a look into a transition to 2.X, because I got a Pre2 already and finally made it into the early access program.. Maybe even some more expirienced webOs coders have a look at the code and give me some hints...