Installing protonVPN (gui) on Clear Linux

(note: this installation uses a bash script called ‘create-fake-rpm’, who’s author issues the following warning:
​!!! WARNING !!!
This is a big gun. You can easily shot yourself in a leg. Do not use this tool unless you know what you are doing. And if you know what you are doing - then think twice before you use it. You can easily destroy your machine with this tool.)

(unfortunately i wasnt able to install with rpm -i --nodeps or rpm2cpio because dnf download was coming up empty, the package url was a 404, and rpmbuild wasnt working with the rpmbuild folder in their github repo)

# bundle 'desktop' should be installed. if you dont -
# - have it installed, ensure you have the following: 
# gtk3, webkit2gtk3, python 3.10, NetworkManager, NetworkManager-openvpn

sudo swupd bundle-add  dnf c-basic devpkg-systemd devpkg-dbus network-basic devpkg-libsecret
export PATH="$PATH:~/.local/bin"
echo 'export PATH="$PATH:~/.local/bin"'>>~/.bashrc
pip install pythondialog pygobject psutil systemd jinja2 pyxdg keyring dbus-python bcrypt gnupg pyOpenSSL requests distro
git clone https://github.com/xsuchy/create-fake-rpm.git
cd create-fake-rpm/
sudo bash ./create-fake-rpm --build python3 /usr/bin/python3
sudo bash ./create-fake-rpm --build 3.10 'python(abi) = 3.10'
sudo bash ./create-fake-rpm --build pythondialog python3-dialog
sudo bash ./create-fake-rpm --build pygobject python3-gobject
sudo bash ./create-fake-rpm --build psutil python3-psutil
sudo bash ./create-fake-rpm --build gtk3 gtk3
sudo bash ./create-fake-rpm --build webkit2gtk4 webkit2gtk3
sudo bash ./create-fake-rpm --build NetworkManager NetworkManager
sudo bash ./create-fake-rpm --build devpkg-dbus dbus-x11
sudo bash ./create-fake-rpm --build xdg xdg-utils
sudo bash ./create-fake-rpm --build python3-systemd python3-systemd
sudo bash ./create-fake-rpm --build python3-keyring python3-keyring
sudo bash ./create-fake-rpm --build pyxdg python3-pyxdg
sudo bash ./create-fake-rpm --build jinja2 python3-jinja2
sudo bash ./create-fake-rpm --build python3-distro python3-distro
sudo bash ./create-fake-rpm --build dbus-python python3-dbus
sudo bash ./create-fake-rpm --build network-basic openvpn
sudo bash ./create-fake-rpm --build devpkg-libsecret libsecret
sudo bash ./create-fake-rpm --build NetworkManager-extras NetworkManager-openvpn
sudo bash ./create-fake-rpm --build python3-bcrypt python3-bcrypt
sudo bash ./create-fake-rpm --build python3-gnupg python3-gnupg
sudo bash ./create-fake-rpm --build pyOpenSSL python3-pyOpenSSL
sudo bash ./create-fake-rpm --build python3-requests python3-requests
for FAKE_DEPENDENCY in noarch/*; do sudo rpm -i $FAKE_DEPENDENCY; done
curl -O https://protonvpn.com/download/protonvpn-stable-release-1.0.1-1.noarch.rpm
sudo rpm -i protonvpn-stable-release-1.0.1-1.noarch.rpm
sudo dnf update --releasever 35
sudo dnf install protonvpn --releasever 35

if you try this, please let me know how it went

If you wanna save your time - just import the .ovpn config to NetworkManager.

3 Likes

I’ve installed the .rpm package from ProtonVPN’s website and I get this when launching from terminal :

$ protonvpn
Traceback (most recent call last):
  File "/usr/bin/protonvpn", line 33, in <module>
    sys.exit(load_entry_point('protonvpn-gui==1.12.0', 'console_scripts', 'protonvpn')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/protonvpn", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.11/site-packages/protonvpn_gui/main.py", line 14, in <module>
    from proton.constants import VERSION as proton_version
ModuleNotFoundError: No module named 'proton'

There is now a Proton VPN Flatpak : Proton VPN | Flathub

1 Like

What is the best way to use flatpak with clear linux?