While open sourcing a project, one needs a license so that the terms distribution, linking, modification, private use, etc., can be automatically taken care of. There are many open source licenses to choose from, some of them being MIT, GNU GPL, Apache 2.0, Creative Commons, BSD licenses. Each has its own terms of the above characteristics that even decide the ownership and credibility of the project.
When I started using GitHub to store my projects’ source code, I would choose a license randomly, mostly because that project wouldn’t really be a tool for others to use and build things upon or tinker with. But when one builds such a tool or product, that can be forked by others to build their own versions by tweaking and changing its source code, one needs to decide an open source license for it. There are so many options to choose from:
– Apache License 2.0
– BSD 3-Clause “New” or “Revised” license
– BSD 2-Clause “Simplified” or “FreeBSD” license
– GNU General Public License (GPL) v3.0
– GNU Library or “Lesser” General Public License (LGPL)
– MIT license
– Mozilla Public License 2.0
– Common Development and Distribution License
– Eclipse Public License
– Creative Commons License
But first let’s see, what is licensing?
There has always been a lot of confusion in what licensing really means. When one licenses something, one is not giving its rights away, as the copyrights (or the patent, if one has one) are your own to have. Licenses provide rules and guidelines for others to use your work. Open source licenses help others to contribute to your work or project without seeking special individual permission to do so.
Here are some of the licenses and what they mean by their terms and conditions of linking, distribution, modification, private use, etc.
Different types of open source licenses:
GNU General Public License
Copy the Software: There’s no limit to where you can copy that code. Copy it on your own server, on your client’s server, on your local workstations, wherever and howsoever many times.
Distribution: You can distribute it in your thumb or hard drives, you can distribute the code under this license with a download link on your website, you can print out the code on paper, whatever form of distribution you want.
Charge a Fee: You can charge someone for the software, but remember to give them a copy of GNU GPL which would tell them that they could get the software free from elsewhere. This also gives a chance for you to tell them why you are charging for it.
Change the Codebase Howsoever: If you want to fork the project and make changes to it, you can. Remove or add features howsoever you want. The only condition is that your project should also be released under GNU GPL.
It is important to know the distinction between source and binary distributions. There are some constraints regarding releasing applications under each other. Also, if a project uses GNU GPL license, it has to comply with some standard rules of commenting parts of license requirements inside the code itself.