|
From: Henrik /K. <he...@ka...> - 2009-10-24 12:07:17
|
Dear all, Following up on my earlier posts, here is my latest, crazy idea: Kill the mozilla-sync plugin. As mentioned before, the current design is flawed (using not-thread-safe functions from Mozilla in threads), does not work with Thunderbird 3, and is a nightmare to port between platforms - even between different linux distros. Instead of using more development time on the mozilla-sync plugin, syncing Mozilla could be accomplished by - using the syncml-http-server plugin in OpenSync - using the Funambol Thunderbird extension (https://mozilla-plugin.forge.funambol.org/) I tried this setup, and the Funambol extension is able to communicate with the syncml-http-server. However, the sync fails, so there is more work to be done here... Further, the Funambol extension does not work with Thunderbird 3, and it is unclear if work is ongoing to address this. But I am starting to think that time may be better spend on fixing the OpenSync core, syncml-http-server and/or Funambol than re-designing and re-implementing mozilla-sync. Then there is the question of GUI... blueZync is a GUI for OpenSync in Mozilla. It does not suffer from the mozilla-sync design flaw or Thunderbird 3 incompatibility, but is still difficult to port, and not really satisfactory. I am thinking about killing this one as well, and maybe work on a GTK+ replacement for kitchensync. Maybe this GUI could even be launched from within Mozilla with a small plugin. Your comments and thoughts about the above would be much appreciated. /Henrik |
|
From: Daniel G. <go...@b1...> - 2009-10-24 13:27:06
|
On Saturday 24 October 2009 02:07:02 pm Henrik /KaarPoSoft wrote: [...] > Following up on my earlier posts, here is my latest, crazy idea: Kill > the mozilla-sync plugin. > > > As mentioned before, the current design is flawed (using not-thread-safe > functions from Mozilla in threads), does not work with Thunderbird 3, > and is a nightmare to port between platforms - even between different > linux distros. > > Instead of using more development time on the mozilla-sync plugin, > syncing Mozilla could be accomplished by > - using the syncml-http-server plugin in OpenSync > - using the Funambol Thunderbird extension > (https://mozilla-plugin.forge.funambol.org/) How complicated would be the setup to get this kind of sync working? I wonder if this would allow kind of a out-of-the box setup? When Armin and others decided to implement a IPC system in OpenSync they also introduced this three "ProcessStartTypes" for plugin: - thread (default) - process (fork - runs in the osplugin wrappe process) - external (communication via FIFO) The later one was iirc the idea to be used for applications like thunderbird or mozilla, which didn't provide any public API or easy to handle API to sync. so if the funambol thunderbird extension doesn't work out ... whabt about writing an "OpenSync extension" for thunderbird? This extension is more or less a OpenSync plugin living inside this extension. This extension would then communicate with the OpenSync framework via a fifo ... ipc/fifo setup is all handled by the OpenSync API - AFAIK. Unfortuantely there is no real-life example yet, but the code for those external plugins exists. Need to check if i can make up an example out of testcases ... Or would this be no option for you? I could imagine something like this would allow simpler setup ... since you don't have to setup things like an local IP connection or so. For an regular users this would be a bit confusing to configure a "network" connection to talk to a local running application - right? But i see your point in avoiding redudant-code or reinventing the wheel and so .. [...] > > > Then there is the question of GUI... > > blueZync is a GUI for OpenSync in Mozilla. > It does not suffer from the mozilla-sync design flaw or Thunderbird 3 > incompatibility, but is still difficult to port, and not really > satisfactory. > I am thinking about killing this one as well, and maybe work on a GTK+ > replacement for kitchensync. Acutally you would work on a replacement of MultiSync-0.90 - which is a OpenSync GTK gui .. currently AFAIK unmaintined. There is also gnome-sync-tool you might want to have a look at. > Maybe this GUI could even be launched from within Mozilla with a small > plugin. Yeah, this would be indeed very intersting. But i'm not familiar with Mozilla how this works ... You don't have to use KitchenSync as _the_ ideal OpenSync GUI. You could also write some Mozilla plugin(s) which just setup a sync with dedicated plugins - e.g. Mobile-Sync-Plugin for Mozilla Which provides a very simple UI to setup a group of a mozilla-plugin and the syncml-obex-client and maybe some other (synce, gnokii-sync, ...) just dedicated for mobile syncing ... so you don't have to write a UI to create generic groups for all available plugins and so. Just an UI which provides a search-bluetooth-device UI or so and setups a group with the best fitting plugin on the fly. But the end-user doesn't see anything that there got a group with member created - your app doesn't need to support multiple groups and so ... > > > Your comments and thoughts about the above would be much appreciated. [...] Best Regards, Daniel -- Daniel Gollub Geschaeftsfuehrer: Ralph Dehner FOSS Developer Unternehmenssitz: Vohburg B1 Systems GmbH Amtsgericht: Ingolstadt Mobil: +49-(0)-160 47 73 970 Handelsregister: HRB 3537 EMail: go...@b1... http://www.b1-systems.de Adresse: B1 Systems GmbH, Osterfeldstraße 7, 85088 Vohburg http://pgpkeys.pca.dfn.de/pks/lookup?op=get&search=0xED14B95C2F8CA78D |
|
From: Henrik /K. <he...@ka...> - 2009-10-24 12:49:35
|
Thanks for your comments, Daniel! Daniel Gollub wrote: > On Saturday 24 October 2009 02:07:02 pm Henrik /KaarPoSoft wrote: > [...] > >> Following up on my earlier posts, here is my latest, crazy idea: Kill >> the mozilla-sync plugin. >> >> >> As mentioned before, the current design is flawed (using not-thread-safe >> functions from Mozilla in threads), does not work with Thunderbird 3, >> and is a nightmare to port between platforms - even between different >> linux distros. >> >> Instead of using more development time on the mozilla-sync plugin, >> syncing Mozilla could be accomplished by >> - using the syncml-http-server plugin in OpenSync >> - using the Funambol Thunderbird extension >> (https://mozilla-plugin.forge.funambol.org/) >> > > How complicated would be the setup to get this kind of sync working? > Well, I have verified that the two can talk in the first place. Since they are both SyncML it "should" work, so I hope fixing the problems should not be too difficult. > I wonder if this would allow kind of a out-of-the box setup? > run osynctool launch mozilla press funambol button in mozilla. (However, a better GUI would be needed - see below) > When Armin and others decided to implement a IPC system in OpenSync they also > introduced this three "ProcessStartTypes" for plugin: > > - thread (default) > - process (fork - runs in the osplugin wrappe process) > - external (communication via FIFO) > > The later one was iirc the idea to be used for applications like thunderbird > or mozilla, which didn't provide any public API or easy to handle API to sync. > > so if the funambol thunderbird extension doesn't work out ... whabt about > writing an "OpenSync extension" for thunderbird? > > This extension is more or less a OpenSync plugin living inside this extension. > This extension would then communicate with the OpenSync framework via a fifo > ... ipc/fifo setup is all handled by the OpenSync API - AFAIK. > Yes, that is certainly also something I was thinking about. > Unfortuantely there is no real-life example yet, but the code for those > external plugins exists. Need to check if i can make up an example out of > testcases ... > The lack of documentation/example is one of the things holding me back from this approach. > Or would this be no option for you? > I could imagine something like this would allow simpler setup ... since you > don't have to setup things like an local IP connection or so. For an regular > users this would be a bit confusing to configure a "network" connection to > talk to a local running application - right? > Technically this is no problem. syncml-http-server and Funambol handles this already. > >> Then there is the question of GUI... >> >> blueZync is a GUI for OpenSync in Mozilla. >> It does not suffer from the mozilla-sync design flaw or Thunderbird 3 >> incompatibility, but is still difficult to port, and not really >> satisfactory. >> I am thinking about killing this one as well, and maybe work on a GTK+ >> replacement for kitchensync. >> > > Acutally you would work on a replacement of MultiSync-0.90 - which is a > OpenSync GTK gui .. currently AFAIK unmaintined. > > There is also gnome-sync-tool you might want to have a look at. > I never used any of those tools. But I will have a look. > [...] > You don't have to use KitchenSync as _the_ ideal OpenSync GUI. You could also > write some Mozilla plugin(s) which just setup a sync with dedicated plugins - > e.g. Mobile-Sync-Plugin for Mozilla > > Which provides a very simple UI to setup a group of a mozilla-plugin and the > syncml-obex-client and maybe some other (synce, gnokii-sync, ...) just > dedicated for mobile syncing ... so you don't have to write a UI to create > generic groups for all available plugins and so. > > Just an UI which provides a search-bluetooth-device UI or so and setups a > group with the best fitting plugin on the fly. But the end-user doesn't see > anything that there got a group with member created - your app doesn't need to > support multiple groups and so ... > > This is exactly what blueZync is doing today. Even with multiple groups and generic plugin handling. But the problem is that I have to drag along a complicated XPCOM C++ interface to call the OpenSync functions and receive the callbacks. It kind-of works today, but it is not nice, and not easily portable (actually, it IS portable, but getting the prerequisites (Mozilla SDK etc) in place is a mess. /Henrik |