1
2***		Information about installing PFinger	***
3
41. Compiling
5
6First step is to compile the package. Do the following:
7
8in the PFinger top level directory execute:
9
10  ./configure		 GNU configuration script (see also Chapter 5)
11  make			 Build the package
12
13Configure is the common GNU configuration script, which attempts to
14guess what your system needs for compilation of PFinger.
15
16Configure takes several standard options, see Chapter 5 below.
17
18Non-standard options to configure:
19
20--without-server	Only build the client
21			Don't build in.fingerd and fingerd
22
23--without-client	Only build the server
24			Don't build pfinger
25
26Default is to build both. The standard (non-graphical) finger client is
27always built.
28
29If GTK is not found, the client is automatically not made. If you
30nevertheless run into problems, try to specify --without-client as
31option to configure.
32
332. Installing the binaries
34
35For installing the binaries in /usr/local/bin (pfinger and finger) and
36/usr/local/sbin (in.fingerd and fingerd) execute:
37
38make install
39
403. Server Configuration
41
423.1 inetd.conf
43
44Modify /etc/inetd.conf to contain the following line:
45
46finger  stream  tcp     nowait  nobody    /usr/sbin/tcpd  /usr/sbin/in.fingerd
47
48(this may vary on your platform, see inetd.conf(5))
49
50Remember to let inetd reread its config file.
51
523.2 /etc/fingerconf
53
54Create a global confguration file for your host. Start by modifying the
55sample fingerconf in this directory.
56
573.2.1 Format
58
59The fingerconf file is a simple XML-like file. This means every option
60has the form <option>value</option>.
61
623.2.2 Most important options
63
64<siteinfo>	     Contains a text that is displayed for a
65		     "finger .site@sample.org"
66
67<specialfile>	     Special "dot"-Files in the users home directory
68		     that can be retrieved with finger
69		     (e.g. finger user.pgpkey@sample.org returns the
70		     file ~user/.pgpkey, if pgpkey is defined as
71		     special file)
72
73<option>	     enables an option:
74		     showidle:	Display the idle-time of the users
75		     showfrom:	Display from where a user is connected
76		     hidemail:	Hide the user mail information
77		     hideall:	Do not answer "finger @host"
78
79<dbpath>	     see section 3.3
80
81<sitehost>	     see section 3.5
82<clientlist>
83<client>
84<poll>
85
86<sitemaster>         same as <sitehost>	(backwards compatibilty)
87
883.3 /usr/share/finger/statusdb
89
90PFinger uses a database to store the users that are logged in on a
91remote host. Its default path is /usr/share/finger/. However if you
92are using GNU Finger compatibility mode (see below) the default is
93/usr/local/etc/fingerdir/. The default path can be overridden in the
94configfile with the directive <dbpath>/path/to/dbdir/</dbpath>.
95
96The file must be writable by the Site Finger Deamon (see below) and
97readable by the finger deamon.
98
99If you are not using PFinger as a Site deamon the statusdb file is not
100entirely necessary but the deamon will complain about it in the
101syslog.
102
1033.4 GNU Finger compatibility
104
105Enable GNU Finger compatibility mode by starting in.fingerd with the
106"-g" option.  (Set this in the inetd.conf). Further explanation of
107this mode can be found in the README.
108
1093.5 Site Finger Deamon
110
111PFinger provides a site finger deamon, which allows you to provide
112finger information for a whole cluster at a single host. We call the
113hosts of the cluster "clients" and the Server were the fingerd
114programs runs "master".
115
116Example Scenario:
117
118We have several Computers in a laboratory. All computers have the same
119configuration (e.g. the same logins). None of them is assigned to a
120single person. This means it is not predictable which host someone
121will use, which makes the finger service somewhat unusable.
122Now we are able to install the PFinger in.fingerd on all hosts and
123the PFinger fingerd on a Server. Now everyone can query the Server and
124gets the same information as if he or she were querying all hosts of
125the cluster.
126
127Installation:
128
129- On every client you need to install the "in.fingerd" program as shown
130  above. Also you need on every host a simple configuration file
131  pointing to the master:
132  Example /etc/fingerconf:
133  <fingerconf>
134  <sitehost>master_hostname</sitehost>
135  </fingerconf>
136
137- On the master you need to run the "fingerd" program. This program
138  automatically gathers the online information from the clients all 30
139  seconds (configurable).
140  The users need not to be able to log into the master. They must
141  however be known (via /etc/passwd, yp/NIS or similar).
142
143  In the /etc/fingerconf file you need to specify
144
145    - for every client:
146    <client>client_hostname</client> in the <clientlist> directive
147
148    - for another interval than 30 seconds:
149    <poll>seconds</poll>
150
151  Exapmle /etc/fingerconf:
152  (Poll clients (lab1 and lab2) all 150 seconds)
153
154  <fingerconf>
155  <poll>150</poll>
156  <clientlist>
157  <client>lab1</client>
158  <client>lab2</client>
159  </clientlist>
160  </fingerconf>
161
1624. Users
163
164Users may have a ".fingerconf" in their home-directory. The easiest way to
165create this, is to use the pfinger client.
166
1675. Information about configure
168
169Basic Installation
170==================
171
172   These are generic installation instructions.
173
174   The `configure' shell script attempts to guess correct values for
175various system-dependent variables used during compilation.  It uses
176those values to create a `Makefile' in each directory of the package.
177It may also create one or more `.h' files containing system-dependent
178definitions.  Finally, it creates a shell script `config.status' that
179you can run in the future to recreate the current configuration, a file
180`config.cache' that saves the results of its tests to speed up
181reconfiguring, and a file `config.log' containing compiler output
182(useful mainly for debugging `configure').
183
184   If you need to do unusual things to compile the package, please try
185to figure out how `configure' could check whether to do them, and mail
186diffs or instructions to the address given in the `README' so they can
187be considered for the next release.  If at some point `config.cache'
188contains results you don't want to keep, you may remove or edit it.
189
190   The file `configure.in' is used to create `configure' by a program
191called `autoconf'.  You only need `configure.in' if you want to change
192it or regenerate `configure' using a newer version of `autoconf'.
193
194The simplest way to compile this package is:
195
196  1. `cd' to the directory containing the package's source code and type
197     `./configure' to configure the package for your system.  If you're
198     using `csh' on an old version of System V, you might need to type
199     `sh ./configure' instead to prevent `csh' from trying to execute
200     `configure' itself.
201
202     Running `configure' takes awhile.  While running, it prints some
203     messages telling which features it is checking for.
204
205  2. Type `make' to compile the package.
206
207  3. Optionally, type `make check' to run any self-tests that come with
208     the package.
209
210  4. Type `make install' to install the programs and any data files and
211     documentation.
212
213  5. You can remove the program binaries and object files from the
214     source code directory by typing `make clean'.  To also remove the
215     files that `configure' created (so you can compile the package for
216     a different kind of computer), type `make distclean'.  There is
217     also a `make maintainer-clean' target, but that is intended mainly
218     for the package's developers.  If you use it, you may have to get
219     all sorts of other programs in order to regenerate files that came
220     with the distribution.
221
222Compilers and Options
223=====================
224
225   Some systems require unusual options for compilation or linking that
226the `configure' script does not know about.  You can give `configure'
227initial values for variables by setting them in the environment.  Using
228a Bourne-compatible shell, you can do that on the command line like
229this:
230     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
231
232Or on systems that have the `env' program, you can do it like this:
233     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
234
235Compiling For Multiple Architectures
236====================================
237
238   You can compile the package for more than one kind of computer at the
239same time, by placing the object files for each architecture in their
240own directory.  To do this, you must use a version of `make' that
241supports the `VPATH' variable, such as GNU `make'.  `cd' to the
242directory where you want the object files and executables to go and run
243the `configure' script.  `configure' automatically checks for the
244source code in the directory that `configure' is in and in `..'.
245
246   If you have to use a `make' that does not supports the `VPATH'
247variable, you have to compile the package for one architecture at a time
248in the source code directory.  After you have installed the package for
249one architecture, use `make distclean' before reconfiguring for another
250architecture.
251
252Installation Names
253==================
254
255   By default, `make install' will install the package's files in
256`/usr/local/bin', `/usr/local/man', etc.  You can specify an
257installation prefix other than `/usr/local' by giving `configure' the
258option `--prefix=PATH'.
259
260   You can specify separate installation prefixes for
261architecture-specific files and architecture-independent files.  If you
262give `configure' the option `--exec-prefix=PATH', the package will use
263PATH as the prefix for installing programs and libraries.
264Documentation and other data files will still use the regular prefix.
265
266   In addition, if you use an unusual directory layout you can give
267options like `--bindir=PATH' to specify different values for particular
268kinds of files.  Run `configure --help' for a list of the directories
269you can set and what kinds of files go in them.
270
271   If the package supports it, you can cause programs to be installed
272with an extra prefix or suffix on their names by giving `configure' the
273option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
274
275Optional Features
276=================
277
278   Some packages pay attention to `--enable-FEATURE' options to
279`configure', where FEATURE indicates an optional part of the package.
280They may also pay attention to `--with-PACKAGE' options, where PACKAGE
281is something like `gnu-as' or `x' (for the X Window System).  The
282`README' should mention any `--enable-' and `--with-' options that the
283package recognizes.
284
285   For packages that use the X Window System, `configure' can usually
286find the X include and library files automatically, but if it doesn't,
287you can use the `configure' options `--x-includes=DIR' and
288`--x-libraries=DIR' to specify their locations.
289
290Specifying the System Type
291==========================
292
293   There may be some features `configure' can not figure out
294automatically, but needs to determine by the type of host the package
295will run on.  Usually `configure' can figure that out, but if it prints
296a message saying it can not guess the host type, give it the
297`--host=TYPE' option.  TYPE can either be a short name for the system
298type, such as `sun4', or a canonical name with three fields:
299     CPU-COMPANY-SYSTEM
300
301See the file `config.sub' for the possible values of each field.  If
302`config.sub' isn't included in this package, then this package doesn't
303need to know the host type.
304
305   If you are building compiler tools for cross-compiling, you can also
306use the `--target=TYPE' option to select the type of system they will
307produce code for and the `--build=TYPE' option to select the type of
308system on which you are compiling the package.
309
310Sharing Defaults
311================
312
313   If you want to set default values for `configure' scripts to share,
314you can create a site shell script called `config.site' that gives
315default values for variables like `CC', `cache_file', and `prefix'.
316`configure' looks for `PREFIX/share/config.site' if it exists, then
317`PREFIX/etc/config.site' if it exists.  Or, you can set the
318`CONFIG_SITE' environment variable to the location of the site script.
319A warning: not all `configure' scripts look for a site script.
320
321Operation Controls
322==================
323
324   `configure' recognizes the following options to control how it
325operates.
326
327`--cache-file=FILE'
328     Use and save the results of the tests in FILE instead of
329     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
330     debugging `configure'.
331
332`--help'
333     Print a summary of the options to `configure', and exit.
334
335`--quiet'
336`--silent'
337`-q'
338     Do not print messages saying which checks are being made.  To
339     suppress all normal output, redirect it to `/dev/null' (any error
340     messages will still be shown).
341
342`--srcdir=DIR'
343     Look for the package's source code in directory DIR.  Usually
344     `configure' can determine that directory automatically.
345
346`--version'
347     Print the version of Autoconf used to generate the `configure'
348     script, and exit.
349
350`configure' also accepts some other, not widely useful, options.
351