Here are the steps that you will need to take in order to install GNU Finger.
csh
on an old version of System V, you might need to type
`sh ./configure' instead to prevent csh
from trying to
execute configure
itself.
The 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.
Running 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
.
configure
automatically checks for the source code in the
directory that configure
is in and in `..'. If for some
reason 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 configure
the
`--no-create' option. Later, you can run ./config.status
to
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
.
`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 configure
initial values for some variables by setting them in the environment.
In Bourne-compatible shells, you can do that on the command line like
this:
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configureThe `make' variables that you might want to override with environment variables when running
configure
are:
(For these variables, any value given in the environment overrides the
value that `configure' would choose:)
CC
INSTALL
DEFS
LIBS
finger
, in.fingerd
, and in.cfingerd
, as
well as fingerd
on the server. If you want to, you can override
the `make' variables CFLAGS
and 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.cfingerd
and in.fingerd
.
in.fingerd
needs to be run with UID root
. Consult your
system documentation for details on how to do this. in.cfingerd
should be run with UID root
on System V derivatives.
fingerd
. You should arrange to have
fingerd
started 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 bfox@aurel.cns.caltech.edu
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 SIGHUP
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
preceded by @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'
file:
# 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 nosuchuser@gnu.ai.mit.edu [No user nosuchuser@apple-gunkies.gnu.ai.mit.edu, 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 128.52.46.42 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:
SUPPORT_FINGERRC
CHECK_OWNER_FINGERRC
CHECK_RDONLY_FINGERRC
FINGERRC_SHELL
DEFAULT_POLL_INTERVAL
fingerd
with the `--interval' option.
BASENAME_IS_SERVICE
INFO_IS_DEFAULT
Go to the first, previous, next, last section, table of contents.