Blame README

Packit 8f70b4
** lftp-4.5.x
Packit 8f70b4
Packit 8f70b4
This package `lftp' contains the following components:
Packit 8f70b4
Packit 8f70b4
   lftp
Packit 8f70b4
      sophisticated command line file transfer program (ftp/http client,
Packit 8f70b4
      also supports several other protocols).
Packit 8f70b4
Packit 8f70b4
   lftpget
Packit 8f70b4
      shell script for downloading by URL, it calls `lftp -c'.
Packit 8f70b4
Packit 8f70b4
lftp is written in C++ and uses a cooperative-threaded model.
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
lftp
Packit 8f70b4
~~~~
Packit 8f70b4
lftp is sophisticated file transfer program with command line interface. It
Packit 8f70b4
supports FTP, HTTP, FISH, SFTP and FILE (local FS) protocols. GNU Readline
Packit 8f70b4
library is used for input. BitTorrent protocol is supported as built-in
Packit 8f70b4
`torrent' command.
Packit 8f70b4
Packit 8f70b4
Low level stuff supported: ftp proxy, http proxy, ftp over http, opie/skey,
Packit 8f70b4
fxp transfers, automatic retrying on non-fatal errors and timeouts, ipv6,
Packit 8f70b4
socks, http/1.1, sftp v3-v6. See FEATURES for more detailed list of
Packit 8f70b4
features.
Packit 8f70b4
Packit 8f70b4
Every operation in lftp is reliable, that is any non-fatal error is ignored
Packit 8f70b4
and the operation is retried. So if downloading breaks, it will be
Packit 8f70b4
restarted from the point automatically. Even if ftp server does not support
Packit 8f70b4
REST command, lftp will try to retrieve the file from the very beginning
Packit 8f70b4
until the file is transferred completely.
Packit 8f70b4
Packit 8f70b4
lftp has shell-like command syntax allowing you to launch several commands
Packit 8f70b4
in parallel in background (&). It is also possible to group commands within
Packit 8f70b4
() and execute them in background. All background jobs are executed in the
Packit 8f70b4
same single process. You can bring a foreground job to background with ^Z
Packit 8f70b4
(c-z) and back with command `wait' (or `fg' which is alias to `wait'). To
Packit 8f70b4
list running jobs, use command `jobs'. Some commands allow redirecting
Packit 8f70b4
their output (cat, ls, ...) to file or via pipe to external command.
Packit 8f70b4
Commands can be executed conditionally based on termination status of
Packit 8f70b4
previous command (&&, ||).
Packit 8f70b4
Packit 8f70b4
If you exit lftp when some jobs are not finished yet, lftp will move itself
Packit 8f70b4
to nohup mode in background. The same happens when you have a real modem
Packit 8f70b4
hangup or when you close an xterm. It is possible to attach to backgrounded
Packit 8f70b4
lftp instance using `attach' command in lftp, e.g. `lftp -c attach'.
Packit 8f70b4
Packit 8f70b4
lftp has builtin mirror which can download or update a whole directory
Packit 8f70b4
tree. There is also reverse mirror (mirror -R) which uploads or updates a
Packit 8f70b4
directory tree on server. It is also possible to synchronize two servers,
Packit 8f70b4
FXP is used automatically if possible.
Packit 8f70b4
Packit 8f70b4
There is command `at' to launch a job at specified time in current context,
Packit 8f70b4
command `queue' to queue commands for sequential execution for current
Packit 8f70b4
server, and much more.
Packit 8f70b4
Packit 8f70b4
On startup, lftp executes /etc/lftp.conf and then ~/.lftprc and ~/.lftp/rc.
Packit 8f70b4
You can place aliases and `set' commands there. Some people prefer to see
Packit 8f70b4
full protocol debug, use `debug' to turn the debug on. Use `debug 3' to see
Packit 8f70b4
only greeting messages and error messages. if ~/.lftp directory does not
Packit 8f70b4
exist, XDG directories are used instead: ~/.config/lftp, ~/.local/share/lftp
Packit 8f70b4
and ~/.cache/lftp.
Packit 8f70b4
Packit 8f70b4
lftp has a number of settable variables. You can use `set -a' to see all
Packit 8f70b4
variables and their values or `set -d' to see list of defaults. Variable
Packit 8f70b4
names can be abbreviated and prefix can be omitted unless the rest becomes
Packit 8f70b4
ambiguous.
Packit 8f70b4
Packit 8f70b4
Use command `help' or read documentation (man lftp) to learn more.
Packit 8f70b4
Packit 8f70b4
If lftp was compiled with ssl support, then it includes software developed
Packit 8f70b4
by the OpenSSL Project for use in the OpenSSL Toolkit.
Packit 8f70b4
(http://www.openssl.org/)
Packit 8f70b4
Packit 8f70b4
Where to get
Packit 8f70b4
~~~~~~~~~~~~
Packit 8f70b4
By FTP:
Packit 8f70b4
	ftp://ftp.yar.ru/pub/source/lftp/
Packit 8f70b4
By HTTP:
Packit 8f70b4
	http://lftp.yar.ru/ftp/
Packit 8f70b4
Packit 8f70b4
By GIT (development):
Packit 8f70b4
	https://github.com/lavv17/lftp
Packit 8f70b4
Packit 8f70b4
See also the home page `http://lftp.yar.ru/'.
Packit 8f70b4
	
