From 65b81cd2481a83b9515e4c2930dc0c6f53ee1aa5 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou 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