Tidbits from my predicaments with Fedora 34 XFCE. Apparently, Fedora 34 is not a bad crop, but Linux being Linux, nothing is erm… perfect. Not always. Never, actually.

Episode 1: RPM Fusion

I’m normally using ftp-stud.hs-esslingen.de, but this is not related to any specific mirror. When released, FC34 had vlc-3.0.12.1 in RPM Fusion, but yesterday vlc-3.0.15 showed up for an update as the most recent VLC. Nobody seems to have tested anything, as it’s not installable because of unmet dependencies!

[ludditus@fedora ~]$ sudo dnf install vlc vlc-core vlc-extras
...
Skipping packages with broken dependencies:
vlc         x86_64  1:3.0.15-2.fc34  rpmfusion-free-updates  1.5 M
vlc-core    x86_64  1:3.0.15-2.fc34  rpmfusion-free-updates  9.6 M
vlc-extras  x86_64  1:3.0.15-2.fc34  rpmfusion-free-updates  64 k
[ludditus@fedora ~]$ sudo dnf info vlc
Last metadata expiration check: 0:22:40 ago on Tue 15 Jun 2021 06:36:41 PM CEST.
Installed Packages
Name : vlc
Epoch : 1
Version : 3.0.12.1
Release : 9.fc34
Architecture : x86_64
Size : 4.4 M
Source : vlc-3.0.12.1-9.fc34.src.rpm
Repository : @System
From repo : rpmfusion-free
Summary : The cross-platform open-source multimedia framework, player and server
URL : https://www.videolan.org
License : GPLv2+
Description : VLC media player is a highly portable multimedia player and multimedia framework
: capable of reading most audio and video formats as well as DVDs, Audio CDs VCDs,
: and various streaming protocols.
: It can also be used as a media converter or a server to stream in uni-cast or
: multi-cast in IPv4 or IPv6 on networks.
Available Packages
Name : vlc
Epoch : 1
Version : 3.0.15
Release : 2.fc34
Architecture : x86_64
Size : 1.5 M
Source : vlc-3.0.15-2.fc34.src.rpm
Repository : rpmfusion-free-updates
Summary : The cross-platform open-source multimedia framework, player and server
URL : https://www.videolan.org
License : GPLv2+
Description : VLC media player is a highly portable multimedia player and multimedia framework
: capable of reading most audio and video formats as well as DVDs, Audio CDs VCDs,
: and various streaming protocols.
: It can also be used as a media converter or a server to stream in uni-cast or
: multi-cast in IPv4 or IPv6 on networks.

Fucking stupidity. If RPM Fusion cannot be trusted, why not using a random distro instead of Fedora? RPM Fusion is crucial to Fedora on the desktop (non-free, legally or patent encumbered packages, etc.). I know I have chosen Fedora because most distros couldn’t be bothered to update Thunar to fix a CVE vulnerability, but this has become a Catch-22 situation.

UPDATE: One more day, and the dependencies got fixed, so VLC could be upgraded to 3.0.15. Still, RPM Fusion being a small repository (only counting the packages for FC34), it’s not really acceptable.

Episode 2: ulimits & stuff

Some idiot somewhere (I can’t remember the details) mentioned NetSurf version 3.10 as an extremely lightweight cross-platform Internet browser. By default, NetSurf starts with JS disabled, but it generally manages to display most web pages quite OK (much better than lynx, anyway).

But then I noticed that Fedora only has NetSurf 3.9, not the latest 3.10. Pkgs.org however revealed that 3.10 was available in a third-party repo called Cheese, and it took me some time to identify it. With no info as to how to use it (is it a normal repo, or a COPR?), I decided to simply grab the RPM and install it.

I didn’t start it right away (I already knew how 3.9 worked), but some time later, when in the About box of a utility (again, I don’t remember which one), I clicked on a link, and then…

…not one instance of NetSurf 3.10 was started. An infinite loop of NetSurf instances was fired up, and soon enough, hundreds of NetSurf windows were cluttering my desktop, eating my CPU and RAM, and making my system unresponsive!

I thought Linux, or rather GNU/Linux (to mean “Linux as a distro”), would have evolved since I first met it 26 years ago. I’d have expected it to have set some limits by default, so that such a thing be impossible.

Well, no.

Fedora Magazine recently suggested people use the antiquated cpulimit “to free up your CPU”; as if only the CPU were the resource to be protected.

Back when I was more into Linux, limits.conf(5) was used to put some relevant limits to a user session, including e.g. the maximum number of processes (read also in Arch’s wiki). This worked, if my memory serves me well, even before pam_limits(8) was invented. Enforcing limits through PAM was quite a thing, I seem to recall.

Traditionally, ulimit was used per shell to establish such limits, and bash(1) can use it (read also in Debian’s wiki).

In the times of Slackware’s heydays, people would have read a nice article on User Resource Limits, then they’d have manually set some ulimit values in initscript(5), and they were good to go.

Un ange passe…

Meanwhile, cgroups were invented, and even several OOM killers. Officially,

No such shit worked in my case in Fedora 34. What’s the purpose of such complex mechanisms if they don’t fucking work, or if they use defaults that make them useless?

In my case, I switched to a virtual console using CTRL+ALT+F1, and I killed the X server. But then, restarting the XFCE session made it try to restore the previous session, which started again the infinite loop of NetSurf 3.10 browsers!

Not wanting to investigate about where does XFCE store its session these days, I went back to a virtual console and uninstalled netsurf, which fixed the issue.

The only reason for using a Linux distro in 2021 is that everything else is worse. But in 1996 I was happily using Linux with 4 MB of RAM (megabytes!), whereas in 2021 using Linux with 8 GB of RAM and a SSD doesn’t make it feel much better, and beyond the clutter I can see no substantial improvement. Sure thing, it’s much better than Windows 10 or 11, but if it were after me, I’d still be using Win98SE. I was quite happy with it, the UI and ergonomics were almost perfect, and it could still run the fabulous DOS games of the 1990s. All in 4 MB of RAM.

To be continued…