diff mbox series

[bug#52659,v3,2/2] gnu: Add Vorta.

Message ID 5b38cd43b84536e5ec9879ce036625700e783d0d.1639942526.git.leo@famulari.name
State Accepted
Headers show
Series [bug#52659,v3,1/2] gnu: Add python-pytest-faulthandler. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Leo Famulari Dec. 19, 2021, 7:35 p.m. UTC
* gnu/packages/backup.scm (vorta): New variable.
---
 gnu/packages/backup.scm | 67 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 66 insertions(+), 1 deletion(-)

Comments

Leo Famulari Dec. 20, 2021, 5:55 p.m. UTC | #1
On Mon, Dec 20, 2021 at 09:43:51AM +0100, Xinglu Chen wrote:
> Result of running `guix review b960924583def5400b477d3eea839c78ec8cf950.1639942526.git.leo@famulari.name': (still a WIP)

What is `guix review`? :)
Xinglu Chen Dec. 20, 2021, 7:40 p.m. UTC | #2
On Mon, Dec 20 2021, Leo Famulari wrote:

> On Mon, Dec 20, 2021 at 09:43:51AM +0100, Xinglu Chen wrote:
>> Result of running `guix review b960924583def5400b477d3eea839c78ec8cf950.1639942526.git.leo@famulari.name': (still a WIP)
>
> What is `guix review`? :)

Hehe, it’s still a WIP (which is why I am testing it), and as the name
suggests, it makes it easier to review packages.  It can read the diff
between two commits and determine the packages that have been changed,
and then it will build and lint those package.  Or it can be given a
message id (as you see above) and use the ‘b4’ program to fetch patches
from a public-inbox archive[1], and then apply them, build and lint the
packages.

I still have some work to do on Guix Home[2], but after that I will
hopefully send some patches for this ‘guix review’ command.  :-)

[1]: Like this one <https://yhetil.org>
[2]: <https://yhetil.org/guix-devel/878rwlu4uz.fsf@inria.fr>
Leo Famulari Dec. 20, 2021, 7:51 p.m. UTC | #3
On Mon, Dec 20, 2021 at 08:40:19PM +0100, Xinglu Chen wrote:
> Hehe, it’s still a WIP (which is why I am testing it), and as the name
> suggests, it makes it easier to review packages.  It can read the diff
> between two commits and determine the packages that have been changed,
> and then it will build and lint those package.  Or it can be given a
> message id (as you see above) and use the ‘b4’ program to fetch patches
> from a public-inbox archive[1], and then apply them, build and lint the
> packages.
> 
> I still have some work to do on Guix Home[2], but after that I will
> hopefully send some patches for this ‘guix review’ command.  :-)

Cool, I'm looking forward to it.
Leo Famulari Jan. 26, 2022, 7:18 p.m. UTC | #4
On Sun, Dec 19, 2021 at 02:35:28PM -0500, Leo Famulari wrote:
> * gnu/packages/backup.scm (vorta): New variable.

Pushed as c11b585a819a908f866d6072075a27fcb4e0e637
diff mbox series

Patch

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index fdb84898bb..2a47b759d7 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 <bavier@posteo.net>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
-;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
@@ -40,6 +40,7 @@ 
 (define-module (gnu packages backup)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -47,6 +48,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 +78,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 +1186,63 @@  (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
+     (list
+      #: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
+          (add-after 'unpack 'patch-borg-path
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/vorta/borg/borg_job.py"
+                (("which\\('borg'\\)")
+                 (string-append "which('" #$(this-package-input "borg")
+                                "/bin/borg')")))))
+          ;; 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
+     (list python-pytest-mock
+           python-pytest-qt
+           python-pytest-runner
+           python-setuptools-git))
+    (inputs
+     (list borg
+           python-appdirs
+           python-dateutil
+           python-keyring
+           python-paramiko
+           python-peewee
+           python-psutil
+           python-pyqt
+           python-secretstorage
+           ;; XXX This is included so that the qt-wrap phase picks it up.
+           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+)))