summary refs log tree commit diff
path: root/pkgs/applications/backup/vorta/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/backup/vorta/default.nix')
-rw-r--r--pkgs/applications/backup/vorta/default.nix86
1 files changed, 69 insertions, 17 deletions
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index f1c0b056c82..dc02e65bb7b 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -1,39 +1,91 @@
-{ buildPythonApplication, fetchFromGitHub, lib, paramiko, peewee, pyqt5
-, python-dateutil, APScheduler, psutil, qdarkstyle, secretstorage
-, appdirs, setuptools, qt5
+{ lib
+, python3Packages
+, fetchFromGitHub
+, wrapQtAppsHook
+, borgbackup
+, qt5
 }:
 
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "vorta";
-  version = "0.6.26";
+  version = "0.7.7";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "189kzwdmissg9142cd7wvxa1rvc2y7lysgr7if99zc7ks59mv6dq";
+    sha256 = "sha256-AH9CvoWAaNLPLC+NL+VXtYq9CNCMt0AFtC1ZGXSlcHQ=";
   };
 
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  propagatedBuildInputs = with python3Packages; [
+    paramiko
+    peewee
+    pyqt5
+    python-dateutil
+    APScheduler
+    psutil
+    qdarkstyle
+    secretstorage
+    appdirs
+    setuptools
+  ];
+
   postPatch = ''
-    sed -i -e '/setuptools_git/d' -e '/pytest-runner/d' setup.cfg
+    substituteInPlace setup.cfg \
+    --replace setuptools_git "" \
+    --replace pytest-runner ""
+
+    substituteInPlace src/vorta/assets/metadata/com.borgbase.Vorta.desktop \
+    --replace Exec=vorta "Exec=$out/bin/vorta" \
+    --replace com.borgbase.Vorta "com.borgbase.Vorta-symbolic"
   '';
 
-  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+  postInstall = ''
+    install -Dm644 src/vorta/assets/metadata/com.borgbase.Vorta.desktop $out/share/applications/com.borgbase.Vorta.desktop
+  '';
 
-  propagatedBuildInputs = [
-    paramiko peewee pyqt5 python-dateutil APScheduler psutil qdarkstyle
-    secretstorage appdirs setuptools
-  ];
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${qtWrapperArgs[@]}"
+      --prefix PATH : ${lib.makeBinPath [ borgbackup ]}
+    )
+  '';
 
-  # QT setup in tests broken.
-  doCheck = false;
+  checkInputs = with python3Packages; [
+    pytest-qt
+    pytest-mock
+    pytestCheckHook
+  ];
 
-  postFixup = ''
-    wrapQtApp $out/bin/vorta
+  preCheck = ''
+    export HOME=$(mktemp -d)
+    # For tests/test_misc.py::test_autostart
+    mkdir -p $HOME/.config/autostart
+    export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
+    export QT_QPA_PLATFORM=offscreen
   '';
 
+  disabledTestPaths = [
+    "tests/test_archives.py"
+    "tests/test_borg.py"
+    "tests/test_lock.py"
+    "tests/test_notifications.py"
+  ];
+
+  disabledTests = [
+    "diff_archives_dict_issue-Users"
+    "diff_archives-test"
+    "test_repo_unlink"
+    "test_repo_add_success"
+    "test_ssh_dialog"
+    "test_create"
+    "test_scheduler_create_backup"
+  ];
+
   meta = with lib; {
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     homepage = "https://vorta.borgbase.com/";
     maintainers = with maintainers; [ ma27 ];
     description = "Desktop Backup Client for Borg";