gnu: Add python-pyshp.
[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, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
6 ;;; Copyright © 2019, 2021 Leo Famulari <leo@famulari.name>
7 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
8 ;;;
9 ;;; This file is part of GNU Guix.
10 ;;;
11 ;;; GNU Guix is free software; you can redistribute it and/or modify it
12 ;;; under the terms of the GNU General Public License as published by
13 ;;; the Free Software Foundation; either version 3 of the License, or (at
14 ;;; your option) any later version.
15 ;;;
16 ;;; GNU Guix is distributed in the hope that it will be useful, but
17 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 ;;; GNU General Public License for more details.
20 ;;;
21 ;;; You should have received a copy of the GNU General Public License
22 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24 (define-module (gnu packages rsync)
25 #:use-module (gnu packages)
26 #:use-module (gnu packages acl)
27 #:use-module (gnu packages base)
28 #:use-module (gnu packages compression)
29 #:use-module (gnu packages digest)
30 #:use-module (gnu packages perl)
31 #:use-module (gnu packages popt)
32 #:use-module ((guix licenses) #:prefix license:)
33 #:use-module (guix packages)
34 #:use-module (guix download)
35 #:use-module (guix git-download)
36 #:use-module (guix build-system cmake)
37 #:use-module (guix build-system gnu))
38
39 (define-public rsync
40 (package
41 (name "rsync")
42 (version "3.1.3")
43 (source (origin
44 (method url-fetch)
45 (uri (string-append "https://rsync.samba.org/ftp/rsync/src/rsync-"
46 version ".tar.gz"))
47 (sha256
48 (base32
49 "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m"))))
50 (build-system gnu-build-system)
51 (arguments
52 `(#:configure-flags
53 ;; The bundled copies are preferred by default.
54 (list "--without-included-zlib"
55 "--without-included-popt")))
56 (native-inputs
57 `(("perl" ,perl)))
58 (inputs
59 `(("acl" ,acl)
60 ("popt" ,popt)
61 ("zlib" ,zlib)))
62 (synopsis "Remote (and local) file copying tool")
63 (description
64 "Rsync is a fast and versatile file copying tool. It can copy locally,
65 to/from another host over any remote shell, or to/from a remote rsync daemon.
66 Its delta-transfer algorithm reduces the amount of data sent over the network
67 by sending only the differences between the source files and the existing
68 files in the destination.")
69 (license license:gpl3+)
70 (home-page "https://rsync.samba.org/")))
71
72 (define-public rsync-next
73 (package
74 (name "rsync")
75 (version "3.2.3")
76 (source (origin
77 (method url-fetch)
78 (uri (string-append "https://rsync.samba.org/ftp/rsync/src/rsync-"
79 version ".tar.gz"))
80 (sha256
81 (base32
82 "03p5dha9g9krq61mdbcrjkpz5nglri0009ks2vs9k97f9i83rk5y"))))
83 (build-system gnu-build-system)
84 (arguments
85 `(#:configure-flags
86 ;; The bundled copies are preferred by default.
87 (list "--without-included-zlib"
88 "--without-included-popt"
89 ;; Avoid these dependencies for now.
90 "--disable-lz4"
91 "--disable-openssl"
92 "--disable-zstd")))
93 (native-inputs
94 `(("perl" ,perl)))
95 (inputs
96 `(("acl" ,acl)
97 ("popt" ,popt)
98 ("xxhash" ,xxhash)
99 ("zlib" ,zlib)))
100 (synopsis "Remote (and local) file copying tool")
101 (description
102 "Rsync is a fast and versatile file copying tool. It can copy locally,
103 to/from another host over any remote shell, or to/from a remote rsync daemon.
104 Its delta-transfer algorithm reduces the amount of data sent over the network
105 by sending only the differences between the source files and the existing
106 files in the destination.")
107 (license license:gpl3+)
108 (home-page "https://rsync.samba.org/")))
109
110 (define-public librsync
111 (package
112 (name "librsync")
113 (version "2.3.2")
114 (source (origin
115 (method git-fetch)
116 (uri (git-reference
117 (url "https://github.com/librsync/librsync")
118 (commit (string-append "v" version))))
119 (file-name (git-file-name name version))
120 (sha256
121 (base32
122 "0bn29npmbw26akc6y54661irpdh6qcivcs6q48cgp3llklhhxp0q"))))
123 (build-system cmake-build-system)
124 (inputs
125 `(("popt" ,popt)))
126 (native-inputs
127 `(("which" ,which)
128 ("perl" ,perl)))
129 (home-page "http://librsync.sourceforge.net/")
130 (synopsis "Implementation of the rsync remote-delta algorithm")
131 (description
132 "Librsync is a free software library that implements the rsync
133 remote-delta algorithm. This algorithm allows efficient remote updates of a
134 file, without requiring the old and new versions to both be present at the
135 sending end. The library uses a \"streaming\" design similar to that of zlib
136 with the aim of allowing it to be embedded into many different applications.")
137 (license license:lgpl2.1+)))
138
139 (define-public librsync-0.9
140 (package
141 (inherit librsync)
142 (version "0.9.7")
143 (source (origin
144 (method url-fetch)
145 (uri (string-append "mirror://sourceforge/librsync/librsync/"
146 version "/librsync-" version ".tar.gz"))
147 (sha256
148 (base32
149 "1mj1pj99mgf1a59q9f2mxjli2fzxpnf55233pc1klxk2arhf8cv6"))))
150 (build-system gnu-build-system)
151 (arguments '(#:configure-flags '("--enable-shared")))
152 (inputs '())))