mullvadvpn-app icon indicating copy to clipboard operation
mullvadvpn-app copied to clipboard

Add OpenSUSE package

Open sith-on-mars opened this issue 3 years ago • 29 comments

It would be nice that if there is a official OpenSUSE version. OpenSUSE is a a well-known, very established Linux distro and has been around since 2005. Its Enterprise edition, SUSE, existed since 2000. OpenSUSE uses RPM package so it's pretty similar to Fedora. However, during the installation on my OpenSUSE Tumbleweed using the Fedora package, I encountered two issues:

  1. The installer says dependency dbus-libs cannot be found. This warning can be ignored since OpenSUSE already installs this dependency actually by default, but just with a different naming convention.
  2. Startup on boot doesn't work and requires manual fixing. One needs to edit mullvad-daemon.service with this command input: sudo nano /opt/Mullvad\ VPN/resources/mullvad-daemon.service, then change Wants=network.target to Wants=network-online.target. You can see the detailed discussion here.

Having an officially supported OpenSUSE package should be a quick job, since the OpenSUSE package is pretty similar to Fedora package with a few changes.

sith-on-mars avatar Nov 05 '20 06:11 sith-on-mars

Creating a single OpenSUSE compatible RPM is probably a quick job. But it's also going to be outdated quickly. What's harder is to automate the creation of this for every build. The extra build time needed. More artifacts to keep track of and distribute. More complex website download page etc.

Yes, we want to reach out via more distribution channels and in more formats. But each way is a commitment that will cost time and resources forever, not a one time investment.

Thanks for the feedback and the detailed steps needed to produce an OpenSUSE compatible installer! Hopefully we'll get there eventually.

faern avatar Nov 05 '20 11:11 faern

~~I managed to get it working with relative ease by symlinking from /opt/Mullvad VPN to /opt/mullvadVPN, since systemd was complaining about not finding the file. Bellow is how my file ended up:~~

# Systemd service unit file for the Mullvad VPN daemon

[Unit]
Description=Mullvad VPN daemon
Wants=network-online.target
After=network-online.target
After=NetworkManager.service
After=systemd-resolved.service
StartLimitBurst=5
StartLimitIntervalSec=20

[Service]
Restart=always
RestartSec=1
ExecStart=/opt/MullvadVPN/resources/mullvad-daemon -v --disable-stdout-timestamps

[Install]
WantedBy=multi-user.target

~~edit: clarify why the symlink.~~

UPDATE:

The issue was something else I found out later but forgotten to update here. Read my latest comment for context.

xadaemon avatar Nov 20 '20 18:11 xadaemon

I would also strongly support this, I am paying for this service and want to use wireguard. In order to use this properly on Opensuse a proper package would be necessary.

dinotheextinct avatar Dec 15 '20 10:12 dinotheextinct

Just jumping in here to suggest a couple of things which may be of help.

