A lot of things changes when you write your first code for commercially use. Software licensing is one of those. Usually while coding for my own projects, i earlier use to omit this. However, recently i was hit hard by this ‘vague’ topic of licensing. So, i decided to study in depth about different types of licenses for open source and propriety usage and here’s the summary:
A software license is a type of contract between the company/person who produces the code and the one who uses it. It defines the terms of usage of that piece of code.
Before moving forward i have a curious question:
What if, i copy a code without accepting it’s license and use it under my own terms?Who’s gonna know it, just copy, paste and use!! ?
Well after searching the net i came across various case studies, some of which are very interesting…
Now, coming to the types of available licenses in Open source community:
GNU GPL License
GPL license has mainly two versions, GPLv2 and GPLv3. GPLv3 usually covers all content of GPLv2 but in a more clear, elaborative manner. I further contains series of clauses that weren,’t initially in GPLv2. Although both are compatible with each other, there are some exceptions like in linux kernel by Linus Torvalds it was mentioned that it’s compatible with version 2 GPL only! thus, any new code has to be released under GPL2 and projects with GPL3 license are thus incompatible with it. GPLv3 is compatible with Apache, LGPL, BSD without advertising clause, etc. In GPLv3, there’s explicity mentioned about patenting terms(After microsoft/novell issue).
For more in depth insight about GPL visit https://copyleft.org/guide/
Basic difference between GPLv3 and MIT is that even if you actually distribute your proprietary code that is using the MIT licensed code, you do not have to make the code open source.
However as in GPLv3, If you use a code licensed under GPL then you must license your code under GPL only, i.e you need to open source the code even if you made changes to it.(There are some exceptions to it!). MIT is compatible with GPL but other way isn’t true.
- BSD License
It’s a family of permissive free licenses with minimal restrictions.
The only restriction imposed by Berkeley Source Distribution (BSD) are that if they redistribute such software in any form, with or without modification, they must include in the redistribution (1) the original copyright notice, (2) a list of two simple restrictions and (3) a disclaimer of liability. These restrictions can be summarized as (1) one should not claim that they wrote the software if they did not write it and (2) one should not sue the developer if the software does not function as expected or as desired.
There are other variations of BSD, i am not going into detail of them.