protonvpn-gui: 4.3.0 -> 4.4.4 (#334674)

This commit is contained in:
Peder Bergebakken Sundt 2024-09-15 22:34:09 +02:00 committed by GitHub
commit d3e4218ba2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 326 additions and 182 deletions

View File

@ -1,47 +1,46 @@
{ lib
, buildPythonApplication
, fetchFromGitHub
, gobject-introspection
, setuptools
, wrapGAppsHook3
, dbus-python
, packaging
, proton-core
, proton-keyring-linux
, proton-keyring-linux-secretservice
, proton-vpn-api-core
, proton-vpn-connection
, proton-vpn-killswitch
, proton-vpn-killswitch-network-manager
, proton-vpn-logger
, proton-vpn-network-manager
, proton-vpn-network-manager-openvpn
, proton-vpn-session
, pycairo
, pygobject3
, pytest-cov-stub
, pytestCheckHook
, withIndicator ? true
, libappindicator-gtk3
, libayatana-appindicator
{
lib,
buildPythonApplication,
fetchFromGitHub,
gobject-introspection,
setuptools,
wrapGAppsHook3,
dbus-python,
packaging,
proton-core,
proton-keyring-linux,
proton-keyring-linux-secretservice,
proton-vpn-api-core,
proton-vpn-connection,
proton-vpn-killswitch,
proton-vpn-killswitch-network-manager,
proton-vpn-logger,
proton-vpn-network-manager,
proton-vpn-network-manager-openvpn,
proton-vpn-network-manager-wireguard,
proton-vpn-session,
pycairo,
pygobject3,
withIndicator ? true,
libappindicator-gtk3,
libayatana-appindicator,
}:
buildPythonApplication rec {
pname = "protonvpn-gui";
version = "4.3.0";
version = "4.4.4";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "proton-vpn-gtk-app";
rev = "refs/tags/v${version}";
hash = "sha256-H4m4u9zksab47W5aIsQZPQTPEYiXbmrVCnT67b+A5Tc=";
hash = "sha256-e581FgXrk1cfjsl/UaG9M+3VBYXcV0mggeLeEW9s9KM=";
};
nativeBuildInputs = [
# Needed for the NM namespace
gobject-introspection
setuptools
wrapGAppsHook3
];
@ -52,7 +51,11 @@ buildPythonApplication rec {
libayatana-appindicator
];
propagatedBuildInputs = [
build-system = [
setuptools
];
dependencies = [
dbus-python
packaging
proton-core
@ -65,6 +68,7 @@ buildPythonApplication rec {
proton-vpn-logger
proton-vpn-network-manager
proton-vpn-network-manager-openvpn
proton-vpn-network-manager-wireguard
proton-vpn-session
pycairo
pygobject3
@ -76,11 +80,6 @@ buildPythonApplication rec {
install -Dm 644 ${src}/rpmbuild/SOURCES/proton-vpn-logo.svg $out/share/pixmaps
'';
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
preCheck = ''
# Needed for Permission denied: '/homeless-shelter'
export HOME=$(mktemp -d)
@ -89,12 +88,12 @@ buildPythonApplication rec {
# Gets a segmentation fault after the widgets test
doCheck = false;
meta = with lib; {
meta = {
description = "Proton VPN GTK app for Linux";
homepage = "https://github.com/ProtonVPN/proton-vpn-gtk-app";
license = licenses.gpl3Plus;
platforms = platforms.linux;
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
mainProgram = "protonvpn-app";
maintainers = [ ];
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -1,22 +1,24 @@
{ lib
, buildPythonApplication
, fetchFromGitHub
, setuptools
, wrapGAppsHook3
, gdk-pixbuf
, glib-networking
, gobject-introspection
, imagemagick
, librsvg
, pango
, python3
, webkitgtk
# Python libs
, protonvpn-nm-lib
, psutil
# Optionals
, withIndicator ? true
, libappindicator-gtk3 }:
{
lib,
buildPythonApplication,
fetchFromGitHub,
setuptools,
wrapGAppsHook3,
gdk-pixbuf,
glib-networking,
gobject-introspection,
imagemagick,
librsvg,
pango,
python3,
webkitgtk,
# Python libs
protonvpn-nm-lib,
psutil,
# Optionals
withIndicator ? true,
libappindicator-gtk3,
}:
buildPythonApplication rec {
pname = "protonvpn-gui";

View File

@ -9,23 +9,25 @@
python-gnupg,
requests,
pytestCheckHook,
pyotp,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-core";
version = "0.1.16";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-core";
rev = "refs/tags/v${version}";
hash = "sha256-072XuHvgWludlFwp/tqLpuAU89vzifFhwQ01FuiCoL8=";
hash = "sha256-IiKmtgcCSe2q3qaNuUSaC/D/vSQzVq7w8VN2Xq81+tQ=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
bcrypt
aiohttp
pyopenssl
@ -33,14 +35,13 @@ buildPythonPackage rec {
requests
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=proton --cov-report html --cov-report term" ""
'';
pythonImportsCheck = [ "proton" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
pyotp
];
disabledTestPaths = [
# Single test, requires internet connection
@ -68,6 +69,6 @@ buildPythonPackage rec {
description = "Core logic used by the other Proton components";
homepage = "https://github.com/ProtonVPN/python-proton-core";
license = lib.licenses.gpl3Only;
maintainers = [ ];
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -5,6 +5,7 @@
setuptools,
proton-keyring-linux,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
@ -19,23 +20,21 @@ buildPythonPackage rec {
hash = "sha256-IZPT2bL/1YD2TH/djwIQHUE1RRbYMTkQDacjjoqDQWo=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [ proton-keyring-linux ];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=proton.keyring_linux.secretservice --cov-report html --cov-report term" ""
'';
dependencies = [ proton-keyring-linux ];
pythonImportsCheck = [ "proton.keyring_linux" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = with lib; {
meta = {
description = "ProtonVPN component to access Linux's keyring secret service API";
homepage = "https://github.com/ProtonVPN/python-proton-keyring-linux-secretservice";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -6,6 +6,7 @@
keyring,
proton-core,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
@ -20,26 +21,24 @@ buildPythonPackage rec {
hash = "sha256-c2wdbd8Hkz2hF9zYMy4/V/W6uZRItz7tWqLJqTsJoHU=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
keyring
proton-core
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=proton.keyring_linux.core --cov-report html --cov-report term" ""
'';
pythonImportsCheck = [ "proton.keyring_linux.core" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = with lib; {
meta = {
description = "ProtonVPN core component to access Linux's keyring";
homepage = "https://github.com/ProtonVPN/python-proton-keyring-linux";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -11,23 +11,24 @@
sentry-sdk,
distro,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-vpn-api-core";
version = "0.22.3";
version = "0.32.2";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-api-core";
rev = "refs/tags/v${version}";
hash = "sha256-BGei6tw6VTKkHmaIWa2VJfKOL5cRUbauOQ7zp1RY9Bo=";
rev = "v${version}";
hash = "sha256-n4TZkp2ZMSJ1w1wQUMsAhX8kmWu59udlsXXEhIM83mI=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
distro
proton-core
proton-vpn-connection
@ -37,24 +38,33 @@ buildPythonPackage rec {
sentry-sdk
];
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "--cov=proton/vpn/core/ --cov-report html --cov-report term" ""
'';
pythonImportsCheck = [ "proton.vpn.core" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
preCheck = ''
# Needed for Permission denied: '/homeless-shelter'
export HOME=$(mktemp -d)
'';
meta = with lib; {
disabledTests = [
# Permission denied: '/run'
"test_ensure_configuration_file_is_created"
"test_ovpnconfig_with_settings"
"test_wireguard_config_content_generation"
"test_wireguard_with_non_certificate"
"test_ensure_generate_is_returning_expected_content"
"test_ensure_same_configuration_file_in_case_of_duplicate"
"test_ensure_configuration_file_is_deleted"
];
meta = {
description = "Acts as a facade to the other Proton VPN components, exposing a uniform API to the available Proton VPN services";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-api-core";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -8,6 +8,7 @@
proton-vpn-logger,
jinja2,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
@ -22,23 +23,21 @@ buildPythonPackage rec {
hash = "sha256-Ze/te0G0tDzyZPGVVqvuJlZoHWJqJ36LnHO+Cy5nxx8=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
jinja2
proton-core
proton-vpn-killswitch
proton-vpn-logger
];
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "--cov=proton.vpn.connection --cov-report html --cov-report term" ""
'';
pythonImportsCheck = [ "proton.vpn.connection" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
disabledTests = [
# Permission denied: '/run'
@ -59,10 +58,10 @@ buildPythonPackage rec {
"test_ovpnconfig_with_malformed_server_and_credentials"
];
meta = with lib; {
meta = {
description = "Defines the interface that VPN connection backends should implement";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-connection";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -0,0 +1,67 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
gobject-introspection,
setuptools,
networkmanager,
proton-vpn-api-core,
proton-vpn-killswitch,
proton-vpn-logger,
pycairo,
pygobject3,
pytestCheckHook,
iproute2,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-vpn-killswitch-network-manager-wireguard";
version = "0.1.4";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-killswitch-network-manager-wireguard";
rev = "v${version}";
hash = "sha256-4sYD2X1U066FMjrtbTb31wvkCDWAw+eXod+pi0gGsCQ=";
};
nativeBuildInputs = [
# Solves ImportError: cannot import name NM, introspection typelib not found
gobject-introspection
];
build-system = [
setuptools
];
dependencies = [
# Needed here for the NM namespace
networkmanager
proton-vpn-api-core
proton-vpn-killswitch
proton-vpn-logger
pycairo
pygobject3
];
postPatch = ''
substituteInPlace proton/vpn/killswitch/backend/linux/wireguard/killswitch_connection_handler.py \
--replace '/usr/sbin/ip' '${iproute2}/bin/ip'
'';
pythonImportsCheck = [ "proton.vpn.killswitch.backend.linux.wireguard" ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = {
description = "Implementation of the proton-vpn-killswitch interface using Network Manager with wireguard-protocol";
homepage = "https://github.com/ProtonVPN/proton-vpn-killswitch-network-manager-wireguard";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -5,53 +5,57 @@
gobject-introspection,
setuptools,
networkmanager,
proton-vpn-api-core,
proton-vpn-killswitch,
proton-vpn-logger,
pycairo,
pygobject3,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-vpn-killswitch-network-manager";
version = "0.4.3";
version = "0.5.4";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-killswitch-network-manager";
rev = "refs/tags/v${version}";
hash = "sha256-kN41b6OZ2YXoBsmNZD3NrX4uJChSmm6DVP+5LYwiZMw=";
hash = "sha256-iUm+hpqgI4jG+1Cd9F6pBjodxHpq9/2ovXRT877biXQ=";
};
nativeBuildInputs = [
# Solves ImportError: cannot import name NM, introspection typelib not found
gobject-introspection
];
build-system = [
setuptools
];
propagatedBuildInputs = [
dependencies = [
# Needed here for the NM namespace
networkmanager
proton-vpn-api-core
proton-vpn-killswitch
proton-vpn-logger
pycairo
pygobject3
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=proton.vpn.killswitch.backend.linux.networkmanager --cov-report=html --cov-report=term" ""
'';
pythonImportsCheck = [ "proton.vpn.killswitch.backend.linux.networkmanager" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = with lib; {
meta = {
description = "Implementation of the proton-vpn-killswitch interface using Network Manager";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-killswitch-network-manager";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -5,6 +5,7 @@
setuptools,
proton-core,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
@ -19,23 +20,21 @@ buildPythonPackage rec {
hash = "sha256-XZqjAhxgIiATJd3JcW2WWUMC1b6+cfZRhXlIPyMUFH8=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [ proton-core ];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=proton --cov-report=html --cov-report=term" ""
'';
dependencies = [ proton-core ];
pythonImportsCheck = [ "proton.vpn.killswitch.interface" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = with lib; {
meta = {
description = "Defines the ProtonVPN kill switch interface";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-killswitch";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -5,6 +5,7 @@
setuptools,
proton-core,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
@ -19,28 +20,28 @@ buildPythonPackage rec {
hash = "sha256-/LfMjyTs/EusgnKEQugsdJzqDZBvaAhbsTUVLDCRw0I=";
};
nativeBuildInputs = [ setuptools ];
build-system = [
setuptools
];
propagatedBuildInputs = [ proton-core ];
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "--cov=proton/vpn/logging/ --cov-report html --cov-report term" ""
'';
dependencies = [ proton-core ];
pythonImportsCheck = [ "proton.vpn.logging" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
preCheck = ''
# Needed for Permission denied: '/homeless-shelter'
export HOME=$(mktemp -d)
'';
meta = with lib; {
meta = {
description = "General purpose logging package for the entire ProtonVPN Linux client";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-logger";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -7,44 +7,46 @@
proton-core,
proton-vpn-network-manager,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-vpn-network-manager-openvpn";
version = "0.0.7";
version = "0.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-network-manager-openvpn";
rev = "refs/tags/v${version}";
hash = "sha256-AHG4jEEv1ihpboQwz6FmNtlqCE83qyOeGzBDHQcvD6o=";
hash = "sha256-eDBcpuz37crfAFX6oysB4FCkSmVLyfLJ0R2L0cZgjRo=";
};
nativeBuildInputs = [
# Solves Namespace NM not available
gobject-introspection
];
build-system = [
setuptools
];
propagatedBuildInputs = [
dependencies = [
proton-core
proton-vpn-network-manager
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=proton.vpn.backend.linux.networkmanager.protocol.openvpn --cov-report html --cov-report term" ""
'';
pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager.protocol" ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = with lib; {
meta = {
description = "Adds support for the OpenVPN protocol using NetworkManager";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager-openvpn";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -0,0 +1,57 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
gobject-introspection,
setuptools,
proton-core,
proton-vpn-killswitch-network-manager-wireguard,
proton-vpn-network-manager,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-vpn-network-manager-wireguard";
version = "0.4.1";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-network-manager-wireguard";
rev = "v${version}";
hash = "sha256-DZXixcm2VwXhbN4buABlkybDgXIg/mbeUVHOpdoj0Kw=";
};
nativeBuildInputs = [
# Solves Namespace NM not available
gobject-introspection
];
build-system = [
setuptools
];
dependencies = [
proton-core
proton-vpn-killswitch-network-manager-wireguard
proton-vpn-network-manager
];
preCheck = ''
# Needed for Permission denied: '/homeless-shelter'
export HOME=$(mktemp -d)
'';
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
];
meta = {
description = "Adds support for the Wireguard protocol using NetworkManager";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager-wireguard";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -6,56 +6,58 @@
setuptools,
networkmanager,
proton-core,
proton-vpn-api-core,
proton-vpn-connection,
pycairo,
pygobject3,
pytest-asyncio,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "proton-vpn-network-manager";
version = "0.4.2";
version = "0.5.2";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-network-manager";
rev = "refs/tags/v${version}";
hash = "sha256-zw6fzay1zCBIrouDg2EMhaxDLKIYV5TKYK5lQ3v8W6o=";
hash = "sha256-hTJE9sUjPMsE9d0fIA/OhoasumtfsWuFwn0aTm10PN4=";
};
nativeBuildInputs = [
# Needed to recognize the NM namespace
gobject-introspection
];
build-system = [
setuptools
];
propagatedBuildInputs = [
dependencies = [
# Needed here for the NM namespace
networkmanager
proton-core
proton-vpn-api-core
proton-vpn-connection
pycairo
pygobject3
];
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "--cov=proton/vpn/backend/linux/networkmanager --cov-report html --cov-report term" ""
'';
pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager" ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
pytest-cov-stub
pytest-asyncio
];
meta = with lib; {
meta = {
description = "Provides the necessary functionality for other ProtonVPN components to interact with NetworkManager";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager";
license = licenses.gpl3Only;
maintainers = [ ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -13,6 +13,7 @@
pytest-asyncio,
requests,
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
@ -27,9 +28,11 @@ buildPythonPackage rec {
hash = "sha256-/5ju/2bxhqK6JWchkxFe3amBKHtO98GCVQWIrUsn+nQ=";
};
nativeBuildInputs = [ setuptools ];
build-system = [
setuptools
];
propagatedBuildInputs = [
dependencies = [
cryptography
distro
proton-core
@ -37,11 +40,6 @@ buildPythonPackage rec {
pynacl
];
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "--cov=proton.vpn.session --cov-report term" ""
'';
pythonImportsCheck = [ "proton.vpn.session" ];
postInstall = ''
@ -55,12 +53,13 @@ buildPythonPackage rec {
pytest-asyncio
requests
pytestCheckHook
pytest-cov-stub
];
meta = {
description = "Provides utility classes to manage VPN sessions";
homepage = "https://github.com/ProtonVPN/python-proton-vpn-session";
license = lib.licenses.gpl3Only;
maintainers = [ ];
maintainers = with lib.maintainers; [ sebtm ];
};
}

View File

@ -10625,12 +10625,16 @@ self: super: with self; {
proton-vpn-killswitch-network-manager = callPackage ../development/python-modules/proton-vpn-killswitch-network-manager { };
proton-vpn-killswitch-network-manager-wireguard = callPackage ../development/python-modules/proton-vpn-killswitch-network-manager-wireguard { };
proton-vpn-logger = callPackage ../development/python-modules/proton-vpn-logger { };
proton-vpn-network-manager = callPackage ../development/python-modules/proton-vpn-network-manager { };
proton-vpn-network-manager-openvpn = callPackage ../development/python-modules/proton-vpn-network-manager-openvpn { };
proton-vpn-network-manager-wireguard = callPackage ../development/python-modules/proton-vpn-network-manager-wireguard { };
proton-vpn-session = callPackage ../development/python-modules/proton-vpn-session { };
protonup-ng = callPackage ../development/python-modules/protonup-ng { };