The first is the possibility of an AppImage, which is already an open issue (https://github.com/mullvad/mullvadvpn-app/issues/1123), but it's a bit old and I don't know if it was ever considered.

It might be incredibly useful as it'll work across every distribution and you wouldn't actually need to build separate packages for each release. The downside is file size, since depencies, runtimes, etc. are part of the AppImage itself. The benefit, though, would be one identical file for every Linux user to download, regardless of distro.

I'm unaware of how it works with network interfaces, though, so it might not be option.

The second option is OpenSuse's OBS. It'll also help with automating and maintaining .deb and .rpm files since it's not actually limited to OpenSuse itself and works with packages used on various distributions.

See the developer section on the main site here: https://openbuildservice.org/

Admittedly, I'm not a developer, but I've occasionally found other projects on GitHub which use it for automating packages and updates.

Additionally, because it's technically a repository, I believe you could also allow people to add it as a third party repo which would allow them to update the app using their system's package manager without having to go to the website or the releases page here to download a new updated binary, though that's of course another matter altogether.

Just a couple of small suggestions and I admit I'm unaware of the inner workings of the systems I brought up, but maybe it could be of help.

ghost avatar Feb 22 '21 17:02 ghost

+1 On having an openSUSE OBS Mullvad repo, something like "home:mullvad:mullvadvpn-app", even better if cross-distro;

Or what about simply removing "dbus-libs" from the rpm package installation requisites?

TruckerZer0 avatar Feb 23 '21 19:02 TruckerZer0

Creating a single OpenSUSE compatible RPM is probably a quick job. But it's also going to be outdated quickly. What's harder is to automate the creation of this for every build. The extra build time needed. More artifacts to keep track of and distribute. More complex website download page etc.

Yes, we want to reach out via more distribution channels and in more formats. But each way is a commitment that will cost time and resources forever, not a one time investment.

Thanks for the feedback and the detailed steps needed to produce an OpenSUSE compatible installer! Hopefully we'll get there eventually.

Use OBS to automate the build and provide packages from the same source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions! https://build.opensuse.org/

myrust avatar Mar 11 '21 07:03 myrust

The problem with the package is a naming issue.

Here is what zypper is saying:

sudo zypper --no-gpg-checks in MullvadVPN-2021.4_x86_64.rpm 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides 'dbus-libs' needed by the to be installed mullvad-vpn-2021.4.0-1.x86_64
 Solution 1: do not install mullvad-vpn-2021.4.0-1.x86_64
 Solution 2: break mullvad-vpn-2021.4.0-1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c/d/?] (c): c

lib-dbus is installed_

LANG=C zypper se -si libdbus
Loading repository data...
Reading installed packages...

S  | Name               | Type    | Version                  | Arch   | Repository
---+--------------------+---------+--------------------------+--------+----------------------
i+ | libdbus-1-3        | package | 1.12.20-5.4              | x86_64 | Main Repository (OSS)
i+ | libdbus-1-3-32bit  | package | 1.12.20-5.4              | x86_64 | Main Repository (OSS)
i  | libdbusmenu-glib4  | package | 16.04.0-7.10             | x86_64 | Main Repository (OSS)
i  | libdbusmenu-gtk3-4 | package | 16.04.0-7.9              | x86_64 | Main Repository (OSS)
i+ | libdbusmenu-qt5-2  | package | 0.9.3+16.04.20160218-1.5 | x86_64 | Main Repository (OSS)

checking the rpm is showing is a naming scheme error.

rpm -q --requires mullvad-vpn 
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
dbus-libs
libXScrnSaver
libnotify
libnsl
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

So maybe the devs can fix this issue easier, maybe create a new RPM for openSuse?

groenator avatar Aug 07 '21 11:08 groenator

We are not going to have separate artifacts for OpenSUSE for now. There are more issues than this on OpenSUSE with our app already. Making the installer work better will just encourage more people to try to use it and they will hit the other issues. We don't support Suse and currently don't have the bandwidth to do so sadly. But this issue remains open for some future date when we might have the bandwidth to support this distro.

faern avatar Aug 09 '21 11:08 faern

Thank you for your response.

Since is Linux there are other ways how to use mullvad. That's what is so good about Linux :).

It's good that in future are options to review this PR.

Regards,

On Mon, 9 Aug 2021, 12:25 Linus Färnstrand, @.***> wrote:

We are not going to have separate artifacts for OpenSUSE for now. There are more issues than this on OpenSUSE with our app already. Making the installer work better will just encourage more people to try to use it and they will hit the other issues. We don't support Suse and currently don't have the bandwidth to do so sadly. But this issue remains open for some future date when we might have the bandwidth to support this distro.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mullvad/mullvadvpn-app/issues/2242#issuecomment-895146283, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJRLJVJHODVJEEZ3ATVKETT363LVANCNFSM4TK66J3Q .

groenator avatar Aug 09 '21 12:08 groenator

