gnu: Remove ".git" from "https://github/…/….git".
[jackhill/guix/guix.git] / gnu / packages / rsync.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
4 ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
5 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
6 ;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
7 ;;;
8 ;;; This file is part of GNU Guix.
9 ;;;
10 ;;; GNU Guix is free software; you can redistribute it and/or modify it
11 ;;; under the terms of the GNU General Public License as published by
12 ;;; the Free Software Foundation; either version 3 of the License, or (at
13 ;;; your option) any later version.
14 ;;;
15 ;;; GNU Guix is distributed in the hope that it will be useful, but
16 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;;; GNU General Public License for more details.
19 ;;;
20 ;;; You should have received a copy of the GNU General Public License
21 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23 (define-module (gnu packages rsync)
24 #:use-module (gnu packages)
25 #:use-module (gnu packages acl)
26 #:use-module (gnu packages base)
27 #:use-module (gnu packages compression)
28 #:use-module (gnu packages perl)
29 #:use-module (gnu packages popt)
30 #:use-module ((guix licenses) #:prefix license:)
31 #:use-module (guix packages)
32 #:use-module (guix download)
33 #:use-module (guix git-download)
34 #:use-module (guix build-system cmake)
35 #:use-module (guix build-system gnu))
36
37 (define-public rsync
38 (package
39 (name "rsync")
40 (version "3.1.3")
41 (source (origin
42 (method url-fetch)
43 (uri (string-append "https://rsync.samba.org/ftp/rsync/src/rsync-"
44 version ".tar.gz"))
45 (sha256
46 (base32
47 "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m"))))
48 (build-system gnu-build-system)
49 (arguments
50 `(#:configure-flags
51 ;; The bundled copies are preferred by default.
52 (list "--without-included-zlib"
53 "--without-included-popt")))
54 (native-inputs
55 `(("perl" ,perl)))
56 (inputs
57 `(("acl" ,acl)
58 ("popt" ,popt)
59 ("zlib" ,zlib)))
60 (synopsis "Remote (and local) file copying tool")
61 (description
62 "Rsync is a fast and versatile file copying tool. It can copy locally,
63 to/from another host over any remote shell, or to/from a remote rsync daemon.
64 Its delta-transfer algorithm reduces the amount of data sent over the network
65 by sending only the differences between the source files and the existing
66 files in the destination.")
67 (license license:gpl3+)
68 (home-page "https://rsync.samba.org/")))
69
70 (define-public librsync
71 (package
72 (name "librsync")
73 (version "2.2.1")
74 (source (origin
75 (method git-fetch)
76 (uri (git-reference
77 (url "https://github.com/librsync/librsync")
78 (commit (string-append "v" version))))
79 (file-name (git-file-name name version))
80 (sha256
81 (base32
82 "08wdlxsa9zg2pyasz1lwg70d5psi4amv81v4yxwffx67ndzb9yp5"))))
83 (build-system cmake-build-system)
84 (inputs
85 `(("popt" ,popt)))
86 (native-inputs
87 `(("which" ,which)
88 ("perl" ,perl)))
89 (home-page "http://librsync.sourceforge.net/")
90 (synopsis "Implementation of the rsync remote-delta algorithm")
91 (description
92 "Librsync is a free software library that implements the rsync
93 remote-delta algorithm. This algorithm allows efficient remote updates of a
94 file, without requiring the old and new versions to both be present at the
95 sending end. The library uses a \"streaming\" design similar to that of zlib
96 with the aim of allowing it to be embedded into many different applications.")
97 (license license:lgpl2.1+)))
98
99 (define-public librsync-0.9
100 (package
101 (inherit librsync)
102 (version "0.9.7")
103 (source (origin
104 (method url-fetch)
105 (uri (string-append "mirror://sourceforge/librsync/librsync/"
106 version "/librsync-" version ".tar.gz"))
107 (sha256
108 (base32
109 "1mj1pj99mgf1a59q9f2mxjli2fzxpnf55233pc1klxk2arhf8cv6"))))
110 (build-system gnu-build-system)
111 (arguments '(#:configure-flags '("--enable-shared")))
112 (inputs '())))