Saturday, June 20, 2009

License For Your Open Source Software And You

Last year I wrote a program for a text editor in java. I wanted to release it on code.google.com but as soon as I went on their hosting page, there was a field for the license type, which I was unable to fill as I didn't knew which one is the best suited for me. I read some of the licenses and here is a summary of them.

But before anything else let us first consider the need of a license. Consider a situation where you wrote an application or a program code and uploaded it on net. You didn't considered licensing option at that time. Next time when you open your email you see a legal notice for copyright infringement. Yeah!! Thats the program you wrote... What actually happened is that someone copiedor downloaded your source code copyrighted it and sued you for illegal use of the program!! Yes this can happened and has happened before.

These Licenses are designed in such a way so as to protect your rights as well as the spirit of free software. Here I will talk about three major licenses i.e. GNU General Public License(GPL), GNU Lesser General public License(LGPL) and Apache License. For a list of other Licenses please visit http://www.gnu.org/licenses/license-list.html

  • GNU General Public License (GPL) :-
    The main aim of GNU GPL is to ensure that you have the freedom to distribute copies of the GPLed software you created or obtained , you have to ensure the availability of source code. You can charge some amount of money. You have to give other users right to modify the source code and redistribute the modified version but under GPL only. There are different versions available for GPL. Latest is GPLv3. Unlike GPLv2 it has a clause to protect users against the patent deals and extend the limited patent protection to the whole community. It also protects the users against tivoization.
    GPL ensures that each free GPLed software provides its source code and that you are free to modify the code to create your own customised program and redistribute it but only under the GPL license so as to protect the rights of the original developer. Also it makes mandatory for the modifier to keep all the notices intact and to add proper declarations about the modifications made, so that any harm done will not defame the original developer.

  • GNU Lesser General Public License (LGPL) :-
    GPL doesn't allow the use of GPLed libraries into proprietary programmes but in some cases if one want to release a free library intended to be used in proprietary programs then LGPL come to rescue. It allows the users to copyright a free software that can be integrated with some proprietary software. You should avoid this license if you can. Releasing a library under GPL will make sure that the library is used by free sofwares only. This may force the other developers to release their software using GPL and thereby contrbuting to the free software world.

  • Apache License :-
    GPL is a very mature license. Its ideal for free applications but for beginners understanding GPL completely is a hassel. On the other hand Apache license is easy to understand and provides more or less the same protection as provided by GNU GPLv3.
    Free Software Foundaion considers Apache license to be compatible with GPLv3. Therefore Apache 2 software can be included in GPLv3 projects, because the GPLv3 license accepts Apache software into GPLv3 works. However, GPLv3 software cannot be included in Apache projects. The licenses are incompatible in one direction only, and it is a result of ASF's licensing philosophy and the GPLv3 authors' interpretation of copyright law.

  • Creative Commons :-
    Creative Commons provide an out of the box license which is not only flexible but also easy to use and much more easier than create. Yes, you can create a CC license, specially customized to suit your needs like the one I have for this blog. You can create a license for your work here. CC license is not generally used for software licensing. It is more suited for literature or  documentation work. In this license type you can choose the condition you want to set for your work. These conditions are :-
    1. Attribution : You let others to copy and use your work only if they give you the credit the way you want.
    2. Share Alike : You can allow other users to share your work but keeping the same or similsr license like the original one.
    3. Noncommercial : You can permit others to use your work for Noncommercial/Commercial purposes
    4. No Derivative Works : You give others permission to copy and distribute your work. But only Verbatim copies not any sort of derived work.
So for general purpose you can pick eiher GNU GPL or Apache license. It won't matter much. There is an ongoing debate about which one is better with no results ofcourse. I will recommend using GPL but feel free to choose any one of them. Creative Commons apply to a different area. You can use it to license your blogs or tutorials.

No comments:

Post a Comment