A post on importance of Free Software
I wrote a writeup on the importance of free software when we were invited for an AMA on r/India reddit. Now since that is announced, I think we can post it on our FSCI blog.
The following is the writeup. Feedbacks are welcome and encouraged.
Title: Why is Free Software/Swatantra Software important?
Imagine that you are buying a car and the car seller gives you a contract to sign which will be in effect immediately after the purchase. Some points in the contract are:
1. You do not own the car, you only have the license to use it.
2. You cannot use the car for commercial purposes, including using the car as a taxi, without asking for permission from the seller.
3. You cannot take the car to hill stations(you can imagine any similar restriction here) without asking for permission from the seller.
Further, the bonnet of the car is locked and the terms say that
4. You cannot unlock the bonnet of the car yourself, only authorized technician from the seller can open and inspect the car, for security purposes.
Definitely you cannot repair the car yourself or a mechanic independent of the company cannot repair even if you or the mechanic has skills because you do not have access to the internal of the bonnet.
How would you feel? Would you like to live in such a world where every car is like that? Would you like to live in a world where repairing your own car is a crime?
Most of popular software that people use in their daily lives is just like that. We call such software without freedoms proprietary software. This is true mostly of the software developed by the companies like Google, Facebook, Microsoft, Amazon and Apple. You don't own the software that you install in your devices (check https://www.wired.com/2010/09/first-sale-doctrine/), analogous to the first point in our car example above.
Many such software does not allow installation in more than one computer or sharing copies of the software with others. Wolfram Mathematica is an example of such a software.
There are many arbitrary restrictions by many software contracts imposed on the user. The point is that users do not enjoy the liberty that we take for granted in other things we use or buy.
And another very important problem is that users do not get the source code of the software. The entity having the source code controls the software as you can see here for a basic explanation of what is source code https://ravidwivedi.in/posts/free-software-explained-simply/#what-is-source-code. Check this link https://gnu.org/malware for how such a software abuses users in many ways, such as by surveillance, imposing DRM, censorship etc.
Some companies lie or cheat. For example, Volkswagen has been cheating in emission tests by making its cars appear far less polluting than they are. https://www.theguardian.com/business/ng-interactive/2015/sep/23/volkswagen-emissions-scandal-explained-diesel-cars
WhatsApp claims the texts sent using their service are end-to-end encrypted and provides privacy for the messages we send, but we have no way of verifying their claims since they don't share the source code.
We cannot independently verify these software. So we are forced to blindly trust their claims.
So, the software must respect user's freedom to run, study, modify, share and share the modified versions. Such a software is called Free Software. Free means 'freedom' and not price. Examples of Free Software are VLC, Firefox, Ubuntu, Debian, Mastodon, Quicksy etc. If the software is not Free Software, it is called proprietary or nonfree software. For example, WhatsApp, Microsoft Windows, Adobe Photoshop, etc.
Detecting tampering or backdoors is a challenge in both Free Software and proprietary software. But since the code cannot be checked in proprietary software, the only way to detect is when the owner of proprietary software uses the backdoor to enter users' computers.
This is where the concept of reproducible builds is important. Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code. With reproducible builds, the binary software always matches the corresponding code that built it regardless of whether it was built on a company’s servers or your laptop https://puri.sm/posts/freedom-from-coercion/. So you can take the source code that you verified and compile it and compare the binary with the one the developer provides for that same version of code. This enhances security of Free Software users far more than the users of proprietary software.
We want to create a society where Free Software is the norm, so that every user can have freedom and liberty to do what they want with their devices. We need to step in as a community and need your involvement to achieve these goals. #join-us.