ProtonVPN / proton-vpn-gtk-app

Official ProtonVPN Linux app
https://protonvpn.com/download-linux
GNU General Public License v3.0
238 stars 31 forks source link

Proton-vpn for Debian #69

Open Nilsonfsilva opened 1 month ago

Nilsonfsilva commented 1 month ago

Hello !

I'm a Debian packager. I recently decided to bring proton-vpn to our distro.

And as all Debian packages migrate to Ubuntu, soon proton-vpn will also migrate to this distro.

As Debian's policy is to add a package only when its dependencies are already in our repositories, you would need to do this with all your dependencies. And I'm already working on it.

So far we have three: python-proton-cor python-proton-vpn-logger and python-proton-vpn-killswitch. And I'm already working on the others.

However, I noticed that python-proton-vpn-killswitch was recently removed from the proton-vpn namespace.

My question is: was this module incorporated into another proton-vpn module or did it change its name?

I am waiting! Nilson F. Silva

@lfasnacht @calexandru2018 @ @jllaneras @luke-titley-proton @acasajus @XavierProton

calexandru2018 commented 1 month ago

Hey @Nilsonfsilva, first and foremost we really appreciate you taking your time in doing so, as by having the app in the official stores it helps in circumventing issues that people might encounter in countries that employ censorship!

Regarding your question, yes we've moved python-proton-vpn-killswitch into python-proton-vpn-api-core. We're doing a cleanup of packages so it's easier to maintain and deploy. There are still some packages that will get merged, and should be released quite soon, so this is mostly an FYI:

All of these have already been merged internally, and we'll be releasing the changes in a week or two.

For the last 2-4 months we've been busy to downsize the amount of packages, and we've managed to go from 10-11 to 6-7 packages, partially because (what we hope) it would make it easier for anyone who would to contribute, and also allowing us to improve the release process.

Nilsonfsilva commented 1 month ago

Hi @calexandru2018 I feel very happy to contribute to this project.

I use proton-vpv on my Android. I liked it and decided to take it to these distros.

I've already packed three:

Merge python-proton-vpn-killswitch-network-manager into python-proton-vpn-network-manager

The problem is that what I packaged was python-proton-vpn-killswitch, the repository was removed. Can I merge it with python-proton-vpn-network-manager ?

And yet, as I understand it. the python-proton-vpn-logger will be merged into python-proton-vpn-api-core. And that? If this happened let me know, as I'll merge it too.

I would just like you to clarify, in addition to the ones above, which packages are necessary to use in Debian as I do on my Android?

Another point is that I am based on the dependency tree that is in debian/control, keeping it updated in relation to Build-depens and Depends will be vital for me, in order to avoid bugs.

If you want, I can, after packaging, request a pull request for the "debian" directory, as this directory has undergone some updates. But that's if you want.

Thank you for your attention

calexandru2018 commented 1 month ago

The problem is that what I packaged was python-proton-vpn-killswitch, the repository was removed. Can I merge it with python-proton-vpn-network-manager ?

it was removed because we had the warning on the readme file for a while now that the killswitch package was merged into api-core. You can see that python-proton-vpn-killswitch has been merged here: https://github.com/ProtonVPN/python-proton-vpn-api-core/tree/master/proton/vpn/killswitch/interface.

And yet, as I understand it. the python-proton-vpn-logger will be merged into python-proton-vpn-api-core. And that? If this happened let me know, as I'll merge it too.

Yes, as I've mentioned internally we've already done, we're just waiting for deployment, the same goes for the other packages that I mentioned.

Another point is that I am based on the dependency tree that is in debian/control, keeping it updated in relation to Build-depens and Depends will be vital for me, in order to avoid bugs.

