[PATCH] Add duply.

  • Open
  • quality assurance status badge
Details
2 participants
  • Jonathan Pieper
  • Steve George
Owner
Somebody
Submitted by
Jonathan Pieper
Severity
normal
J
J
Jonathan Pieper wrote on 1 Nov 2023 19:52
(address . guix-patches@gnu.org)
ce0ba20e-4ba3-b886-2068-a7333edabb90@mailbox.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
S
S
Steve George wrote on 2 Apr 17:13 +0200
owner 66892
(address . control@debbugs.gnu.org)
1712070786-3852-bts-steve@futurile.net
owner 66892 !
thanks
J
J
Jonathan Pieper wrote on 6 Apr 11:34 +0200
[PATCH] gnu: Add duply.
(address . 66892@debbugs.gnu.org)(name . Jonathan Pieper)(address . jpieper@mailbox.org)
af0089688c2aa487446af8f403cfc9906d83d9cb.1712396061.git.jpieper@mailbox.org
* gnu/packages/backup.scm (duply): Add variable.

Fixed formatting with guix lint and guix style.
Adjusted home-page, synopsis and description.
Added input bash-minimal for wrapped program.
Included license in shared documentation folder.
Updated version to 2.5.2.

Change-Id: Ib2024ae01d7fd57f4b90ed382fc2bdba0de2af2a
---
gnu/packages/backup.scm | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (79 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index affd659fad..c35b4da4b9 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)
@@ -194,6 +196,54 @@ (define-public duplicity
spying and/or modification by the server.")
(license license:gpl2+)))
+(define-public duply
+ (package
+ (name "duply")
+ (version "2.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/ftplicity/duply%20%28simple%20duplicity%29/"
+ (version-major+minor version) ".x/duply_"
+ (version-major+minor+point version) ".tgz"))
+ (sha256
+ (base32 "0iyyx60nyxq0z6hvl4szxx64wg548fi3n3s5vrac0ai128pclpxk"))))
+ (build-system copy-build-system)
+ (inputs (list bash-minimal)) ; to run the wrapped program
+ (propagated-inputs (list duplicity python))
+ (arguments
+ (list
+ #:install-plan #~'(("duply" "bin/duply")
+ ("gpl-2.0.txt" #$(string-append "share/doc/" name "-"
+ version "/LICENSE.txt"))
+ ("CHANGELOG.txt" #$(string-append "share/doc/" name "-"
+ version "/CHANGELOG.txt")))
+ #: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/python3")))
+ (wrap-program (string-append out "/bin/duply")
+ `("DUPL_PYTHON_BIN" =
+ (,python)))))))))
+ (home-page "https://duply.net/Duply_(simple_duplicity)")
+ (synopsis "Wrapper for automated duplicity backup configuration")
+ (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")

base-commit: bfc614397b5f146056bda4b5a8e3a67bd1ca7b23
--
2.41.0
J
J
Jonathan Pieper wrote on 9 Apr 20:39 +0200
(address . 66892@debbugs.gnu.org)
87sezumld0.fsf@mailbox.org
Hello,

I identified a discrepancy in the license specification within my most recent patch submission. It was mistakenly indicated as GPL-2.0+ when it should have been specified as GPL-2.0 (GNU General Public License, version 2).

I have addressed and corrected this oversight in the forthcoming patch. The corrected license information can be reviewed at: https://duply.net/License.

I apologize for any inconvenience this may have caused and appreciate your understanding. Please feel free to reach out if you have any questions or need further clarification.


Best regards,
Jonathan Pieper
J
J
Jonathan Pieper wrote on 9 Apr 20:43 +0200
[PATCH] gnu: Add duply.
(address . 66892@debbugs.gnu.org)(name . Jonathan Pieper)(address . jpieper@mailbox.org)
da30d159dd0275249896d55d4a578c18597443bd.1712688210.git.jpieper@mailbox.org
Change-Id: I0da1ebc0571c34d3d049eb5736393abead9e08b3
---
gnu/packages/backup.scm | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (79 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 699f4cbc8f..e6fcc48f20 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, 2024 Jonathan Pieper <jpieper@mailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -43,6 +44,7 @@
(define-module (gnu packages backup)
#:use-module ((guix licenses) #:prefix license:)
#: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)
@@ -194,6 +196,54 @@ (define-public duplicity
spying and/or modification by the server.")
(license license:gpl2+)))
+(define-public duply
+ (package
+ (name "duply")
+ (version "2.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/ftplicity/duply%20%28simple%20duplicity%29/"
+ (version-major+minor version) ".x/duply_"
+ (version-major+minor+point version) ".tgz"))
+ (sha256
+ (base32 "0iyyx60nyxq0z6hvl4szxx64wg548fi3n3s5vrac0ai128pclpxk"))))
+ (build-system copy-build-system)
+ (inputs (list bash-minimal)) ; to run the wrapped program
+ (propagated-inputs (list duplicity python))
+ (arguments
+ (list
+ #:install-plan #~'(("duply" "bin/duply")
+ ("gpl-2.0.txt" #$(string-append "share/doc/" name "-"
+ version "/LICENSE.txt"))
+ ("CHANGELOG.txt" #$(string-append "share/doc/" name "-"
+ version "/CHANGELOG.txt")))
+ #: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/python3")))
+ (wrap-program (string-append out "/bin/duply")
+ `("DUPL_PYTHON_BIN" =
+ (,python)))))))))
+ (home-page "https://duply.net/Duply_(simple_duplicity)")
+ (synopsis "Wrapper for automated duplicity backup configuration")
+ (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")

base-commit: 9a1abc1352b772e7062a170083344f4803280979
--
2.41.0
?