Late on this I know, but why is there a space in the folder name for Mullvad in /opt/'Mullvad VPN'? Why not just MullvadVPN, Mullvad_VPN, or Mullvad-VPN?

Historically have had issues on various OS's when spaces are introduced in paths.

Just to be clear, I am not requesting you to support OpenSUSE or SUSE. I know manpower is limited and you do what you can.

HankTheCreep avatar Feb 15 '22 02:02 HankTheCreep

Systems that can't handle spaces have bugs in them. Yes, the pragmatic approach is to avoid spaces to avoid the issues. The correct solution is for those systems to fix their bugs. We started having a space in the name because electron-builder that we use to package our app uses the app name as the directory name by default and it was not configurable. So we just went with it. And to change it now would be a bit complicated and not really worth it given that it works fine on the vast majority of all systems/distros.

faern avatar Feb 15 '22 10:02 faern

We are not going to have separate artifacts for OpenSUSE for now. There are more issues than this on OpenSUSE with our app already. Making the installer work better will just encourage more people to try to use it and they will hit the other issues. We don't support Suse and currently don't have the bandwidth to do so sadly. But this issue remains open for some future date when we might have the bandwidth to support this distro.

What kind of issues? Is it something we as users could approach Suse about?

EwolBash avatar Aug 13 '22 14:08 EwolBash

For anyone in need of an AppImage compiling source, I have made one available here: https://github.com/who-biz/mullvadvpn-app-appimage

Please see README for additional info.

who-biz avatar Sep 08 '22 17:09 who-biz

I recently did a fresh install of openSUSE Tumbleweed and got very surprised that the gui app just worked without me doing anything so maybe this problem is fixed. :partying_face: Previously I started the daemon manually but those days are hopefully over :slightly_smiling_face:

ewal avatar Nov 08 '22 12:11 ewal

@faern can you point me to the spec file that currently builds the fedora rpm?

cornfeedhobo avatar May 04 '23 01:05 cornfeedhobo

@cornfeedhobo To build the rpm we use Electron builder, which generates the spec file from the information specified here: https://github.com/mullvad/mullvadvpn-app/blob/main/gui/tasks/distribution.js.

raksooo avatar May 04 '23 06:05 raksooo

@raksooo Here is my triage:

I think the simplest solution is to copy the pattern of the deb config to not include any dependency definitions.

  • As reported by others, the app currently works out of the box for most suse users, but they are going to bump into issues with package names not matching those of Fedora.

  • I believe the documentation on how to build is sufficient for any distros that want to take up building a native package through their build systems and ensure dependencies align.

  • Similarly, any user that's stubborn enough to go searching for your RPM is probably going to be able to navigate installing any missing dependencies. The only cases I anticipate will be related to the system tray icon support. The other dependencies are widely required and will likely already be installed.

  • Long term, for the purposes of offloading the maintenance overhead of building these packages and giving your company greater exposure, thought should be given to writing instructions for offline compilation for distros that may want to include this as a package in a "main" repo. Most build environments (e.g. open build service) are not allowed to access remote resources during compilation.

If you agree with my assessment, making a PR is trivial.

cornfeedhobo avatar May 10 '23 01:05 cornfeedhobo

@raksooo PR submitted. Please review.

cornfeedhobo avatar May 26 '23 13:05 cornfeedhobo

I could use some other voices on my pr. I firmly believe it's being gated arbitrarily. I've dealt with this in the past with some fedora zealots. Not really sure where we can go, because this is a hard blocker unless they decide to use a different build tool chain.

cornfeedhobo avatar Jun 18 '23 00:06 cornfeedhobo

Creating a single OpenSUSE compatible RPM is probably a quick job. But it's also going to be outdated quickly. What's harder is to automate the creation of this for every build. The extra build time needed. More artifacts to keep track of and distribute. More complex website download page etc.

