Subject: [bug#52659] [PATCH 2/2] gnu: Add Vorta.

From: Leo Famulari <[email-masked]>
Date: Sun, 19 Dec 2021 12:44:13 -0500

* gnu/packages/backup.scm (vorta): New variable.
---
 gnu/packages/backup.scm | 58 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index fdb84898bb..f683266359 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2020 Eric Bavier <[email-masked]>
 ;;; Copyright © 2014 Ian Denhardt <[email-masked]>
-;;; Copyright © 2015, 2016, 2017 Leo Famulari <[email-masked]>
+;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <[email-masked]>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2017 Thomas Danckaert <[email-masked]>
 ;;; Copyright © 2017, 2021 Arun Isaac <[email-masked]>
@@ -47,6 +47,7 @@ (define-module (gnu packages backup)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages autotools)
@@ -76,12 +77,15 @@ (define-module (gnu packages backup)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml))
@@ -1181,3 +1185,55 @@ (define-public borgmatic
 your databases too.  Monitor it all with integrated third-party services.
 borgmatic is powered by borg.")
     (license license:gpl3+)))
+
+(define-public vorta
+  (package
+    (name "vorta")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "vorta" version))
+              (sha256
+               (base32
+                "1cl7kyh14h38xavbq23b8ifvk8abkiqdkpgaxfxvd223fm02zz26"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:imported-modules ((guix build qt-utils)
+                           (guix build cmake-build-system)
+                           (guix build qt-build-system)
+                           ,@%python-build-system-modules)
+       #:modules ((guix build utils)
+                  (guix build python-build-system)
+                  ((guix build qt-build-system) #:prefix qt:))
+       #:phases
+       (modify-phases %standard-phases
+         ;; XXX This phase tries to write to $HOME
+         (add-before 'sanity-check 'set-HOME
+           (lambda _
+             (setenv "HOME" "/tmp")))
+         ;; Otherwise, the user interface's icons will be missing.
+         (add-after 'wrap 'qt-wrap
+           (assoc-ref qt:%standard-phases 'qt-wrap)))))
+    (native-inputs
+     `(("python-pytest-mock" ,python-pytest-mock)
+       ("python-pytest-qt" ,python-pytest-qt)
+       ("python-pytest-runner" ,python-pytest-runner)
+       ("python-setuptools-git" ,python-setuptools-git)))
+    (inputs
+     `(("python-appdirs" ,python-appdirs)
+       ("python-dateutil" ,python-dateutil)
+       ("python-keyring" ,python-keyring)
+       ("python-paramiko" ,python-paramiko)
+       ("python-peewee" ,python-peewee)
+       ("python-psutil" ,python-psutil)
+       ("python-pyqt" ,python-pyqt)
+       ("python-secretstorage" ,python-secretstorage)
+       ;; XXX This is included so that the qt-wrap phase picks it up.
+       ("qtsvg" ,qtsvg)))
+    (home-page "https://github.com/borgbase/vorta")
+    (synopsis "Graphical backup client based on BorgBackup")
+    (description "Vorta is a graphical backup client based on the Borg backup
+tool.  It supports the use of remote backup repositories.  It can perform
+scheduled backups, and has a graphical tool for browsing and extracting the Borg
+archives.")
+    (license license:gpl3+)))
-- 
2.34.0