This is a Linux port of the BSD ftp server (ftpd).  It doesn't have
all the bells and whistles of wu-ftpd, but it is also probably less
buggy and more secure (at least, it was certainly so before I ported
it, and I hope I didn't mess things up *too* much).

The source code was taken from the OpenBSD CVS as of 2000/07/07 (this
is after release 2.7).  The ftpd version number is 6.5 and this port's
version number is 0.3.2.

My modest contribution a port maintainer consisted of providing some
replacement for a couple of BSD functions, removing an odd BSD-ism
here or there, and adding PAM authentication support.

New in version 0.2.0 is automatic, on-the-fly decompression of .gz
files: if the client requests a file foobar that does not exist but
the file foobar.gz exists, then the server will use /bin/zcat to
uncompress the file on the fly.  This is enabled if (as is the
default) the -DAUTO_UNCOMPRESS flag is present in the Makefile.  For
anonymous ftp, you will also need to put /bin/zcat in the restricted
root, along with all the libraries it might need.

Version 0.3.0 has added IPv6 support (as specified by RFC2428; and
also as per RFC1639).  This might not be complete for the moment.  The
Linux port might have specific problems with that, too (because of
socket structure length and organization).

Also, version 0.3.0 adds the much-awaited shadow password support for
people who don't want to or can't use PAM.  Thanks to Arun Bhalla for
this.

Version 0.3.1 incorporates an internal 'ls' command so you no longer
need to include /bin/ls and its dynamically linked libraries in your
chrooted directories to be able to list files.  (Note however that if
you want on-the-fly uncompression of gzipped files you will still need
/bin/zcat and its libraries.)  This was one of the FAQs about this
port ("Why doesn't the ls command work?"): now it should no longer
cause any difficulty.  Thanks to Francis Lacoste for the patch.  If
you don't like the internal ls but prefer using your own (e.g. if you
want all the features of GNU ls), remove the -DINTERNAL_LS flag from
the Makefile.  Please read the GMT-WARNING file if you used the
external ls before and consider switching to internal ls (especially
if you live east of Greenwich).

Also in version 0.3.1 is a new option -q provided by W. Reilly Cooley
that prevents displaying the ftpd version number to clients.  If you
are an adept of security through obfuscation you might like this.

Version 0.3.2 is a bugfix version.  The -q functionality has been
corrected (it was inverted).  The utmp/wtmp insertion functions have
been adapted for Linux (thanks to "xsprite" for this patch) so that
ftp connections will appear with 'w' or 'who'.  A few bugfixes were
made by the OpenBSD team.  Note that a security hole was found in the
original OpenBSD version was found, but it does not affect this port;
however, the fixes have been included anyway.

Every change I made has been marked by a check on ORIGINAL_SOURCE.
That is, if you compile with -DORIGINAL_SOURCE you get exactly the
source I started from (and therefore, it doesn't compile except on BSD
so you're not supposed to do that - but searching for ORIGINAL_SOURCE
will let you see exactly what changes I made).

There is no configure script.  To compile, just type "make".  You may
wish to edit the Makefile to your convenience, first.  The install
target is not supported, you have to install by hand.  Just put ftpd
wherever you want, for example /usr/local/sbin/ftpd-BSD, and ftpd.8 in
/usr/local/man/man8/ftpd-BSD.8, and edit /etc/inetd.conf to read
something like:

ftp	stream	tcp	nowait	root	/usr/sbin/tcpd /usr/local/sbin/ftpd-BSD -l -S

(see the accompanying man page for details).

Also remember that you need to add a PAM configuration file.  A sample
one is provided: copy it to /etc/pam.d/ftp and edit as needed.

This is tested on linux-2.2.16 with glibc-2.1.3.  The libc version may
be important.

Since the changes I made are extremely minor I leave the original
copyright statement and license unchanged and I don't claim copyright
on my port work.  Oh, and since this file is an advertisement I must
acknowledge:

  This product includes software developed by the University of
  California, Berkeley and its contributors.

To make things clear, all the praise should go to the OpenBSD folks
and all the blame to me, or possibly to /dev/null.  More importantly,
if you have improvement suggestions, it is best to send them to the
OpenBSD team, since I do not wish my port to diverge too much from
their version (lest maintaining it become too difficult).

Enjoy, and happy hacking.

					Orsay (France), 2000/07/07

-- 
     David A. Madore
    (david.madore@ens.fr,
     http://www.eleves.ens.fr:8080/home/madore/ )
