Understanding Open-Source Software Licenses

Understanding Open-Source Software Licenses

Introduction

When creating software, developers must choose a software license that meets their particular needs. Depending on the purpose of the software, some developers may want to place strong restrictions on how their work is used, modified, and shared. Others may choose to license their software with fewer or no restrictions, as they want their software to be as widely used and accessible as possible, or because they oppose restrictive software licenses on philosophical grounds.

Regardless of their choice, developers need to understand the legal implications of their software license agreement to ensure that their rights, permissions, and control over their work are respected.

Developers can achieve their desired outcome by utilizing an open-source software license. Open-source software licenses provide users with access to the source code, allowing them to use, modify, and distribute it according to the associated terms and conditions. There are multiple types of open-source software licenses, each one including different restrictions set by the creator.

Understanding the open-source software licenses available is essential for long-term planning for your project. This article will provide information about the rights you have when your work is created (such as copyright), and how licensing helps create the legal agreement you want your users to follow.

We will also cover the distinctions between proprietary, free, and open-source software, permissive and copyleft licenses, and the open-source software license options suggested for creating a GitHub project.

Let’s get started by learning more about copyright and licensing before we discuss the types of licenses.

What is Copyright?

Copyright is an automatic legal protection for any creative work produced, allowing the owner to reproduce and distribute copies, as well as to implement a license to control how the work can be used. When working for someone else, any work produced belongs to the employer, and therefore must be shared with permission.

If a copyright owner states that their work is "All Rights Reserved", it means that no one is allowed to use or modify it, except for them. There is no need to go through a formal process to secure these rights.

Having understood this, let’s see what is the difference between proprietary, free, and open-source software.

Difference between Proprietary Software, Free Software, and Open-Source Software Any software with a license that restricts how it can be used, modified, or shared is known as proprietary software. Video games are a prime example of this type of software. If you buy a video game (in the form of a cartridge, disc, or digital download), you are not allowed to copy it and share it with your friends or sell it for profit. You are also prohibited from modifying the code to make it compatible with a different platform than the one you originally bought it for.

Before the 1970s, software was generally distributed with its source code, allowing users to make modifications and share it as they pleased. However, software publishers saw an opportunity to increase profits by limiting these activities, and so restrictions were imposed. This led to the rise of two movements: the free software and open-source software movements. Free software is software that is free to use, distribute, and modify, while open-source software is software with publicly available source code that can be modified and distributed by anyone.

Open-source software advocates encourage developers to use a license to protect the freedoms given to users of the software. This license is often distributed as a single file, typically named LICENSE.txt, and can be one of two categories: permissive or copyleft. Permissive licenses offer the greatest amount of freedom, while copyleft licenses are more restrictive.

Let’s dig deeper into the benefits of including a license for open-source software.

Why Include an Open-Source Software License?

As a developer beginning a project from the ground up, it is essential to have some understanding of the open-source software licenses available to decide how you'd like others to use your work. It is also important for users to be aware of these licenses so they can comprehend the limitations or freedoms they have accepted when using the creator's work.

Without a license, it is uncertain what is allowed and not allowed for those who wish to utilize it, as any original work will be copyright protected upon completion. Here are some reasons to consider why you should include a software license in your open-source software:

  • Shared Responsibility - The open-source community takes great pride in fostering a culture that emphasizes collaboration and creativity. By incorporating an open-source software license, users are invited to take part in community development. This leads to a shared sense of accountability to continually refine the source code and expand the program's capabilities for everyone's advantage.

  • Amount of Control - By selecting a license that can set restrictions, you can gain more control over your work. For example, if you would like any derivative works to have the same rights as the original, you might choose a copyleft license. An open-source software license will allow future users to be aware of the amount of control you have over the work - the decision is yours.

  • Competition - If you are looking to enter the software market, using an open-source license may be beneficial. Popular open-source programs that have been created to compete with existing proprietary programs include Linux operating system, Google's Android, and Firefox browser.

If you are considering using an open-source software license for your next project, we suggest doing your research on the subject. Additionally, it is recommended that you consult a legal professional to ensure a complete understanding of the implications of the license for both the current and future use of your work.

What are Permissive and Copyleft Open-Source Software Licenses?

Permissive licenses, such as the Apache License, encourage people to use, modify, and distribute the software freely as long as the original license is included and a copyright notice is included with the software's source code. On the other hand, copyleft licenses, such as the GNU General Public License, require that any modifications to the software, as well as any software distributed with it, also be licensed under the same license.