Yes, we want to reach out via more distribution channels and in more formats. But each way is a commitment that will cost time and resources forever, not a one time investment.

Thanks for the feedback and the detailed steps needed to produce an OpenSUSE compatible installer! Hopefully we'll get there eventually.

so... Flatpak?

firefoxlover avatar Oct 07 '23 02:10 firefoxlover

I could use some other voices on my pr. I firmly believe it's being gated arbitrarily. I've dealt with this in the past with some fedora zealots. Not really sure where we can go, because this is a hard blocker unless they decide to use a different build tool chain.

you did some more changes and didn't answer why they are there. This alone blocks merging.

firefoxlover avatar Oct 07 '23 02:10 firefoxlover

Any news on this?

dinotheextinct avatar Jan 07 '24 10:01 dinotheextinct

I would appreciate an official package but as a workaround I was able to get the app working on OpenSUSE Tumbleweed by following these instructions from reddit:

TL;DR:

  1. Download the RPM for Fedora
  2. sudo zypper install rpmrebuild
  3. Modify the RPM with sudo rpmrebuild -enp MullvadVPN-2023.6_x86_64.rpm (opens $EDITOR)
  4. Change
    • "Requires: dbus-libs" to "Requires: libdbus-1-3"
    • "Requires: libnotify" to "Requires: libnotify4"
  5. The modified rpm is saved to /usr/src/packages/RPMS/x86_64/. Install it using sudo zypper install /usr/src/packages/RPMS/x86_64/mullvad-vpn-2023.6-1.x86_64.rpm (you will get a warning about unsigned package but it can be ignored)

Andriamanitra avatar Jan 07 '24 20:01 Andriamanitra

@firefoxlover I have limited time and I ran out of interest to fight for something that feels painfully obvious. You are welcome to pick up where I left off :)

cornfeedhobo avatar Jan 08 '24 13:01 cornfeedhobo

@Andriamanitra your technique worked. I had previously downloaded a very old version (from OpenSUSE repo). Following your techniques, I modified the RPM file and then tried to open it, however the installer had an error. But using sudo zypper install mullvad-vpn-2024.1~beta2-1.x86_64.rpm succeeded an updated the app, albeit with the unsigned warning.

@Mullvad this would take 2 seconds for you to modify.

I-I-IT avatar Feb 27 '24 11:02 I-I-IT

This is how I solved it in openSuSE 15.5: Download .deb package (not rpm) sudo zypper install dpkg sudo dpkg -i MullvadVPN-2024.1_amd64.deb

Just a comment: Given that Ubuntu/Debian artifacts are the same as openSuSE's, both distros use the systemd and networkManager - I am not sure what to think about the extra effort in creating openSuSE specific rpm.

tomas-kuchta avatar Mar 25 '24 08:03 tomas-kuchta

crazy that this works, but this will likely not work on the immutable variants. Creating an opensuse rpm should be a very small change

firefoxlover avatar Mar 25 '24 15:03 firefoxlover

@Andriamanitra I hadn't thought of modifying the Mullvad VPN specfile to rename the libnotify package name to libnotify4 because it worked without doing that. But now, I think I'll do it for my next rebuilds.

Few community packages for Mullvad VPN are available in openSUSE repositories: https://software.opensuse.org/package/mullvadvpn

If after a Tumbleweed/Leap system update, Mullvad VPN display a scrambled window or none worldmap, try to:

  • Clear GPU cache with: rm -r ~/.config/Mullvad\ VPN/GPUCache/
  • Add option "--disable-gpu" in launcher command (example: /opt/Mullvad\ VPN/mullvad-vpn --disable-gpu)
  • Re-install same RPM package or use a new version.

bernado82 avatar Mar 31 '24 22:03 bernado82

When I downloaded the mentionned package a few weeks ago, it was severely outdated, so much that there was a warning in the app.

I-I-IT avatar Apr 03 '24 00:04 I-I-IT