Why aren’t Linux phones using SyncML?

If today’s post sounds like a rant it’s because I think it’s important.

Nokia’s N900 is quickly becoming the must-have mobile hacker’s sidearm — and truth be told, if I’m to make good on the promise of this blog’s title, I will probably end up buying one sometime this year. But there’s one thing about the N900’s Debian-based Maemo OS that I find bewildering and infuriating at the same time.

It’s the lack of full support for SyncML — and in its place, Microsoft Exchange (?!)

As you would correctly guess Exchange and the accompanying ActiveSync are proprietary software, and though you may not have heard of SyncML (unless you’ve read my previous blog) it is the exact opposite of Exchange — that is, a platform-independent and open standard for synchronizing data. To be crystal clear, SyncML has been partially realized on the N900 (Exchange is fully supported out of the box) but is lacking a key feature. From the Maemo Sync Wiki:

The N900 provides SyncML over Bluetooth and USB but not IP.

In English, this means that the N900 cannot take advantage of 21st century cloud-computing without using proprietary software from Microsoft. On such an unabashedly open-source device this is… well, it’s inconceivably stupid. Embarrassing even — except that other “open” device manufacturers are guilty of the same crime.

If anyone from Nokia and/or Maemo is reading this I challenge you to provide a single good reason why SyncML over the Internet isn’t possible on the N900, when every single S60 & S40 phone on the market does it just fine. Oh, and don’t bother mentioning SyncEvolution as a workaround unless you’d also care to explain how mixing up phone number fields is a acceptable solution.

As for Android, I don’t even know what technology Google uses to sync PIM data on native handsets. But guess what they use to sync with other mobile OSes? Here’s your answer:

On most devices, Google Sync uses the Microsoft® Exchange ActiveSync® protocol.

This from a supposedly good open-source citizen?

And what of Palm’s webOS? You’d expect that Synergy — their unique selling point that pulls contact data in from disparate sources from Facebook to LinkedIn — would rely on proprietary software. But is there at least Exchange support? Of course. SyncML? Of course not.

It doesn’t matter that Exchange is pretty much ubiquitous in corporate environments. Ubiquity and standards are not the same thing. Standards beget progress, while the end game of ubiquity is a monopoly. See the difference?

I’ve been archiving my email and PIM data for over a decade now, and I’ve learned some hard lessons along the way. I can tell you right now that SyncML works flawlessly when properly implemented, and should be fully present on any modern-day mobile device that dares to call itself open.