For that you can just follow the control file in each repo. For example at this point we have:

  1. python-proton-core
  2. python-proton-keyring-linux
  3. python-proton-keyring-linux-secretservice <- is merged internally into python-proton-keyring-linux, it's pending a release.
  4. python-proton-vpn-local-agent
  5. python-proton-vpn-api-core
  6. python-proton-vpn-network-manager
  7. python-proton-vpn-network-manager-openvpn <- has already been merged into python-proton-vpn-network-manager. The repo has been archived and the readme has a warning.
  8. python-proton-vpn-network-manager-wireguard <- has already been merged into python-proton-vpn-network-manager. The repo has been archived and the readme has a warning.
  9. python-proton-vpn-killswitch-network-manager-wireguard <- is merged internally into python-proton-vpn-network-manager, it's pending a release.
  10. python-proton-vpn-killswitch-network-manager <- is merged internally into python-proton-vpn-network-manager, it's pending a release.
  11. python-proton-vpn-logger <- is merged internally into python-proton-vpn-api-core, it's pending a release.

So you can see there are a lot of merges happening. All of this should be published within 1-3 weeks. We'd love that you publish our app on official debian repos, but with our current re-structuring I think it would be best if you wait until we merge everything, otherwise it will be a nightmare for you to keep track of all of this.

calexandru2018 commented 1 month ago

Also there are other things to keep in mind: protonvpn-stable-release_1.0.4_all.deb release and proton-vpn-gnome-desktop_0.5.0_all.deb metapackage

XavierProton commented 1 month ago

With the approach of having all proton python packages in debian, there is no need for protonvpn-stable-release_1.0.4_all.deb anymore , except for people preferring installation from our repo than from debian sources. Also, I bet this is not in debian guidelines to support a package that will install apt sources to an external repo.

However, yes, there is a need for the metapackage proton-vpn-gnome-desktop_0.5.0_all.deb

Nilsonfsilva commented 1 month ago

Hi @calexandru2018 @XavierProton !

Thanks for the clarifications!

I will be waiting at the end of these three weeks for the mergers to be completed.

However, let me make this post as clear as possible so that others who want to participate can understand our efforts to bring proton-vpn to our distribution:

Firstly I will tag Dmitry @mitya57, who is a Debian developer, very experienced in Debian and who helped me with sponsorships of some Pronton packages. And if he can find time in his schedule, he could help us coordinate this merger on Debain's side.

So far we already have three packages in Debian:

  1. Python Proton Core
  2. python-proton-vpn-logger
  3. python-proton-vpn-killswitch

After merging, it will look like this: the "python-proton-core" that was merged into "python-proton-keyring-linux" Therefore, on the Debian side, what was previously python-proton-core we will be able to rename to python-proton-keyring-linux, including all the merges reported above.

The python-proton-vpn-logger that is already in Debian can be changed to "python-proton-vpn-network-manager". Which from what I saw, will incorporate good parts of the packaging.

While python-proton-vpn-killswitch, I'll be waiting to see what fate we give Him.

Would it be possible to list what packages in total will we have to introduce in Debian?

we already know these are right: 1.python-proton-keyring-linux

  1. python-proton-vpn-network-manager, is pending release.

This one too?

  1. proton-vpn-gtk app

Please feel free to make any necessary corrections if I have made any mistakes.

Thanks!

calexandru2018 commented 1 month ago

To make it simple I'd suggest we hold all releases for now, otherwise it will be more work for you and @mitya57 later down the road. Once we're done with everything and all packages have been merged from our side, we could retake the discussion, wdyt ? I suspect it would be easier to discuss once all packages are ready from our side.

Nilsonfsilva commented 1 month ago

We agreed like this! We agreed like this! Let me know when all migrations are complete!

Steinhagen commented 1 month ago

I've also seen that python-proton-vpn-connection was removed. Can you tell us in what package it was integrated?

calexandru2018 commented 1 month ago

@Steinhagen with the current status of the public repository, the following packages were merged into python-proton-vpn-api-core:

Nilsonfsilva commented 1 month ago

Hi @calexandru2018 !

@Steinhagen with the current status of the public repository, the following packages were merged into python-proton-vpn- api-core:

python-proton-vpn-killswitch python-proton-vpn-session python-proton-vpn-connection

it would be good if debian/control should also be updated, excluding: python3-proton-core, python3-proton-vpn-logger" and placing the new "python-proton-vpn-api-core" package.

This will be a guide for packaging on debian.

calexandru2018 commented 1 month ago

