Apple Withholds iOS’ LGPL WebKit Source Code

We’ve had an immense hubbub about the delay in the source code release of Honeycomb, which led to a storm of critique being sent Google’s way. Turns out there’s another company withholding source code, and this time it’s Apple. They have stopped releasing the LGPL source code for WebKit in iOS since iOS 4.3.0, released about 8 weeks ago. Turns out – this isn’t the first time Apple has refused to release (L)GPL’d code. It took them six months to release the required GPL source code for iOS 4.1.

iOS contains a number of open source components, with WebKit probably being the most user-visible of them. I’ve used the mobile browsers on Android (up until 2.2), Windows Phone 7 and iOS, and there’s no doubt in my mind that Mobile Safari is the most pleasant to use. Mobile Internet Explorer is certainly not as bad as some make it out to be, but good it is not. Android 2.2’s browser is just as capable as Mobile Safari, but it just doesn’t feel as smooth (on an HTC Desire).

Starting with iOS 4.3.0, Apple has ceased distributing the source code to the platform’s WebKit browser engine. This source code is licensed under the LGPL, and as such, there’s copyleft on it – we’re not talking a permissive BSD license here. Since iOS 4.3.0, released 8 weeks ago, we’ve seen several other minor iOS releases, but no source code.

“It cannot be a simple oversight, as multiple inquiries have been made to Apple by interested developers. However, no source code until today,” writes Harald Welte, “I think it is time that Apple gets their act together and becomes more straight-forward with LGPL compliance. It is not acceptable to delay the source code release for 8 weeks after shipping a LGPL licensed software. Especially not, if you have already demonstrated in the past that you are well aware of the obligations and have a process and a website to release the corresponding source code under the license conditions.”

I never really dove into this stuff, but as it turns out, this is not uncommon for Apple. It took Apple a whopping six months to release the source code for components in iOS 4.1 (iOS 4.1: September 2010 – source: March 2011), a lot of which is covered by the GPL. I found this startling; Google was open and honest about not releasing BSD code for now, and here we have Apple structurally refusing to release GPL code for six months, and not a peep anywhere on mainstream tech websites.

Jay ‘Saurik’ Freeman, the man behind Cydia, even believes that Apple will, eventually, find itself facing a GPL lawsuit. In an article on upgrading the iPhone toolchain, he said about Apple’s lacklustre approach to releasing Xcode’s gcc’s GPL code, “I wouldn’t be surprised at all if Apple ends up on the bad end of a GPL-related lawsuit”. Freeman believes that Apple never even released the source code to the gcc components in Xcode 2.5 (I couldn’t find confirmation for this though, so take it as-is).

I did not see this coming. I simply wanted to turn this story into a page 2 item, and while digging around for confirmation (you have to be very careful with these kinds of stories), I stumbled upon the other cases mentioned here. I was dumbfounded – I find a delay of six months in releasing GPL source code worth reporting on – especially if you look at the major uproar caused by Google not releasing the Honeycomb code (for now), which is BSD-licensed.

I’m still unhappy about the lack of a source code release for Honeycomb, but this Apple thing is just as bad. I’m just wondering why nobody seems to be reporting this.


  1. 2011-05-06 11:17 pm
    • 2011-05-07 1:04 am
    • 2011-05-07 2:17 am
      • 2011-05-07 3:50 am
      • 2011-05-07 8:35 am
        • 2011-05-07 12:36 pm
          • 2011-05-07 1:07 pm
          • 2011-05-07 1:13 pm
          • 2011-05-07 2:05 pm
          • 2011-05-07 11:46 pm
        • 2011-05-07 1:15 pm
          • 2011-05-09 11:49 pm
    • 2011-05-07 5:49 pm
      • 2011-05-08 1:02 pm
  2. 2011-05-07 4:14 am
    • 2011-05-07 5:18 am
    • 2011-05-07 10:56 pm
  3. 2011-05-07 6:36 am
    • 2011-05-07 3:27 pm
      • 2011-05-07 6:45 pm
        • 2011-05-07 10:46 pm
          • 2011-05-08 4:53 am
          • 2011-05-08 9:14 am
          • 2011-05-08 11:37 am
          • 2011-05-08 2:55 pm
    • 2011-05-09 1:21 pm
  4. 2011-05-07 7:42 am
    • 2011-05-07 8:20 am
      • 2011-05-08 3:34 am
  5. 2011-05-07 1:38 pm
  6. 2011-05-07 2:04 pm
    • 2011-05-07 5:45 pm
  7. 2011-05-08 4:15 am
  8. 2011-05-09 2:32 pm
    • 2011-05-09 8:11 pm
      • 2011-05-09 8:23 pm
        • 2011-05-09 8:31 pm
  9. 2011-05-09 3:27 pm
  10. 2011-05-09 3:42 pm
    • 2011-05-09 3:49 pm
  11. 2011-05-09 3:48 pm
  12. 2011-05-09 11:15 pm
  13. 2011-05-09 11:18 pm