ftp.scm 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
  3. ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
  4. ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
  5. ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
  6. ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
  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. (define-module (gnu packages ftp)
  23. #:use-module ((guix licenses) #:select (gpl2+ gpl3+ clarified-artistic))
  24. #:use-module (guix build-system gnu)
  25. #:use-module (guix download)
  26. #:use-module (guix packages)
  27. #:use-module (gnu packages)
  28. #:use-module (gnu packages autotools)
  29. #:use-module (gnu packages check)
  30. #:use-module (gnu packages compression)
  31. #:use-module (gnu packages databases)
  32. #:use-module (gnu packages freedesktop)
  33. #:use-module (gnu packages gettext)
  34. #:use-module (gnu packages glib)
  35. #:use-module (gnu packages gtk)
  36. #:use-module (gnu packages libidn)
  37. #:use-module (gnu packages ncurses)
  38. #:use-module (gnu packages nettle)
  39. #:use-module (gnu packages pkg-config)
  40. #:use-module (gnu packages readline)
  41. #:use-module (gnu packages tls)
  42. #:use-module (gnu packages wxwidgets)
  43. #:use-module (gnu packages xml))
  44. (define-public lftp
  45. (package
  46. (name "lftp")
  47. (version "4.8.2")
  48. (source (origin
  49. (method url-fetch)
  50. ;; See https://lftp.tech/get.html for mirrors.
  51. (uri (list (string-append "https://lftp.tech/ftp/lftp-"
  52. version ".tar.xz")
  53. (string-append "https://lftp.tech/ftp/old/lftp-"
  54. version ".tar.xz")
  55. (string-append "ftp://ftp.st.ryukoku.ac.jp/pub/network/"
  56. "ftp/lftp/lftp-" version ".tar.xz")))
  57. (sha256
  58. (base32
  59. "176d90amkm1klwjpfpzdsvmjnyri8f74bv4fpip8app0fs25p1sw"))))
  60. (build-system gnu-build-system)
  61. (native-inputs
  62. `(("pkg-config" ,pkg-config)))
  63. (inputs
  64. `(("zlib" ,zlib)
  65. ("readline" ,readline)
  66. ("gnutls" ,gnutls)))
  67. (arguments
  68. `(#:phases
  69. (modify-phases %standard-phases
  70. ;; Disable tests that require network access, which is most of them.
  71. (add-before 'check 'disable-impure-tests
  72. (lambda _
  73. (substitute* "tests/Makefile"
  74. (("(ftp-cls-l|ftp-list|http-get)\\$\\(EXEEXT\\)") "")
  75. (("lftp-https-get ") "")))))
  76. #:configure-flags
  77. (list (string-append "--with-readline="
  78. (assoc-ref %build-inputs "readline")))))
  79. (home-page "https://lftp.tech/")
  80. (synopsis "Command-line file transfer program")
  81. (description
  82. "LFTP is a sophisticated FTP/HTTP client, and a file transfer program
  83. supporting a number of network protocols. Like Bash, it has job control and
  84. uses the Readline library for input. It has bookmarks, a built-in mirror
  85. command, and can transfer several files in parallel. It was designed with
  86. reliability in mind.")
  87. (license gpl3+)))
  88. (define-public ncftp
  89. (package
  90. (name "ncftp")
  91. (version "3.2.5")
  92. (source (origin
  93. (method url-fetch)
  94. (uri (string-append "ftp://ftp.ncftp.com/ncftp/ncftp-"
  95. version "-src.tar.bz2"))
  96. (sha256
  97. (base32
  98. "0hlx12i0lwi99qsrx7nccf4nvwjj2gych4yks5y179b1ax0y5sxl"))
  99. (modules '((guix build utils)))
  100. (snippet
  101. '(begin
  102. ;; Use the right 'rm' and 'ls'.
  103. (substitute* (cons "configure"
  104. (find-files "."
  105. "^(Makefile\\.in|.*\\.sh)$"))
  106. (("/bin/(rm|ls)" _ command)
  107. command))
  108. ;; This is free software, avoid any confusion.
  109. (substitute* (find-files "." "\\.c$")
  110. (("a freeware program")
  111. "free software"))))))
  112. (build-system gnu-build-system)
  113. (arguments
  114. '(#:phases
  115. (modify-phases %standard-phases
  116. (replace 'configure
  117. (lambda* (#:key outputs #:allow-other-keys)
  118. ;; This is an old 'configure' script that doesn't
  119. ;; understand variables passed as arguments.
  120. (let ((out (assoc-ref outputs "out")))
  121. (setenv "CONFIG_SHELL" (which "sh"))
  122. (setenv "SHELL" (which "sh"))
  123. (zero? (system* "./configure"
  124. (string-append "--prefix=" out)))))))
  125. #:tests? #f)) ;there are no tests
  126. (inputs `(("ncurses" ,ncurses)))
  127. (home-page "http://www.ncftp.com/ncftp/")
  128. (synopsis "Command-line File Transfer Protocol (FTP) client")
  129. (description
  130. "NcFTP Client (or just NcFTP) is a set of command-line programs to access
  131. File Transfer Protocol (FTP) servers. This includes 'ncftp', an interactive
  132. FTP browser, as well as non-interactive commands such as 'ncftpput' and
  133. 'ncftpget'.")
  134. (license clarified-artistic)))
  135. (define-public weex
  136. (package
  137. (name "weex")
  138. (version "2.8.2")
  139. (source
  140. (origin
  141. (method url-fetch)
  142. (uri
  143. (string-append "mirror://sourceforge/weex/weex/"
  144. "/weex_" version ".tar.gz"))
  145. (sha256
  146. (base32
  147. "1ir761hjncr1bamaqcw9j7x57xi3s9jax3223bxwbq30a0vsw1pd"))))
  148. (build-system gnu-build-system)
  149. (native-inputs
  150. `(("automake" ,automake)
  151. ("autoconf" ,autoconf)
  152. ("gettext" ,gettext-minimal)))
  153. (arguments
  154. `(#:phases
  155. (modify-phases %standard-phases
  156. (add-after 'unpack 'bootstrap
  157. (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
  158. (home-page "http://weex.sourceforge.net/")
  159. (synopsis "Non-interactive client for FTP synchronization")
  160. (description
  161. "Weex is a utility designed to automate the task of remotely
  162. maintaining a web page or other FTP archive. It synchronizes a set of
  163. local files to a remote server by performing uploads and remote deletes
  164. as required.")
  165. (license gpl2+)))
  166. (define-public libfilezilla
  167. (package
  168. (name "libfilezilla")
  169. (version "0.11.0")
  170. (source
  171. (origin
  172. (method url-fetch)
  173. (uri (string-append "http://download.filezilla-project.org/"
  174. name "/" name "-" version ".tar.bz2"))
  175. (sha256
  176. (base32
  177. "1l4yhw269dyarqb2spqhycxzzyfn8pj4qh9vfycdw1c93hj6fx6c"))))
  178. (build-system gnu-build-system)
  179. (native-inputs
  180. `(("cppunit" ,cppunit)
  181. ("pkg-config" ,pkg-config)))
  182. (home-page "https://lib.filezilla-project.org")
  183. (synopsis "Cross-platform C++ library used by Filezilla client")
  184. (description
  185. "This package provides some basic functionality to build high-performing,
  186. platform-independent programs.")
  187. (license gpl2+)))
  188. (define-public filezilla
  189. (package
  190. (name "filezilla")
  191. (version "3.27.1")
  192. (source
  193. (origin
  194. (method url-fetch)
  195. (uri (string-append "https://sourceforge.net/projects/" name
  196. "/files/FileZilla_Client/" version
  197. "/FileZilla_" version "_src" ".tar.bz2"))
  198. (sha256
  199. (base32
  200. "14lsplbp9fy7lk6cpwi3aj6jskz4j82h67x0fik82z1bns0zm2a3"))))
  201. (build-system gnu-build-system)
  202. (arguments
  203. ;; Don't let filezilla phone home to check for updates.
  204. '(#:configure-flags '("--disable-autoupdatecheck")))
  205. (native-inputs
  206. `(("gettext" ,gettext-minimal)
  207. ("pkg-config" ,pkg-config)
  208. ("pugixml" ,pugixml)
  209. ("xdg-utils" ,xdg-utils)))
  210. (inputs
  211. `(("dbus" ,dbus)
  212. ("gnutls" ,gnutls)
  213. ("gtk+" ,gtk+)
  214. ("libfilezilla" ,libfilezilla)
  215. ("libidn" ,libidn)
  216. ("nettle" ,nettle)
  217. ("sqlite" ,sqlite)
  218. ("wxwidgets" ,wxwidgets)))
  219. (home-page "https://filezilla-project.org")
  220. (synopsis "Full-featured graphical FTP/FTPS/SFTP client")
  221. (description
  222. "Filezilla client supports FTP, FTP over SSL/TLS (FTPS),
  223. SSH File Transfer Protocol (SFTP), HTTP/1.1, SOCKS5, FTP-Proxy, IPv6
  224. and others features such as bookmarks, drag and drop, filename filters,
  225. directory comparison and more.")
  226. (license gpl2+)
  227. (properties '((upstream-name . "FileZilla")))))