about summary refs log tree commit diff
path: root/pkgs/applications/networking/protonvpn-gui
diff options
context:
space:
mode:
authorP. <d.ol.rod@tutanota.com>2023-12-07 07:01:42 -0600
committerP. <d.ol.rod@tutanota.com>2023-12-07 07:01:42 -0600
commitd392a5dab9f1d7228f0a9d2eeceedb0cb7b2838b (patch)
tree12a9e84be16539ba1bfb9b6386b286a925a9804c /pkgs/applications/networking/protonvpn-gui
parentbbadbae8b77ac2fd1e46822fd7932f631e1b767e (diff)
protonvpn-gui: 1.12.0 -> 4.1.0-unstable-2023-10-25
Diffstat (limited to 'pkgs/applications/networking/protonvpn-gui')
-rw-r--r--pkgs/applications/networking/protonvpn-gui/default.nix111
1 files changed, 70 insertions, 41 deletions
diff --git a/pkgs/applications/networking/protonvpn-gui/default.nix b/pkgs/applications/networking/protonvpn-gui/default.nix
index 14844161d18e2..df0afdee4da4d 100644
--- a/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -1,74 +1,103 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, wrapGAppsHook
-, gdk-pixbuf
-, glib-networking
 , gobject-introspection
-, imagemagick
-, librsvg
-, pango
-, webkitgtk
-# Python libs
-, protonvpn-nm-lib
-, psutil
-# Optionals
+, setuptools
+, wrapGAppsHook
+, 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
+, pytestCheckHook
 , withIndicator ? true
-, libappindicator-gtk3 }:
+, libappindicator-gtk3
+, libayatana-appindicator
+}:
 
 buildPythonApplication rec {
   pname = "protonvpn-gui";
-  version = "1.12.0";
+  version = "4.1.0-unstable-2023-10-25";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
-    repo = "linux-app";
-    rev = "refs/tags/${version}";
-    sha256 = "sha256-MPS4d/yNkccsc/j85h7/4k4xL8uSCvhj/9JWPa7ezLY=";
+    repo = "proton-vpn-gtk-app";
+    rev = "713324e9e4ee9f030c8115072cae379eb3340c42";
+    hash = "sha256-DfuM4b2cSIA8j9Ux3TzInRCvzQGb9LvJDSwRhfadBPY=";
   };
 
   nativeBuildInputs = [
-    gdk-pixbuf
+    # Needed for the NM namespace
     gobject-introspection
-    imagemagick
+    setuptools
     wrapGAppsHook
   ];
 
+  buildInputs = lib.optionals withIndicator [
+    # Adds AppIndicator3 namespace
+    libappindicator-gtk3
+    # Adds AyatanaAppIndicator3 namespace
+    libayatana-appindicator
+  ];
+
   propagatedBuildInputs = [
-    glib-networking # needed for the login captcha
-    protonvpn-nm-lib
-    psutil
+    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
   ];
 
-  buildInputs = [
-    librsvg
-    pango
-    webkitgtk
-  ] ++ lib.optionals withIndicator [ libappindicator-gtk3 ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=proton --cov-report=html --cov-report=term" ""
+  '';
 
   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
+    mkdir -p $out/share/{applications,pixmaps}
+    install -Dm 644 ${src}/rpmbuild/SOURCES/protonvpn-app.desktop $out/share/applications
+    install -Dm 644 ${src}/rpmbuild/SOURCES/proton-vpn-logo.svg $out/share/pixmaps
+  '';
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-    install -Dm644 protonvpn.desktop -t $out/share/applications/
-    substituteInPlace $out/share/applications/protonvpn.desktop \
-      --replace 'protonvpn-logo' protonvpn
+  preCheck = ''
+    # Needed for Permission denied: '/homeless-shelter'
+    export HOME=$(mktemp -d)
   '';
 
-  # Project has a dummy test
+  # Gets a segmentation fault after the widgets test
   doCheck = false;
 
   meta = with lib; {
-    description = "Official ProtonVPN Linux app";
-    homepage = "https://github.com/ProtonVPN/linux-app";
-    maintainers = with maintainers; [ wolfangaukang ];
+    description = "Proton VPN GTK app for Linux";
+    homepage = "https://github.com/ProtonVPN/proton-vpn-gtk-app";
     license = licenses.gpl3Plus;
-    mainProgram = "protonvpn";
     platforms = platforms.linux;
+    mainProgram = "protonvpn-app";
+    maintainers = with maintainers; [ wolfangaukang ];
   };
 }