Skip to content

Instantly share code, notes, and snippets.

@hasmaneuroda
Forked from wqyeo/Mullvad-VPN-OpenSUSE.md
Created January 25, 2025 06:54
Show Gist options
  • Save hasmaneuroda/52cf62eb0eea552de1132adda497da4e to your computer and use it in GitHub Desktop.
Save hasmaneuroda/52cf62eb0eea552de1132adda497da4e to your computer and use it in GitHub Desktop.
Installation Guide for Mullvad VPN, OpenSUSE

How to rebuild Mullvad VPN for openSUSE Tumbleweed & Leap

Credits to a Reddit Thread.
This guide is 90% similar but with few more instructions to be beginner friendly...

Mullvad VPN comes with a Fedora RPM package. However, there might be dependencies issues when using it directly on OpenSUSE.
Hence, a good solution is to rebuild the RPM package for OpenSUSE.

1) Downloading the original RPM

  1. Open a Terminal/Console. (If you like a cleaner workspace, make a new directory, and cd into it)
  2. On the Mullvad VPN's website, find the current version of the linux package.
    It should be stated as something similar to "Latest version: 2024.2"
  3. Replacing {VERSION} with the actual version numbers found, do
    wget https://mullvad.net/media/app/MullvadVPN-{VERSION}_x86_64.rpm
  4. Done, check if your current directory has a new file called MullvadVPN-{VERSION}_x86_64.rpm.
    (Use ls in command line)

2) Testing if installation will fail and list all required/missing packages

This step is optional, but its good for future-proofing purposes, as one can use this step as a way to figure out missing/incompatible packages.

With a terminal in the same directory as the downloaded RPM from step 1, run:

sudo rpm -ivh --test MullvadVPN-{VERSION}_x86_64.rpm

The result will display a similar error message on Tumbleweed or Leap:

   error : Dependencies required:
           dbus-libs needed by mullvad-vpn-2024.2-1.x86_64

However, as original RPM is build only to be compatible with Fedora, dbus-libs package must be renamed libdbus-1-3 on Tumbleweed & Leap, otherwise it will cause the installation to fail. If you force installation by ignoring dependencies, Mullvad VPN will work but annoying dependencies errors will always be reported later. Is not the recommended method! Rebuild the RPM for Tumbleweed or Leap with RPMRebuild utility is a much better solution.

For this guide, it will only assume dbus-libs is failing, and is replacable with libdbus-1-3.
But as more dependecies fail in future versions, you will have to either install them manually, or find alternative dependencies for those...

3) Installation of RPMRebuild package

sudo zypper install rpmrebuild

4) Edit the the RPM Package

sudo rpmrebuild -enp MullvadVPN-{VERSION}_x86_64.rpm

This will initiate an editing the RPM package in VIM.

All packages name will be listed in alphabetic order.
With RPMRebuild you'll have just to rename dbus-libs package (Fedora/CentOS) to libdbus-1-3 (Tumbleweed/Leap equivalence).

  1. Use arrow keys to go to line #56, search for a line that says Requires: dbus-libs
  2. Replace dbus-libs in the line, with libdbus-1-3
  3. Optionally, you can find a Requires: libnotify, and replace it with Requires: libnotify4.
  4. After modifications are done. Press ESC, then :, w, q. Then press Enter
  5. You will be back at the RPM package editor, accept the prompt (y).

It should display that it has created the package in /usr/src/packages/RPMS/x86_64/ folder.<br>The new RPM filename will be mullvad-vpn-{VERSION}-1.x86_64.rpm` as well.

5) Test for required depedencies.

  1. cd /usr/src/packages/RPMS/x86_64/`
    (Or whatever other folder the package was created into)
  2. sudo rpm -ivh --test mullvad-vpn-2024.{VERSION}.x86_64.rpm

Ideally, it should display:

Verifying...                         ################################# [100%]
Preparation...                       ################################# [100%]

However, if there are any uninstalled required dependencies, you can install them with:

sudo zypper install {MISSING_DEPENDENCY_NAME}

Or you can ask your local AI Chatbot on how to install the state dependency for OpenSUSE.

6) Install MullvadVPN

sudo zypper install -f --allow-unsigned-rpm mullvad-vpn-{VERSION}-1.x86_64.rpm

And enjoy!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment