diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-06-30 17:49:35 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-30 17:50:20 +0200 |
commit | fe84a00f87c9c6416076a3d3c0b15463976303be (patch) | |
tree | 91c8a6c4f7da3b8aafbd599d7bb5b1dbf3585e18 /gnu | |
parent | 949457c150b30f4a775d2da4d93e9297d417b1e1 (diff) | |
download | guix-fe84a00f87c9c6416076a3d3c0b15463976303be.tar guix-fe84a00f87c9c6416076a3d3c0b15463976303be.tar.gz |
gnu: Add casync.
* gnu/packages/sync.scm (casync): New variable.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/sync.scm | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index df1b963878..6e57aaba1b 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,17 +22,24 @@ (define-module (gnu packages sync) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) + #:use-module (gnu packages acl) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) + #:use-module (gnu packages rsync) + #:use-module (gnu packages selinux) #:use-module (gnu packages tls)) (define-public owncloud-client @@ -208,3 +216,46 @@ machines. Lsyncd is thus a light-weight live mirror solution that is comparatively easy to install not requiring new file systems or block devices and does not hamper local file system performance.") (license license:gpl2+))) + +(define-public casync + (package + (name "casync") + (version "2") + (home-page "https://github.com/systemd/casync/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "0znkp3fcksrykcsv06y2mjvf2lbwmin25snmvfa8i5qfm3f4rm88")) + (file-name (string-append name "-" version "-checkout")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx) + ("rsync" ,rsync))) ;for tests + (inputs + `(("xz" ,xz) ;for liblzma + ("zstd" ,zstd) + ("curl" ,curl) + ("acl" ,acl) + ("libselinux" ,libselinux) + ("fuse" ,fuse) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (synopsis "File synchronization and backup system") + (description + "casync is a @dfn{content-addressable data synchronizer} that can be used +as the basis of a backup system. It is: + +@itemize +@item A combination of the rsync algorithm and content-addressable storage; +@item An efficient way to store and retrieve multiple related versions of +large file systems or directory trees; +@item An efficient way to deliver and update OS, VM, IoT and container images +over the Internet in an HTTP and CDN friendly way; +@item An efficient backup system. +@end itemize\n") + (license license:lgpl2.1+))) |