Things I Dislike about Fedora
2020 November 26
Fedora is a GNU/Linux distribution perhaps best known for being the upstream source for Red Hat Enterprise Linux (RHEL).
I like Fedora. I've been using it as my primary distro for something like 3 and a half years now. The goal of this post is not to dissuade people from using Fedora, just to bring up some issues I have with the distribution.
I'll also discuss how to address these issues, if applicable.
This post assumes the reader is familiar with free software.
Usability
Codecs
Fedora doesn't include video and audio codecs which are legally encumbered by patents. The effect of this is you won't be able to play media files in some formats, even though there is free software that supports those formats. (VLC plays pretty much everything, for instance.) By default, you'll only be able to play free formats like ogg and webm, or formerly patented formats with now-expired patents like mp3. You won't be able to play patented formats like those used in most mkv and mp4 video files.
(I'm abstracting away the details of the actual codecs involved and generalizing about the types of streams included in container files. Most people don't know or care about codecs and will only recognize the file extension.)
OpenH264
The exception is Cisco's OpenH264, which has a... weird software freedom situation. For practical purposes, if you install OpenH264, your computer will be able to handle some mp4 video. (You still won't be able to watch videos that use patented codecs other than H.264.) But is OpenH264 really free?
OpenH264 is free software, in the sense that the source code is available and licensed under a free software license.
Cisco has released a binary version of the OpenH264 codec, with the agreement that it will pay all royalties, allowing anyone to use only the precompiled binary version of the codec without patent restriction.
This allows Fedora to provide an OpenH264 binary (which was apparently "built inside the Fedora infrastructure") to users, but not to include the source code, which is patent-encumbered. The source code is available but not part of Fedora.
It's a weird situation, and OpenH264 is apparently only in Fedora to enable WebRTC in Firefox, so it may not work well for general mp4 playback anyway.
RPM Fusion
Instead, you can get the free software codecs that Fedora won't include from RPM Fusion. RPM Fusion is kind of a collection of software Fedora wants to include but can't for legal or political reasons. This includes software that is free (-as-in-freedom) but patent-encumbered in the USA as well as nonfree software, which is forbidden by the distribution's own policy of only including free software.
Of course, I wouldn't recommend you install the nonfree software, but RPM Fusion separates its software cleanly into four categories:
- Free
- Free Tainted
- Nonfree
- Nonfree Tainted
Free software which should be safe to install but may not be legal to distribute in the USA, such as patented media codecs
Free software which may not be legal to install and use in some places, such as libdvdcss which is used to bypass DVD DRM to allow users to commit the crime of watching DVDs with free software
Software which can be legally redistributed but is not free software, such as the nonfree NVIDIA driver
Nonfree firmware that is not clearly legal to redistribute but may be allowed in some places
So it's easy to avoid accidentally installing nonfree software. Just make sure you only enable the free repos, and not the nonfree ones. Unfortunately, many guides will instruct you to enable both the Free and Nonfree repos, even if you're only installing software from the Free repo.
Suggested Solution
- Enable the RPM Fusion Free repository.
- Install VLC.
Apparently this can be done graphically. See the RPM Fusion site for the download link for your version of Fedora. If you prefer the command-line route...
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
This will figure out your version of Fedora for you and add the free repository to dnf.
I recommend VLC as a general-purpose media player, and installing VLC will also install all the codecs it needs to play as many types of files as possible.
If you use a graphical software installer tool like GNOME Software or dnfdragora, you can use that. If you prefer the command-line route...
sudo dnf install vlc
Anaconda Installer
Fedora uses an installer called Anaconda. Actually, Anaconda is nice. It's intuitive. The issue is that Anaconda is a graphical installer, and as far as I can tell, there's no easy way to install Fedora with only a terminal interface. This means that while Fedora can run well on old hardware (e.g., in TTY mode on a server), installing it is a bad time.
Freedom and Privacy
Fedora overall has a strong commitment to freedom. Fedora (almost) exclusively includes free software and fonts, and all non-code content must be "freely distributable without restrictions", with free-licensed content "strongly prefer[red]". However, there are a couple issues...
Firmware
Fedora makes an exception to its free software policy and includes nonfree firmware.
Actually, this policy is reasonable. While 100% free operating systems are the ideal, most computers can't run properly without some nonfree firmware loaded from the OS. Fedora doesn't indiscriminately allow all firmware; it has strict rules to ensure the firmware is legally redistributable and safe for the user.
The problem is in the implementation. The Fedora kernel package requires the nonfree linux-firmware package. linux-firmware can be subsequently uninstalled, but you can't install or update the kernel without also installing linux-firmware, and it seems to use the firmware to generate the initramfs, which means it may use nonfree firmware from linux-firmware even after you uninstall the linux-firmware package.
This means if you want to run Fedora without any nonfree software, it's not as easy as just telling it not to install the nonfree firmware; nonfree firmware is mandatory as long as you're using the default kernel.
The other implementation problem is that the linux-firmware package contains both free and nonfree firmware. Fedora should separate the firmware into two packages - one free and one nonfree - so you can still install just the free firmware if you want.
Suggested Solution
The easiest way to run Fedora without any nonfree firmware is to use the FSFLA's Linux-libre kernel and freed-ora-freedom package for Fedora. Back in April, I wrote a guide on how to do this.
There's not a linux-firmware-free or linux-libre-firmware package for Fedora that I'm aware of, but Jason Self has a collection of free firmware which can be downloaded (you'll need to install the lzip package) or compiled from source. (I've been working on trying to make an unofficial Fedora package of these, but I've been having some issues. I will update this post if I ever succeed.)
Recommendations (sort of)
Fedora usually does a good job of recommending users use free software. I don't want to suggest that anywhere Fedora actually says, "You should use [something nonfree] instead of [something free]." But not sufficiently discouraging some things or making them easy options can seem like an endorsement. There are a couple times it feels like Fedora "endorses" problematic software or services in this way.
(There are no "solutions" in this section because no action is needed; just don't use the nonfree or privacy-abusing things.)
Third-Party Sources
Since Fedora 28, GNOME Software (the graphical software store/package manager frontend) has a banner at the top that suggests to the user that they might want to enable third-party sources. This option installs the package fedora-workstation-repositories which exists primarily to help the user install nonfree software.
(Specifically, fedora-workstation-repositories adds 4 third-party sources to the package manager dnf. 3 of these 4 sources are for installing nonfree software: Google Chrome, the nonfree NVIDIA driver, and Steam.)
The user could add any or all of these sources on their own; the only purpose of this package is to make it easier to install this software. GNOME Software does carry a notice that third-party repositories may contain nonfree software, and the Fedora page about these third-party repos lists free alternatives where available, stating "users are encouraged to prefer these to their restricted counterparts." But this still feels to me like Fedora encouraging users to use nonfree software.
Because some of this suggested third-party software comes from RPM Fusion's nonfree repos, it's actually easier to install nonfree software from RPM Fusion than free software (which the user must find on their own). It's easier to install Steam (from RPM Fusion) and Google Chrome (from Google's repo) on Fedora than VLC (from RPM Fusion).
GNOME Online Accounts
This may be a GNOME issue, rather than Fedora, but since GNOME is the default desktop environment, it will affect all Fedora Workstation users.
There's a GNOME app called GNOME Online Accounts (GOA) for letting users sign into various accounts and integrate them into their desktop. When you run Fedora Workstation for the first time after installing it, the setup invites you to connect to online accounts, including various nonfree surveillance engines such as Facebook and Google.
I think this tool is fundamentally good. I imagine a lot of users want this sort of desktop integration, and it's helpful for users who are locked into nonfree services to at least have free tools to use them. (Though GOA seems to load the actual login pages of these services, so I'm guessing it's running nonfree code in the process.)
My issue with this is that like the third-party sources, it feels like GOA is recommending these nonfree services to users. It would be one thing if the application first recommended free, privacy-conscious services, then included a warning that using the services of surveillance companies like Facebook and Google is not recommended.
But instead, the list is:
- Nextcloud
- Microsoft
At least Nextcloud is second, but the program makes no effort to discourage nonfree, privacy-abusing services like Google (its first option) or encourage free services like Nextcloud as alternatives.
After the initial setup, you can go back in and see the full list of options:
- Nextcloud
- Microsoft
- Flickr
- Foursquare
- Microsoft Exchange
- Fedora
- IMAP and SMTP
- Enterprise Login (Kerberos)
(Facebook and Microsoft switched places for me between the initial setup and the actual settings.)
The last two options are hidden, and you have to press a button to see more...
Google, Facebook, and Microsoft are all among the top 4, but connecting to a generic email account didn't even make it above the "more options" cut? That feels to me by recommending those nonfree surveillance services.
Again, this is probably an issue with GNOME Online Accounts, rather than a Fedora-specific problem, but the result is still that Fedora seems to recommend these problematic services.
(On December 3rd, I tried out PureOS, which uses GNOME as well. On PureOS, Online Accounts only offers NextCloud and "IMAP and SMTP" as options. I list this for comparison.)
Privacy Defaults
When you launch Fedora Workstation (the GNOME version) for the first time after installing, the setup dialog includes privacy settings. There are only 2 settings, but they're both set to the less-private option by default.
This isn't a huge deal, honestly, and I'm glad the setup screen clearly and unambiguously shows them and explains what they are. But it would be nice if the default was the more private option, and you instead opted in to location services and automatic problem reporting.
There are also some services that by default start and connect to the internet when the user logs in, such as the graphical software install/store programs GNOME Software (used by GNOME and probably others) and dnfdragora (used by Xfce, Cinnamon, and probably others). I don't like that.
Conclusion
I like Fedora, but there are some things I dislike about it, and now you know what they are.