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