1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 replaceVars, 7 dbus-python, 8 distro, 9 jinja2, 10 keyring, 11 proton-client, 12 pygobject3, 13 pyxdg, 14 systemd, 15 ncurses, 16 networkmanager, 17 pkgs-systemd, 18 python, 19 xdg-utils, 20}: 21 22buildPythonPackage rec { 23 pname = "protonvpn-nm-lib"; 24 version = "3.16.0"; 25 format = "setuptools"; 26 disabled = pythonOlder "3.7"; 27 28 src = fetchFromGitHub { 29 owner = "ProtonVPN"; 30 repo = "protonvpn-nm-lib"; 31 tag = version; 32 hash = "sha256-n3jfBHMYqyQZgvFFJcylNbTWZ3teuqhdelTfpNrwWuA="; 33 }; 34 35 propagatedBuildInputs = [ 36 dbus-python 37 distro 38 jinja2 39 keyring 40 proton-client 41 pygobject3 42 pyxdg 43 systemd 44 ncurses 45 networkmanager 46 pkgs-systemd 47 xdg-utils 48 ]; 49 50 patches = [ 51 (replaceVars ./0001-Patching-GIRepository.patch { 52 networkmanager_path = "${networkmanager}/lib/girepository-1.0"; 53 }) 54 ]; 55 56 postPatch = '' 57 substituteInPlace protonvpn_nm_lib/core/dbus/dbus_reconnect.py \ 58 --replace "exec_start = python_interpreter_path + \" \" + python_service_path" "exec_start = \"$out/bin/protonvpn_reconnector.py\"" 59 ''; 60 61 postInstall = '' 62 makeWrapper ${python.interpreter} $out/bin/protonvpn_reconnector.py \ 63 --add-flags $out/${python.sitePackages}/protonvpn_nm_lib/daemon/dbus_daemon_reconnector.py \ 64 --prefix PYTHONPATH : "$PYTHONPATH" 65 ''; 66 67 # Checks cannot be run in the sandbox 68 # "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory" 69 doCheck = false; 70 71 pythonImportsCheck = [ "protonvpn_nm_lib" ]; 72 73 meta = with lib; { 74 description = "ProtonVPN NetworkManager Library intended for every ProtonVPN service user"; 75 mainProgram = "protonvpn_reconnector.py"; 76 homepage = "https://github.com/ProtonVPN/protonvpn-nm-lib"; 77 license = licenses.gpl3Only; 78 maintainers = [ ]; 79 platforms = platforms.linux; 80 }; 81}