Go to the previous, next section.
Here are the steps that you will need to take in order to install GNU Finger.
cshon an old version of System V, you might need to type `sh ./configure' instead to prevent
cshfrom trying to execute
configure shell script attempts to guess correct values for
various system-dependent variables used during compilation, and
creates the Makefile(s) (one in each subdirectory of the source
directory). In some packages it creates a C header file containing
system-dependent definitions. It also creates a file `config.status'
that you can run in the future to recreate the current configuration.
configure takes a minute or two. While it is running, it
prints some messages that tell what it is doing. If you don't want to
see the messages, run
configure with its standard output redirected
to `/dev/null'; for example, `./configure >/dev/null'.
To compile the package in a different directory from the one containing
the source code, you must use a version of make that supports the VPATH
variable, such as GNU make. `cd' to the directory where you want
the object files and executables to go and run
configure automatically checks for the source code in the
configure is in and in `..'. If for some
configure is not in the source code directory that you are
configuring, then it will report that it can't find the source code. In
that case, run
configure with the option `--srcdir=DIR',
where DIR is the directory that contains the source code.
You can tell `configure' to figure out the configuration for your
system, and record it in `config.status', without actually
configuring the package (creating `Makefile' and perhaps a
configuration header file). To do this, give
`--no-create' option. Later, you can run
actually configure the package for a particular host. This option is
useful mainly in `Makefile' rules for updating `config.status'
and `Makefile'. You can also give `config.status' the
`--recheck' option, which makes it re-run
configure with the
same arguments you used before. This is useful if you change
`configure' ignores any other arguments that you give it.
If you want to install the GNU Finger configuration files somewhere other than `/usr/local/etc/fingerdir', then you should edit the files `./config.h' and `include/fingerpaths.h' now. You need to specify the alternate locations of where the configuration files will be kept. If you want to include the unsupported code for mugshots, then you should now also choose one of the face formats, as well as edit `lib/Makefile.in', `lib/site/Makefile.in', and `src/Makefile.in' to compile and link in the files necessary.
If your system requires unusual options for compilation or linking that
configure doesn't know about, you can give
initial values for some variables by setting them in the environment.
In Bourne-compatible shells, you can do that on the command line like
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
The `make' variables that you might want to override with environment
variables when running
(For these variables, any value given in the environment overrides the value that `configure' would choose:)
(For these variables, any value given in the environment is added to the value that `configure' chooses:)
The above commands build `lib/libfinger.a' and the main programs in
fingerd on the server. If you want to, you can override
the `make' variables
LDFLAGS like this:
make CFLAGS=-O2 LDFLAGS=-s
in.cfingerd(port 2003) and
in.fingerd(port 79). If port 2003 is already used by something else, then read the section on Configuration Files for details on how to specify a port other than 2003 in the `/usr/local/etc/fingerdir/clients' file. A good name for the service is `cfinger'.
in.fingerdneeds to be run with UID
root. Consult your system documentation for details on how to do this.
in.cfingerdshould be run with UID
rooton System V derivatives.
fingerd. You should arrange to have
fingerdstarted every time the server host is rebooted. For exact details on how to do this, please refer to the server host's system documentation.
finger --face firstname.lastname@example.org
Now you're all set! You might like to read through the section on Configuration Files.
This section describes the format of the GNU Finger configuration files.
The `/usr/local/etc/fingerdir/clients' file contains a list of
clients that the GNU Finger server
fingerd is supposed to poll.
You can edit this file and then send the finger server a
to tell it that the configuration has changed. Each line in the file
should be either the name of a host or a comment. The name can be
@port, to tell the finger server to poll the
particular host by using a port other than 2003. A comment is any line
that starts with a hash sign (#). Below is a sample `clients' file:
# This file contains all GNU Finger clients on the gnu.ai.mit.edu # network. Apple-gunkies is the GNU Finger server (see "serverhost"). apple-gunkies.gnu.ai.mit.edu # Albert is the mail exchanger (see "mailhost"). albert.gnu.ai.mit.edu # Spiff is a Sony, so port 2003 is already used for `mbanks'. # Use port 2010 instead. @2010 spiff.gnu.ai.mit.edu churchy.gnu.ai.mit.edu mole.gnu.ai.mit.edu geech.gnu.ai.mit.edu wookumz.gnu.ai.mit.edu nutrimat.gnu.ai.mit.edu kropotkin.gnu.ai.mit.edu goldman.gnu.ai.mit.edu hal.gnu.ai.mit.edu wombat.gnu.ai.mit.edu
Although this sample `clients' file contains the fully qualified
domain names of the hosts, it's usually enough to specify only the host
name portion. Explicit IP addresses can be used too, but this is a
practise strongly discouraged. Notice that the server is also in the
clients file and has a
in.cfingerd; this is necessary in order
for the server to correctly poll itself.
The `/usr/local/etc/fingerdir/serverhost' file holds the name of
the GNU Finger server host; this is as the name implies, the host that
the GNU Finger server
fingerd runs on. Lines starting with a hash
sign (#) are treated as comments. Below is a sample `serverhost'
# A-g does all the finger stuff apple-gunkies.gnu.ai.mit.edu
The `/usr/local/etc/fingerdir/mailhost' file holds the name of the mail exchanger host for the network. This host should know how to talk SMTP; this file should never hold the name of a host that can't. It's contacted to obtain mail forwarding information and to expand mailing lists if a `.forward' file can't be found in the user's home directory. GNU Finger always looks and reports on user `.forward' files regardless of whether `mailhost' exists or not. Any lines in this file that start with a hash sign (#) are treated as comments.
The `/usr/local/etc/fingerdir/forwardhost' file holds the name of the host to forward finger requests to when the current finger server can't find a matching user name or mail alias. No forwarding takes place if this file doesn't exist. Any lines that start with a hash sign (#) are treated as comments. This is a sample output of what it can look like when a request is forwarded:
% finger -l email@example.com [No user firstname.lastname@example.org, forwarding request to life.ai.mit.edu] Login name: nosuchuser In real life: ???
The `/usr/local/etc/fingerdir/ttylocs' file holds explanations for the hosts or terminal lines that users have logged in from or through. Each client host has its own copy of this file. Each line consists of a host name followed by a description. The name and description are separated by one or more blanks or TABs.
spiff.gnu.ai.mit.edu NE43 Hall susie.gnu.ai.mit.edu NE43 Sony 427 x8568 spike.gnu.ai.mit.edu NE43 Sony 427 x8568 apple-gunkies.gnu.ai.mit.edu NE43 427 sugar-bombs.gnu.ai.mit.edu Elsewhere pogo.gnu.ai.mit.edu NE43 447 albert.gnu.ai.mit.edu Noisy Machine Room 220.127.116.11 The salt mines churchy.gnu.ai.mit.edu NE43 426 mole.gnu.ai.mit.edu NE43 430 geech.gnu.ai.mit.edu NE43 426 wookumz.gnu.ai.mit.edu NE43 427 calvin.gnu.ai.mit.edu NE43 gnu.gnu.ai.mit.edu NE43 kropotkin.gnu.ai.mit.edu Total anarchy
If you are interested in customizing GNU Finger's output, then the `lib/site' directory is the right place to start. If you would like to add new code for displaying faces, or have a particularly interesting "long" information output format, I would be glad to include it as unsupported code in the next release of GNU Finger. (I will direct correspondence regarding your code to you.) You can find other contributed code in `lib/site', most notably different user info formats and code to handle different bit map file formats. The only file supported in `lib/site' is `userinfo.c'.
The following definitions in `config.h' control the behavior of GNU Finger:
fingerdwith the `--interval' option.
Go to the previous, next section.