ProtonVPN / linux-app

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

How to compile? #97

Open Anonymous941 opened 1 year ago

Anonymous941 commented 1 year ago

We are happy to answer your questions about the code or discuss technical ideas.

Please complete the following checklist (by adding [x]):


How do I compile this? I've tried to run sudo make, sudo make install and read the Makefile but nothing compiles successfully.

quantum77 commented 1 year ago

Wow, this app really is just garbage. Will not compile no matter what you do, much less for RHEL.

Coupled with them not responding to support requests for email, they clearly don't give a damn. I have wasted my money on a two year Unlimited subscription.

Anonymous941 commented 1 year ago

Wow, this app really is just garbage. Will not compile no matter what you do, much less for RHEL.

Coupled with them not responding to support requests for email, they clearly don't give a damn. I have wasted my money on a two year Unlimited subscription.

I've emailed them, and at least the support person has been very patient, but when the developers don't care about the client there's only so much support personnel can do. @alexandrevicenzi can you please answer this? I'm trying to do work for this client that Proton should be doing themselves, and I just need a little help. I'm not blaming you for any of this, it's probably wasn't your decision to devote no resources to this, but will you find the time to just tell me how it's compiled?

quantum77 commented 1 year ago

Well. There's no configure.ac so automake won't work. And according to the makefile we should be able to:

make image-deb

make image-fed36

make image-fed37 or

make image-arch

... but none can work. and for some reason there's nothing for RHEL9.1.

If, instead of naming it to something sensible, we leave it named to linux-app and try to compile... it fails in a new and unique way.

First of all they are trying to compile a docker container,m and Docker is notoriously unsecure. If you happen to use podman-docker, you can't win.

This "open source" version is busted. Greenwashing.

And my four email accounts are all screwed up since moving to PM. And I am not getting emails. PM support does not respond. I have wasted my money on a 2 year Unlimited subscription and they've refused to let me out of it. This means they want me outside the tent pissing in, rather than inside the tent pissing out.

calexandru2018 commented 1 year ago

Hey @quantum77 and @Anonymous941,

I'm really sorry that you are experiencing these issues. Unfortunately we never had the bandwidth to officially support manual installs . For some (long) time I was the only developer and we just couldn't support multiple distro installations and also manual installs, it just wasn't possible. Although as of last year, we've hired another linux engineer and we're working hard on a much more stable version. We're fully aware of the issues and shortcomings with the current application, after well we're also linux users ourselves.

Anonymous941 commented 1 year ago

@calexandru2018 Thank you for the response. How did you compile the .deb package that you have on your site? Also, can you just fix the DNS bug with this program, then continue working on the new one? Because I'm having to constantly reconnect to the VPN. Constantly. This is making my Internet connection unusable, and I've had to do this for almost a year. I've tried four different computers and they all have the exact same issue. So it's probably an issue with everyone else as well.

calexandru2018 commented 1 year ago

You won't be able to compile it since the repo package is not on GitHub. The only packages on GitHub are the ones required to run the application. If you want to see what the repo package contains you can unpack the .deb in a Debian based distro. (In a nutshell, the repo package installs the repo file and the gpg key that you can find on our website.) Also, why are you trying to compile it ? If you're trying on any unsupported distro it probably will be a nightmare as I've tried it myself, figuring out the package names and etc.

Regarding the dns bug, could you be a bit more specific about it ?

Anonymous941 commented 1 year ago

@calexandru2018 I'm using Ubuntu 22.04 LTS, and the client installed successfully, but it has a recurring issue with DNS. Since you're busy with the new client, I thought I'd try to work on it myself by compiling it and contributing the changes, but am having trouble compiling it to the binary found on the repository.

the repo package installs the repo file and the gpg key that you can find on our website

I'm referring to the .deb package that the repo installs (with sudo apt install protonvpn), which I'd like to build myself.

Regarding the dns bug, could you be a bit more specific about it ?

Would you like me to make a new issue about it or tell you about it here?

Thanks for taking the time to help me with this.

alexandrevicenzi commented 1 year ago

This is a Python project, there's no "compiling" like C, Python is a scripting language.

To build a Python package (aka egg file) run the following command:

python3 setup.py build

To install Proton GUI from sources run the following command:

python3 setup.py install

To install Proton GUI from sources as an editable package you can try the following command:

pip3 install --editable .

To run Proton GUI from sources run the following command:

python3 -m protonvpn_gui.main

The source for a working distro package (openSUSE) is available here.

If you find bugs within openSUSE, please, report them to openSUSE Bugzilla, and not this project.

alexandrevicenzi commented 1 year ago

An unrelated comment, the openSUSE Build System (OBS) can build packages for openSUSE, Fedora, Debian, Ubuntu, Arch, and other distros.

