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

Publish on Flathub

Open brodock opened this issue 3 years ago • 21 comments

I currently use ElementaryOS which is based on Ubuntu 18.04. It seems you are only support Ubuntu 20.04 for the debian packages. It would be nice if you could release the linux app as a Flatpak in Flathub (which allows me to use it in Elementary): https://github.com/flathub/flathub/wiki/App-Submission

Adding to Flathub requires you to create a manifest file similar to a CI build script: https://docs.flatpak.org/en/latest/

https://docs.flatpak.org/en/latest/

brodock avatar Jun 12 '21 00:06 brodock

Hey @brodock

The linux app won't work on Ubuntu 18.04 bases but the CLI will.

Also atm there are no current plans to share it via flathub.

calexandru2018 avatar Jun 12 '21 11:06 calexandru2018

@calexandru2018 would you mind sharing what dependency doesn't work in Ubuntu 18.04? It seems the project is mostly python with https://github.com/ProtonVPN/protonvpn-nm-lib as dependency which is also python

brodock avatar Jun 14 '21 11:06 brodock

@brodock when I mean the app I mainly mean the GUI. The library has no issues with Ubuntu 18.04. It's mostly the GUI that requires GTK 3.24, while Ubuntu 18.04 supports only up to GTK 3.22.

calexandru2018 avatar Jun 14 '21 12:06 calexandru2018

Yeah that was my thinking. So this is exactly where flatpak comes along. So you can bundle all dependencies in a single package. Think of it as a "portable" / containerized version.

brodock avatar Jun 14 '21 12:06 brodock

If it's possible to package the ProtonVPN App/GUI into a Flatpak package, I think that would be great

artemisresende avatar Jun 24 '21 15:06 artemisresende

+1 in the idea.

daniarla avatar Jun 29 '21 09:06 daniarla

I will try to have an unofficial Flatpak submited to Flathub next week. Then all thats left is ProtonMail's blessing to publish it.

A6GibKm avatar Jul 17 '21 08:07 A6GibKm

@A6GibKm the community can definitely help and we appreciate it, really! But given that we don't officially support flatpack installations, we won't be able to provide support to our users, so it's worth to have that in consideration.

calexandru2018 avatar Jul 17 '21 11:07 calexandru2018

Yes, thats something that always has to be put into consideration. Right now I am not even sure if it is possible to run this sandboxed without upstream involvement, probably it is not (even with upstream involvement).

If anyone is interested in picking this up, here is a flatpak manifest that compiles, but won't run due to a library requiring hardcoded paths.

With the export app and the bridge this is not an issue, as the only noticeable differences would be the paths were data is located.

A6GibKm avatar Aug 23 '21 11:08 A6GibKm

Yes, thats something that always has to be put into consideration. Right now I am not even sure if it is possible to run this sandboxed without upstream involvement, probably it is not (even with upstream involvement).

If anyone is interested in picking this up, here is a flatpak manifest that compiles, but won't run due to a library requiring hardcoded paths.

With the export app and the bridge this is not an issue, as the only noticeable differences would be the paths were data is located.

Data location should not be a problem as it's intended. I've built it and when it runs the error is about missing nmcli or other binaries. Do you find that an issue?

proletarius101 avatar Aug 23 '21 11:08 proletarius101

Yes, thats something that always has to be put into consideration. Right now I am not even sure if it is possible to run this sandboxed without upstream involvement, probably it is not (even with upstream involvement). If anyone is interested in picking this up, here is a flatpak manifest that compiles, but won't run due to a library requiring hardcoded paths. With the export app and the bridge this is not an issue, as the only noticeable differences would be the paths were data is located.

Data location should not be a problem as it's intended. I've built it and when it runs the error is about missing nmcli or other binaries. Do you find that an issue?

Well half of those binaries are indeed part of the runtime, so it is a problem that they are not found.

A6GibKm avatar Aug 23 '21 12:08 A6GibKm

@A6GibKm I might be able to do the rest of the work. However, can you disclose how you generate the dependencies json? Seems not as simple as one line of https://github.com/flatpak/flatpak-builder-tools/tree/master/pip

proletarius101 avatar Aug 31 '21 14:08 proletarius101

@A6GibKm I might be able to do the rest of the work. However, can you disclose how you generate the dependencies json? Seems not as simple as one line of https://github.com/flatpak/flatpak-builder-tools/tree/master/pip

Using flatpak-pip-generator based on the different requirements.txt files (module by module) and manually filling the blank spots and removing duplicates. There is also a python module that depends on rust and that had to be made manually (copied from another manifest).

A6GibKm avatar Aug 31 '21 15:08 A6GibKm

Just checking in for an update. The process of packaging the GUI is a mess and it'd be nice to have it containerized and isolated in a flatpak.

I mean no insults but there's no way to make the package meet the packaging quality requirements for several distributions, and it would be absurd to expect those distributions to change their quality requirements. This locks many users out of the ad blocking features of the service they pay for.

HadetTheUndying avatar Mar 23 '22 04:03 HadetTheUndying

I've looked into packaging ProtonVPN Linux app in Flatpak. It mostly works, thanks to relying on NetworkManager, which is largely usable from within Flatpak sandbox.

However, there are some obstacles. Most notably it's relying on systemd for the "reconnector" service and using systemctl program to control it. There are two problems with it:

  • Creating a systemd unit file at run time is possible, but whether the app is running in flatpak should be taken into account: the Exec line would be different for flatpak and non-flatpak builds
  • Controlling the service with systemctl is also possible, but this means bundling the whole Systemd inside the flatpak app bundle; also I'm not sure if it's ok to use one systemctl version to control another systemd version on the host (probably not)

An alternative and sandbox-friendly approach would be using a dbus-activatable service for the reconnector, instead of a systemd service.

Also, ideally, the usage of nmcli utility should be replaced with pure NetworkManager DBus API, for the same reason as with systemctl: compatibility between different versions of nmcli and the NM daemon is unknown.

gasinvein avatar Apr 18 '22 11:04 gasinvein

Not only would that be more

An alternative and sandbox-friendly approach would be using a dbus-activatable service for the reconnector, instead of a systemd service.

Not only would this be more sandbox friendly it would make packaging for non-systemd distributions much easier.

HadetTheUndying avatar Apr 18 '22 20:04 HadetTheUndying

So, today's blog post last section ("What’s next for Proton VPN") made me bring this topic up again. I didn't knew about this GitHub repository, so I wrote to your support team first. So I guess I'll just repeat my today's request to support below:

Please create Flatpak version of the app and add it on Flathub. Right now I am unable to use ProtonVPN on my Fedora Silverblue machine because immutable Linux distribution like Fedora Silverblue, Fedora Kinoite, EndlessOS, carbonOS, openSUSE MicroOS, NixOS, etc. does not run anything but Flatpak and/or AppImage. Flatpak is also distribution independent so you won't have to maintain different Linux versions. I hope that you will consider adding this to your new platforms roadmap mentioned in today's blog post.

Danik1601 avatar May 26 '22 20:05 Danik1601

@Danik1601 Don't forget the Steam Deck! I know @calexandru2018 said there were no plans to publish on Flathub before but I also hope that sentiment has changed given the current state of things. If not, it would be great to at least know the reason.

ProfessorCode212 avatar May 27 '22 18:05 ProfessorCode212

I would like to be able to use ProtonVPN on the steam deck, so please consider supporting it.

brodock avatar May 30 '22 13:05 brodock

we want flathub!

FillingTheVoidOnYT avatar Aug 05 '22 06:08 FillingTheVoidOnYT