guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#66892] [PATCH] Add duply.


From: Jonathan Pieper
Subject: [bug#66892] [PATCH] Add duply.
Date: Wed, 1 Nov 2023 19:52:54 +0100

Adding duply as frontend for duplicity. Requires duplicity version >= 2.1.0.

---
 gnu/packages/backup.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

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







reply via email to

[Prev in Thread] Current Thread [Next in Thread]