Vorta GUI for Borg backup

  • Done
  • quality assurance status badge
Details
2 participants
  • Leo Famulari
  • Xinglu Chen
Owner
unassigned
Submitted by
Leo Famulari
Severity
normal
L
L
Leo Famulari wrote on 19 Dec 2021 18:41
(address . guix-patches@gnu.org)
Yb9urPvB7nSu+EnW@jasmine.lan
Recently I noticed some discussion on #guix IRC about Vorta, a GUI for
Borg backup.

I actually have some ooooold patches for this, that I've been
maintaining privately for a while. I never submitted them because I
haven't been using Vorta, just Borg via cron.

But since I have this work, I might as well submit it since others are
asking about this program.

Please test!
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAmG/bqwACgkQJkb6MLrK
fwgSuRAA2ZLoc7Pf3ZnZWZOuGi6FtxPsnJOd/TJEgEvNZGSa5DIr14q9ebWtFNZm
M8aIBWCKxHGFphCQ1a6+m3oVDdStCgfe7r8Cq0GeC5ZVg5POFpsR1Lm4FzMJOFWJ
/rc5yMY30kudpU5GOBCLtKtu5xajxUY9QyoTJKC4mk3HWZ8iD3hJArDUIg80cTTJ
a/Cey8IHLcR+OHmiFzpa1KSfTcQXIjCI6uQn01kRJXvcnJEEADiZggj6kXVa/nfk
6uFwJ+bcwHjtMJFocHSDaVTJDGoE2qmgc/TX9IAOrXeh6E5z2LwA3A+tZphCuqw2
LjDUGZMC70jtIjKDBXI8XhrppRRVPxd8mP/IDH1MqNHYtLJFdd4WZsRkvm14DTKo
7RXsnuQk4GUfSpRBsFEgBYBFOk3OofEky+n0cCvnce/PZGrGRbMwzCMj905PmSIX
5ZMyatGVE4j6wQC5XR5Lv1HHIloQup/sMzauo9ze+Y9tW986668BNGe/5jQ67PiY
VmnJdBkXL3I3ljBANRls2otD332jK3VJW67IdN40LYc2YUsVUM9g+7cdYNNzO2wM
m3D3sHKe7T+GQuwubxsnJaJRAoTwYOWWdrHpz/00cm4ZqPdkgXLWUCDLyL3UrYUj
CV5JKWDbQOxDxzVhd+GVkIIf2JRonYDPR1Uyb6N1BBJ5MHVFreA=
=Uv+2
-----END PGP SIGNATURE-----


L
L
Leo Famulari wrote on 19 Dec 2021 18:44
[PATCH 2/2] gnu: Add Vorta.
(address . 52659@debbugs.gnu.org)
fd81c2ee558c58c0b316a3925f1fc393cf4550f3.1639935851.git.leo@famulari.name
* gnu/packages/backup.scm (vorta): New variable.
---
gnu/packages/backup.scm | 58 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 57 insertions(+), 1 deletion(-)