End of rant.


  1. Maybe there just isn't the demand.

    I don't see why Nokia should implement something that only a few will use. Your surprise at them picking exchange support over SyncML bewilders me. The bit where you say “though you may not have heard of SyncML” says it all.

    I've been following the N900 since it was released and seen many people talking about bugs in the Exchange connector and asking for fixes, but this is the first time I've seen someone complain about SyncML.

    The platform is open enough that if there is enough demand there should be nothing to stop people implementing support. Already someone has written MMS support for the phone because Nokia didn't write any themselves.

    Nokia are a for profit business, if they focus on open systems and ignore the areas that have more demand the N900 will not sell well and Maemo will fail. Hopefully a community effort will see that SyncML is fully supported in the future. But if I had to pick between SyncML and Exchange I'd pick Exchange as I (like many others) use google for contacts, calendar and email.

  2. I'm not saying Nokia should remove Exchange support, just that they should add full support for SyncML.

    Re: “you may not have heard of it” — that comment was directed more towards people who aren't aware of the underlying technology that syncs up their device in the first place.

    “But if I had to pick between SyncML and Exchange I'd pick Exchange as I (like many others) use google for contacts, calendar and email.”

    You're pretty much locked into Google then, aren't you?

    How easy is it for you to get your stuff exported to a standard format?

    And what if you don't want Google to have access to that information?

  3. Sorry, perhaps I misunderstood but the line “It’s the lack of full support for SyncML — and in its place, Microsoft Exchange (?!)” seems to imply that you were infuriated and bewildered that Nokia would make Exchange a priority over SyncML.

    SyncML more widespread than exchange? Really? is that more server software or more users? Does it seriously compete with the number google apps users?

    Whilst it’s nice to have everything in open formats, the truth of the matter is most consumers don’t really care as long as it works.

    As for being locked in to google? Perhaps you should look into it. I can export my contacts to vCard or CSV, my calendar to XML or iCal, and my email can be reached over IMAP or POP3. Not to mention all the software available that will sync the data out for you (like on my N900). Hardly locked in.

    If I don’t want google to have access to the information then I have to pay for my own server and host my own services because unless you do it yourself someone will always have access to your information.

  4. Not at all.

    I'm saying you can't measure the usage of something based solely on the number of available clients.

    My point being that every windows install has telnet, yet only a small number of people use it. An extreme example but just my way of making the point.

    I whole heartedly support a SyncML implementation on the N900. Your article seemed to read as if you felt that Nokia should have made it a priority over exchange, which I strongly disagree with.

  5. “Your article seemed to read as if you felt that Nokia should have made it a priority over exchange…”

    That is correct, and your preference for proprietary sync software from Microsoft on an open-source Linux handset is noted.

    I’d love to hear what anybody else has to say about this…

  6. Andrew: Of course everybody goes after Exchange sync because, unfortunately, lots of users have MS Outlook on their desktop in the office and at home. Users want to sync with Outlook, so new phones have to pay the MS tax.

    My perception is that Nokia still hasn’t decided where to stand: they have been shipping syncml phones forever, but at some point they bought another (proprietary) sync solution. Go figure. They licensed Funambol from the company to use it in the n900 but decided not to enable the sync over IP. Why? I really can’t explain it.

    As for Android, well … at least Funambol is putting energy in it and an open source syncml client is almost there. If Google doesn’t want to play fair with the free software community, we’ll do things ourselves. Check Replicant project and others that are building free as in freedom alternatives to google builds.

  7. Hi Stefano, Thanks so much for writing in…

    When you say that Nokia bought another proprietary sync solution, do you mean to use with their Ovi Sync Service? At least now I know why it’s never worked for me…

    And for anyone not familiar with Funambol, they provide (I’m pretty sure) the SyncML technology for the best sync service on the market, IMHO.

  8. Honestly, I don’t know what protocol Nokia uses in Ovi Sync, but I was thinking of the proprietary stuff they put in the desktop sync PC Suite. I never used it since I don’t use Windows since 1997 😉

  9. SyncML is on of those standards that in my opinion should be as widespread as IMAP and POP3. I’ve setup a complete open source groupeware solution for email, calendaring, contacts etc. with Horde for my workplace and find it very frustrating to have to tell my users: “Nope, sorry we currently don’t support Android or WebOS.” Theses are the leading open source based smartphone platforms and they don’t support THE open source syncing standard? But if they use Windows Mobile, no problems, there are several alternatives (barf!).

    The Funambol project seems to have a client for both of these in the works, but I find it sad that Palm and Google don’t even consider it. It’s not even an afterthought.

  10. As much as I agree with the reasoning that data synchronization should be based on open standards, I have to point out that the known problems with phone number types mentioned in the SyncEvolution site are inherent to SyncML, not its implementation in SyncEvolution. Depending on the policy in the SyncML server, all clients have this problem.

    I don’t know whether ActiveSync has the same issue. It might.

    Have you ever tried out SyncEvolution yourself before dismissing it as an acceptable alternative to a solution provided by Nokia? Ove Kaaven has written a calendar backend for Maemo 5 and made packages available that work on the N900.

  11. Hi Patrick, I have indeed — see the end of this post.

    My setup at that time was Evolution for Linux, with SyncEvolution and Genesis all connected to Memotoo.com, a hosted SyncML server.

    Since abandoning that setup I’ve been syncing directly to Memotoo.com with a variety of S60 handsets from Nokia, and have yet to experience a single corrupted sync.

    Can you explain what you mean by the “policy” in the SyncML server? This is the first I’ve heard of that particular term.

    I certainly don’t mean to diminish the important work you’ve done (Patrick is, in fact, the author of SyncEvolution, FYI), but I have experienced firsthand what I feel is a critical bug. If the address book in the N900 could pull in contacts directly via LDAP, SyncEvolution could handle the rest.

    Of course I’ve no idea if the LDAP protocol supports phone numbers — I’m sure you’d know more than me.

    Anyway it’s great that you found this post and wrote in — there’s needs to be more info out there about SyncML!

  12. With “policy” I mean the heuristics used by SyncML server to deal with incomplete information. When a SyncML server sends TEL;TYPE=WORK:work-number to a device and gets back TEL;TYPE=HOME:work-number back, does that mean that the user of the device has changed the type or does it mean that the phone only knows about HOME and stores all entries with that? SyncML servers use different heuristics for this. Some replace the complete contact with what they get from a peer. Others merge the data and then decide to keep their own TYPE=WORK and the peer’s TYPE=HOME phone number. This is what I observed, without being able to do anything about it.

    Now regarding your specific problem, are you sure that it was exactly this problem? If something works with S60 devices, but not SyncEvolution, then both I and the Memotoo developers would like to know about it. They are very responsive when it comes to syncing with SyncEvolution.

  13. No argument there — Memotoo is almost inhumanly fast with support. Have you seen the thread in their forums re: Syncing with an N900?

    Given the setup I described above and that removing Evolution, SyncEvolution & Genesis from the equation solved my issue it would seem that one of those three was the culprit.

  14. It could also be an issue that is caused by the server when talking to SyncEvolution. As alway with sync, it takes two to dance. Without knowing the root cause, I can’t accept that SyncEvolution is blamed for whatever it was 😉

  15. Ok, I see what you’re saying. These documented issues are in fact issues with the SyncML server:

    Changing the type of, for example, a phone number

    “Changing the type of, for example, a phone number might not be detected by a SyncML server as changing the type, but rather as adding a new number. Because removing fields does not work, the server will keep the number with the old type.

    Evolution GUI

    “When importing or updating a contact from the server, some telephone numbers might only be displayed in the contact summary after editing the contact once. Evolution 2.0.4 till 2.6.3, ContactSync::testMerge test. Starting with SyncEvolution 0.4, this is solved by modifying the contact in the same way as the internal editor does. If it still fails, the server might send phone numbers without setting their type correctly.

    Looks like you’re off the hook. ; )

    But I’m still waiting to hear from Nokia and/or Maemo on this…

  16. A number of smartphone makers have their own online service and obviously they’d rather have their user sync with it. And let’s face it, SyncML isn’t something most people have heard about anyway.

Leave a Reply