@Nilsonfsilva so everything has been merged, these are the only packages that you'll need for the linux client:

  1. https://github.com/ProtonVPN/python-proton-core
  2. https://github.com/ProtonVPN/python-proton-keyring-linux
  3. https://github.com/ProtonVPN/python-proton-vpn-local-agent
  4. https://github.com/ProtonVPN/python-proton-vpn-api-core
  5. https://github.com/ProtonVPN/python-proton-vpn-network-manager
  6. https://github.com/ProtonVPN/proton-vpn-gtk-app

Note the order as it's important.

Edit: It's important to note that we have a package name proton-vpn-gnome-desktop, the control file looks like this:

Source: proton-vpn-gnome-desktop
Priority: optional
Maintainer: Proton AG <opensource@proton.me>
Build-Depends: debhelper (>= 10)
Standards-Version: 4.1.2
Homepage: https://protonvpn.com/
X-Python3-Version: >= 3.5

Package: proton-vpn-gnome-desktop
Architecture: all
Depends: proton-vpn-gtk-app, python3-proton-vpn-network-manager (>= 0.9.0), python3-proton-keyring-linux (>= 0.1.0)
Description: Proton VPN Gnome Desktop metapackage
 A metapackage that installs all necessary dependencies for Proton VPN on Gnome based desktops.
julian-alarcon commented 4 weeks ago

I found an error installing the proton-vpn-gnome-desktop package. It seems that python3-proton-vpn-local-agent is missing from the repos

python3-proton-vpn-network-manager:
 Depends: python3-proton-vpn-local-agent (>=1.0.0) but it is not installable
calexandru2018 commented 4 weeks ago

@julian-alarcon the package is present in both arm64 and amd64 repos.

Edit: Same goes for fedora repos, 39 and 40.

julian-alarcon commented 3 weeks ago

Thanks @calexandru2018 . OK, I found my error! I migrated some months ago my apt sources to DEB822 format.

cat sources.list.d/protonvpn-ubuntu-repo-stable.sources

X-Repolib-Name: protonvpn-ubuntu-repo-stable
Types: deb
URIs: https://repo.protonvpn.com/debian
Suites: stable
Components: main
Architectures: all
Signed-By: /etc/apt/keyrings/protonvpn-ubuntu-repo-stable.asc

Package is available only in the specific architecture (amd64 or arm64) https://repo.protonvpn.com/debian/dists/stable/main/binary-amd64/

I missed the amd64 architecture (in my case for Ubuntu 24.04 AMD64), this is the full document with the proper architectures

X-Repolib-Name: protonvpn-ubuntu-repo-stable
Types: deb
URIs: https://repo.protonvpn.com/debian
Suites: stable
Components: main
Architectures: all amd64
Signed-By: /etc/apt/keyrings/protonvpn-ubuntu-repo-stable.asc
calexandru2018 commented 4 days ago

Hey @julian-alarcon yeah we haven't done it yet, but have it on our backlog to do it.

Nilsonfsilva commented 2 days ago
1. https://github.com/ProtonVPN/python-proton-core

2. https://github.com/ProtonVPN/python-proton-keyring-linux

3. https://github.com/ProtonVPN/python-proton-vpn-local-agent

4. https://github.com/ProtonVPN/python-proton-vpn-api-core

5. https://github.com/ProtonVPN/python-proton-vpn-network-manager

6. https://github.com/ProtonVPN/proton-vpn-gtk-app

Hi @calexandru2018 After some setbacks, I resumed packaging the proton-vpn modules.

I have some questions about this module here:

  1. https://github.com/ProtonVPN/python-proton-keyring-linux :
  2. the public repository is not licensed. Would you be able to put it?
  1. If the module I should consider for Debian packaging is just this: https://github.com/ProtonVPN/local-agent-rs/tree/stable/python-proton-vpn-local-agent I will have difficulty tracking the new releases since it is integrated with other directories that will not be of any use.

We could create a branch with a tarboll where the tag points to this module: https://github.com/ProtonVPN/local-agent-rs/tree/stable/python-proton-vpn-local-agent

But feel free