And why you should pay for it.
There’s a huge misunderstanding in the Free, Libre, and Open Source community (and in the general public) about what “Free Software” means. I am hoping by the end of the blog post I can clarify at least some of the confusion.
When a developer decides to publish a piece of software, that they own the copyright to, they have to decide how they want to license it. What license they decide to use will determine the freedoms, rights, and limitations they have decided to impose on the users of that program. Licensing software is important. It lets the users know what their rights are. If a copyright holder publishes code without licensing it, anyone who has access to that code must ask for permission before using that code. This includes running it, distributing it, or using that code in their own projects. There are 4 main types of software licenses:
- Non-Free Open Source
- Copy-Left Open Source
- Permissive Open Source
Proprietary Software is software that does not allow the user access to the source code.1 This means the program is often compiled into binaries (or executables), or obfuscated.2 Proprietary software licenses also often restrict the user from distributing the software, even if the piece of software is free of charge. User do not have the freedom to modify the software, audit the software and they cannot sell the software. Hence the user cannot trust the software as not being malicious. Microsoft Windows, Apple Mac OS, and Apple iOS are all proprietary software.
Free Software, Open Source, and Non-Free Open Source Licensing
Open Source software is software who’s source code is available to either the public or the consumer of the product. But just because a program is Open Source, does not mean it is “Free”. When I use the term “Free”, I do not mean Free of charge. Non-Free Software can be distributed for “Free”. The term “Free” is referencing the users Freedom.
“Free software” means software that respects users’ freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software.3
Because of the confusion between “Free” as in free of change and “Free” as in freedom, the community has started to use the word “Libre”, which is the Latin work for “Free” in reference to freedom.4 Whether or not a developer charges for his program does not depend on whether the software is Free Software or not. In fact the free software foundation encourages developers to charge for their programs.5
Richard Stallman, and the Free software foundation, describe the four essential freedoms6:
- Freedom to run the program as you wish, for whatever purpose.
- The freedom to study the program’s “source code”, and change it, so the program does your computing as you wish.
- The freedom to make and distribute exact copies when you wish.
- The freedom to make and distribute copies of your modified versions, when you wish.
Copy-Left Licensing is a form of open source licensing where if the user of a program decides to “fork” or create a derivative program, it must also be open source. One such license is the GNU GPL.7 Using code from a GPL licensed program require the derivative program to be GPL licensed too. Distributing a modified version of a GPL licensed program requires you to distribute the modified source code too. The Linux Kernel, GIMP (GNU Image Manipulation Tool), and Krita are examples of GPL Licensed software
This kind of license gives complete freedom to the user. The user can choose to make the program proprietary if they want. The MIT8 and the 3-Clause BSD9 license are examples of permissive licenses. They are usually the shortest kinds of licenses are offer very little restrictions on the use of the licensed product. Here is the complete MIT license template:
Copyright (c) <year> <copyright holders> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Free Software Must be Free of charge!
This is not true at all. Like I said before, “Free” in Free software speaks about your freedom to use the software for any purpose you want. This includes charging for it.10 You can, if you want, redistribute paid-for free software free of charge, but there is nothing wrong in charging for it. An example of this is Bryan Lunduke’s Game, Linux Tycoon 2. It is a GPL licensed game, which he is charging money for.11
Source code for free software must be publicly available!
A free software developer does not need to publish the source code to everyone. He only needs to provide the source code to users who also received the binary/executable. If the developer is selling the software, he can decide to only send the software to the people who bought the software.
The importance of Free Software
Non-Free software is an injustice. Free software allows the users, and the community, to control the program. If a program does give you the basic freedoms, it is mistreating you. Free software allows the users to trust the software as they can look at the code and audit it. They can be sure that the program isn’t malicious. Free software means the community can contribute to the software, allowing bugs and features to be fixed and implemented more quickly. Free software allows the users to add or remove features from local copies of the program and share them if they like. Proprietary software often spies on the user. With free software the user can confirm that the software isn’t spying on them.12
Copyright © 2018 Dhruva Lokegaonkar
This work is licensed under Creative Commons Attribution 4.0 International License.
Get the markdown
Get the Markdown signature
Get the PDF Version
Get the Plain Text Version
The Linux Information Project Source Code Definition.
Source code (also referred to as source or code) is the version of software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanumeric characters).↩︎
Obfuscation is a programming technique in which code is intentionally obscured to prevent reverse engineering and deliver unclear code to anyone other than the programmer. Obfuscation is also applied to programs to ensure intellectual property (IP) protection through reverse engineering prevention.↩︎
Bryan Lunduke Linux Tycoon 2
I believe in Free Software (Free as in Freedom). And, like Richard Stallman, I believe that just because a piece of software is “Open” or “Libre” does not mean it’s “free as in cost”. By buying Linux Tycoon 2 you get the full source code with it, licensed under the GPL version 3. This not only ensures that the game can live on long after I’ve stopped working on it… but it respects your Freedoms.↩︎