I figured out a workaround for the time being.
On Fedora, there’s a command called toolbox
, provided by the toolbox package. It’s a wrapper around podman
, which is a drop-in replacement for docker, but doesn’t require a system process always running all the time (a “daemon” process). It also lets you run containers as a user, instead of making root mandatory. It has a bunch of other nice and wonderful features too. But anyway…
First, ensure you have toolbox with a dnf install -y toolbox
Then, you can create a toolbox for Fedora 31, which lets you run Fedora 31 inside of Fedora 32. Toolbox + Podman is basically almost magic. And from the Fedora 31 container, you can run DisplayCal.
Here’s how to do it (run the following commands in a terminal, as a user):
toolbox create -c displaycal -r 31
toolbox run -c displaycal sudo dnf install -y libXScrnSaver https://displaycal.net/download/Fedora_31/x86_64/DisplayCAL.rpm
toolbox run -c displaycal displaycal
- When DisplayCal starts, it should show a popup telling you that updates are available. Click “Cancel”, as updating won’t work with this method. (There’s probably no harm in choosing “Update” anyway.)
- Select the File menu, choose “Locate ArgyllCMS executables…”
- A different update dialog will appear. Click “OK”.
This creates the Fedora 31 container, downloads and installs DisplayCal and its dependencies, and runs displaycal, all from the container. DisplayCal will download precompiled executables and run them from your normal filesystem in the container to provide additional support. (At no point do you need to become root or use sudo. Except in the container, but that’s running as your user, so it’s not really doing that. It’s container magic.)
To run DisplayCal again, enter this at the command line:
toolbox run -c displaycal displaycal
You can run any of the other displaycal commands this way. For example:
toolbox run -c displaycal displaycal-apply-profiles --help
(The first displaycal
, directly after -c is your toolbox container’s name.)
You can also enter the container and it’s just like the command line on your own machine, but in the Fedora 31 container installation:
toolbox enter -c displaycal
It detects my monitor (although I had to manually select it from the dropdown) and my calibration device. As I write this I’m using the Fedora 31 DisplayCal in the Fedora 31 toolbox container on my Fedora 32 laptop to profile my display.
Let’s see how well this works when it’s finished… I hope you all have success!
Meanwhile: I wish the developer would just port to Python 3.
Rant: Python 3 has been out since 2008. Python 2 has been deprecated since 2014 and it was put out of commission last year. There’s been over a decade to port software over and six years of a “last minute” chance to port stuff. Distributions have (rightfully) been removing Python 2 since the beginning of this year. (As Python 2 is unsupported as of 2020.)