Packit 8f70b4
Packit 8f70b4
Internals
Packit 8f70b4
~~~~~~~~~
Packit 8f70b4
All this is based on SMTask class which implements non-preemptive
Packit 8f70b4
multitasking via Do method. The method Do does a little bit of work, sets
Packit 8f70b4
wake up condition (block member) and returns.
Packit 8f70b4
Packit 8f70b4
There are also some useful classes: Timer, TimeDate, *Buffer, xstring,
Packit 8f70b4
xarray, xlist, xmap, xheap, Ref etc. Timers are ordered using a heap data
Packit 8f70b4
structure. Primitive classes were implemented with performance and low
Packit 8f70b4
memory consumption in mind. Standard C++ library is not used, since lftp
Packit 8f70b4
development started when it was not so standard yet (and boost did not even
Packit 8f70b4
exist).
Packit 8f70b4
Packit 8f70b4
Access to remote files is performed via FileAccess class, which is base
Packit 8f70b4
class for all protocols. NetAccess is for network file access. There is
Packit 8f70b4
also LocalAccess for local files access. SSH_Access is for SSH based
Packit 8f70b4
protocols: FISH and SFTP.
Packit 8f70b4
Packit 8f70b4
The class Ftp allows reliable deliver of files via ftp protocol, it hides
Packit 8f70b4
all the details from application and allows asynchronous operation.
Packit 8f70b4
Reconnect and reget are done as necessary. It can also speed up ftp
Packit 8f70b4
operations by sending several commands at once and then checking all the
Packit 8f70b4
responses. It seems this sometimes does not work, so it is disabled by
Packit 8f70b4
default. To turn it on, use `set sync-mode n' in lftp.
Packit 8f70b4
Packit 8f70b4
Note that sending several commands is considered as violation or protocol,
Packit 8f70b4
but RFC959 says: ``The user-process sending another command before the
Packit 8f70b4
completion reply would be in violation of protocol; but server-FTP
Packit 8f70b4
processes should queue any commands that arrive while a preceding command
Packit 8f70b4
is in progress.''
Packit 8f70b4
Packit 8f70b4
It is known that some network software dealing with address translation
Packit 8f70b4
works incorrectly in case of several FTP commands in one network packet.
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
Systems
Packit 8f70b4
~~~~~~~
Packit 8f70b4
The package is known to compile on Solaris(gcc), Linux, FreeBSD, NetBSD,
Packit 8f70b4
SCO v5.0(gcc), IRIX(gcc), Tru64(gcc) and other systems. If you can't
Packit 8f70b4
compile it on your system, let me know. It is possible that lftp version
Packit 8f70b4
2.0 can be compiled with non-gcc compilers since it does not have gcc-isms,
Packit 8f70b4
and it was successfully compiled by Sun C++ v5.0 compiler using
Packit 8f70b4
CXXFLAGS="-compat=4 -features=bool".
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
Mailing list
Packit 8f70b4
~~~~~~~~~~~~
Packit 8f70b4
There is a mailing list for discussion of lftp and announcements. It is
Packit 8f70b4
managed by mailman; to subscribe, send mail to lftp-subscribe@uniyar.ac.ru;
Packit 8f70b4
to send letters to the list, send them to lftp@uniyar.ac.ru; to
Packit 8f70b4
unsubscribe, send mail to lftp-unsubscribe@uniyar.ac.ru. This is a low
Packit 8f70b4
volume list. See also http://univ.uniyar.ac.ru/mailman/listinfo/lftp.
Packit 8f70b4
Packit 8f70b4
There is also list lftp-devel@uniyar.ac.ru for snapshot announcements and
Packit 8f70b4
other development.
Packit 8f70b4
Packit 8f70b4
These lists are archived at
Packit 8f70b4
   http://www.mail-archive.com/lftp%40uniyar.ac.ru/
Packit 8f70b4
   http://www.mail-archive.com/lftp-devel%40uniyar.ac.ru/
Packit 8f70b4
Packit 8f70b4
You can also submit pull requests or issues to GitHub:
Packit 8f70b4
   https://github.com/lavv17/lftp
Packit 8f70b4
Packit 8f70b4
Author
Packit 8f70b4
~~~~~~
Packit 8f70b4
Author: Alexander V. Lukyanov <lav@yars.free.net>
Packit 8f70b4
My home page: http://lav.yar.ru/
Packit 8f70b4
My other E-Mails: lav@yar.ru, lav@netis.ru, lavv17f@gmail.com
Packit 8f70b4
Packit 8f70b4
Other people have contributed to lftp development, see the THANKS file.
Packit 8f70b4
Packit 8f70b4
Comments and bug reports are welcome. Please send them to the list:
Packit 8f70b4
<lftp@uniyar.ac.ru>. Subscribe if you want your messages to be sent to the
Packit 8f70b4
list quickly.
Packit 8f70b4
Packit 8f70b4
License
Packit 8f70b4
~~~~~~~
Packit 8f70b4
Copyright (c) 1996-2014 by Alexander V. Lukyanov (lav@yars.free.net)
Packit 8f70b4
Packit 8f70b4
LFTP is free software: you can redistribute it and/or modify
Packit 8f70b4
it under the terms of the GNU General Public License as published by
Packit 8f70b4
the Free Software Foundation, either version 3 of the License, or
Packit 8f70b4
(at your option) any later version.
Packit 8f70b4
Packit 8f70b4
This program is distributed in the hope that it will be useful,
Packit 8f70b4
but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 8f70b4
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 8f70b4
GNU General Public License for more details.
Packit 8f70b4
Packit 8f70b4
You should have received a copy of the GNU General Public License
Packit 8f70b4
along with LFTP.  If not, see <http://www.gnu.org/licenses/>.