Licensing has always been a dry subject for many. I, myself had to struggle to get basic understanding of open-source licensing. As part of Easy Linux series, I am going to discuss important Licensing concepts and basic terminologies in the easiest possible way. The key terminologies that I will focus include Free and Open-source software (FOSS), Forking, Copyright and License, Public domain software, freeware, Permissive Licenses, Copyleft principle / GNU GPL, Creative Commons, and BSD License. Let’s Get Started!
Free and Open-source Software (FOSS)
When we use the term “Free and Open-source Software” (FOSS), it comprises of two different concepts “Free Software” and “Open-source Software”. People have been using these two terms interchangeably as they share similarities. However, these two terms were coined separately. Let’s divide the term “FOSS” into “Free Software” and “Open-source software” to better understand it.
The movement of a “Free Software” revolves around the idea of user freedoms. The word “Free” here doesn’t mean “Free of cost”. As per the definition by Free Software Foundation (FSF), Free software means that the users have the freedom to run, edit, contribute to, and share the software. Thus, free software is a matter of liberty, not price.
When we use the term “Free Software”, we talk about four freedoms. Richard Stallman describes these criteria as “the four essential freedoms”, the counting of which he starts from zero:
Freedom 0: The freedom to run the program as you wish, for any purpose.
Freedom 1: The freedom to study how the program works and change it so it does your computing as you wish.
Freedom 2: The freedom to redistribute copies so you can help others (freedom 2).
Freedom 3: The freedom to distribute copies of your modified versions to others (freedom 3).
So, a software/program/application is considered a “Free Software” if it gives users all these freedoms mentioned above. Otherwise, it is not “Free Software”.
An Open-source software is an application or program for which the actual source code is made available publicly. If software is Open-source, its source code can be accessed by anyone so as to view, copy, change, improve, and share it with others. This is the reason most of the open-source software is developed by communities and in a collaborative way rather than a single developer or company. Open Source Initiative (OSI) is an organization that promotes the usage of Open-source Software.
Question: What is Source Code?
Answer: The source code of any software or application is the actual code written to develop it. Computer professionals (Developers or Programmers) write the source code. As a normal user, we do not worry about the source code of the software. We just install the software and use it. However, access to the source code of software helps computer science students and professionals to learn from it and improve the software by further changing it.
Question: Are all software are open-source OR can I have access to the “Source Code” of any software?
Answer: No. You may not have access to the source code of all software.
You may not have access to the source code of the software such as MS Office, Skype, and Adobe Photoshop because they are proprietary software. These software are also called closed-source. The source code for these software could be legally accessed or altered by its own developers, teams, or organization who owns it.
You may have access to the source code of the software such as Apache OpenOffice, Signal, and GIMP because they are open-source applications. The developer(s) or organization of these software have made the source code publicly available to download. Anyone can download, view, change, the actual source code of the software.
Forking a Project
The concept of open-source software has devised a new term “Forking”. When developers/organizations take the existing source code of a project/software and start their own new project in parallel, they are actually forking the project. They may modify the existing source code as per their own requirements or they may add new features to it.
|Original Open-source Operating Systems||Forked Versions|
|Debian Linux||Ubuntu Linux|
|Debian Linux||Kali Linux|
|Red Hat Enterprise Linux||Oracle Linux, Rocky Linux|
So, we can say that Kali Linux is Debian-derivative. OR Kali Linux is forked from Debian.
Similarly, we can say that Oracle Linux and Rocky Linux are RHEL derivatives. OR They are forked from Debian.
|Original Open-source Applications||Forked Versions|
Nextcloud is forked from ownCloud. LibreOffice is forked from OpenOffice. MariaDB is forked from Mysql.
Free Software Foundation prefers to use the term “FLOSS” instead of FOSS. “FLOSS,” meaning “Free/Libre and Open Source Software”. The word “Libre” means freedom. It clarifies that “Free” is used as in freedom instead of money.
Copyright and License
In its simplest terms, Copyright and License can be defined as follow:
Copyright is the legal term used to show and prove who owns the product or software.
License is defined as an agreement, wherein a company/organization authorizes another party/user to use its product under certain terms.
Assuming you own a property/house. The ownership documents or a “deed” is the copyright. This proves your ownership. And when you consider renting out your house, you make a rental agreement with the tenant. That agreement is a License where you authorize your tenant to use your house under certain terms.
Public Domain Software and Freeware
If we have understood what “Copyright” is, the difference between Public domain software and Freeware would be easy to understand.
Public domain software is software to which the author/developer has given up all rights. There is no cost to buy it. There is absolutely no ownership such as copyright, trademark, or patent. No one can legally enforce any rights. Anyone can use, modify, reproduce, or sell the software without any permission. Even in some cases, one can represent as one’s own work. There is no licensing requirements with software that are in the public domain. Software before 1974 was shared as a public domain as the licensing of software started after 1974.
Freeware is proprietary software that you can use without paying a license cost. The software is registered under exclusive copyright, where software license grants limited usage rights. When you install the software, you may need to accept terms and conditions to use it. Some of these terms prohibit us from modifying or selling the software in any way.
Examples of Freeware are Internet Explorer, Skype, Zoom, WhatsApp, Adobe Reader, etc….
Question: If both Public-domain software and Open-Source software allows users to view, copy, change, and share the code/software with others, what is the difference then?
Answer: Yes, both public domain and open-source software allow users to access and modify the source code of the software. However, there is a significant difference between them.
• Public domain software is not licensed.
• Open-source software is licensed, and the code is still protected by copyright. They have restrictions as to how these software can be used and distributed. The software might be free of cost, but it will be made available publicly under a copyright license approved by the “Open Source Initiative (OSI)” conforming with its definition.
So, the main difference between the Public domain and Open-source software is not whether the source code is accessible to the user. Instead, the difference lies in whether there are licensing requirements or any other restriction on viewing, copying, altering, or distributing the software. The distribution criteria of an Open-source software are well defined on their website.
Free and Open-source Licensing
Like proprietary software, “free and open-source software” are also licensed. As users accept the terms of a license in proprietary software, they must also accept the terms when they use free and open-source software. However, the legal terms of “free and open-source” software licenses are different from those of proprietary software licenses.
Both “Free Software Foundation” (FSF) and “Open-Source Initiative” (OSI) have come up with their own criteria to call a software “free software” and “open-source software” respectively. It depends what license, a software is using.
For example, the source code of the “open-source software” is released under a license in which the copyright holder grants users the rights to use, study, modify, and distribute the software to anyone and for any purpose.
Similarly, if a software is using license which allows 4 freedoms, it can be called a “free software”.
Open-Source Initiative (OSI)
The OSI movement was founded in 1998 that developed a list of criteria to check if a software license fulfils the definition to be called an open-source software. The whole list of criteria can be read from OSI official website and they call it “The Open Source Definition”.
The OSI has approved a list of licenses that qualifies the “Open Source Definition”. If any software is using a license from the OSI approved list, it can be called open-source software.
Free Software Foundation
Free Software Foundation was founded by Richard Stallman to support “free software” movement in 1985. FSF also maintains a long list of licenses. However, I am going to touch base with couple of them.
GNU General Public License (GPL)
Free Software Foundation has formulated the GNU General Public License (GPL) as one of its key licenses. There are 2 key licenses behind GNU GPL.
- Free Software License (Free software includes Four freedoms)
- Copyleft License (Includes copyleft principle)
The software can be called “Free Software” if it gives users the four essential freedoms (Discussed above in this article). And then the other main principle behind the GNU GPL license is the copyleft principle. Copyleft promotes the principle to make software truly free (in terms of 4 freedoms) and it requires all modified versions (derivative work) of the software by anyone to be free as well.
Question: When we make any software “free software”, does it mean we make it public domain software. So that anyone can access, use, modify, or redistribute it?
Answer: Not Actually. When we make any software a public-domain software, it is not licensed. Anyone can copy and make changes to public-domain software and claim its ownership and make it proprietary software. And people who receive this modified / proprietary version of the program cannot have the freedom to change it. This is not “free software”.
The basic idea of any “Free software” is to make sure all people get benefited. That’s why the copyleft principle was introduced. The software is licensed, and you can use, copy, modify the software but you can’t claim it as proprietary software. Instead, you must share the original work + the changes you have made.
So instead of putting a software in public-domain, we “copyleft” it.
Copyleft principle says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. Copyleft guarantees that every user has freedom.
Proprietary software developers use copyright to take away the users’ freedom; we use copyright to guarantee their freedom. That’s why we reverse the name, changing “copyright” into “copyleft.”
Copyleft is a way of using the copyright on the program. It doesn’t mean abandoning the copyright; in fact, doing so would make copyleft impossible. The “left” in “copyleft” is not a reference to the verb “to leave”—only to the direction which is the mirror image of “right”.
GNU Free Documentation License (FDL)
This is another license that is used solely for documentation, manuals, and textbooks. This license also follows the copyleft principle. So, If you license your written work (Book, LAB Guide, or any document) under GNU Free Documentation License (FDL), any person can copy, use, modify, and redistribute your work.
Free Software Vs Open-Source Licensing
The FSF maintains its own list of licenses and OSI keeps a list of licenses what it considers is open-source. Both these movements — Free Software by (FSF) and Open-source software by (OSI) move in the same direction and achieve similar goals. For example, if a software qualifies the criteria of both “Free Software” and “Open-source software”, it will release its source code under a certain license and it will also follow the criteria to give users, the 4 freedoms.
A perfect example of such would be GNU GPL license that was formulated by “Free Software Foundation” and also qualifies as a open-source license as per definition by “Open Source Initiative”
Linux kernel is license under GNU GPLv2 and this license fulfills the criteria of both FSF and OSI movements. That is why we can say “The Linux Kernel is free and open-source”. That is, anyone can use, copy, study, and change the software in any way, and the source code is also available so that people can modify it or improve it.
There are some licenses that are accepted by OSI but FSF doesn’t consider them free licenses. Sometimes both these movements (FSF and OSI) may go into conflict, especially when the results of the joint work do not reflect the original goals of both movements. This can happen when software is released with its source code, but the four freedoms are not given at the same time.
Categories of Licenses
Broadly, we will talk about Creative Commons License Vs Permissive License Vs Copyleft License Vs Proprietary License.
These licenses define the rules as to how someone’s software/work may be used by any user or organization.
There are very few or no restrictions with the Creative Commons License. The licenses become more restrictive as we move from the left to right side in the picture.
Creative Commons License
If you want to release your software or work to the public domain (make it freely available and no copyrights), it is recommended to use CC0. The Creative Commons CC0 license is used to put software into the public domain. Any software or work that is released under CC0 is dedicated to the public domain which means anyone can do anything with it. There are no restrictions, and the original author/developer of the work has waived all rights. You can copy, modify, and redistribute it as you wish.
CC0 enables scientists, educators, artists, and other creators and owners of copyright- or database-protected content to waive those interests in their works and thereby place them as completely as possible in the public domain, so that others may freely build upon, enhance and reuse the works for any purposes without restriction under copyright or database law.
A permissive license is a BSD-like or BSD-style license which is a free software license with minimal restrictions on how software could be used, modified, or redistributed. They require attribution to original authors in derivative work or source code. The Derivative work can be released under another license or as proprietary software.
Examples include the GNU All-permissive License, MIT License, BSD licenses, Apple Public Source License, and Apache license.
BSD License which is permissive license, may contain 4 or fewer clauses. The summary of the BSD License in 4 clauses:
“Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution.
- All advertising materials mentioning features or use of this software must display the following acknowledgment: This product includes software developed by the <copyright holder>.
- Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.”
The main benefit of using BSD license is that it doesn’t require the user to redistribute the code or derivative work. This is a must in Copyleft License which I am going to discuss next.
This is the same license that we have discussed above in this article. It is a more restrictive license and states that anyone who uses the original source code to build something, must also redistribute the derivative work under the same license. Copyleft guarantees that every user has freedom. If the software is licensed under a copyleft license, the derivative work must be redistributed under the same license terms. The first and most popular example of a Copyleft license is GNU GPL.
The proprietary software license doesn’t allow copying, modifying, or redistribution. This is the most restrictive license. The original author or the company who releases the software or work retains copyrights of the source code. Usually, the source code is hidden from the end-users and doesn’t grant rights to modify the software in any way or redistribute it.
Other Software Licenses
There are many other kinds of software licenses that have been introduced to meet certain requirements. For example, there are WeakCopyleft, Lesser GPL license, 3-Clause BSD, and 2-clause BSD license available. Before we fork someone’s work, we should read the license carefully under which your derivatives may be licensed.
Question: If the software is “free and open-source”, does it mean I can get it free of cost?
Answer: The “free software” doesn’t refer to the cost. The term free in “free software” refers to the 4 freedoms discussed above in this article. In addition, the word open-source doesn’t necessarily mean that the executable software is given away for free of cost.
Example 1: You are not a programmer or a computer professional. And at the same time, you want to modify a “free software” to meet the requirements of the business, you own. You may pay any developer/programmer to make those changes for you.
Example 2: The source code for Red Hat Enterprise Linux (RHEL) is freely available. However, working on that source code so as to get a production-ready operating system and obtain support from professionals, you may need to pay.
The Bottom Line
- Both “Free Software” and “Open-source Software” movements largely follow similar goals and endorse similar software licenses. They complement each other and hence form “FREE AND OPEN-SOURCE SOFTWARE” (FOSS or F/OSS).
- Unlike proprietary licensing, Open-source software licensing:
- Encourages collaboration among people to work together.
- Helps Developers or Programmers get access to source code, view, modify, and then share the code with others so that they can incorporate the changes as well.
- Promotes synergizing all the efforts made by developers around the world. This overall helps the whole world as a community.
- Linux is a free, open-source operating system (OS), released under the GNU General Public License (GPL). It is also the largest Open-source software project in the world. Because Linux is released under an open-source license, which prevents restrictions on the use of the software, anyone can run, study, modify, and redistribute the source code, or even sell copies of their modified code, as long as they do so under the same license.