With all those open source licenses out there I thought I would present an explanation of the most popular licenses: GPL, LGPL, BSD, MIT License, and Apache Licenses.
- GPL (GNU General Public License) : Issued by the Free Software Foundation, it imposes the restriction that all code that uses GPL-licensed components has to be also licensed through the GPL. Its key motivator is to redistribute any improved code back to the community, so everybody can benefit from the improvements.
- LGPL (GNU Lesser General Public License) : Also issued by the Free Software Foundation, it requires the redistribution of the original code together with all the new code that uses it. It can be used by non-GPL components. This means that you can use the component in your proprietary software, but the rest of your software does not have to be redistributed under the same license. However, your proprietary source code needs to be distributed also.
- BSD (Berkley Software Distribution) License :Takes a different approach from the GPL, it only requires the acknowledgment of the original authors of the software, and thus can be easily integrated into proprietary software. Code licenses through BSD can be redistributed through the GPL without getting permission from the original authors.
- MIT (Massachusetts Institute of Technology) License : Also called the X License or the X11 License, it is a non-copyleft, free software license that allows reuse as proprietary software. In its simplest form it grants unlimited rights under one condition: that “The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.”
- Apache License: Apache Software Foundation authored many widely used products and projects. The Apache license is very non-restrictive, and allows using licensed software freely as long as the user redistributes the terms of the original license. It does not mandate the redistribution of their code.