(address . guix-patches@gnu.org)
Adding duply as frontend for duplicity. Requires duplicity version >= 2.1.0.
---
gnu/packages/backup.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
Toggle diff (70 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 12c4a45b9d..801f942076 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Feng Shu <tumashu@163.com>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
+;;; Copyright © 2023 Jonathan Pieper <jpieper@mailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -49,6 +50,7 @@ (define-module (gnu packages backup)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system python)
@@ -174,6 +176,44 @@ (define-public duplicity
spying and/or modification by the server.")
(license license:gpl2+)))
+(define-public duply
+ (package
+ (name "duply")
+ (version "2.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
"https://downloads.sourceforge.net/project/ftplicity/duply%20%28simple%20duplicity%29/"
+ (version-major+minor version)
+ ".x/duply_" (version-major+minor+point
version) ".tgz"))
+ (sha256
+ (base32 "19cr82rlvyv9v8j8aav5wazay4zkdxd3xjxj2kk21rasmvqq3kqa"))))
+ (build-system copy-build-system)
+ (propagated-inputs
+ `(("duplicity" ,duplicity)
+ ("python" ,python-wrapper)))
+ (arguments
+ (list
+ #:install-plan #~'(("duply" "bin/duply"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (python (string-append (assoc-ref inputs
"python") "/bin/python")))
+ (wrap-program (string-append out "/bin/duply")
+ `("DUPL_PYTHON_BIN" = (,python)))))))))
+ (home-page "https://duply.net")
+ (synopsis "duply is a frontend for the mighty duplicity magic.")
+ (description
+ "duply simplifies running duplicity with cron or on command line by:
+
+- keeping recurring settings in profiles per backup job
+- automated import/export of keys between profile and keyring
+- enabling batch operations eg. backup_verify_purge
+- executing pre/post scripts
+- precondition checking for flawless duplicity operation")
+ (license license:gpl2+)))
+
(define-public par2cmdline
(package
(name "par2cmdline")
--
2.41.0