Compilation and Installation

Compilation

FTP4ALL compiles under several UNIX platforms. The source code is compiled by calling configure and make. configure sets up the Makefiles for your system, make compiles the code.
The configure script detects the best C compiler automatically. If it uses the wrong C compiler, you can tell it explicitly which C compiler to use. To do so, set the environment variable CC before calling configure (e.g. export CC=/some/odd/path/to/cc).

OSCPURemarks
Linux 2.0.x with libc5x86 (32-bit) First development platform and excessively tested. Working very well.
Linux 2.2.x with glibc2.1x86 (32-bit) Second development platform and excessively tested. Working very well.
FreeBSD 3.2 with libc5x86 (32-bit) Known to compile and run, basic functions tested and working
Solaris 2.6UltraSparc (32-bit, sparcv8) Sun Workshop C compiler required ! Known to compile and run, basic functions tested and working
Solaris 7UltraSparc-II (64-bit, sparcv9) Sun Workshop C compiler required ! Known to compile and run, basic functions tested and working

If you want to have to possibility to save and load user and group information DES encrypted, then answer y when the configure script asks you for DES. I took the DES part from an existing DES package. As I didn't write it, I cant help you if it does not compile on your machine. But in this case, you can get the DES package yourself, build the DES library using the instructions that are in the package, and copy the library (libdes.a) to the lib subdirectory of FTP4ALL. Hopefully it works then.
The DES package I included (in fact, it is only a part of the package - the main library) is des-2.1.tar.gz by Antti Louko (see lib/README and lib/COPYRIGHT for details).

Installation and Startup

After successful compilation of FTP4ALL, you get three binary files. They are "bin/ftpd", "bin/ftps" and "bin/ftpa". The first one is the "real" daemon. It is utilised to start the FTP server. It reads the configuration file and accepts connections from clients. When a connection is requested, ftpd spawns ftps or ftpa. ftps and ftpa handle communication with the client. Copy ftp? into the standard/sbin directory of the distribution. Then move the whole standard subdir to a place of your choice (you may rename it also). After that, edit the file etc/ftpd.reg and choose the port numbers and the base directory. You may also specify other options (all valid options for the registry are listed here. Now you are ready to start the server by executing ftpd from the sbin subdir.

Signals

You can send the running ftpd the following signals:
SignalMeaning
TERMTerminate daemon immediately
HUPSave user, group and registry files, flush log files
USR1Write statistic file (old format, for backward compatibility with old scripts)
USR2Write statistic files (new format)