When you finish your project and push it to the GitHub, and create a nice README file for releasing and add a license. But, you might not have a clear idea about software licenses and which one would best suit your interests. So, let’s discuss.

What are Software Licenses?

A software license is a legal instrument (usually by way of contract law, with or without printed material) governing the use or redistribution of software. Under United States copyright law all software is copyright protected, in source code as also object code form. The only exception is software in the public domain. A typical software license grants the licensee, typically an end-user, permission to use one or more copies of software in ways where such a use would otherwise potentially constitute copyright infringement of the software owner’s exclusive rights under copyright law.

Software license types

There are five major software license types used to cover different kinds of softwares and various business arrangements. These encompass a wide spectrum of licensing scenarios, from free software (public domain) to paid commercial software (proprietary).

Between these two extreme types, there are also three categories (GNU/LGPL, permissive, and copyleft) that apply to various forms of open-source projects. Failure to follow the terms and conditions of an open-source license can lead to revealing trade secrets or even legal action from the project’s developers.

1. Public domain licenses

The term “public domain” refers to a work that This is the most liberal software license kind. When software is defined as being in the public domain, anyone is free to use and modify the software without restrictions. This is a “permissive” license that allows adopting the code into applications or projects and reusing the software as desired.

2. GNU/LGPL — GNU Lesser General Public License (LGPL)

Under this license type, developers have rights to link to open source libraries within their own software. Resulting code can be licensed under any other type of license — even proprietary — when projects are compiled or linked to include an LGPL-licensed library.

The caveat is that if any part of the library is copied into the code or modified, the terms of the original LGPL license will apply to the developed code that used the library.

As examples, we can state all npm packages.

3. Permissive

This license type is one of the most common and popular among open-source software licenses. Under a permissive license — also referred to as “Apache” or “BSD style” — there are few restrictions or requirements for the distribution or modifications of the software. Apart from the Apache and the BSD License, the MIT License is another popular version of open-source software licenses.

4. Copyleft

This license’s terms are restrictive. Also known as reciprocal licenses. Under the terms of a copyleft license, the licensed code may be modified or distributed as part of a software project if the new code is distributed under the same software license.

This means that if the code included in the software product was specified to be for “personal use only,” the new product being distributed must carry that same designation/restriction.

Since the original software included with the new project allowed modifications and distribution, this may not be the best license for software developers because the resulting code must also carry the copyleft license type — including the availability of the source code.

5. Proprietary

These software licenses make the software ineligible for copying, modifying, or distribution. This is the most restrictive type of software license, protecting the developer or owner from unauthorized use of the software.

Copyright law

Copyright refers to the legal right of the owner of intellectual property. In simpler terms, copyright is the right to copy. This means that the original creators of products and anyone they give authorization to are the only ones with the exclusive right to reproduce the work.

Copyright law gives creators of original material the exclusive right to further use and duplicate that material for a given amount of time, at which point the copyrighted item becomes public domain.

Read more about copyright law

Ownership vs. licensing


When a developer or a company developed a software, the company or the developer has all it’s rights to distribute, sell, modify or rent. This is called the ownership.


Licensing means when you buy a software, You will get a license with the software. which includes some guidelines (can dos and cannot dos) to use the software.

For example, If you buy MS Office, the only thing you can do is using the software as it is. You cannot sell, modify or rent the software. If you download Linux operating system, You can not only use it, but also modify it. But you cannot sell it.

These guidelines are different from software to software. You can get a clear idea about these guidelines if you read the terms & conditions before installing a software. (But we all know that no one read it. Right?)

Make sure you read all the terms & conditions and then only accept it next time.

Thank you!

Software Engineering Undergraduate