Toggle diff (95 lines)
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 <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>
@@ -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
L
L
Leo Famulari wrote on 19 Dec 2021 18:44
[PATCH 1/2] gnu: Add python-pytest-faulthandler.
(address . 52659@debbugs.gnu.org)
4c7b52460f5316ff206efb57aefcb856334dc85f.1639935851.git.leo@famulari.name
* gnu/packages/check.scm (python-pytest-faulthandler): New variable.
---
gnu/packages/check.scm | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 0a90a3b167..bdd0eae0aa 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -1481,6 +1481,27 @@ (define-public python-pytest-forked
side-effects (such as setting environment variables).")
(license license:expat)))
+;; This package is included in Pytest >=5.0.
+(define-public python-pytest-faulthandler
+ (package
+ (name "python-pytest-faulthandler")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-faulthandler" version))
+ (sha256
+ (base32
+ "1r8ssxfdib2d2mblmnm34q84lza5d8cq5n5p3sl4sd5chz7bnwpd"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/pytest-dev/pytest-faulthandler")
+ (synopsis "Pytest plugin that activates the faulthandler module for tests")
+ (description "This package provides a pytest plugin that automatically
+enables the @code{faulthandler} module during tests.")
+ (license license:expat)))
+
(define-public python-scripttest
(package
(name "python-scripttest")
--
2.34.0
L
L
Leo Famulari wrote on 19 Dec 2021 18:52
Re: [PATCH 2/2] gnu: Add Vorta.
(address . 52659@debbugs.gnu.org)
Yb9xUL+dyf4fVooN@jasmine.lan
On Sun, Dec 19, 2021 at 12:44:13PM -0500, Leo Famulari wrote:
Toggle quote (14 lines)
> * gnu/packages/backup.scm (vorta): New variable.

> + (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)))

You may notice an important missing dependency: Borg.

The build doesn't require it.

Should we propagate it? Find out where Vorta invokes it and patch the
invocation? Let the user install it (sounds like a recipe for
complaints)?
L
L
Leo Famulari wrote on 19 Dec 2021 19:56
[WIP v2 1/4] gnu: Add python-pytest-faulthandler.
(address . 52659@debbugs.gnu.org)
b960924583def5400b477d3eea839c78ec8cf950.1639940185.git.leo@famulari.name
* gnu/packages/check.scm (python-pytest-faulthandler): New variable.
---
gnu/packages/check.scm | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 0a90a3b167..e3bb53dae0 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -1481,6 +1481,26 @@ (define-public python-pytest-forked
side-effects (such as setting environment variables).")
(license license:expat)))
+;; This package is included in Pytest >=5.0.
+(define-public python-pytest-faulthandler
+ (package
+ (name "python-pytest-faulthandler")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-faulthandler" version))
+ (sha256
+ (base32
+ "1r8ssxfdib2d2mblmnm34q84lza5d8cq5n5p3sl4sd5chz7bnwpd"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-pytest python-setuptools-scm))
+ (home-page "https://github.com/pytest-dev/pytest-faulthandler")
+ (synopsis "Pytest plugin that activates the faulthandler module for tests")
+ (description "This package provides a pytest plugin that automatically
+enables the @code{faulthandler} module during tests.")
+ (license license:expat)))
+
(define-public python-scripttest
(package
(name "python-scripttest")
--
2.34.0
L
L
Leo Famulari wrote on 19 Dec 2021 19:56
[WIP v2 3/4] Vorta: patch Borg invocation
(address . 52659@debbugs.gnu.org)
9314f5c5a1726db8147dd70d1359baa77a03323c.1639940185.git.leo@famulari.name
---
gnu/packages/backup.scm | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

Toggle diff (30 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 5ce6e10bab..e2a37d182b 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1207,6 +1207,13 @@ (define-public vorta
((guix build qt-build-system) #:prefix qt:))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-borg-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((borg (string-append (assoc-ref inputs "borg")
+ "/bin/borg")))
+ (substitute* "src/vorta/borg/borg_job.py"
+ (("which\\('borg'\\)")
+ (string-append "which('" borg "')"))))))
;; XXX This phase tries to write to $HOME
(add-before 'sanity-check 'set-HOME
(lambda _
@@ -1220,7 +1227,8 @@ (define-public vorta
python-pytest-runner
python-setuptools-git))
(inputs
- (list python-appdirs
+ (list borg
+ python-appdirs
python-dateutil
python-keyring
python-paramiko
--
2.34.0
L
L
Leo Famulari wrote on 19 Dec 2021 19:56
[WIP v2 2/4] gnu: Add Vorta.
(address . 52659@debbugs.gnu.org)
f3c454d714614c67e16a6f694c7d189546dd57d2.1639940185.git.leo@famulari.name
* gnu/packages/backup.scm (vorta): New variable.
---
gnu/packages/backup.scm | 58 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 57 insertions(+), 1 deletion(-)

Toggle diff (95 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index fdb84898bb..5ce6e10bab 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>
@@ -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
+ (list python-pytest-mock
+ python-pytest-qt
+ python-pytest-runner
+ python-setuptools-git))
+ (inputs
+ (list 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+)))
--
2.34.0
L
L
Leo Famulari wrote on 19 Dec 2021 19:56
[WIP v2 4/4] WIP: Vorta: Use gexps instead of (assoc-ref ...)
(address . 52659@debbugs.gnu.org)
62457430763f08a6e6355c1a3fa134682cd2069b.1639940185.git.leo@famulari.name
---
gnu/packages/backup.scm | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index e2a37d182b..16353682dd 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1209,11 +1209,10 @@ (define-public vorta
(modify-phases %standard-phases
(add-after 'unpack 'patch-borg-path
(lambda* (#:key inputs #:allow-other-keys)
- (let ((borg (string-append (assoc-ref inputs "borg")
- "/bin/borg")))
- (substitute* "src/vorta/borg/borg_job.py"
- (("which\\('borg'\\)")
- (string-append "which('" borg "')"))))))
+ (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 _
--
2.34.0
L
L
Leo Famulari wrote on 19 Dec 2021 20:35
[PATCH v3 1/2] gnu: Add python-pytest-faulthandler.
(address . 52659@debbugs.gnu.org)
b960924583def5400b477d3eea839c78ec8cf950.1639942526.git.leo@famulari.name
* gnu/packages/check.scm (python-pytest-faulthandler): New variable.
---
gnu/packages/check.scm | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 0a90a3b167..e3bb53dae0 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -1481,6 +1481,26 @@ (define-public python-pytest-forked
side-effects (such as setting environment variables).")
(license license:expat)))
+;; This package is included in Pytest >=5.0.
+(define-public python-pytest-faulthandler
+ (package
+ (name "python-pytest-faulthandler")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-faulthandler" version))
+ (sha256
+ (base32
+ "1r8ssxfdib2d2mblmnm34q84lza5d8cq5n5p3sl4sd5chz7bnwpd"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-pytest python-setuptools-scm))
+ (home-page "https://github.com/pytest-dev/pytest-faulthandler")
+ (synopsis "Pytest plugin that activates the faulthandler module for tests")
+ (description "This package provides a pytest plugin that automatically
+enables the @code{faulthandler} module during tests.")
+ (license license:expat)))
+
(define-public python-scripttest
(package
(name "python-scripttest")
--
2.34.0
L
L
Leo Famulari wrote on 19 Dec 2021 20:35
[PATCH v3 2/2] gnu: Add Vorta.
(address . 52659@debbugs.gnu.org)
5b38cd43b84536e5ec9879ce036625700e783d0d.1639942526.git.leo@famulari.name
* gnu/packages/backup.scm (vorta): New variable.
---
gnu/packages/backup.scm | 67 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)

Toggle diff (111 lines)
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+)))
--
2.34.0
L
L
Leo Famulari wrote on 20 Dec 2021 18:55
(name . Xinglu Chen)(address . public@yoctocell.xyz)(address . 52659@debbugs.gnu.org)
YcDDmSHkwxIvI7kc@jasmine.lan
On Mon, Dec 20, 2021 at 09:43:51AM +0100, Xinglu Chen wrote:
Toggle quote (2 lines)
> Result of running `guix review b960924583def5400b477d3eea839c78ec8cf950.1639942526.git.leo@famulari.name': (still a WIP)

What is `guix review`? :)
X
X
Xinglu Chen wrote on 20 Dec 2021 20:40
(name . Leo Famulari)(address . leo@famulari.name)(address . 52659@debbugs.gnu.org)
87wnjzm5ek.fsf@yoctocell.xyz
On Mon, Dec 20 2021, Leo Famulari wrote:

Toggle quote (5 lines)
> 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
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmHA3CMVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5M/MQAKRMZtmb/GikVN1RAvdsxdI9Txay
X5SujFUdkjHoWcCx21/37RG1YN0TmUzBrZFyYN9LAm7uSkcTKNBpMiImyTLOKJyx
wUpp/ROTqLDSdxKjhti1uCtOfevXmk6r3Qx8j6dAE4jRil5zX/++DQl4i6x2LuHZ
NIrs4gcZS858jhv6+aPhMpxziHD8AZpD7gLnp5JfPdfcdctp7bkP1ZYzDCP4KlP4
Bl9cSMjZ0QPY4O0o+lgC/7wPMqJlGNuyZixqXwIDeCIypO9T/us05T18M0WXcJkw
q0Gpc0XhIwtSwRiMctQIgQFwsrtLv3oqIhHEx5Y+inZ1JZuP9PrY4d/hi9F/5gke
/IzlKzH/WFbjTOn+Z9hfB36HyvnXZEIYflOlHurAsnu8cQI9Ege0Uolu0glgOYem
eOmVenldg+HUs5/H/faafEol1wzXHWQuUXovfoh/GYUe+dmDCToJxIwgfHZ5ILFI
0iCsiwFeXVrY/szLoAgeI08GpP8kWEPdInXISoaDfIUQY0nbYQ61kU2Ej9IYNOmj
P5A/AiaC3yKM18cWokZSY+C8806UqNYXnEnFsksuwq1zYyZQ6dOsWEWwHYhGUX3E
Y2ICeKCBaebjPtBZteKCWF8HSbtIjHjcqp1qu5u65RRWQxOGkZFN8uO1zEVdGZkQ
xvwstCw5HN1P3cYf
=nVOo
-----END PGP SIGNATURE-----

L
L
Leo Famulari wrote on 20 Dec 2021 20:51
(name . Xinglu Chen)(address . public@yoctocell.xyz)(address . 52659@debbugs.gnu.org)
YcDez77dOSGsu/gM@jasmine.lan
On Mon, Dec 20, 2021 at 08:40:19PM +0100, Xinglu Chen wrote:
Toggle quote (11 lines)
> 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.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAmHA3s8ACgkQJkb6MLrK
fwgTnRAAvFloUlmGhew3gRrGvsDyNJfqR3J6PXZibqRmfNjavRiuLPIfegnHZ4gT
Pfh4dJa64fM3bFTVZwVTty3gJoBLA3t3Ihb/J+0kKr/hiGFOMgxy46z4tuMM/Vmz
e/sYByzKvmcc4COU1VqPpRPD4qlgk9TUuKkFlzhDROyp7zjQ2l9772E2lpJjKsLw
toleJU/3m10/ItlP3LnSoGTkYKlX2eFkkGcj9HRdmpbmB8Nme/mspgi6YNI+PIXZ
ZjB3HBwm4Fcv7rK1mn1GmVe+2+zC3BrD8n/folIxEba3fciCCjpM9L/CGm2yQyUv
vkqsLi6vMvVM7w2FYDEWAm2m2kyVuvuTLpCpaQGj0Dq0Jc0VXFIhszmHWPid2qd7
mF0EIpfzpY44klhXr9UdFSo1FB8cb8eFIts+TDYmq93D8oSgvnyPOtPRDBigJjgS
QOMXIZzBqeSUcBi1zvbsKfie1Pv1AIJOwaET2efavvfTFDjSkjTWNBjdJdVTBo1u
R54xl0gE6QdiRI4iDjNjtQ8PLQOr+TN5Lm0lsnIwtgUuGffU1MoWtNcyU4jGUvvc
QbFtgWKJFiYMLvP55l3dqC0dSPuIFdoA5DLXWeYJOYlOhXpA/9NOw8KFTgoUT9OD
epTec14dM1sOlN4+gSck9bzfVRExLHkwqgqjZ9vUiAtGX1Y3fPU=
=50ke
-----END PGP SIGNATURE-----


L
L
Leo Famulari wrote on 26 Jan 2022 20:18
Re: [PATCH v3 2/2] gnu: Add Vorta.
(address . 52659-done@debbugs.gnu.org)
YfGenL5eyaXXiuiY@jasmine.lan
On Sun, Dec 19, 2021 at 02:35:28PM -0500, Leo Famulari wrote:
Toggle quote (2 lines)
> * gnu/packages/backup.scm (vorta): New variable.

Pushed as c11b585a819a908f866d6072075a27fcb4e0e637
Closed
?