gnu: python-babel: Update to 2.7.0.
[guix.git] / gnu / packages / ftp.scm
blob96953d6fd506983b19d2aa4841ea29fde2c0d68a
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015, 2018 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, 2017, 2018, 2019 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/>.
23 (define-module (gnu packages ftp)
24   #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ clarified-artistic))
25   #:use-module (guix build-system gnu)
26   #:use-module (guix download)
27   #:use-module (guix packages)
28   #:use-module (gnu packages)
29   #:use-module (gnu packages autotools)
30   #:use-module (gnu packages check)
31   #:use-module (gnu packages compression)
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 sqlite)
42   #:use-module (gnu packages tls)
43   #:use-module (gnu packages wxwidgets)
44   #:use-module (gnu packages xml))
46 (define-public lftp
47   (package
48     (name "lftp")
49     (version "4.8.4")
50     (source (origin
51               (method url-fetch)
52               ;; See https://lftp.tech/get.html for mirrors.
53               (uri (list (string-append "https://lftp.tech/ftp/lftp-"
54                                         version ".tar.xz")
55                          (string-append "https://lftp.tech/ftp/old/lftp-"
56                                         version ".tar.xz")
57                          (string-append "ftp://ftp.st.ryukoku.ac.jp/pub/network/"
58                                         "ftp/lftp/lftp-" version ".tar.xz")))
59               (sha256
60                (base32
61                 "0qks22357xv9y6ripmf5j2n5svh8j5z0yniphfk89sjwkqg2gg2f"))))
62     (build-system gnu-build-system)
63     (native-inputs
64      `(("pkg-config" ,pkg-config)))
65     (inputs
66      `(("zlib" ,zlib)
67        ("readline" ,readline)
68        ("gnutls" ,gnutls)))
69     (arguments
70      `(#:phases
71        (modify-phases %standard-phases
72          ;; Disable tests that require network access, which is most of them.
73          (add-before 'check 'disable-impure-tests
74                      (lambda _
75                        (substitute* "tests/Makefile"
76                          (("(ftp-cls-l|ftp-list|http-get)\\$\\(EXEEXT\\)") "")
77                          (("lftp-https-get ") ""))
78                        #t)))
79        #:configure-flags
80        (list (string-append "--with-readline="
81                             (assoc-ref %build-inputs "readline")))))
82     (home-page "https://lftp.tech/")
83     (synopsis "Command-line file transfer program")
84     (description
85      "LFTP is a sophisticated FTP/HTTP client, and a file transfer program
86 supporting a number of network protocols.  Like Bash, it has job control and
87 uses the Readline library for input.  It has bookmarks, a built-in mirror
88 command, and can transfer several files in parallel.  It was designed with
89 reliability in mind.")
90     (license gpl3+)))
92 (define-public ncftp
93   (package
94     (name "ncftp")
95     (version "3.2.6")
96     (source (origin
97               (method url-fetch)
98               (uri (string-append "ftp://ftp.ncftp.com/ncftp/ncftp-"
99                                   version "-src.tar.xz"))
100               (sha256
101                (base32
102                 "1389657cwgw5a3kljnqmhvfh4vr2gcr71dwz1mlhf22xq23hc82z"))
103               (modules '((guix build utils)))
104               (snippet
105                '(begin
106                   ;; Use the right 'rm' and 'ls'.
107                   (substitute* (cons "configure"
108                                      (find-files "."
109                                                  "^(Makefile\\.in|.*\\.sh)$"))
110                     (("/bin/(rm|ls)" _ command)
111                      command))
113                   ;; This is free software, avoid any confusion.
114                   (substitute* (find-files "." "\\.c$")
115                     (("a freeware program")
116                      "free software"))
117                   #t))))
118     (build-system gnu-build-system)
119     (arguments
120      '(#:phases
121        (modify-phases %standard-phases
122          (replace 'configure
123                   (lambda* (#:key outputs #:allow-other-keys)
124                     ;; This is an old 'configure' script that doesn't
125                     ;; understand variables passed as arguments.
126                     (let ((out (assoc-ref outputs "out")))
127                       (setenv "CONFIG_SHELL" (which "sh"))
128                       (setenv "SHELL" (which "sh"))
129                       (invoke "./configure"
130                               (string-append "--prefix=" out))))))
131        #:tests? #f)) ;there are no tests
132     (inputs `(("ncurses" ,ncurses)))
133     (home-page "http://www.ncftp.com/ncftp/")
134     (synopsis "Command-line File Transfer Protocol (FTP) client")
135     (description
136      "NcFTP Client (or just NcFTP) is a set of command-line programs to access
137 File Transfer Protocol (FTP) servers.  This includes @code{ncftp}, an interactive
138 FTP browser, as well as non-interactive commands such as @code{ncftpput} and
139 @code{ncftpget}.")
140     (license clarified-artistic)))
143 (define-public weex
144   (package
145     (name "weex")
146     (version "2.8.2")
147     (source
148       (origin
149         (method url-fetch)
150         (uri
151           (string-append "mirror://sourceforge/weex/weex/"
152                          "/weex_" version ".tar.gz"))
153         (sha256
154           (base32
155             "1ir761hjncr1bamaqcw9j7x57xi3s9jax3223bxwbq30a0vsw1pd"))))
156     (build-system gnu-build-system)
157     (native-inputs
158      `(("automake" ,automake)
159        ("autoconf" ,autoconf)
160        ("gettext" ,gettext-minimal)))
161     (home-page "http://weex.sourceforge.net/")
162     (synopsis "Non-interactive client for FTP synchronization")
163     (description
164      "Weex is a utility designed to automate the task of remotely
165 maintaining a web page or other FTP archive.  It synchronizes a set of
166 local files to a remote server by performing uploads and remote deletes
167 as required.")
168     (license gpl2+)))
170 (define-public libfilezilla
171   (package
172     (name "libfilezilla")
173     (version "0.15.1")
174     (source
175      (origin
176        (method url-fetch)
177        (uri (string-append "https://download.filezilla-project.org/"
178                            "libfilezilla/libfilezilla-" version ".tar.bz2"))
179        (sha256
180         (base32
181          "17zlhw5b1a7jzh50cbpy2is3sps5lnzch5yf9qm7mwrviw9c8j10"))))
182     (build-system gnu-build-system)
183     (native-inputs
184      `(("cppunit" ,cppunit)
185        ("pkg-config" ,pkg-config)))
186     (inputs
187      `(("nettle" ,nettle)))
188     (home-page "https://lib.filezilla-project.org")
189     (synopsis "Cross-platform C++ library used by Filezilla client")
190     (description
191      "This package provides some basic functionality to build high-performing,
192 platform-independent programs.
194 Some of the highlights include:
195 @itemize
196 @item
197 A type-safe, multi-threaded event system that's simple to use yet efficient.
198 @item
199 Timers for periodic events.
200 @item
201 A @code{datetime} class that not only tracks timestamp but also their accuracy,
202 which simplifies dealing with timestamps originating from different sources.
203 @item
204 Simple process handling for spawning child processes with redirected input and
205 output.
206 @end itemize\n")
207     (license gpl2+)))
209 (define-public filezilla
210   (package
211     (name "filezilla")
212     (version "3.41.2")
213     (source
214      (origin
215        (method url-fetch)
216        (uri (string-append "https://download.filezilla-project.org/client/"
217                            "FileZilla_" version "_src.tar.bz2"))
218        (sha256
219         (base32 "05zhvzvzkbns0cdxmlswvasfa6031y22dhfj9y5p85gi654f4fy2"))))
220     (build-system gnu-build-system)
221     (arguments
222       ;; Don't let filezilla phone home to check for updates.
223      '(#:configure-flags '("--disable-autoupdatecheck")))
224     (native-inputs
225      `(("gettext" ,gettext-minimal)
226        ("pkg-config" ,pkg-config)
227        ("xdg-utils" ,xdg-utils)))
228     (inputs
229      `(("dbus" ,dbus)
230        ("gnutls" ,gnutls)
231        ("gtk+" ,gtk+)
232        ("libfilezilla" ,libfilezilla)
233        ("libidn" ,libidn)
234        ("nettle" ,nettle)
235        ("pugixml" ,pugixml)
236        ("sqlite" ,sqlite)
237        ("wxwidgets" ,wxwidgets)))
238     (home-page "https://filezilla-project.org")
239     (synopsis "Full-featured graphical FTP/FTPS/SFTP client")
240     (description
241      "Filezilla client supports FTP, FTP over SSL/TLS (FTPS),
242 SSH File Transfer Protocol (SFTP), HTTP/1.1, SOCKS5, FTP-Proxy, IPv6
243 and others features such as bookmarks, drag and drop, filename filters,
244 directory comparison and more.")
245     (license gpl2+)
246     (properties '((upstream-name . "FileZilla")))))
248 (define-public vsftpd
249   (package
250     (name "vsftpd")
251     (version "3.0.3")
252     (source (origin
253               (method url-fetch)
254               (uri (string-append "https://security.appspot.com/downloads/"
255                                   name "-" version ".tar.gz"))
256               (sha256
257                (base32
258                 "1xsyjn68k3fgm2incpb3lz2nikffl9by2safp994i272wvv2nkcx"))))
259     (build-system gnu-build-system)
260     (arguments
261      `(#:make-flags '("LDFLAGS=-lcrypt")
262        #:tests? #f                      ; No tests exist.
263        #:phases
264        (modify-phases %standard-phases
265          (add-after 'unpack 'patch-installation-directory
266            (lambda* (#:key outputs #:allow-other-keys)
267              (substitute* "Makefile"
268                (("/usr") (assoc-ref outputs "out")))
269              #t))
270          (add-before 'install 'mkdir
271            (lambda* (#:key outputs #:allow-other-keys)
272              (let ((out (assoc-ref outputs "out")))
273                (mkdir-p out)
274                (mkdir (string-append out "/sbin"))
275                (mkdir (string-append out "/man"))
276                (mkdir (string-append out "/man/man5"))
277                (mkdir (string-append out "/man/man8"))
278                #t)))
279          (delete 'configure))))
280     (synopsis "vsftpd FTP daemon")
281     (description "@command{vsftpd} is a daemon that listens on a TCP socket
282 for clients and gives them access to local files via File Transfer
283 Protocol.")
284     (home-page "https://security.appspot.com/vsftpd.html")
285     (license gpl2)))