Merge pull request #639 from fededim/master
[feed/packages.git] / net / lftp / Makefile
1 #
2 # Copyright (C) 2008-2014 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=lftp
11 PKG_VERSION:=4.6.0
12 PKG_RELEASE:=1
13 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
14 PKG_SOURCE_URL:=http://lftp.yar.ru/ftp \ http://lftp.cybermirror.org \ http://lftp.cybermirror.org/old
15 PKG_MD5SUM:=fc5f4e3b45c9011a193eb8c0c12eb2eb
16
17 PKG_LICENSE:=GPL-3.0+
18 PKG_LICENSE_FILES:=COPYING
19
20 include $(INCLUDE_DIR)/uclibc++.mk
21 include $(INCLUDE_DIR)/package.mk
22
23 define Package/lftp
24 SUBMENU:=File Transfer
25 SECTION:=net
26 CATEGORY:=Network
27 DEPENDS:=+libncurses +libopenssl +libreadline $(CXX_DEPENDS) +libexpat
28 TITLE:=a sophisticated file transfer program with command line interface.
29 MAINTAINER:=Federico Di Marco <fededim@gmail.com>
30 URL:=http://lftp.yar.ru/
31 endef
32
33 define Package/lftp/description
34 LFTP is a sophisticated file transfer program with command line interface. It supports FTP, HTTP, FISH, SFTP, HTTPS and FTPS protocols. GNU Readline library is used for input.
35 Every operation in lftp is reliable, that is any non-fatal error is handled and the operation is retried automatically. So if downloading breaks, it will be restarted from the point automatically. Even if ftp server does not support REST command, lftp will try to retrieve the file from the very beginning until the file is transferred completely. This is useful for dynamic-ip machines which change their IP addresses quite often, and for sites with very bad internet connectivity.
36
37 If you exit lftp when some jobs are not finished yet, lftp will move itself to nohup mode in background. The same happens when you have a real modem hangup or when you close an xterm.
38
39 lftp has shell-like command syntax allowing you to launch several commands in parallel in background (&). It is also possible to group commands within () and execute them in background. All background jobs are executed in the same single process. You can bring a foreground job to background with ^Z (c-z) and back with command `wait' (or `fg' which is alias to `wait'). To list running jobs, use command `jobs'. Some commands allow redirecting their output (cat, ls, ...) to file or via pipe to external command. Commands can be executed conditionally based on termination status of previous command (&&, ||).
40
41 lftp has builtin mirror which can download or update a whole directory tree. There is also reverse mirror (mirror -R) which uploads or updates a directory tree on server.
42
43 There is command `at' to launch a job at specified time in current context, command `queue' to queue commands for sequential execution for current server, and much more.
44
45 LFTP supports IPv6 for both FTP and HTTP protocols. For FTP protocol it uses method described in RFC2428.
46
47 Other low level stuff supported: ftp proxy, http proxy, ftp over http, opie/skey, fxp transfers, socks.
48
49 LFTP supports secure versions of the protocols FTP and HTTP: FTPS (explicit and implicit) and HTTPS. LFTP needs to be linked with an SSL library to support them. GNU TLS and OpenSSL are both supported as SSL backend.
50 endef
51
52 CONFIGURE_ARGS += \
53 --without-libiconv-prefix \
54 --without-libintl-prefix \
55 --without-gnutls \
56 --without-libidn \
57 --without-libresolv \
58 --with-openssl="$(STAGING_DIR)/usr" \
59 --disable-static
60
61 #CONFIGURE_VARS += \
62 # LIBS="-lz -lutil -lcurses -ldl" \
63 # i_cv_posix_fallocate_works=no
64
65 #MAKE_VARS += \
66 # LD="$(TARGET_CXX)"
67
68 define Package/lftp/install
69 $(INSTALL_DIR) $(1)/usr/bin
70 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/lftp $(1)/usr/bin/
71 endef
72
73 $(eval $(call BuildPackage,lftp))