A Quick Look at Open Source Licenses — What you need to know

Knowing how open and free open-source software actually is could help protect you and your work

Maximilien Monteil
5 min readMay 21, 2019

I keep reading about all these different licenses in the software world but the truth is I didn’t really grasp what most of them really meant. It was about time to fix that knowledge gap and in the spirit of open-source, I want to share with you a summary of the most popular open-source licenses.

I hope this helps you out as much as it helped me when you decide on a license for your next (or existing) project.

Intro to Licensing

What does it mean to license software?

Simply put, a software license is a legal instrument spelling out exactly what can and can’t be done with software. Things like how it can be used, modified, distributed, and more.

But before that, the fact that a license can be granted on software is possible because all software (at least under United States copyright law) is copyrighted from the moment a work is “fixed”.

Copyright then, is a form of intellectual property that grants the creators of original work the legal right to decide what happens to it. These aren’t exclusive rights (where you can do absolutely anything you want) because your actions are still limited by copyright law. In this article we’ll look at the granted right to license your software.

Why should I even care?

Its nice to know why licenses on software exist but what does this have to do with you and why should you care?

The first and most obvious reason is that a license can help protect you in the case of theft, misuse, or illegal (as per the license) distribution of the software in question.

For example, if you inadvertently placed an MIT license on your code (or the permissive ISC license that comes default with npm init) you have made it okay for anyone to modify, distribute, or even profit from your work.

Even if your goal is to have your work spread far and wide with absolutely no restrictions, you are still better off putting a license that explicitly says so because unlicensed software is still fully under copyright and thus protected. What this means is that, legally, no one can use your work without risking repercussions until the software enters Public Domain which takes years.

You might think then, why not just put it directly into Public Domain, well that comes with it’s own issues. Your best bet is to put a very permissive license like the BSD 0-Clause license.

It also means that any public repository on Github without a license (yours or not) isn’t actually free to use even if the code is visible because of copyright.

What can I do then?

As with everything legal, things can get complicated pretty fast. In order to help simplify things we’re going to look at some of the most common software licenses to see what they allow and what they forbid.

The moral of the story though is this: Whenever you can, do put an actual official license or at the very least mention it by name.

Licenses

MIT (and ISC)

Probably the one you’ve seen the most, this is one of the most permissive licenses you can place on software.
It pretty much says that you can do anything you want with the software without any issues, the only thing asked of you is to include a copy of the original copyright and license notice with every copy of the software.

The ISC license is essentially the same as the MIT one but without the clauses made unnecessary by the Berne Convention.

A lot of famous software use this license such as: Node.js, Vuejs, SQLAlchemy, Ruby on Rails, and many more.

Apache License 2.0

Another very permissive license that lets you do almost anything you want with the original work.

It does still have a few requirements:

  • Unmodified parts must still have the same Apache 2.0 license
  • In already licensed files, all original copyright, patent, trademark, and attribution notices must be kept*
  • If you make significant changes to licensed files, you must state what these changes are

Additionally, with this license you aren’t allowed to use the original trademark (logo, contributor names, etc.) to endorse and promote your own software.

*As of version 2.0, it is allowed to include the license by reference instead of having it in every file.

BSD Licenses

Unlike the others, BSD is both it’s own license and a family of licenses which allow different levels of freedom.

3-Clause
The most common version is the 3-clause license also known as “BSD License 2.0” or “Revised BSD License”.
This version of the license allows unlimited redistribution for whatever purpose as long as you leave the copyright notices and the license’s warranty disclaimers.
Similar to the Apache license, there is a restriction on using the names of contributors for promotion and endorsement without specific permission.

2-Clause aka FreeBSD License
The main difference between this version and the 3-clause is the omission of the non-endorsement clause. The 2-clause version is pretty much equivalent to the ISC license.

0-Clause
The most permissive license possible, this version lets you do anything you want with the software and doesn’t even require that the copyright notice or license be kept in either the source code or binary.

GNU General Public License

The GNU set of licenses were originally developed with/for the GNU project which aims to let computer users have the complete freedom to do whatever they through the development of software that offers 4 essential freedoms:

  • Run the program
  • Study and change the program in source code form
  • Redistribute exact copies
  • Distribute modified versions

An important particularity of GPL licenses is that they are copyleft. This means that in addition to offering you the right to do what you want with the software, any derivative work must be distributed with the same license. This serves to guarantee the continued freedom of the software.

There are 3 main types of the license that you may find. GPL versions 2 and 3, and the Lesser GPL.

Both versions 2 and 3 require that you keep track of changes made as well as bundle the software with build and install instructions.

The Lesser General Public License (LGPL) is generally intended for libraries, with it, derived worked must still keep the same license but applications that use LGPL software don’t have to be under the same license themselves.

Conclusion

This covers a few of the more common open source licenses that you may find while going through code. It is certainly not an exhaustive list and I really recommend you look into the different licenses available as there might be another one that better suits your needs.

Either ways, I hope you now feel more informed about software licenses and will be more confident about licensing your own work.

For a digestible look into more licenses I really recommend tl;drLegal.

Disclaimer

None of the information in this article is legal advice.

--

--

Maximilien Monteil

My goal is to solve problems people face with beautiful, practical, and useful solutions. I’m driven to apply and share what I learn.