                     The Unix Listserv Program
                          Version 3.0.0
                 Installation and Operations Guide

     Copyright (C) 1991,1992  Kimmo Suominen, Christophe Wolfhugel

1) Installation / Customization

- Create a user named "listserv" on your system, preferably in its own
  group (this makes it easier to give access to maintenance users).
  You may of course choose another user if you wish.

  The user should *not* have any special privileges. It is *not* an
  administrative user.

  You may wish to disable logins on that account, and allow access
  only with rlogin (to avoid having a shared password).

  It is also a nice idea to put listserv's home directory on a stable
  file system, ie. where there are few risks of running out of space.
  In the current release, TULP gives an undefined (which could be
  mail loops, but we did not test this) behavior if the file system it's
  running on is full. Do not put the directory on a file system
  which is vital for the system.

  Create the directory expl in listserv's home directory. If you
  prefer using another organization, you'll have to change the
  adequate defines in conf.h and Makefile.

  TULP's binaries and scripts will be put in /usr/local/etc, all
  service files will be in ~/expl and we suggest that you put
  the sources in ~/src.

- Login as root and create some mail aliases (described method
  is for Sendmail). Aliases are generally stored in /usr/lib/aliases
  or /etc/aliases, some sites may have another location, anyway the
  system administrator should know about it.

  You must create 3 service aliases:
     listman:          address of the listserv manager (you!)
     listserv-request: listman
     list-errors:      where errors should be reported (generally also you).
  These two aliases must of course *not* point to Listserv otherwise you'll
  create a deadly loop.

  If you have decided not to use the -request facility in conf.h then
  you do not need the listserv-request alias. It is strongly
  discouraged not to use the -request facility.

  Ask your system administrator to add "listserv" to the list of
  trusted users, with Sendmail this will allow listserv to send mail
  while defining the appropriate From envelope. With other MTAs,
  please consult their manuals in order to arrive to the same result.

  If you wish to use the test list, also add an alias:
     test:          "|/usr/local/etc/deliver test"

  And finally alias listserv to the deliver package:
     listserv:      "|/usr/local/etc/deliver listserv"

- Issue a newaliases in order to refresh the database. Also rebuild
  your frozen Sendmail configuration file if any. The Sendmail
  daemon should be restarted in order to be sure that all modifications
  have been taken into account.

- You'll now have to edit the configuration file conf.h in order to
  set the parameters according to your system and to your wishes.

  Parse this file carefully in order not to miss anything. If in
  future runs you see CPU loops on the Listserv process then maybe
  there is a problem with the signal handling on your system.
  In this case you may wish to define NO_SIGUSR1 in conf.h, you'll
  also need to modify the 'deliver' script in order to have it
  not calling 'kilst' anymore'.

- Edit helpfile in order to fill it in with your local adresses.
  You can also add whatever you'd like to. For example, on my
  production version on grasp1.univ-lyon1.fr I have explanations
  on how to retrieve the FAQ archives via the listserv.

- Check and modify Makefile according to your system. On AIX 3.1,
  -D_BSD does not need to be added (if you have compilation errors,
  then it's that you have wrong options).

  Don't forget to put the proper directories.

- Edit and customize 'deliver' and 'rc.tulp' according to your
  system.

- Issue 'make all' in order to compile all the stuff.

- Once compiled and linked successfully, issue a make 'install'.
  That will copy the executables and scripts to the right place.

  Verify that 'kilst' is setuid to listserv (no danger, check the source
  to get the confirmation).


- Copy helpfile, lists and test.* to ~/expl. If you wish to
  create new lists, refer to the latter comments and also to tulp(5).

The installation of TULP in now ready, you can now create your lists
and start the application.


2) Running TULP

TULP should be started preferably with the /usr/local/etc/rc.tulp
script.

The daemon should immediately go into background (except if DEBUG was
defined in the Makefile). You should now have the 'test' list ready
for use with one subscriber: the list-manager (listman).

Important eventss are filed to the syslog or to the fakesyslog you have
defined.

The world-readable file /usr/local/etc/tulp.pid exists as long as the
listserv is active. It's there to indicate the current pid to the
kilst program.

You may wish to create a file listname.n in order to enable the
usage of the X-Sequence: field in the header of the resent messages.


3) Listserv shutdown

Normal shutdown is obtained when sending kill -15 to the listserv pid.
shutdown generally does not take more than a few seconds, but when
relaying a message it can be much longer.


4) Creating a list (delete is reverse operation)

Creating a list is easy.

- Choose the list name in order to be at most MAX_FILE-2 long (this name
  if called 'listname' for the following text).

  In fact it should not be longer than 12 characters as, too bad,
  Posix only requires 14 characters long filenames. If the names
  are longer, you'll be system specific.

- Go to ~/expl and create 'listname.w' containing the welcome
  message that will be sent to every new subscriber.
  Create 'listname.u' and put in it any user you wish to subscribe
  immediately (see test.u format), otherwise just 'touch listname.u'.
  The file *must* exist. Create the file listname.n if you wish
  to have Sequence numbers.
  If you wish to have archiving, issue 'mkdir listname'.
  Verify that these files are mode 700.

  Customize the header of list.u (see file tulp(5)) according to your
  needs.

- The file list.n, if existing contains the number (in text) of the next
  message. If present, the X-Sequence: field will be added to every
  forwarded message.

- Edit the file lists and add the new list if you wish to have that list
  appear in the catalog.

- Edit (as root) /usr/lib/aliases and alias the new list name to the
  deliver script and refresh the aliases database.
  Also put the -request alias (to a human) if you have choosen
  the adequate compilation option in conf.h.
  Exemple:
        tulp:           "|/usr/local/etc/deliver tulp"
        tulp-request:   listman

The new list is ready, you don't need to restart the listserv.

Don't forget to subscribe to the new list, specifying address 'listname@host'
as subscriber email.


5) Miscellaneous

This listserv is used successfully in coordination with C-News in order
to establish a full bi-directionnal gateway between mailing lists and
Usenet newsgroups. This works fine only if listserv if the 'head' of
the gatewayed list/group.
