To read all comments associated with this story, please click here.
This doesn't actually depend on any terribly new code. The opensync version used is 0.22, which has been around since early 2007. Current development version is 0.36, but using this in production is *not* recommended by the OpenSync developers (or me - I tested it, and the KDE and Evolution backends don't work). SynCE used is 0.11, which has also been around for a while.
KitchenSync - the GUI front end you see in the video taking care of the actual sync - is somewhat newer, but has still been around for a while, and MultiSync (the GTK+ alternative) has been around for ages.
synce-kpm is probably the newest bit of code in use in that video: that's the application used to create the initial sync partnership with the phone. A 0.11 version is available from SynCE project, but the Mandriva package is using the current SVN head.
What I really had to do to make it all work like you see in the video was a succession of minor things. None of them is really hard to fix on its own, but the cumulative effect of all of them is to make this a real slog to do if your distribution doesn't do it for you.
#1, the usbnet /rndis_host / cdc_ether drivers in the kernel.org kernel and most distributions does not support WM5/6 devices. SynCE have a patched build of the module that fixes this but it's not yet been accepted upstream. So the Mandriva 2008 Spring kernel has this patched version included. With previous MDV and all other distros I know of, you'd have to build these versions of the modules yourself.
#2, sync-engine (the tool that actually handles partnerships between the devices and SynCE) has a couple of bugs I fixed by backporting fixes from SVN.
#3, sync-engine doesn't run automatically when it's needed, in the default upstream configuration. You have to run it manually, or you can't create any partnerships, and you have to make sure it's running whenever you want to synchronize. I created a dbus activation profile for it, so that it gets run automatically when anything tries to access it via dbus. (I'm indebted to John Carr for this idea).
#4, synce has a bug which prevents a default configuration being created the first time you try and do anything with it, if there isn't one already. This stops anything working. This is partially fixed in upstream SVN, but the distro's synce packages have to make sure to package the default configuration file in the correct place to be copied, which I fixed in ours.
there's a bunch of other little things like this I had to fix. As I said, it's all small things that add up. And then the other big thing is to make it easy to put it all together, which is what the metapackage does in Mandriva. Without the task-wm5sync metapackages that make it easy to install all the necessary stuff, it's not actually easy to know that what you need for all this to work is synce, opensync, odccm, libopensync-plugin-synce , libopensync-plugin-kdepim , synce-kpm and kitchensync. It took me quite a lot of research and reading to figure this out.
it wouldn't be super-hard to implement this in most distros; all it needs is a maintainer with a test device and the willingness to put it all together. I started working on this around Tuesday last week, just to get my own device working, but it became obvious that it would be reasonably easy and very nice to implement a system so it'd work for most Mandriva users. I'm going to push as many of my changes upstream as possible, and I'm happy to answer any questions any maintainers for other distros have if they try to implement this stuff for their own distro and get into trouble anywhere. Of course, all the patches and changes in the MDV packages are available in our SVN repository.
Wow, that sounds like a pain in the ass. Even with the packages making it easy in Mandriva, there's probably going to be nothing in the phone's manual telling people using Linux how to do that, so I would hope that when you plugged in the phone without any of these packages installed, there would be at least something popping up, informing users what they need to do.
I don't think I would ever go through what you just said you did. I'm getting too old for that sh*t 
Could you point me in the right direction to do this please?
I've been playing with synce and WM6 sporadically for a while but this article has prompted me to get it working properly. I don't know if knotes is supposed to sync properly but contacts, tasks and appointments seem to work perfectly. It's just such a pain having to rebuild the drivers every time my kernel is updated and having to manually kick start the back end every time I want to sync.







Member since:
2005-07-06
This looks great! One of my main remaining sore points for me is the ability to sync my WM6 phone with Linux. On the other hand I am not willing to switch distros just for this ability.
It seems to be a facet of a new release of Opensync and appropriate front end for the DE of choice. I wonder to what extent (if at all) these abilities are custom patches put in by Mandriva and at what stages these abilities will come to other distros. Does anyone know in what version of the various packages that WM6 started to be supported?
I am not trying to make this into a "X has had it forever" or "Y will get it in the next release" war so if everyone could do me a favor and not respond with specific distros I would be appreciative. I am however interested in the underlying packages that give this ability.
EDIT: Kudo's to Mandriva for a job well done.
Edited 2008-03-17 22:54 UTC