Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proton-vpn for Debian #69

Open
Nilsonfsilva opened this issue Sep 24, 2024 · 19 comments
Open

Proton-vpn for Debian #69

Nilsonfsilva opened this issue Sep 24, 2024 · 19 comments

Comments

@Nilsonfsilva
Copy link

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
Copy link
Member

calexandru2018 commented Sep 24, 2024

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:

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

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

  • Merge python-proton-vpn-logger into python-proton-vpn-api-core

  • Merge python-proton-keyring-linux-secretservice into python-proton-keyring-linux

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
Copy link
Author

Nilsonfsilva commented Sep 24, 2024

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:

  • python-proton-core
  • python-proton-vpn-logger
  • python-proton-vpn-killswitch
    But from what I saw, two were merged.

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
Copy link
Member

calexandru2018 commented Sep 25, 2024

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
Copy link
Member

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
Copy link

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
Copy link
Author

Nilsonfsilva commented Sep 25, 2024

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
2. python-proton-vpn-network-manager, is pending release.

This one too?
3. proton-vpn-gtk app

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

Thanks!

@calexandru2018
Copy link
Member

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
Copy link
Author

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

@Steinhagen
Copy link

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

@calexandru2018
Copy link
Member

calexandru2018 commented Sep 26, 2024

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

@Nilsonfsilva
Copy link
Author

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
Copy link
Member

calexandru2018 commented Oct 9, 2024

@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 <[email protected]>
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
Copy link

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
Copy link
Member

calexandru2018 commented Oct 14, 2024

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

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

@julian-alarcon
Copy link

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
Copy link
Member

calexandru2018 commented Nov 7, 2024

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

@Nilsonfsilva
Copy link
Author

Nilsonfsilva commented Nov 10, 2024

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 :
  1. the public repository is not licensed. Would you be able to put it?

  2. 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

@calexandru2018
Copy link
Member

calexandru2018 commented Nov 27, 2024

@Nilsonfsilva

  1. python-proton-keyring-linux does have a license, both here and here, so not sure I understand the question.

  2. I'm not sure I I get exactly what you mean. Which directories ?

@Nilsonfsilva
Copy link
Author

Nilsonfsilva commented Dec 5, 2024

Hi @calexandru2018 !

  1. the public repository is not licensed. Would you be able to put it?

referred to this repository here that is not under license:
https://github.com/ProtonVPN/local-agent-rs
Would you be able to license it?

2 m not sure I I get exactly what you mean. Which directories ?

This repository
https://github.com/ProtonVPN/local-agent-rs
the module that will be packaged is a subdirectory, in this case:
python-proton-vpn-local agent
The difficulties that exist, I am already resolving. You can disregard my previous statement.
Just putting the license in the repository is already a good size.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
@Steinhagen @julian-alarcon @calexandru2018 @Nilsonfsilva @XavierProton and others