diff options
Diffstat (limited to 'pkgs/applications/networking/protonvpn-gui/default.nix')
-rw-r--r-- | pkgs/applications/networking/protonvpn-gui/default.nix | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/applications/networking/protonvpn-gui/default.nix b/pkgs/applications/networking/protonvpn-gui/default.nix new file mode 100644 index 00000000000..ecfde0a39c2 --- /dev/null +++ b/pkgs/applications/networking/protonvpn-gui/default.nix @@ -0,0 +1,71 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, wrapGAppsHook +, gobject-introspection +, imagemagick +, networkmanager +, pango +, webkitgtk +# Python libs +, protonvpn-nm-lib +, psutil +# Optionals +, withIndicator ? true +, libappindicator-gtk3 }: + +buildPythonApplication rec { + pname = "protonvpn-gui"; + version = "1.7.0"; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "linux-app"; + rev = version; + sha256 = "sha256-uzooFQBq2mhqTBr/cgea5cVQ889P70sgSk2vjXBQEfw="; + }; + + nativeBuildInputs = [ + gobject-introspection + imagemagick + wrapGAppsHook + ]; + + propagatedBuildInputs = [ + protonvpn-nm-lib + psutil + ]; + + buildInputs = [ + # To avoid enabling strictDeps = false (#56943) + gobject-introspection + networkmanager + pango + webkitgtk + ] ++ lib.optionals withIndicator [ libappindicator-gtk3 ]; + + postInstall = '' + # Setting icons + for size in 16 32 48 64 72 96 128 192 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize $size'x'$size \ + protonvpn_gui/assets/icons/protonvpn-logo.png \ + $out/share/icons/hicolor/$size'x'$size/apps/protonvpn.png + done + + install -Dm644 protonvpn.desktop -t $out/share/applications/ + substituteInPlace $out/share/applications/protonvpn.desktop \ + --replace 'protonvpn-logo' protonvpn + ''; + + # Project has a dummy test + doCheck = false; + + meta = with lib; { + description = "Official ProtonVPN Linux app"; + homepage = "https://github.com/ProtonVPN/linux-app"; + maintainers = with maintainers; [ wolfangaukang ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} |