FLOSS or Not? How To Tell?
We install and use a lot of software in our laptops, tablets and smartphones. But how can we tell if a software or an app is Free(dom) software (FS) or a Proprietary Software (PS)?
When asked the above question, some say that they will seek answer from their friends or teacher who introduced them to FOSS. But how do they find it, or how can one find it for themselves?
The answer to this question is the License under which any software is made available. The license is what tells what we can do with the program. Whether we can get a copy of source code for the program or not; we can modify the source code or not; we can share it with our friends or not, that is what a license is for. Granting rights.
As you already know, a proprietary software doesn't allow us to do anything with the program other than just running and using it. Any attempt to inspect what the software or program is doing in our system through reverse engineering or trying to fix a bug is not allowed. But according to India's copyright act's fair usage terms, reverse engineering is considered to be fair use and therefore allowed. But where are these things conveyed? License. One example is the End Users License Agreement of Windows 10 (Restriction section).
On the contrary, if a license allowed us to get a copy of the program's source code; modify the code; share it with others, etc., then we call those software as Free/Libre & Open Source Software. Even within the FLOSS ecosystem, there are various licenses that allow or doesn't allow one or few of the above rights itself. That is why FLOSS licenses are grouped together under different categories based on what they permit or not permit.
Permitting something doesn't always means a fair condition. For example, some FLOSS license like MIT permit the users to build something out of the existing code and also permits them to share under a different license even if that license is a proprietary license. These licenses are called Permissive FLOSS Licenses, i.e they permit to even close the open nature. This runs in the opposite direction of the free software movement itself.
On the contrary licenses like GNU General Public License (GNU GPL) enforces that anyone receiving a program under this license should also share it with others under the same license they received, thereby no one in the human chain can prevent the other from enjoying the license granted initially. Since these licenses doesn't permit anyone to close it, they are called Non-Permissive FLOSS Licenses.
Coming back to our question of how to tell if a software is a PS or FS is by checking under what license the software or program is released. Eventually one can raise another question here, Where to find the license of the software?
Usually the license information will be provided with the software itself at the time of installation where we usually click "Next" and "I Agree" without reading it (or) if the software has a Graphical User Interface (GUI) and a menu, you can always check in Help (or) About menu of the software program. If not, we can check for the presence of any text files that came along with the software when we downloaded or received. If not, we can check for any information in the developers website for license information.
What if there is no license information provided with the software program or in their website?
According to Copyright Act of India, computer programs and databases are considered to be literary works and that by default even if we write a program and doesn't provide any license, the works falls under copyright of the creator by default, but since there was no license, it will be unclear as to what the creator allows or not allows us to do, therefore we have to ask them explicitly to make things clear. Therefore it has to be assumed to be a proprietary software.
When to consider a software as FLOSS?
All FLOSS or software under public domain should have an explicit information on the same. If the software has a license information and if it is one of the FLOSS license then obviously it is a FLOSS.
When to consider a software as proprietary?
- If the software did not contain any license information, even if the source code is publicly available without license.
- If you get the trial version and you are asked to purchase a license for using full version.
- If the software contain End Users License Agreement (EULA).
FLOSS and Proprietary are not the only categories of Software, there are also few other categories as mentioned here.