My progression to Free Software
I am reaching for a computing environment where I run only free and open source software. I am going to try and live a life where ONLY free software is used. I will update this frequently.
I am also going to reach even further and try and use open source hardware aswell. However, this is only a stretch goal.
Before I document my progress, I want to write some preface about what I will be doing. How I will be rating my progress and how I will calling different types of free software. I will also be going into rules on my choices.
- OSS - Open source software
- FOSS - free and open source software
- FLOSS - Free, libre and open source software
- Free software - software that allows distribution, modification, use for any purpose and its code is viewable. A paid program that is source-available with restrictions on it’s code would not be free software. I define free and open source software as Free Software.
- Libre software: used by the FSF as a term for free software to stop confusion with free in price software, but often is used to define software from the FSF. I personally consider Libre different to Free, with Libre being GPLv3 and no focused support for proprietary hardware. Linux is Free, but not Libre, but Linux-libre is Free and Libre.
- Proprietary software: Software with rights reserved, such as restrictions to it’s source code, the permission to be modified or the permission to be shared.
For hardware, my phones, desktops, laptops, servers, and other relevant gadgets need to run a full free/libre software stack. This means the operating system and any applications I choose to install must be open source. If that is achieved I will have to look for open hardware replacements.
Another thing that needs to be replaced with FOSS include the online services. For example: social media websites, VPNs, server software. Proprietary services can be accessed through a FOSS client.
Some hardware use proprietary code for their driver, such as Intel WiFi cards. If these were to run on Debian, the WiFi would not work unless Nonfree repos were allowed. Drivers are also part of the software stack and hardware needs to be replaced if there is no FOSS driver that allows it to work.
All software where the source code is available and runs on a license allowing forks or redistributions is allowed. This setup may be different to Richard Stallman’s setup as he will only use libre software with GPLv3 preferred or GPL compatible licenses.
- This rule would put (GNU/)Linux and Linux-libre in the same rating. If an open hardware computer ran Linux with free software only, it would be no different than the same machine using Linux-libre. Like Debian with nonfree software disallowed.
- Libre / FSF supported software like Linux-libre, libreboot, and Replicant have characteristics of rejecting hardware that dont have a free driver. If I use Linux or Coreboot which are the same projects with support for proprietary drivers, I dont believe there is a difference as long as the hardware im using is free. Because I am not using a proprietary driver.
A less free option should only be used over a more free option if:
- The free option is in early development and core features are not functional
- The free option has a serious security issue that using it would be a compromise, or if the security of the less free product is marginally above the others.
- It’s availability is extremely limited (e.g. OpenMoko phones)
- If it has limited adoption or has a reputation for being untrustworthy.
- The option for whatever reason restricts use of other software.
- I cannot afford the most free option yet.
Firmware that is intended not to be updated, or does not connect to the Internet are excluded from this test and do not need to be replaced with a free option. This is strictly only for computers.
- ‘As for microwave ovens and other appliances, if updating software is not a normal part of use of the device, then it is not a computer. In that case, I think the user need not take cognizance of whether the device contains a processor and software.’ - Richard Stallman
- Firmware for hard drives, EC etc do not usually intend to be updated, them being nonfree does not matter (and there is pretty much no open firmware HDD/SDD to exist because of it).
- I will however try to replace firmware for devices where possible, for the sake of seeing how far I can go.
Freedom will be rated to a 5 star stack, with 2 ratings. One rating will be for my progression, and the next for how far we can currently get.
⭐️⭐️⭐️⭐️⭐️⭐️ - 6 stars (optional): Complete FOSS software stack with certified open source hardware.
⭐️⭐️⭐️⭐️⭐️ 5 stars: Completely FOSS software stack, with programs, operating system, and bootloader/BIOS. All hardware is compatible.
⭐️⭐️⭐️⭐️ 4 stars: FOSS software and drivers with dependence on proprietary BIOS/bootloader
⭐️⭐️⭐️ - 3 stars: FOSS software with dependence on proprietary hardware drivers.
⭐️⭐️ 2 stars: FOSS Operating system with proprietary programs
⭐️ - 1 star: Proprietary but attempts made
FAIL - 0 stars: No attempt made to transition yet.
My setup: ⭐️⭐️⭐️⭐️⭐️ - 5 stars!
Maximum possible score: ⭐️⭐️⭐️⭐️⭐️⭐️ - 6 stars!
I own a modified Lenovo ThinkPad X200 with replaced free initilisation software and operating system. Some changes were made to the hardware to make the possible, including the flashing of the BIOS chip and replacement of the WiFi card. This is my only PC with my full freedom.
This laptop runs Trisquel GNU/Linux as it’s operating system. The Intel WiFi card has been replaced with an Atheros WiFi card which supports a free driver. The HDD has been replaced with an SSD forspeed!
The 5 star rating is given because the laptop’s BIOS chip was flashed with Libreboot. A free initialisation program
The MNT Reform is a certified open hardware laptop. If this laptop can run on Libre software without a driver issue, then the Reform is a 6 star rated laptop. I originally ordered this laptop on crowdfunding but due to delays in the manufacturing process, I had to cancel. Its high price ($999-1500!!) makes obtaining this laptop difficult currently.
My setup: ⭐️⭐️⭐️ - 3 stars
Possible setup: ⭐️⭐️⭐️ - 3 stars (Possibly more, see Librem 5)
I use a flashed Google Pixel 4a running GrapheneOS, a modified Android Open Source Project distribution with all free software apps but possible proprietary hardware drivers and bootloader.
Even though there are more free options (i.e. a Linux phone or a OpenMoko) a new and secure phone is required for work. GrapheneOS is focused on security and privacy.
All apps on the phone are Free and are installed via F-Droid, an app store for free software apps only. No proprietary apps will be used. To avoid use of proprietary hardware, I use Airplane Mode and GPS is disabled.
Why phones will probably never be free
The design of mobile phones mean that even with a fully open source operating system, drivers, and bootloader, features will be limited. This is because the baseband processors in phones are completely locked down and are not meant to be reverse engineered. Even if a open source baseband processor was released, it would recieve no approval from Ofcom, FCC or similar due to possibilities that it could be programmed to run on frequencies outside CDMA/GSM/LTE spec. This is an issue with the cellular networks themselves, NOT the phones.
The closest to a free baseband is OsmocomBB, and only two phones with a free operating system (OpenMoko GTA01 and GTA02) supports it. However:
- OsmocomBB’s primary supported phone models are Motorola C1[xx] phones whcih contain non-free code in the ROM.
- OsmocomBB runs attached to a PC and cannot be ran independent of the phone.
- The project only supports 2G, which is severely insecure, outdated, and unsuitable for a smartphone.
- OpenMoko phones are extremely rare to come buy (13/9/2021: Only one on eBay in the UK, £450!! Way too much!!)
- I have no knowledge on whether the hardware drivers OpenMoko Linux used were free or not at this time. If so, then my phone is no different.
- OpenMoko is no longer actively maintained, they do not distribute phones anymore.
Replicant is the closest to a 100% free mobile operating system. But, it is just LineageOS with proprietary hardware drivers removed (which means using a USB wifi adaptor and no cellular). And, the phones supported have lots of non-free components outside the OS itself which Replicant cannot change.
The PinePhone still has proprietary hardware drivers. They are actively trying to replace and develop new drivers. (GNU/)Linux as a phone is an interesting concept. If a phone has all of it’s hardware become supported for free driver software, then making a mobile Linux-libre kernel based OS like a ‘Trisquel Touch’ or ‘Paramoba GNU/Linux-libre’ is most certainly possible. I would love to see it one day even if not officially maintained. PureOS has is the only mobile OS which runs Linux-libre.
Update 23/09/2021: While the PinePhone has proprietary hardware drivers, there is a project to make a free software modem, it is more free but not completely free. See: Pinephone Modem SDK.
The Librem 5 is considered the closest to a free phone, however I am letting it have it’s own subheader becausee there is a lot of things I want to write about it.
The Librem 5 is an interesting device, I cannot say whether it is a great device as I don’t own one. Librem 5 currently runs a free FSF-endorsed operating system (PureOS) which uses Linux-libre as the kernel. They however claim to have proprietary cellular for the same reasons I had wrote prior (source). For FSF RYF certification, use of a secondary processor that processes proprietary blobs outside of the kernel and boot is allowed - this is what the Librem 5 does.
I would use a Librem 5 phone. However I would not main one at this time for a couple of reasons:
- $899.00 is way too much for me at the moment.
- They go out of stock and sometimes take a lot of time to return in stock.
- US shipping and import fees…
- Linux phones are still experimental and still need work to be done on the software side. Only the PinePhone and Librem 5 are the two major Linux smartphones right now, but development is progressing quickly, and I really hope for the best!
If I made an exception for the secondary processor, it would be 3 stars, but if I also made an exception for cellular hardware, it would be 5 stars.
I would recommend any of the FSF approved distros as an operating system to run on your PC. What you use is up to your preference, but I will go through some of them. I will also mention one that is not approved but an excellent mention nonetheless. It is also personally my OS of choice when not using a completely free computer.
Trisquel is derivative of Ubuntu with all proprietary software and firmware removed. All packages in their package repositories run free software. I would consider Trisquel the simplest of all the free software only distributions and the most stable distribution. I would also consider it excellent for long term support and for weaker hardware.
If you prefer a standard LTS release update distribution, I fully recommend Trisquel as your distro of choice. Trisquel does not have many packages in it’s repositories however, and even if the program is free you may not be able to find it.
Parabola and Hyperbola GNU/Linux-libre
If you like rolling releases, Parabola and Hyperbola are Arch derivative distributions with only free software. Parabola is focused on the modern rolling release, whilst Hyperbola is for long term releases. These distributions are also a great choice for people avoiding systemd, with OpenRC as an init option.
PureOS is a Debian based distribution and is the most modern looking of all the distributions in my personal opinion. I believe PureOS is the best choice for new free software users. PureOS is also the only distribution that caters to mobile linux devices.
Debian is not an FSF approved distribution. But, Debian forces free software to only be used in the operating system repositories as long as nonfree is disabled. The reason Debian is not approved is because the installation of proprietary software is allowed through a separate, disabled by default repository. If you use hardware that is not compatible with them free distros, then Debian probably supports it. For new GNU/Linux users I suggest using Debian as a second or third distro when you want to get more experienced.
Debian probably has the best package repository of all of them.
I personally use a customised build of Firefox with all of the Firefox network services deactivated, with branding, telemetry removed. I also have some extensions installed into it. I also use Tor Browser on some machines, here is a post why.
(TODO: write about how you configure firefox)
On most FSF approved GNU/Linux distributions, it is bundled with Firefox but with the branding removed. The browser functions the exact same as the real Firefox, it is just Mozilla’s license prohibits distribution using their branding. I fully recommend using this, or any of these other browsers:
Version of Google’s Chromium browser with all telemetry and connection to google services stripped. UG has also made changes to the browser to improve privacy and security. If you are a loyal chrome user, this is the browser for you.
Proprietary blobs like DRM have been removed, but unRAR, a proprietary binary built with Chromium is. A patch option exists to build without that binary, this would make ungoogled-chromium completely free if built this way. GNU Guix (another FSF approved OS and package manager) does this for their ungoogled-chromium build in their repositories. You can use their repo to install it from there if desired.
The many Firefox derivative browsers
Even though I just use a configured firefox to remove the privacy issues with Firefox, here are some browsers that do or most of it for you:
GNU IceCat is GNU’s web browser based on Firefox with proprietary blobs removed and some privacy features. Only issue is that they only provide a script to install and no new binaries now. DO NOT INSTALL THE BINARY ON THE GNU WEBSITE! IT IS YEARS OUT OF DATE! Some distributions have updated builds, some do not, I know Guix has an updated version.
LibreWolf is a Firefox fork with changed branding and a strict firefox privacy configuration out of the box. LibreWolf still contains support for proprietary DRM however you are able to turn it off.
While some browsers have better privacy and freedom than others, using some of them may make you more identifiable when browsing online. Make sure you know what you are doing.
- XMPP: Pidgin
- IRC: HexChat
- Email: Usually I use the web client, but I’d recommend Claws Mail
- Matrix: (Look more into this, Brett!)
For video, I use MPV as my main media player and I have for the past few years. For music, I use Clementine as my music player. For images I just use the default in my window manager.
I use LibreOffice or OnlyOffice, I prefer using LibreOffice for original documents. OnlyOffice is AGPL but functions better with Microsoft Office documents in my personal opinion.
I will be more lenient on webpages, it appears even the most radical of free software users like RMS and a bunch of privacy review sites don’t care if they are free software or not. As long as they aren’t invasive of privacy and have good ethics, it is fine for me. I will try and promote free software webpages though.
- Websites I find should be free if they have code that cannot be read via inspect e.g. PHP or Rails, though not a requirement.
- If they can run with LibreJS on, then thats preferable. (Not a requirement for me, I use Tor Browser, not IceCat)
- The service should respect my privacy, I will choose the one that I believe is best for my use case. I will also mention other honourable services.
- Free clients that are viewers to bad websites like Invidious, Nitter, Bibliogram are acceptable.
Add more to this, brett!
I do not use social media, but if I had to suggest free software alternatives, I guess I’d recommend a Mastodon, Pleroma or GNU Social instance based on your interests?? All of them are free software and self-hostable.
SearX is my main search engine choice, I would prefer to self host it one day. SearX is free software.
To access YouTube content, I use an Invidious instance to watch YouTube videos without directly accessing the YouTube site. Invidious is minimal and I even can play some videos straight from the Tor network because of it. If I need to read a tweet or thread, I use Nitter