[bug#33495] Add Rclone

Message ID 87pnuu0zrg.fsf@nicolasgoaziou.fr
State Accepted
Headers show
Series [bug#33495] Add Rclone | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Nicolas Goaziou Nov. 25, 2018, 12:25 a.m. UTC
Hello,

The following patch adds Rclone. Feedback welcome.

Regards,

Comments

Ludovic Courtès Nov. 27, 2018, 11:05 a.m. UTC | #1
Hello,

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

>>From 65b81cd2481a83b9515e4c2930dc0c6f53ee1aa5 Mon Sep 17 00:00:00 2001
> From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> Date: Sun, 25 Nov 2018 01:14:28 +0100
> Subject: [PATCH] gnu: Add rclone.
>
> * gnu/packages/sync.scm (rclone): New variable.

LGTM, thanks!

Ludo’.
Nicolas Goaziou Nov. 27, 2018, 8:41 p.m. UTC | #2
Hello,

ludo@gnu.org (Ludovic Courtès) writes:

> Hello,
>
> Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:
>
>>>From 65b81cd2481a83b9515e4c2930dc0c6f53ee1aa5 Mon Sep 17 00:00:00 2001
>> From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
>> Date: Sun, 25 Nov 2018 01:14:28 +0100
>> Subject: [PATCH] gnu: Add rclone.
>>
>> * gnu/packages/sync.scm (rclone): New variable.
>
> LGTM, thanks!

Applied. Thank you.

Regards,

Patch

From 65b81cd2481a83b9515e4c2930dc0c6f53ee1aa5 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sun, 25 Nov 2018 01:14:28 +0100
Subject: [PATCH] gnu: Add rclone.

* gnu/packages/sync.scm (rclone): New variable.
---
 gnu/packages/sync.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index e0b0af3d9..8f13b5dd2 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -22,6 +22,7 @@ 
 (define-module (gnu packages sync)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -243,3 +244,45 @@  over the Internet in an HTTP and CDN friendly way;
 @item An efficient backup system.
 @end itemize\n")
     (license license:lgpl2.1+)))
+
+(define-public rclone
+  (package
+    (name "rclone")
+    (version "1.45")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ncw/rclone.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "06xg0ibv9pnrnmabh1kblvxx1pk8h5rmkr9mjbymv497sx3zgz26"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/ncw/rclone"
+       #:install-source? #f
+       (modify-phases %standard-phases
+         ;; Fix failure during "check" phase: "/homeless-shelter: permission
+         ;; denied".
+         (add-after 'unpack 'set-home-directory
+           (lambda _ (setenv "HOME" "/tmp") #t)))))
+    (synopsis "@code{rsync} for cloud storage")
+    (description "@code{Rclone} is a command line program to sync files and
+directories to and from different cloud storage providers.
+
+Features include:
+@itemize
+@item MD5/SHA1 hashes checked at all times for file integrity
+@item Timestamps preserved on files
+@item Partial syncs supported on a whole file basis
+@item Copy mode to just copy new/changed files
+@item Sync (one way) mode to make a directory identical
+@item Check mode to check for file hash equality
+@item Can sync to and from network, e.g., two different cloud accounts
+@item Optional encryption (Crypt)
+@item Optional cache (Cache)
+@item Optional FUSE mount (rclone mount)
+@end itemize")
+    (home-page "https://rclone.org/")
+    (license license:expat)))
-- 
2.19.2