Let’s discuss these in more detail.

Permissive Open-Source Software Licenses

A permissive or non-copyleft license grants users permission to use, modify, and share the source code, with the option to change some of the terms and conditions for redistribution, including derivative work.

A derivative work of software is a program that is based on an existing program, and if the original work was released under a permissive license, the creator of the derivative work can opt to share it with different terms than what the original license required.

Here are some of the most popular Permissive open-source licenses:

Apache License

Under the Apache License, written by the Apache Software Foundation (ASF), users do not have to share their modified version of the source code under the same license but may opt to use a different one, known as sublicensing.

MIT License

The Massachusetts Institute of Technology (MIT) created the MIT License, one of the shortest licenses to read and has limited restrictions. Similarly to the Apache License, it also allows users to license the software on their own.

BSD Licenses

GitHub offers two BSD licenses: the BSD 2-Clause “Simplified” License, often called the “FreeBSD” license, and the BSD 3-Clause “New” or “Revised” License. The 3-Clause License includes a clause that stops software users from using the name of the author, authors, or contributors to promote products or services.

Copyleft Open-Source Software Licenses

A copyleft license grants users permission to use, modify, and share the source code, while also offering protection against relicensing through specific restrictions and terms and conditions. This requires that users creating derivative work must release their work under the same copyleft license terms and conditions of the original work.

This reciprocity ensures that users will have the same rights and permissions when using works derived from the original software, thus protecting the creators’ intentions.

Here are some of the most popular Copyleft open-source software licenses:

GNU Licenses

The Free Software Foundation has released many versions of the GNU General Public License (GPL), four of which can be found on GitHub. GPL v3.0 requires users to declare any changes they have made to the original code and make the actual code available when distributing any binaries that use the licensed software. This license also enabled compatibility with other licenses such as Apache, which was not possible with the previous version (v2.0).

The GNU Public License (GPL) is a strong copyleft license that requires that any modifications to the source code get released using the same license.

The GNU Lesser General Public License (LGPL) is a middle-ground between strong and weak copyleft licenses, allowing users to combine a software component of the LGPL with their own without having to share the source code of their components.

The GNU Affero General Public License (AGPL) is specific to software programs used on a server, requiring users who run a modified program on a server to share this information and make the modified source code available for download.

Mozilla Public License

The Mozilla Public License (MPL) is a free and open-source weak copyleft license developed and maintained by the Mozilla Foundation. It seeks to balance the concerns of both open-source and proprietary developers, offering a middle ground between the permissive BSD-style software licenses and the General Public License.

Under the terms of the MPL, proprietary codebases may incorporate MPL-licensed components as long as they remain accessible. The MPL has been used by several organizations, such as Adobe to license their Flex product line and The Document Foundation to license LibreOffice 4.0 (also on LGPL 3+). There have been two revisions of the MPL since its initial release: version 1.1 and a major update to version 2.0, which aims to achieve greater simplicity and better compatibility with other licenses.

Conclusion

When selecting an open-source software license, there are many factors to consider. The MIT License, Apache License, and BSD License are popular choices within the developer community and are known as permissive licenses. Copyleft licenses, such as the GNU General Public License and the Mozilla Public License, are also commonly used.

Although this article focused on the licenses recommended by GitHub, it is essential to explore all of your available options and consult a legal professional to make the best decision for your project.

To conclude, QuickBlox is delighted to introduce Q-Consultation Lite! This free version of the Q-Consultation virtual meeting room and video consultation app will soon be available for developers to access for free.

Q-Consultation Lite is going to be released under an MIT license, while most of QuickBlox sample apps are delivered under a BSD 3-Clause license. One exception is JavaScript SDK and JavaScript sample apps that are released under Apache 2.0 license. In the past QuickBlox team released Q-Municate under dual-license: community license based on modified Apache 2.0 and commercial license, now this project is deprecated and no longer supported. The source code of QuickBlox Platform and QuickBlox SDKs (except JavaScript SDK) is private and goes under the commercial license.

Stay tuned for more updates!


We're also thrilled to welcome you to the QuickBlox Developer Community on Discord!

Connect with other developers to share tips, tricks, and success stories when using the QuickBlox platform and SDKs. Ask and answer questions, show off your own QuickBlox projects, and get the latest news about product updates, platform status, and discounts.

Come join us and be a part of the conversation!