rsync.scm 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. (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 digest)
  29. #:use-module (gnu packages perl)
  30. #:use-module (gnu packages popt)
  31. #:use-module ((guix licenses) #:prefix license:)
  32. #:use-module (guix packages)
  33. #:use-module (guix download)
  34. #:use-module (guix git-download)
  35. #:use-module (guix build-system cmake)
  36. #:use-module (guix build-system gnu))
  37. (define-public rsync
  38. (package
  39. (name "rsync")
  40. (version "3.2.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. "03p5dha9g9krq61mdbcrjkpz5nglri0009ks2vs9k97f9i83rk5y"))))
  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. ;; Avoid these dependencies for now.
  55. "--disable-openssl")))
  56. (native-inputs
  57. (list perl))
  58. (inputs
  59. (list acl
  60. lz4
  61. popt
  62. xxhash
  63. zlib
  64. `(,zstd "lib")))
  65. (synopsis "Remote (and local) file copying tool")
  66. (description
  67. "Rsync is a fast and versatile file copying tool. It can copy locally,
  68. to/from another host over any remote shell, or to/from a remote rsync daemon.
  69. Its delta-transfer algorithm reduces the amount of data sent over the network
  70. by sending only the differences between the source files and the existing
  71. files in the destination.")
  72. (license license:gpl3+)
  73. (home-page "https://rsync.samba.org/")))
  74. (define-public librsync
  75. (package
  76. (name "librsync")
  77. (version "2.3.2")
  78. (source (origin
  79. (method git-fetch)
  80. (uri (git-reference
  81. (url "https://github.com/librsync/librsync")
  82. (commit (string-append "v" version))))
  83. (file-name (git-file-name name version))
  84. (sha256
  85. (base32
  86. "0bn29npmbw26akc6y54661irpdh6qcivcs6q48cgp3llklhhxp0q"))))
  87. (build-system cmake-build-system)
  88. (inputs
  89. (list popt))
  90. (native-inputs
  91. (list which perl))
  92. (home-page "http://librsync.sourceforge.net/")
  93. (synopsis "Implementation of the rsync remote-delta algorithm")
  94. (description
  95. "Librsync is a free software library that implements the rsync
  96. remote-delta algorithm. This algorithm allows efficient remote updates of a
  97. file, without requiring the old and new versions to both be present at the
  98. sending end. The library uses a \"streaming\" design similar to that of zlib
  99. with the aim of allowing it to be embedded into many different applications.")
  100. (license license:lgpl2.1+)))
  101. (define-public librsync-0.9
  102. (package
  103. (inherit librsync)
  104. (version "0.9.7")
  105. (source (origin
  106. (method url-fetch)
  107. (uri (string-append "mirror://sourceforge/librsync/librsync/"
  108. version "/librsync-" version ".tar.gz"))
  109. (sha256
  110. (base32
  111. "1mj1pj99mgf1a59q9f2mxjli2fzxpnf55233pc1klxk2arhf8cv6"))))
  112. (build-system gnu-build-system)
  113. (arguments '(#:configure-flags '("--enable-shared")))
  114. (inputs '())))