diff mbox series

[bug#51502] gnu: Add borgmatic.

Message ID 20211030085748.24338-1-arunisaac@systemreboot.net
State Accepted
Headers show
Series [bug#51502] gnu: Add borgmatic. | expand

Checks

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

Commit Message

Arun Isaac Oct. 30, 2021, 8:57 a.m. UTC
* gnu/packages/backup.scm (borgmatic): New variable.
---
 gnu/packages/backup.scm | 50 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 49 insertions(+), 1 deletion(-)

Comments

Nicolas Goaziou Nov. 14, 2021, 2:25 p.m. UTC | #1
Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

> * gnu/packages/backup.scm (borgmatic): New variable.

Applied. Thank you.

> +    (description "borgmatic is simple, configuration-driven backup
> software

Fixed: ... is a simple...

Regards,
Arun Isaac Nov. 15, 2021, 12:26 p.m. UTC | #2
Hi Nicolas,

Thanks for pushing!

>> +    (description "borgmatic is simple, configuration-driven backup
>> software
>
> Fixed: ... is a simple...

Software is a mass noun similar to furniture, luggage, information,
etc. So, it is incorrect to say "borgmatic is /a/ software". "borgmatic
is software" is correct.

WDYT?

Cheers,
Arun
Nicolas Goaziou Nov. 15, 2021, 7:58 p.m. UTC | #3
Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

> Software is a mass noun similar to furniture, luggage, information,
> etc. So, it is incorrect to say "borgmatic is /a/ software". "borgmatic
> is software" is correct.
>
> WDYT?

Of course, it makes sense. I'll counter-fix it ASAP.

Regards,
Arun Isaac Nov. 16, 2021, 5:01 a.m. UTC | #4
>> Software is a mass noun similar to furniture, luggage, information,
>> etc. So, it is incorrect to say "borgmatic is /a/ software". "borgmatic
>> is software" is correct.
>>
>> WDYT?
>
> Of course, it makes sense. I'll counter-fix it ASAP.

Thank you!
diff mbox series

Patch

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 61d330e861..acde7e5b2f 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -4,7 +4,7 @@ 
 ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
@@ -80,6 +80,7 @@  (define-module (gnu packages backup)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rsync)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
@@ -1174,3 +1175,50 @@  (define-public disarchive
 Gzip will need to describe the order of files in the tarball and the
 compression parameters used by Gzip.")
     (license license:gpl3+)))
+
+(define-public borgmatic
+  (package
+    (name "borgmatic")
+    (version "1.5.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "borgmatic" version))
+       (sha256
+        (base32 "1rdpj1mii4fbyprg56krf5k0xsd97ghybaabr7zdhsrcsxf719ha"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Set absolute store path to borg.
+             (substitute* "borgmatic/commands/borgmatic.py"
+               (("location\\.get\\('local_path', 'borg'\\)")
+                (string-append "location.get('local_path', '"
+                               (assoc-ref inputs "borg") "/bin/borg"
+                               "')")))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               ;; Tests require the installed executable.
+               (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
+                                             ":" (getenv "PATH")))
+               (invoke "pytest")))))))
+    (inputs
+     `(("borg" ,borg)
+       ("python-colorama" ,python-colorama)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-requests" ,python-requests)
+       ("python-ruamel.yaml" ,python-ruamel.yaml)))
+    (native-inputs
+     `(("python-flexmock" ,python-flexmock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)))
+    (home-page "https://torsion.org/borgmatic/")
+    (synopsis "Simple, configuration-driven backup software")
+    (description "borgmatic is simple, configuration-driven backup software
+for servers and workstations.  Protect your files with client-side encryption.
+Backup your databases too.  Monitor it all with integrated third-party
+services.  borgmatic is powered by borg.")
+    (license license:gpl3+)))