0.6.1 January 2003

* self check improvements: 
  * the self check now works on reiserfs or other file systems not preserving
    the order of files.
  * the environment isn't cleared before the self check starts.
* enhancements to the --progress option: it know uses the window size instead
  of a fixed limit of 80, and makes sure that the 100% message is printed.
* the programs now include a work-around for the "illegal redirect" problem
  in case they are used behind some NAT gateway.
* --mdtm was broken.
* work around "set -e" brokenness in pdksh.
* smaller dns library changes to allow to share resolv.conf between machines
  not having all the same IPvX stacks and to use 127.0.0.1 as nameserver of
  last resort, not only ::1.

0.6.0 January 2003

* download resume implemented. use the --no-resume option to disable it.
* a new option: `--report', to print a progress report on the standard
  error output.
* work around glibc-2.3 stub function for futimes(), which broke ftpcopy.
* IPv6 is now supported.
* new options --v6 and --v4 to limit command and data connections to
  this IP protocol. This does not affect DNS queries.

0.5.9 October 2002

* internal development release.
* IPv6.

0.5.2 October 2002

* a new option: `--max-depth LEVELS', to descend only up to LEVELS levels
  of directories, in ftpcopy and ftpls.
* another workaround for a strange server implementation.
* removed two sources of imperfect error messages.

0.5.1 July 2002

* a new option: `--max-size BYTES', to limit the maximum file size.
* smaller bug fixes.
* ftpcopy will no longer reget files when the ftp server has changed it's
  date representation (/bin/ls style listings).

0.5.0 July 2002

* replaced dns library by latest (and public domain) version.
* rewrote the FTP listing parser completely, thereby removing the last
  piece of code not public domain or *GPL.

  WARNING: If it would be a big problem for you if ftpcopy regets all
  files, then be careful and use the -n option the first time you run
  ftpcopy-0.5.0 (or keep an eye on it while it runs). It's possible that
  the new parser still has some bugs, especially in the time handling.
  This didn't hit me, though.

* internal cleanup.
* parallel make possible.

0.4.10 July 2002

* bugfix: the setenv replacement code crashed.

0.4.9 July 2002

* removed a number of portability issues.
* --dry-run now shows what would be deleted, too.
* worked around a number of server problems, including an MLSx parse error.

0.4.8 January 2002

* ftpcopy now compiles on Apples OS X.

0.4.7 January 2002

* implemented --rate-limit option for ftpcopy.
* fixed a bug in ftpls recursive mode causing it to chop the first character
  of the directory name.

0.4.6 December 2001

* fixed two compile time problems which probably didn't hurt too many people.
* added a --raw option to ftpls to make it print the directory listings
  without any modifications.
* added a --print-dir option to ftpls to make it print directory names
  before their content.

0.4.5 December 2001

* worked around a ftp server which closed the data connection without having
  sent a single byte.
* reordered and grouped --longhelp and --help output.
* added --login-sleep option. It affects the time to sleep after a
  failed connect or login. The default is the fixed value used before (5).
* added --max-deletes option to control how many files will be deleted
  at the end of a single run. The default is unlimited.

0.4.4 November 2001

* fixed a bug in the MLSD processing.
* added --ignore-time option to not download files if the modification 
  time has changed.
* added --ignore-size option to not download files if the size has changed. 
* ftpls will no longer follow endless symbolic link loops.

0.4.3 September 2001

* the workaround for missing utimes() didn't work. Impact: 0.4.2 didn't
  compile on such systems (fix: trivial).

0.4.2 September 2001

* the package now compiles even if utimes() is not available.
* fixed some hypotetical compiler / library incompatibilities.
* if ftpcopy detects that a file locally exists, but it is a link
  on the remote server, then create a link locally.
* add support for MLSD (a new listing format, please get and read
  draft-ietf-ftpext-mlst-13.txt from your favourite internet drafts
  mirror).

0.4.1 August 2001

* GNU fileutils 3.16 "touch -t" expects different format than newer
  versions. Impact: Self check failed. Workaround: do not use "touch -t"
  anymore.

0.4.0 July 2001

* added --mdtm option to ftpcopy as a workaround for servers with
  traditional ftp listings using time zones other than UTC.
* switch to new build/package system. The package now conforms
  to slashpackage (http://cr.yp.to/slashpackage.html and
  http://cr.yp.to/slashcommand.html).
  Distributors: read http://www.ohse.de/uwe/ftpcopy/dist.html.

0.3.9 June 2001

* fixed two file descriptor leaks in ftpcopy.
* ftpcopy --bps logs the transfer rates after successful downloads.

0.3.8 May 2001

* added a --timeout option to ftpls and ftpcopy.
* don't allow the FTP server do redirect PASV to other hosts or
  ports < 1024 (with the exception of port 20).
* added a --tolower option to ftpcopy, to change all local file and
  directory names to lowercase.
* fixed some error messages.
* added a --recursive option to ftpls.
* temporary files are created in the target directory.
* added a --force-select option to ftpcopy and ftpls to allow them
  to be used with the socks5 reference implementation, which does
  not support the poll system call.
  Note: the clients are not, and will never, socks-friendly. They
  need a directly reachable DNS resolver. This option just allows
  them to work with runsocks.

0.3.7 April 2001

* fixed a bug in the handling of the top level remote and local directory.
  spotted by <leitner@fefe.de>.
* removed the --remove-dir and --keep-dir options from ftpcopy.
  The behaviour of --remove-dir is now default. --keep-dir is gone,
  and --remove-dir is the right way to do things anyway.
* fixed ftpcopy behaviour in case a file has been changed into
  a directory or vice versa. It used to stop with an error message,
  now it does the right thing.
* added a testsuite. Read more about this in the INSTALL file.
* fixed a number of bugs. Too many, to be honest, but none of them
  seems to have hurt anybody before. See ChangeLog.

0.3.6 March 2001

* added --dry-run option.
* fixed, once again, the output of --help, --version and error messages.
* ftpcopy failed to copy an initial remote directory on a wu-ftpd
  server if that directory contained exactly one file. ftpcopy also
  failed to copy empty directories.
* ftpcopy didn't create the local directory if the first entity to
  be copied might have been a file.
* ftpcopy no longer uses lstat to compare file size and date during
  downloads. stat() is more appropriate. (Spotted by Nagy Erno <ned@elte.hu>
  a long time ago)
* implemented a --interactive option in ftpcopy and ftpls.
  ftpls will read the directory to be listed from the standard input.
  ftpcopy will read both the remote directory to be copied and the local
  directory which shall contain the copy from stdin, on directory on
  each line. Both programs exit on end-of-file.

0.3.5 February 2001

* fixed output of --version and error messages. (this didn't hit everyone)
* documented ftpcopys default of the local directory to the current 
  directory.
* made that default only apply if the "-n" option is used.
  NOTE: if you didn't specify a target directory and didn't use
  the "-n" option before then you need to add a "." argument now.
  This change was done to make sure that "ftpcopy ftp://whereever/"
  doesn't eat your home directory if you happen to be in that now.
  You can override this security check by providing a "." argument.

0.3.4 January 2001

* Fixed a file system portability problem. Impact: wrong timestamps on
  mirrors. Thanks to Felix von Leitner <leitner@fefe.de>.$
* implemented option to deal with FTP "ACCT".

0.3.3 October 2000

* No validity check on remote files names was done.
  Impact: security breach if the FTP server uses names like
  ../../../../etc/passwd. Solution: ignore files with / in the name.
  Note: don't run ftpcopy as root, anyway.
* The programs try to deal more nicely with ^z.
* There's a mailing list for ftpcopy. To subscribe send mail to
  ftpcopy-subscribe@lists.ohse.de.

0.3.2 September 2000

* don't kill old proftpd servers, don't waste bandwithd.

0.3.1 July 2000

* understands the listing format of ftp.nai.com.
* a number of environment variables may influence where "make install" 
  puts the files. See http://www.ohse.de/uwe/uoinstall.html for
  details.
* ftpcopy logged empty wildcard expression in case of exclusion.

0.3.0 July 2000

* the tools can be told to not log in (--user="").
* a new script, "ftpcp", acts like `ftpcopy -n "$@"'
* bugfix: directory deletions didn't work.
* new option: --include (like and unlike --exclude)
* new option: --list-options XXX 
  for options to be given to the list commands.
