Tuesday, May 29, 2012

Open source Software Licensing Restrictions



Whenever we think of choosing an  open source library/tools/platform few things which strike in our mind are:
  • Can  we use this open source library or software for commercial purpose?
  • Can we modify these libraries?
  • Whether my product can be distributed if it is using open source platform directly or indirectly ?
  • Is it ok to modify and build upon these third party projects?
  • What are the big differences between these choices (GPL, LGPL, MIT, Apache)? 
  • Can I sell this application or does it have to be open source?

In this Blog We are going to talk about different license types. 

Fr example below are the commonly used open source platform and their license types.
Hibernate                   - LGPL
Spring                        - Apache v2.0 license
Struts                         - Apache v2.0 license
JQuery                       - MIT Lisence
Sun JDK/JRE binary     -Sun's Binary Code License (BCL)
Sun Source Code         -GPL
Expat, PuTTY              -  MIT License
 Ruby on Rails, CakePHP- MIT License
Eclipse                        -Eclipse Public License (EPL)

                         Comparisons of Software Licenses
GPL:
  • The linked software is considered a whole.
  • If you distribute code linked to GPLd code, the whole work be available under the GPL.
  • If you remove the GPLd code, you can distribute the work under any license you want (as long as you own that code). 
  • GPL forces the people who use the code in a project to release the whole project under GPL.
  • Link with code using a different lisence :NO .Proprietary Software linking Not allowed.
  • Release changes under a diffrent lisence: No
  • Distribution of “the Work” is not allowed.
  • Redistributing of the code with changes allowed Only if the derivative is GNU GPL.


LGPL:
  • Link with code using a different lisence :Yes. Proprietary Software linking is allowed.
  • Release changes under a diffrent lisence: No
  • The software that links to the library is not considered a derivative work.
  • Whether a work that uses an LGPL program is a derivative work or not is a legal issue
  • It dooesn't impose the license on software using the library.
  •  If you  modify the library or directly include parts of the code in your software, then your code modification (not your application) would have to be LGPL.In other words you also provide the source code of the LGPL code changes.

Apache Public License:
  • Proprietary Software linking Allowed.
  • Distribution of “the Work” Allowed.
  • Redistributing of the code with changes allowed as long as the name “Apache” isn't used in the name of the derivative work.  
  • We can make changes to an Apache package and can distribute them.However include a copy of the license in any redistribution you may make that includes Apache software. For eg SpringSource Tool Suite shows following:"This product includes software developed by the Apache Software Foundation http://www.apache.org"

MIT License:
  • The shortest and probably broadest of all the popular open-source licenses.
  • MIT License states more explicitly the rights given to the end-user, including the right to use, copy, modify, merge, publish, distribute, sublicense, and/or sell the software.
  • It permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms.Means for any coding issue you are solely responsible not the provider.
  • Proprietary Software linking Allowed.
  • Distribution of “the Work” Allowed.
  • Redistributing of the code with changes Allowed.
  • Compatible with GNU GPL. 
Hope above clarify the licensing restrictions.
 

References:
http://www.apache.org/foundation/license-faq.html
http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses
http://web.archive.org/web/20090317083515/http://developer.kde.org/documentation/licensing/licenses_summary.html




No comments:

Post a Comment