Open davxy opened 1 year ago
I'd like to add my contribution to this.
I am using Archlinux without desktop environment, only i3 as window manager and it was literally a nightmare to try to make protonvpn-cli work. After installing all the graphical dependencies and started to modify my xinit scripts to make all that run together, I stopped because I couldn't make DBUS work with gnome-keyring ! I think all that works smoothly when you use gnome based desktop environment but when you are not ... it is fairly complicated.
As @davxy commented, I think there are too much dependencies on graphical libraries and tools, which is not what user's would expect using a CLI tool. The expected behaviour of a CLI tool is to be able to run in terminal only.
Massively agree on this, out of curiosity were you stuck with this error before installing all the graphical dependencies, I am also using i3 quite minimally.
When trying to log in with protonvpn-cli I get this err:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/keyring/linuxkeyring.py", line 21, in __getitem__
stored_data = self.__keyring_backend.get_password(
File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password
collection = self.get_preferred_collection()
File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection
collection = secretstorage.get_default_collection(bus)
File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection
return Collection(connection)
File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__
self._collection.get_property('Label')
File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property
(signature, value), = self.send_and_get_reply(msg)
File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply
raise DBusErrorResponse(resp_msg)
jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.TimedOut] ("Failed to activate service 'org.freedesktop.secrets': timed out (service_start_timeout=120000ms)",)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/protonvpn-cli", line 11, in <module>
load_entry_point('protonvpn-cli==3.13.0', 'console_scripts', 'protonvpn-cli')()
File "/usr/lib/python3/dist-packages/protonvpn_cli/main.py", line 21, in main
ProtonVPNCLI()
File "/usr/lib/python3/dist-packages/protonvpn_cli/cli.py", line 65, in __init__
res = getattr(self, args.command)()
File "/usr/lib/python3/dist-packages/protonvpn_cli/cli.py", line 162, in login
return self.cli_wrapper.login(args.username)
File "/usr/lib/python3/dist-packages/protonvpn_cli/cli_wrapper.py", line 63, in login
if self.protonvpn.check_session_exists():
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/api.py", line 356, in check_session_exists
return self._env.api_session.is_valid
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/environment.py", line 56, in api_session
self.__api_session = APISession()
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/session/session.py", line 240, in __init__
self.__keyring_load_session()
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/session/session.py", line 269, in __keyring_load_session
keyring_data_user = ExecutionEnvironment().keyring[
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/keyring/linuxkeyring.py", line 32, in __getitem__
raise exceptions.KeyringError(e)
protonvpn_nm_lib.exceptions.KeyringError: [org.freedesktop.DBus.Error.TimedOut] ("Failed to activate service 'org.freedesktop.secrets': timed out (service_start_timeout=120000ms)",)
and when launching the app I get the same org.freedesktop.DBus.Error.
I'd like to add my contribution to this.
I am using Archlinux without desktop environment, only i3 as window manager and it was literally a nightmare to try to make protonvpn-cli work. After installing all the graphical dependencies and started to modify my xinit scripts to make all that run together, I stopped because I couldn't make DBUS work with gnome-keyring ! I think all that works smoothly when you use gnome based desktop environment but when you are not ... it is fairly complicated.
As @davxy commented, I think there are too much dependencies on graphical libraries and tools, which is not what user's would expect using a CLI tool. The expected behaviour of a CLI tool is to be able to run in terminal only.
It is quite clear that the gnome dependencies should be dropped when using the CLI. Unfortunately looks like maintainers are not too much responsive :-/ For the moment I'm just using directly the wireguard configs
Hey all,
Apologize for not being much active here, but we're currently working really hard on the new client, so that we don't have the same dependency issues that we currently have.
The idea for the new client is to be as modular as possible, meaning that if someone would like to run native backends instead of 3rd party (ie native openvpn/wg vs NM openvpn/wg ) that would happen transparently. The only difference would be which packages are required (we'll be creating meta-packages that help with installation). Apart from that we're working also on making the applications in general to be much more reliable, and all of this takes time. Initially the rebuild app won't have many features, but we intend in releasing it gradually.
Hope this clarifies some questions.
@calexandru2018, thanks for your explanation, I'll wait for the new client then. If you need beta-testers with minimal graphical environment I am there ;)
Also happy to test, as I'm paying for this product and am currently unable to use it on my machine the way that I'd like. Thanks for the response.
Same here, little rpi server with no GUI at all, I really would like to keep as light as possible. Happy to test!
This also means you can't containerize the client. I really want to create a docker image that is running the client as an entry point.
I'm using
protonvpn-cli
in a headless environment and I would like to pull in the bare minimum wrt dependencies.I see that your cli application indirectly depends on a bunch of gnome and X related stuff.
For example this is one dependency path.
In the end looks like the problematic dependency is
network-manager-openvpn-gnome
inpython3-protonvpn-nm-lib
While I understand such a dependency for the GUI app, I find this annoying for the CLI.
It's possible to split
python3-protonvpn-nm-lib
in two separate libraries? Like one lower level lib for the CLI and another for the GUIThank you