Currently Available Software Licenses

Pankajan Satkunam
6 min readSep 6, 2020

A software license is a document that provides legally binding guidelines for the use and distribution of software.

Software licenses typically provide end users with the right to one or more copies of the software without violating copyrights. The license also defines the responsibilities of the parties entering into the license agreement and may impose restrictions on how the software can be used. Software licensing terms and conditions usually include fair use of the software, the limitations of liability, warranties and disclaimers and protections if the software or its use infringes on the intellectual property rights of others.

Software licenses typically are either proprietary, free or open source, the distinguishing feature being the terms under which users may redistribute or copy the software for future development or use.

Here are five types of common software license models you should know about. Four are examples of open source licenses (which allow you to reuse code to some extent), and one disallows any reuse whatsoever.

Public domain. This is the most permissive type of software license. When software is in the public domain, anyone can modify and use the software without any restrictions. But you should always make sure it’s secure before adding it to your own codebase. Warning: Code that doesn’t have an explicit license is NOT automatically in the public domain. This includes code snippets you find on the internet.

Permissive. Permissive licenses are also known as “Apache style” or “BSD style.” They contain minimal requirements about how the software can be modified or redistributed. This type of software license is perhaps the most popular license used with free and open source software. Aside from the Apache License and the BSD License, another common variant is the MIT License.

LGPL. The GNU Lesser General Public License allows you to link to open source libraries in your software. If you simply compile or link an LGPL-licensed library with your own code, you can release your application under any license you want, even a proprietary license. But if you modify the library or copy parts of it into your code, you’ll have to release your application under similar terms as the LGPL.

Copyleft. Copyleft licenses are also known as reciprocal licenses or restrictive licenses. The most well-known example of a copyleft or reciprocal license is the GPL. These licenses allow you to modify the licensed code and distribute new works based on it, as long as you distribute any new works or adaptations under the same software license. For example, a component’s license might say the work is free to use and distribute for personal use only. So any derivative you create would also be limited to personal use only.

Proprietary. Of all types of software licenses, this is the most restrictive. The idea behind it is that all rights are reserved. It’s generally used for proprietary software where the work may not be modified or redistributed.

According to our research, the most common open source licenses are:

  1. MIT, 25%
  2. GPL 3.0, 19%
  3. Apache 2.0, 15%
  4. GPL 2.0, 15%
  5. BSD 3, 6%
  6. LGPL 2.1, 6%
  7. Ms-Pl, 5%
  8. BSD 2, 3%
  9. Zlib, 1%
  10. Eclipse 1.0, 1%
  11. BSD 4, 1%
  12. Other, 5%

55% of open source components are published under a permissive license. This is a significant increase in popularity, considering 4 years ago (2012) permissive licenses covered only 40% of open source components.

With the MIT license now being the open source license for 25% of all components, we can understand that it’s become the open source license of choice for many users. This should come as no surprise, as it’s the shortest and probably least restrictive license out there. As Ben Balter, GitHub’s Government Evangelist, explains “I think a big reason for (MIT’s high usage) is that developers today are learning to code in a world that open source has already won. There’s not the same friction with closed-source software that there once was, and so developers often opt for practicality over purity…. (In addition,) it’s clearly a license optimized for developers. You don’t need a law degree to understand it, and implementation is simple.”

How to use a software license

The link to the license, or the location of its folder, should be stated clearly on your product’s front page.

One option is to offer a general announcement, like this sample announcement for entities using the GNU license:

You do not need to maintain the entire content of the license. The purpose of this announcement is to communicate that there is a license agreement affecting the product.

Another way to handle licensing agreement availability is through your product. Going to the “About” tab on CCleaner Free by Piriform takes you to a link that leads to the list of licensing agreements for Piriform products:

If you provide links to a document management service, make sure the license is located in a publicly available folder.

It’s difficult to use the protective terms of a license if users cannot access it. This is a frequent error that could waive any copyright protection you enjoy. In addition to making the licensing agreement available, you also need a system to assure users accept it.

Whether you use a GNU, modified GNU or EULA, the easiest way to go about this is with clickwrap. You can set this up as part of the signup process:

You can also set it up as an explicit “I Agree” as shown during OS X Yosemite installation process:

Your licensing agreement will define the extent of your intellectual property rights and the rights of a user to modify the software.

How you choose the type of licensing agreement and its content depends on the end you hope to achieve with your product.

If an open source free-sharing platform is your intention, choosing a GNU or slightly modifying the GNU to your terms is a good course of action.

However, if all you want to allow users to make use of your product with no code modifications, the EULA is a good protection measure.

References :

--

--

Pankajan Satkunam

Software Engineering undergraduate at University of Kelaniya