I do not have that enabled for my packages because I don't want to maintain other distros, but @Anonymous941 you can create an account in OBS and build the packages yourself.

For @calexandru2018, perhaps it would be worth for you, this project, and any other Proton Linux, if you use our infra to build packages for all major distros. If you are interested, we can coordinate something.

alexandrevicenzi commented 1 year ago

@quantum77 if ProtonVPN GUI does not work on Linux, you can download the OVN files from the ProtonVPN dashboard and use OpenVPN.

It is also possible to use StrongSwan/IPSec, and even WireGuard I think.

The ProtonVPN client for Linux is basically a wrapper around nmcli and OpenVPN.

quantum77 commented 1 year ago

I run RHEL and the Fed/Suse rpms do not install. I do not use OpenVPN as the attack surface is too large and IKE is old tech. WireGuard is my choice.

I've manually set up WG VPNs in Proton, and am now trying to make port forwarding work manually. Unfortunately the Swiss channels marked with the dual arrows refuse the test saying they do not port-forward, so far CH_15 and CH_14. No firewall blocks and selinux is off.

I don't know what to do with this, when it's supposed to port-forward but refuses.

------- Original Message ------- On Thursday, February 9th, 2023 at 03:01, Alexandre Vicenzi @.***> wrote:

@.***(https://github.com/quantum77) if ProtonVPN GUI does not work on Linux, you can download the OVN files from the ProtonVPN dashboard and use OpenVPN.

It is also possible to use StrongSwan/IPSec, and even WireGuard I think.

The PythonVPN client for Linux is basically a wrapper around nmcli and OpenVPN.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Anonymous941 commented 1 year ago

The problem I have with both WireGuard and OpenVPN is that it can't connect to the fastest server automatically, and I'd need to constantly be switching profiles when servers became overloaded.

quantum77 commented 1 year ago

I've thought about setting up multiple (bonded) connexions, but you just can't do that with ProtonVPN.

Hell, the country channels which claim they have P2P... do not, on actual testing. And Transmission (the recommended BT client which ostensibly sets it all up automatically) can not get through either.

I've spent so much money on 2 years of Proton Unlimited services, yet can not make them work and support isn't helping. Proton says I'm past my 30 days so I can't get a refund; screwed again. Aren't they aware of social media? ... Or maybe they already have too many customers.

Looks like my hopes were too high.

------- Original Message ------- On Friday, February 10th, 2023 at 13:46, Anonymous941 @.***> wrote:

The problem I have with both WireGuard and OpenVPN is that it can't connect to the fastest server automatically, and I'd need to constantly be switching profiles when servers became overloaded.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

alexandrevicenzi commented 1 year ago

@Anonymous941 I assume that if you connect to a country, it will choose the best server, but if you connect to country#number, that server could be under load.

OpenVPN works with no issues for me, the official client for Linux I don't use much, to be honest. The macOS client works and I wish that it could be the same app for Linux, given that macOS is a Unix-like system.

Anonymous941 commented 1 year ago

@alexandrevicenzi How do you configure OpenVPN to connect to a country, not country#number?

quantum77 commented 1 year ago

lol, good question.

------- Original Message ------- On Sunday, February 12th, 2023 at 11:13, Anonymous941 @.***> wrote:

@.***(https://github.com/alexandrevicenzi) How do you configure OpenVPN to connect to a country, not country#number?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

calexandru2018 commented 1 year ago

@Anonymous941 @quantum77 It's enough to download the country configuration from the vpn web panel.

quantum77 commented 1 year ago

There is no such choice Alexandru. We must select an individual channel.

Also I've tried port-forwarding on several Swiss channels which have the double-arrows, and consistently get (using the endpoint as gateway):

natpmpc -g 185.159.157.23

initnatpmp() returned 0 (SUCCESS) using gateway : 185.159.157.23 sendpublicaddressrequest returned 2 (SUCCESS) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -7 (FAILED) readnatpmpresponseorretry() failed : the gateway does not support nat-pmp errno=11 'Resource temporarily unavailable'

... and using my IP there:

natpmpc -g 185.159.157.45

initnatpmp() returned 0 (SUCCESS) using gateway : 185.159.157.45 sendpublicaddressrequest returned 2 (SUCCESS) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -100 (TRY AGAIN) readnatpmpresponseorretry returned -7 (FAILED) readnatpmpresponseorretry() failed : the gateway does not support nat-pmp errno=11 'Resource temporarily unavailable'

If I do not specify a gateway, for some reason natpmpc uses my LAN's gateway. This seems like a security problem. Is the VPN leaking?

------- Original Message ------- On Monday, February 13th, 2023 at 00:52, Alexandru Cheltuitor @.***> wrote:

@.(https://github.com/Anonymous941) @.(https://github.com/quantum77) It's enough to download the country configuration from the vpn web panel.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>