technology notes… mobile and embedded.

A ready reckoner on OpenSource licenses

with 6 comments

This is a very short primer on the various licenses used for open source software.  Its intended as a quick look for those in hurry . For elaborate stuff, refer wikipedia.

Historically, there have been three license types or families :
Academic license (MIT Athena ,Berkley and Apache).
Free software licenses(General Public License and the LGPL).
Mozilla-style licenses(Mozilla and the IBM licenses).

Here are some salient features of each of them.

The Berkley license essentially:
*  Enables the software user to do anything with the software,including extending and selling it.
*  Does not require any derived software be licensed under the same license of that the changes
be published. This enables proprietary products to include such licensed software safely.
*  Requires that attribution be given for the work, and copyrights maintained.
*  Disclaims any warranties (express or otherwise) just as a proprietary EULA does.

Free Software Licenses(GPL and LGPL)
Richard Stallman created the Free Software Foundation and his definition of software freedom ,where a
program source code was always available and a user could always fix and extend t he software without
restriction. The GPL defined this particular sharing foundation.
*  If the user distributes a modified version version of code released under GPL,they can do so ,only by
sharing their changes through the same license (i.e. their changes to GPL code shall be available under GPL).
*  If a user make use of any of the GPL code in her program and distributes the program, the entire program
including its source code becomes subject to GPL. (i.e. users’ application that make use of GPL code should also be
licensed under GPL)
*  The GPL disclaims any warranties just as proprietary EULA’s.

The LGPL was developed later to account for software libraries.Many developers who shared utility libraries
under GPL did not want to force the user of their libraries to share their ENTIRE source code (as in
the case of GPL),but only the changes that is done to the library.

The Mozilla License:
In the late 1990’s ,Netscape published the source code of their browser and built a community of developers around it.
This project was called Mozilla project and a new license viz. Mozilla Public Licence was created.
*  Derivatives of an original MPL work to be licensed under the MPL similar to the GPL.
*  Enables MPL licensed works to be combined with other software and re-licensed to a “Larger work”. This enables
development of closed proprietary software using MPL softwares (similar to the academic licenses).
*  Discusses patent rights relevant to the licensed work.
*  Disclaims any warranties just as a proprietary EULA does.
There are several derivatives of the MPL that is being used by various companies that wish to develop
collaborative software .

One more term that’s associated with all these licenses is ‘dual licensing’.
Dual licensing:
It is an attribute of the intellectual property law,that the property owner can license their property to
as many people as many times ,and in as many ways as they choose.
This clause allows companies distributing open source software to sell the same software under an OEM license.
Dual licensing helps clients of open source software to embed the code within their works,
without a need to redistribute their works.

Popular OSS that are released under Dual licensing are MySQl from MySQL AB and QT from Trolltech Nokia.

TiVoization and GPLv3: TiVo is a Digital Video Recorder that uses GPL software and the Linux kernel. To comply with GPLv2 conditions, TiVO did release their code . However it was alleged that TiVo prevented modified software from running on their hardware by running only the programs that used valid digital signatures  from the manufacturer.This way,though the code was released, modified software would not run on the hardware.  This behavior was declared as ‘Tivoization’ and one of the goals of GPL Version 3 was  to prevent this .

The OSS community was divided in their support for GPLv3 . Finally some modifications were made to the GPLv3 license so that the anti-tivoization will not be applied when the software is distributed to a business.
Wikipedia has a well written summary on Tivoization and GPLv3 .Have a look for more on this.


Written by sujai

October 8, 2008 at 8:34 am

6 Responses

Subscribe to comments with RSS.

  1. […] rss@techbargains.com wrote an interesting post today onHere’s a quick excerptTiVoization and GPLv3: TiVo is a Digital Video Recorder that uses GPL software and the Linux kernel. To comply with GPLv2 conditions, TiVO did release their code . However it was alleged that TiVo prevented modified software from … […]

  2. Excellent summary Sujai. One small question though. What does “Discusses patent rights relevant to the licensed work” mean for MPL licenses?


    October 8, 2008 at 11:51 am

  3. @Rajorshi :Per my understanding,in case you have licensed code under MPL,its not fully ‘copy left’ and allows you provisions for suing ,in case someone else uses the same module (as patent violation).This very criteria makes MPL incompatible with GPL.
    You can see more about this here: http://www.gnu.org/philosophy/license-list.html#MPL


    October 11, 2008 at 12:38 pm

  4. Thanks. Quite a confusing license-jungle out there!


    October 15, 2008 at 4:28 pm

  5. Excelling Summary! Very useful stuff for developers to understand why companies go through hell and high water to ensure opensource doesn’t bite them!!


    November 24, 2008 at 5:27 pm

  6. @Siva : Thanks! And welcome to ‘whitenoise’ 😀


    November 27, 2008 at 3:35 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: