Disclaimer: No, I am not a lawyer here to bore you with legal issues, but a developer and supporter of the Open Source Movement.
2010 started the Golden age of open source. Started with Git for version control, GitHub to collaborate, and Stack Overflow to ask and answer questions. But looking beyond endless commits, What exactly is Open Source?
Open Source software is software that can be freely accessed and shared (in modified or unmodified form)by anyone. It supports collaboration and transparency of process i.e. any contributor can improve the program by adding features to it or fixing parts that don’t work correctly and all changes are visible to everyone.
In open source, you have the right to control your own destiny:
Open Source Software (OSS) is thus made by many people, and distributed under licenses that comply with the Open Source Definition. Licensing falls in the domain of law, but it is in the best interest of a developer to understand it well too.
A copyright asserts the rights of the author of creative content. But due to its collaborative nature, we need licensing to protect open source software. An open-source license allows the source code to be used, modified or shared under defined terms and conditions. Licensing is important because it enables us to do everything we currently take for granted with open source software.
Licenses make it easy for others to contribute to a project without having to seek special permission.
It protects you as the original creator, making sure you at least get some credit for your contributions.
No one can be denied access to licensed software. The software is thus “open” in every sense of word.
GNU General Public License
The GNU General Public License (GPL) is the most restrictive but the most fiercely enforced OSS license. It was originally drafted by Stallman and the Free Software Foundation for the GNU project. It is being currently used for 2/3 of all OSS.
Using the GNU GPL protects your rights with two steps:
(1) assert copyright on the software, and
(2) offer anyone receiving GPL’ed software giving the legal permission to copy, distribute and/or modify it.
The GPL is a means of implementing a concept called Copyleft. Copyleft is the concept of enabling distribution of copies and modified versions of a work that preserve the original rights down the line.
Berkeley Software Distribution license
BSD is an OSS license developed for Berkeley Unix. Academic and OS-related packages widely uses BSD. The major difference between the BSD and the GPL is that the BSD is permissive i.e. it doesn’t require you to release the modified code under the same license. Also BSD software can be included in proprietary programs. For this reason, many commercial developers prefer the BSD license and consider it more free than the GPL.
GPL and BSD were not written by lawyers and hence are incomplete, failing to discuss patents, sublicensing, scope and duration, etc. MPL(Mozilla Public License) is written by experts.
Mozilla Public License
The MPL is often portrayed as the middle-ground between the strictness of the GNU and the tolerance of the BSD. Written by lawyers,it includes among many things an explicit patent grant which were missing in previous licenses.
The MPL’s copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine your code with code under other licenses (open or proprietary) with minimal restrictions.
Copyleft thus applies only to files containing MPLed code while in GNU the copyleft applies to all software based on GPLed code,which requires modifications to be shared too.
Apache license is a very popular permissive license, used by Apache web server, Android OS, OpenOffice, Moodle. It comes with rights which are applied to both copyrights and patents. The rights given are perpetual, worldwide but also non-exclusive — so you can use the licensed work, and so can anyone else. You must include the copyright and license information in your modified source code and add modification notices to all the files that you modify.
Perhaps the simplest and most permissive OSS license is the MIT license. It is used for many popular packages (Xwindows, Ruby on Rails, Lua, etc)
A common form of the MIT License. You can use it for commercial or private use, but you must include copyright and original MIT license notice in all copies.
An informal SFLC study found that in 2013, less than 15% of GitHub projects had a license.
The current Github project licensing stats tell a good story.
Unsurprisingly, MIT, Apache, and GPL are the clear front runners, with some 15% of licensed projects opting for a non-standard license or standard license not among those listed on choosealicense.com but those that conform to the Open Source Definition.
So what are you waiting for? Before you make your next commit, grab your license first.