codema.in

A post on importance of Free Software

RD Ravi Dwivedi Public Seen by 55

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.

PP

Pirate Praveen Tue 19 Apr 2022 4:15AM

https://reproducible-builds.org/ is a critical project in this aspect.

PM

Pratik M. Thu 28 Apr 2022 7:47AM

>If the software does not respect users' freedom, it is called proprietary software. For example, WhatsApp, Microsoft Windows, Google Chrome etc.

I don't think this is the definition of proprietary software, although it does this. We could instead say - proprietary software is (often, or always, I guess) nonfree software, i.e. don't allow users exercise their freedom. What about this?

RD

Ravi Dwivedi Thu 28 Apr 2022 8:13AM

What about now?

PP

Pirate Praveen Wed 11 May 2022 4:59PM

I think using Google Chrome as an example of proprietary software only adds to confusion. I don't think we should mention it in an introductory article. As chromium is Free Software and we can modify it.

PP

Pirate Praveen Wed 11 May 2022 5:09PM

May be use Adobe Photoshop instead of Google Chrome.

RD

Ravi Dwivedi Thu 12 May 2022 7:47PM

@Pratik M. What is the difference between nonfree software and proprietary software?

RD

Ravi Dwivedi Thu 12 May 2022 7:48PM

Done.

RD

Ravi Dwivedi Thu 12 May 2022 7:48PM

Done.

PM

Pratik M. Sat 14 May 2022 1:07PM

Practically nothing, but nonfree is the one whose source is closed and proprietary is that over which certain someone(s) have legal rights, generally rights which prohibit others from using the thing which has been proprietorised ( term made by me 😂)

RD

Ravi Dwivedi Sun 15 May 2022 10:01AM

Nonfree software is one which is not a Free Software(theoretically, it might give you source code but not give you some other freedom of Free Software, say, freedom to share the software).

PP

Pirate Praveen Wed 11 May 2022 5:03PM

Wolfram Mathematica should be introduced I think, I have not heard about it before.

RD

Ravi Dwivedi Thu 12 May 2022 7:46PM

We can say that educational software like Wolfram Mathematica prohibits users to share copies.

There are many concerns which can be added here. Like:

  1. The license fee is not affordable for a student which restricts students from learning using the software.

  2. Only university/college can afford to buy license fee for such software and they become dependent on the software developer for their needs.