MullvadVPN is a VPN service that advertizes with good privacy. They accept crypto or cash payments and have opensource and audited VPN clients, also for Fedora.
They maintain a Fedora Repository but of course have no instructions on how to install it on Fedora Atomic Desktops.
Hello. Thank you for this guide. I’m having a small issue. I’m on Fedora 40 Kinoite. When I run the command curl -SsL https://repository.mullvad.net/rpm/stable/mullvad.repo | pkexec tee > /etc/yum.repos.d/mullvad.repo I get the output bash: /etc/yum.repos.d/mullvad.repo: Permission denied
I got it working by running the first command in a root terminal (sudo didn’t do the trick). Please note that I’m very new to atomic desktops and not very experienced with Linux in general.
Like in the other thread, pkexec tee > /etc/yum.repos.d/mullvad.repo, the pkexec command is applied to tee but not to the redirection. So the correct command is simply
curl -SsL https://repository.mullvad.net/rpm/stable/mullvad.repo | pkexec tee /etc/yum.repos.d/mullvad.repo
It is a bit complicated for me to explain why you get Permission denied. In short, it is because the redirection (>, >>, etc.) is not executed with elevated permissions (sudo or pkexec), but the redirection is actually executed by the current user’s shell. Or in other words, e.g in sudo baz > /foo/bar, the redirection part ( > /foo/bar) is not part of the sudo baz command.
Thanks for showing how we can add a repo in Atomic desktops. It really helps extend the utility of them. May I please ask, would any repos that were added like this require extra steps between major releases like RPM Fusion does?
In their case, the repos have to be removed and re-installed all over again. Here, the app developer seems to have added the repo without a specific version of Fedora in mind. Does that mean apps with similar repos also don’t require RPM Fusion type extra steps?
The rpmfusion problem is the same as on traditional Fedora, that an external repo needs to follow the versions dynamically, or if the version is fixed, the repo needs to be changed before the update can be done.
On traditional systems this is extremely messy, as you change the system to the new one, while using the old one. So you change the repo, and download the new package, while using the old package, and swap them on the same system. It is a mess, and I personally got stuck in weird “states in between” quite a lot.
Rpmfusion bypasses that issue by using packages you install, rather than repo files you add manually. These packages will auto-update on upgrades afaik. See their official docs.
MullvadVPN may just use a dynamic RPM version with $(rpm -E %fedora)
I see. Then, I imagine the situation to be similar with the Tailscale example from the official documentation.
Side note, I actually used your instructions to install Mullvad Browser instead. I noticed that Mullvad instructions for both the VPN and browser added the same repo in their instructions, so once I added the repo, all I needed was to run:
rpm-ostree install mullvad-browser
I thought you could mention that functionality in your post, in case someone misses it down here.
I attempted to use SB earlier this year, but couldn’t get Mullvad VPN working. Can’t live without that, so went back to Fedora workstation.
Now that I discovered this thread I’ve given it another go. Mullvad installed no prob!
@boredsquirrel I noticed the commands here and on your github page are different. I don’t understand the difference, so I used the command from your github. Worked first time, thank you!
Once Mullvad was installed, I used its app interface to set my preferences.
Many thanks for taking the time to post your work!!!