chiark / gitweb /
debian/control: Add missing build-dependency on flex. Fixes FTBFS. Report from Aurel...
[userv.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 4b5d665b4eb0d98b2c0483474666ee1fc3d16bcd..dafa9db3892b9cb1f7deff38e6a029a6550544d9 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -12,15 +12,18 @@ SYSTEM REQUIREMENTS:
 
 Programs:
 
 
 Programs:
 
-* md5sum (Colin Plumb's or the GNU version)
-* GNU m4
+* md5sum (GNU textutils; alternatively, Colin Plumb's, as shipped with
+          Debian in the `dpkg' package) - used during build only
 * GNU make
 * GNU make
-* GNU flex
 * GCC is preferred but other compilers ought to work (though
   no portability testing has yet been done).  ANSI C only.
   ints must be at least 32 bits.
 * GCC is preferred but other compilers ought to work (though
   no portability testing has yet been done).  ANSI C only.
   ints must be at least 32 bits.
-* A sensible /bin/cat which notices write errors (ie not
-  SunOS4, BSD 4.3, or many others.)
+* A sensible `cat' which notices write errors (ie not SunOS4, BSD 4.3,
+  or many others.  GNU textutils has one.  NB that this `cat' is used
+  at runtime and must be first on the system default PATH, so probably
+  in /bin.)
+* GNU m4   } if you don't want to change those bits of source
+* GNU flex }  you can do without these
 
 C Library:
 
 
 C Library:
 
@@ -62,75 +65,16 @@ System interfaces:
 To format the documentation:
 
 * debiandoc-sgml, and hence sp (aka nsgmls) and sgmlspm.
 To format the documentation:
 
 * debiandoc-sgml, and hence sp (aka nsgmls) and sgmlspm.
-* For PostScript output, Lout and possibly psutils.
+* For PostScript output, dblatex and XeTeX.
 
 For debugging version (./configure --enable-debug):
 
 * initgroups(3) must use setgroups(2) and dynamic
   linking must allow overriding setgroups(2) for initgroups(3);
 
 
 For debugging version (./configure --enable-debug):
 
 * initgroups(3) must use setgroups(2) and dynamic
   linking must allow overriding setgroups(2) for initgroups(3);
 
-DAEMON INVOCATION:
-
-The daemon can be invoked with no arguments, in which case it will not
-fork or detach itself.  This is suitable for running from init and
-similar arrangements.
-
-With -daemon it will attempt to detach itself from the controlling
-terminal and fork/exit so that control returns at startup.
-
-In both cases diagnostics which prevent correct startup will appear on
-stderr.
-
-SYSLOG MESSAGES:
-
-The daemon issues diagnostics of various kinds to syslog, usually with
-facility LOG_DAEMON (though this can be changed in daemon.h if you want).
-The syslog levels used are:
- debug - verbose messages about the activity of the userv daemon.
- info - two log message about the nature and outcome of each request.
- notice - messages about the status of the daemon, including the
-          startup message and the hourly socket check messages.
- warning - if the uservd exits because it believes that it no longer
-          controls the rendezvous socket (ie, its socket has become
-          orphaned), this level will receive messages indicating why
-          the daemon believes this and notifying of its shutdown.
- err - a believed-recoverable error condition was detected by the
-       userv server in itself, the client or the operating system
-       (this includes resource shortages). The uservd will try to
-       continue.
- crit - the uservd detected a non-recoverable error condition
-        after startup and will exit.
- alert - not used.
- emerg - not used.
-
-The service configuration language has the facility to direct error
-and warning messages to syslog.  The default facility and level is
-user.err, but the author of the configuration file(s) can override
-this.
-
-DAEMON EXIT STATUS:
-
-The daemon's exit code will reflect how well things went:
-
- 0 - The daemon was asked to detach itself from the controlling
-     terminal and this appears to have been done successfully.
- 1* - The daemon got a SIGTERM or SIGINT and shut itself down.
- 2* - The daemon believes that it was no longer the uservd and so has
-      exited to clean itself up.
- 3 - uservd was started with incorrect arguments.
- 4 - A system call failure or other environmental problem occurred
-     during startup.
- 5* - There was a non-recoverable error after startup; the uservd had
-      to exit.
- 6 - The daemon was asked to detach itself, but its detaching child
-     died for some unexpected reason.
-
- SIGABRT/SIGIOT* - an unexpected internal error, usually caused by a
-   bug in uservd.  This can also occur if an attempt to block signals
-   using sigprocmask fails.
-
-Outcomes marked * are not possible if the daemon is asked to detach
-itself - these exit statuses will be reaped by init instead.
+EXIT STATUS CODES
+
+For information about uservd's exit status, see uservd(8).
 
 The daemon's per-request children will note the success level of its
 request in its exit status.  This will not usually be logged unless it
 
 The daemon's per-request children will note the success level of its
 request in its exit status.  This will not usually be logged unless it
@@ -150,6 +94,9 @@ completeness and as programming documentation.
      example, if the client receives a fatal signal of some kind from
      its execution environment (eg its controlling terminal).
 
      example, if the client receives a fatal signal of some kind from
      its execution environment (eg its controlling terminal).
 
+ 10 - The per-request child wishes the server to check whether it is
+      still the uservd.
+
  12 - The service failed onm the service side in an expected and
       controlled manner, for example because it was rejected in the
       configuration files.
  12 - The service failed onm the service side in an expected and
       controlled manner, for example because it was rejected in the
       configuration files.
@@ -167,7 +114,7 @@ completeness and as programming documentation.
    internal error occurred.  This can also occur if an attempt to
    block signals using sigprocmask fails.
 
    internal error occurred.  This can also occur if an attempt to
    block signals using sigprocmask fails.
 
- 0-3,5-7,9-11,13-15,17-19 are not currently used.
+ 0-3,5-7,9,11,13-15,17-19 are not currently used by normal children.
 
 REENTRANCY IN THE LIBC:
 
 
 REENTRANCY IN THE LIBC:
 
@@ -202,3 +149,41 @@ PROBLEMS
   The bug is actually in your system header files, for not specifying
   the number and types of arguments to signal handler functions when
   they cast in the SIG_IGN and SIG_DFL macros.
   The bug is actually in your system header files, for not specifying
   the number and types of arguments to signal handler functions when
   they cast in the SIG_IGN and SIG_DFL macros.
+
+DEBUGGING VERSION
+
+If you run configure with --enable-debug, a debugging version will be
+built.  This will look in the current directory (the build directory)
+for the base of various things, including the IPC area (which you must
+therefore construct yourself).  The debugging version will produce
+extra output at various points.  It will not attempt to call
+setgroups(), instead just checking that the groups list is right, so
+it will work non-setuid if the daemon is invoked as the service user.
+The daemon won't fork for each request; instead, it will handle a
+single request and exit.
+
+There may be other changes.  Consult the code for details.  Making the
+debugging version of the client or daemon setuid root is probably a
+bad idea.  They may not work if they are run as different users.
+
+
+COPYRIGHT
+
+This file, INSTALL, contains installation instructions and other
+details for userv.
+
+userv is copyright Ian Jackson and other contributors.
+See README for full authorship information.
+
+userv is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.