* new option: --tries (maximum number of connect and
  log in attempts).

0.2.2 February 2000

* portability enhancements.
* reduced package size by not using autoconf & automake anymore.
* ftpcopy now works if the path to the target is a relative one
  (that is, "ftpcopy ... ./newdir" no works).
* ftpls can now be used not only to list directories, but also
  to list files.

0.2.0 February 2000

* portability enhancements.
* bug fixes.

0.1.3 January 2000

* new program ftpls
* ftpcopy now understands URLs.
* ftpcopy doesn't need a local directory anymore, it tries to 
  save the file in the current directory.
* ftpcopy: a new option "-m / --max-days" to restricted downloading
  to files not older than a given amount of days.
* ftpcopy: a new option "-x / --exclude", may be used to stop
  downloading of files matching a wildcard, or entering directories
  matching a wildcard.
* some interoperability fixes (traditional FTP servers).

2000-01-14  Uwe Ohse  <uwe@serak.ohse.de>

	* Release 0.1.2
	* ftpcopy.c: implemented option to deal with symbolic links
	  on broken ftp servers.
      implemented option to only create the directory hierarchie
	  (together with the option mentioned above it will also
	  create symbolic links).
	  deal with multiline FTP responses.
	  fixed a bug in the symlink creation function (used by EPLF
	  and traditional stuff).
	  use null terminated strings everywhere.

2000-01-13  Uwe Ohse  <uwe@serak.ohse.de>

	* Release 0.1.1
	  (0.1.0 was used internally)

2000-01-12  Uwe Ohse  <uwe@serak.ohse.de>

	* internal Release 0.1.0
