LWUIT's weird licensing terms

Posted on Fri 23 May 2008
There's a lot of noise in the J2ME world around LWUIT, a lightweight user interface toolkit built by Sun that aims at providing high level UI widgets on top of the very basic features of MIDP.

Very nice, since everybody ends up rewriting their own toolkit.

Now look at the licensing terms on the home page:
  • Early access binary library: Licensed under Sun License Agreement (SLA). This license enables you to use the library in commercial products for free.
  • Source code: Licensed under GPLv2
That is a very strange licensing model: the code is available, but using it fordbids any commercial application, since you have to distribute your application's source code because of the GPL's virality. But commercial applications are possible if you use the binary distribution.

Wait... if the code is GPL, isn't any derived work supposed to be GPL'ed as well, including, because of transitivity, applications built with the binary distribution?

Also, we have no guarantee that the binary distribution was actually built from the source distribution, and building your own binary makes your application GPL'ed.

If Sun wants to ensure any modification to LWUIT is made public but still allow commercial usage, they can use the LGPL which was made exactly for that. The current weird licensing scheme will have only bad results: either people won't use LWUIT, or they will deliberately violate the GPL terms and keep their modifications hidden and obfuscated (something you always to in the J2ME world to reduce the size of jar files), thus defeating the purpose of requiring people to publish their modifications...

Preston Bannister comments that " Perhaps Sun wants one common evolution of LWUIT deployed, in which case the licensing model makes some sense". If this is the case, they got it completely wrong: the licensing terms don't define the governance of a project and who is doing the official release.

Take Apache projects for example: everybody is totally free to make their own evolutions and forks, yet there is a single group of committers that ultimately decide what will go in the official release. And the simple fact that there are no barriers to commercial use lead people to contribute back their changes for committers to decide on their possible inclusion in the official release, rather than keeping them behind closed doors.

Update 2 Shai Almog of the LWUIT team comments that the source code will actually be GPL + classpath exception (and the website has been updated to reflect it). That's better, although I always thought that having to make exceptions to the GPL shows that it has a problem...

Google now crawling forms

Is Device Fragmentation Still Relevant?