Wednesday 1 July 2009

Thinking about a suitable license for CloudBank

We plan to release the mobile client part of the application as open source software (the server part is boilerplate code not deemed interesting to other developers). We don't want anyone to use the code for closed-source commercial purposes, or at least not without asking us. Which license to choose?

The initial plan was to use the Free Software Foundation's General Public License (GPLv2) which is a 'copyleft' license requiring any code using our code to be released under the same licence terms, effectively preventing closed-source commercial use of our code. However, what about compatibility between other open source licenses? E.g. we want to use the HTTP Commons client, which is released under the Apache 2.0 (ASLv2) license. Are there any problems?

Ed Burnette gives a fairly useful overview of open source licenses, but this is not enough to make a decision. With respect to our specific circumstances, this ars technica article explaining why Google chose the ASLv2 over GPLv2 for Android is much more helpful:

a) Although the underlying Linux kernel is licensed under GPLv2, much of the user-space software infrastructure that will make up the Open Handset Alliance's platform will be distributed under the ASLv2. Code that is distributed under the ASL can be integrated into closed-source proprietary products and redistributed under a broad variety of other terms.

b) By contrast, 'copyleft' licenses (such as the GPL) generally impose restrictions on redistribution of code in order to ensure that modifications and derivatives are kept open and distributed under similar terms.

c) It is important to note that the ASL is only being applied to the assortment of user-space platform components that make up Android. The kernel itself is still licensed under the GPLv2, and third-party software that runs on top of the platform can be distributed under pretty much any license, including commercial and copyleft licenses. It is also important to note that, although the ASL was not compatible with previous versions of the GPL, it is entirely compatible with the GPLv3. This means that code distributed under the ASL can be incorporated into GPLv3 software.

It looks like choosing the GPLv3 for CloudBank means we can use other GPLv3 and ASLv2 code while our own code would remain strictly open source, i.e. without commercial exploitation in closed-source software products.

No comments:

Post a Comment