[L-Soft(TM) logo] [Online manuals]

Installation guide for LISTSERV® 1.8d for Unix®

Copyright © L-Soft International, 1994-2001

Last update: 19 Mar 2001


Contents:
    Statement of Year 2000 Compliance for L-Soft's Products
    Installation Overview
    For those sites running Sendmail
    Sendmail and restricted shells
    Usernames needed by LISTSERV
    Extracting installation materials from the "tar" files
    Deciding where LISTSERV will reside
    Building the interface utilities and LISTSERV server
    Using the precompiled binaries
    Moving the programs and files to the proper directories
    Customizing LISTSERV for your system
    Telling your mail system about LISTSERV
    Telling Post.Office and Netscape Mail Server about LISTSERV
    Running LISTSERV under a userid other than 'listserv'
    IMPORTANT - License Activation Key 
    Starting LISTSERV and Verifying a Successful Installation
    Talking to other LISTSERV evaluation kit users
    Registering the server
    Automatic Registration for LISTSERV Lite Servers
    List Creation
    Deleting a list
    Note to customers migrating from VM
    Starting LISTSERV automatically
    File server functions
    The bare facts about installing LISTSERV
    Installing the LISTSERV web archive and administration interface
    Upgrading your LISTSERV installation
    Contacting L-Soft Support
    Documentation and where to get more help

For changes to LISTSERV from version 1.8c to 1.8d, please download the 
LISTSERV 1.8d release notes from ftp://ftp.lsoft.com/ftp/documents/relnotes.

There are now two versions of LISTSERV: A "Classic" version and a "Lite" 
version. For a description of the differences between LISTSERV Classic and 
LISTSERV Lite, please see the URL 

http://www.lsoft.com/listserv-lite.html

LISTSERV Lite is user-supported, via the mailing list

LISTSERV-LITE@PEACH.EASE.LSOFT.COM

Please do not send questions regarding LISTSERV Lite to L-Soft's normal 
support addresses.

+=========================================================+
| Statement of Year 2000 Compliance for L-Soft's Products |
+=========================================================+

Please see http://www.lsoft.com/y2k-faq.html.

+=======================+
| Installation Overview |
+=======================+
 
If you're very familiar with software installations on your system and would 
prefer terse, matter of fact steps rather than complete instructions, skip to 
the section entitled "The Bare Facts About Installing LISTSERV" near the end 
of this document.
 
LISTSERV Classic for UNIX(R) is distributed as two compressed "tar" archive 
files, while LISTSERV Lite for UNIX(R) is distributed as a single compressed 
"tar" archive file. The installation guide, which is the file you are 
currently reading, is also available independently of the archives. For 
Classic, one of the tar files contains data files common to LISTSERV on all 
UNIX(R) platforms, including the Makefile, and the other contains the compiled 
version of the LISTSERV server; for Lite, all files needed, including the 
"common" files, are shipped in the single archive. In order to simplify the 
process of removing extraneous files created during the installation 
procedure, you should copy the tar file(s) to a scratch directory, install 
LISTSERV, and then "rm -fr /tmp/scratch" (or whatever you name the staging 
area).

LISTSERV for UNIX is now shipped with both:

* pre-compiled lsv and lsv_amin binaries which will run with the default 
  settings; and
* an lsv.o object file and C source for lsv_amin that can be linked locally 
  if you need to modify the Makefile or simply prefer to compile the server 
  yourself.
 
The installation of LISTSERV consists of the following steps:
 
* creating a "listserv" username,
* extracting the files in the two archive files into a 'scratch' directory,
* customizing the Makefile, including deciding what directories you want used 
  for incoming mail, as well as for the LISTSERV program and data files,
* depending on whether or not you are using the precompiled binaries:
  - if you are not using the precompiled binaries: running "make mailer", 
    "make lcmd", and "make server" to create the LISTSERV sendmail 
    interface, command line interface, and LISTSERV server programs 
    respectively.
  - if you are using the precompiled binaries: renaming 'lsv_amin-
    precompiled' to 'lsv_amin'.
  - if you do not have a compiler, moving or deleting the 'lcmd.c' and 
    'jobview.c' files from the 'scratch' directory.
* running "make install" to create the necessary directories, and copy the 
  programs generated in the previous step to the proper places, 
* setting file and directory permissions so that lsv_amin and 'listserv' can 
  have access to their files,
* modifying the "go.user" shell script to accurately describe your system,
* appending entries to your /etc/aliases file to handle mail sent to your 
  LISTSERV username, and directing your sendmail daemon to use the new 
  aliases,
* creating a "license.merge" file to make license key information available 
  to your server,
* (Classic) subscribing to the LSTSRV-E forum to join others in discussing 
  experiences with the evaluation copies of LISTSERV,
* (Lite) subscribing to the LISTSERV-LITE forum to join others in discussing 
  experiences with LISTSERV Lite,
* and finally (Classic only), filling out and returning (via e-mail) 
  information about your LISTSERV server so that other LISTSERV servers 
  around the Internet will know about your server.
 
All of these steps are described in greater detail in the sections below. They 
should be performed in the order they are presented since some steps rely on 
the results of earlier steps. Once you've finished the above steps, you will 
be able to start your LISTSERV server and verify that it's working. You'll 
then be ready to create mailing lists and start using your LISTSERV server.

+==================================+
| For those sites running Sendmail |
+==================================+

It used to be the case that many commercial unixes were shipped with sendmail
version 5. In recent years this seems to have become the exception rather than
the rule, but it is important to note that if your sendmail is at a version less
than version 8, you will probably experience long turnaround times on requests
to LISTSERV that could run to several hours. This is because earlier Sendmail
versions can handle only 1-2K deliveries per day. L-Soft strongly recommends
that any Unix site running LISTSERV with Sendmail upgrade to at least Sendmail
version 8.7.x (and you will probably want to upgrade to an even newer version to
get features like relay control).

If you are running a sendmail earlier than 8.7.x, please note that the official
sendmail distribution site (ftp.cs.berkeley.edu/ucb/sendmail) currently notifies
users that "8.6 is not supported, not secure, and should not be run on any
network-connected machine."

It is L-Soft's observation over a number of years that in general, performance
problems under unix are usually due to sendmail not accepting mail at the rate
LISTSERV wants to submit it. Thus for best performance on large LISTSERV
installations under unix, it is important to tune sendmail for fastest delivery.
L-Soft particularly recommends that for sendmail 8.8 and later you should set 

FEATURE(nocanonify)

in the sendmail.mc file and rebuild sendmail.cf. This has the drawback of losing
the ability to refer to other local machines by their non-qualified names (ie if
you are listserv.example.com you can no longer refer to, say, corp.example.com
as simply "corp"), but this makes sendmail accepting incoming mail a lot faster
and also reduces the load on your DNS server. At least one site has reported a
6x performance boost just based on this one change.

+================================+
| Sendmail and restricted shells |
+================================+

If you are running sendmail out of a restricted shell (for instance the smrsh 
shell), note that the lsv_amin mailer program that you will install below must 
be registered as a trusted application that may be executed by sendmail, or 
mail sent to LISTSERV and to lists will be rejected (typically with a sh: 
lsv_amin not available for sendmail programs error, although this may depend 
on how you have sendmail set up). Registering an application with the 
restricted shell typically involves placing symbolic links from (typically)
/usr/adm/sm.bin/ to the programs which are authorized. (On some recent Red Hat 
and possibly other systems the link is made to /etc/smrsh -- just note that 
this may be system dependent and be sure to read your sendmail restricted 
shell documentation carefully.) If you need more information on restricted 
shells, please refer to the sendmail documentation.

+==============================+
| Usernames needed by LISTSERV |
+==============================+
 
LISTSERV requires exclusive access to the mail sent to one username. Unless 
you have a very good reason to do otherwise, the username "listserv" should be 
used for that purpose. Many people around the world are already familiar with 
LISTSERV, and will assume that mail sent to  will 
reach the server. The LISTSERV  account is just an ordinary user, it doesn't 
need privileges, doesn't require access to restricted directories, and it 
doesn't need to have any particular UID or GID.

+========================================================+
| Extracting installation materials from the "tar" files |
+========================================================+

BEFORE STARTING: Please note that the Makefile should be run from a temporary 
directory rather than the target directory. Otherwise some 'mv' commands will 
produce unexpected results. 
 
For LISTSERV Classic, the two archive files you receive will be called 
common.tar.Z and either AIX.tar.Z, or SunOS.tar.Z, or ULTRIX.tar.Z, etc... 
depending on the version of UNIX(R) you are using. The filename is taken from 
the string returned by the "uname" command on each UNIX(R) platform. 

For LISTSERV Lite, you will receive only one archive file, which will be 
called AIX.tar.Z, or SunOS.tar.Z, or ULTRIX.tar.Z, etc... depending on the 
version of UNIX(R) you are using. Again, the filename is taken from the string 
returned by the "uname" command on each UNIX(R) platform. For LISTSERV Lite 
installations simply ignore further references in this document to 
common.tar.Z as all of the "common" files are contained in your `uname`.tar.Z 
file.

Please note that some FTP sites may change the name of the files slightly to 
adhere to system specific naming conventions. If you're used to dealing with 
compressed tar files already, then just extract the contents using whatever 
commands you prefer. If you'd like the sample commands listed below to work as 
shown, rename the files you received to common.tar.Z and `uname`.tar.Z before 
continuing. For example, if the system specific file you received is called 
aix.tar-z, you would enter the command mv aix.tar-z `uname`.tar.Z. Copy or 
move the two files to a scratch directory first. (The advantage of using a 
work directory for the installation is that you can easily clean up 
afterwards.) Once the files have been copied, "cd" to that directory and 
enter, uncompress *.tar.Z to restore them to their original state. Then enter, 
tar xf common.tar and tar xf `uname`.tar to unbundle the programs, data files, 
etc... needed to install LISTSERV. Afterwards you should find the following 
files and directories have been created in your current directory,
 
Makefile              lcmd.c                lsv_amin.h
go                    listview.c            sf90m
go.sys                lsv                   u-install.memo
go.user.sample        lsv.o                 wa
home                  lsv_amin-precompiled
jobview.c             lsv_amin.c
 
and the ./home directory will contain the following files.
 
aliases.names    intpeers.names   listfile.memo  listownr.memo  peers.names
bitearn.nodes    license.merge    listjob.memo   listpres.memo  service.names
country.file     linkswt2.file    listkeyw.memo  listqs.memo    site.catalog
default.mailtpl  listall.refcard  listkwd.file   listserv.memo  stdcmd.file
default.wwwtpl   listcat.file     listlpun.memo  lsvhelp.file   sysff.file
errfac.file      listdev.memo     listmast.memo  lsvinfo.file   system.catalog

Note however that LISTSERV Lite kits will not contain bitearn.nodes or 
linkswt2.file as they are not needed for LISTSERV Lite.
 
Sample commands for this step:

 mkdir /tmp/scratch
 cp common.tar.Z `uname`.tar.Z /tmp/scratch
 cd /tmp/scratch
 uncompress *.Z
 tar xf common.tar
 tar xf `uname`.tar

+=====================================+
| Deciding where LISTSERV will reside |
+=====================================+

If you plan to use the precompiled lsv binary, you can skip this section as it 
uses the defaults for these locations.
 
Before you can continue with the installation of LISTSERV, you need to choose 
where you want several things to be placed. The installation process needs the 
full path names of three directories. All of them are defined by macros in the 
Makefile (which was extracted from the common.tar archive in the preceding 
step).
 
The directory where the mail interface and command line interface programs 
should be installed is defined by the BINDIR macro. The Makefile is 
distributed with BINDIR set to /usr/local/bin by default. Whether you choose 
to use the default directory, or redefine it, the installation procedure 
assumes the directory already exists. If you choose a new directory, you will 
need to create it before running the final "make install". This directory is 
only referenced during the installation of the mail interface. Neither the 
mail interface program, the command line interface utility, nor the LISTSERV 
server process requires write access to this directory afterwards.
 
Incoming mail is written to the directory defined by the LSVSPOOL macro in the 
Makefile. The default value is $(LSVROOT)/spool. Unlike the BINDIR directory, 
the LISTSERV spool directory is assumed to be a new directory. In fact, no 
other users or daemon processes should write to this directory since LISTSERV 
scans this directory for incoming mail. If the directory doesn't exist when 
the "make install" command is executed, it will be created, and the LISTSERV 
account will be made the owner.
 
The LISTSERV executable, as well as associated directories and data files will 
be installed in the directory pointed to by the LSVROOT macro in the Makefile. 
Any directory can be used, so long as LISTSERV has write access to it. When 
the final "make install" is run, the LSVSPOOL directory, and several 
subdirectories, will be created if necessary. The LISTSERV account will be 
made the owner of those directories. The Makefile is distributed with the 
LSVROOT macro set to /home/listserv. If you choose the default setting, the 
directories /home/listserv, /home/listserv/home, and /home/listserv/tmp will 
be created as a result.
 
To use different directories, edit the Makefile and change the BINDIR, 
LSVSPOOL, and/or LSVROOT macros.

Documented restriction: Please note that under unix, all files and directory
paths accessed by LISTSERV must be in lower case.  In other words, you cannot
install LISTSERV under the LSVROOT path of /home/users/LISTSERV ; you must
use the path /home/users/listserv (or in any case, a path that is in lower 
case).
 
Sample commands for this step:

 vi Makefile

+======================================================+
| Building the interface utilities and LISTSERV server |
+======================================================+

If you do not have a compiler (or are planning to use the precompiled binaries 
in the kit), skip to the next section.

Note that L-Soft does not recommend using the precompiled executables if you 
have a compiler. It is always preferable to compile and link with your own 
local libraries rather than to assume that ours are the same as yours.
 
The program that handles incoming mail is called lsv_amin and is distributed 
in source form. The file lsv_amin.c is a standalone program that can be 
modified to suit your local mail system as needed. It should work as 
distributed with unmodified Sendmail systems. 

If you are running ZMAILER instead of Sendmail, you must change the value of 
the Makefile macro LSVAMIN_TYPE  from "flags" to "links". This causes LISTSERV 
to use symbolic links to "lsv_amin" for each LISTSERV e-mail address.  ZMAILER 
users must choose this option since programs run from ZMAILER "aliases" files 
can't have arguments.

If you are running PP instead of Sendmail, you can compile the standard mail 
interface with -DMAIL_PP. To compile lsv_amin, first check the CC and CFLAGS 
macro in the Makefile to make certain the compiler and options specified are 
appropriate for your system. Second, if you have enabled the syslog daemon on 
your system, note that the lsv_amin program logs informational and error level 
messages using the syslog facility. By default, lsv_amin logs those messages 
as part of the mail system. That is, LOG_MAIL is used on the openlog() call. 
If you would prefer to log the LISTSERV mail interface entries separate from 
the other mail software on your system, edit lsv_amin.h and change the line 
 
#define LOG_FACILITY LOG_MAIL
 
replacing LOG_MAIL with LOG_LOCAL1, or whatever category is appropriate for 
your site. If you are using a system on which the openlog() routine only takes 
two parameters, an older Ultrix system for example, just change LOG_MAIL to 0. 
Once you've checked the Makefile and (optionally) changed the syslog option in 
lsv_amin.h, enter "make mailer" to build the program.
 
The "lcmd" utility is also distributed in source form. Once you've compiled 
and installed "lcmd", users can use it to send commands to your LISTSERV 
server rather than having to use a mail program. Users familiar with the 
Bitnet version of LISTSERV will find "lcmd" works much like the VM "tell" and 
JNET "send" commands. The primary differences are that LISTSERV sends back 
mail in response to commands submitted with "lcmd", and only your local 
LISTSERV can be reached. In addition to providing a simple command line 
interface to LISTSERV, sending commands with "lcmd" obviates the need for 
password validation of protected commands. Since the origin of the command is 
determined by the username of the person running "lcmd", not by parsing mail 
headers, password checking can be skipped by LISTSERV. The lcmd.c program 
should compile without modification. Site specific information needed by 
"lcmd" will be provided by the Makefile when building the program. To compile 
the LISTSERV command interface enter, "make lcmd".
 
If you have decided to link the lsv.o file and make your own lsv binary, there 
should be no need to modify anything in the Makefile to perform this step. 
Just enter, "make server" to build the server program. The resulting binary 
will be named "lsv".

Sample commands for this step:

 vi Makefile
 vi lsv_amin.c
 make mailer
 make lcmd
 make server

+================================+
| Using the precompiled binaries |
+================================+

(If you are not planning to use the precompiled binaries, please skip to the 
next section.)

If you do not have a compiler, or if you have just decided to use the 
precompiled binaries from the kit, you now need to rename the lsv_amin-
precompiled binary to lsv_amin .  This will prevent 'make' from trying to call 
'cc'.

Please note that there is no precompiled lcmd binary. This is because lcmd 
requires that the LSVSPOOL directory specification be compiled into it, and 
there is no way to know ahead of time whether or not your site will be using 
the defaults. Therefore sites that elect to use the precompiled binaries will 
not be able to run 'make lcmd'.

If you are using the precompiled binaries because you do not have a compiler, 
you should move or delete the 'lcmd.c' and 'jobview.c' files from the 
'scratch' directory before running 'make install', so that the Makefile 
doesn't try to compile them and crash because it can't find 'cc'.

Sample commands for this step: 

 mv lsv_amin-precompiled lsv_amin
 rm lcmd.c
 rm jobview.c

+=========================================================+
| Moving the programs and files to the proper directories |
+=========================================================+

The command, "make install" will copy the "lsv", "lsv_amin", and "lcmd" 
programs to the appropriate directories, as specified by the BINDIR and 
LSVROOT macros in the Makefile. In addition several directories will be 
created and a number of data files copied to those directories. While there 
are scenarios in which you can complete this step from the LISTSERV account, 
in most cases you will need to become "root" to run the "make install" 
command.

SOLARIS SPECIFIC:  When issuing the commands below be sure to follow them 
exactly. If you issue "su - root" instead of "su root" LISTSERV will be 
installed but will fail when you attempt to start it.
 
Sample commands for this step:

 su root
 make install
 exit

+======================================+
| Customizing LISTSERV for your system |
+======================================+

LISTSERV needs to know a variety of things about your system, and also how to 
communicate with the people that will be maintaining the software. All of the 
settings that you are likely to want to change are defined in the "go.user" 
shell script, which is created in the LSVROOT directory when you enter "make 
install". There are a number of environment variables that you can set to 
reflect things like the Internet domain name of the machine that will be 
running LISTSERV, the e-mail address of the LISTSERV postmaster, etc... You'll 
need to edit the go.user file in the LSVROOT directory, and set each of the 
variables as appropriate. There are comments in the file explaining the 
purpose of each variable.
 
Sample commands for this step:

 cd /home/listserv
 vi go.user

+=========================================+
| Telling your mail system about LISTSERV |
+=========================================+

If you are using Software.Com's Post.Office product or Netscape's Netscape 
Mail Server product instead of sendmail, please see the next section.

Please note that the file you need to edit in this step, and the commands you 
need to issue will require root privileges. Also, while the procedure for 
manually modifying the sendmail aliases file is described below, you can also 
enter "make aliases" to have the installation program complete this step 
automatically. The automated procedure assumes that your sendmail stores 
aliases in the file /etc/aliases, that the "newaliases" command will rebuild 
the aliases database, and finally that "kill -HUP `cat /etc/sendmail.pid`" 
will cause Sendmail to read in the updated alias list.
 
LISTSERV accepts and responds to several e-mail addresses. Even before you 
setup mailing lists, mail sent to listserv and owner-listserv should be handed 
to LISTSERV. The link between LISTSERV and your mail system is the lsv_amin 
program. If you are running Sendmail, the best way to route incoming mail to 
lsv_amin is by adding entries to your "aliases" file. Refer to the manual 
pages for sendmail on your system if you are not sure where the alias file is 
stored. On many systems the file will be called /etc/aliases. Once you have 
located the file, add the following lines,
 
listserv: "|/BBB/lsv_amin /SSS listserv"
owner-listserv: "|/BBB/lsv_amin /SSS owner-listserv"
 
to the file, replacing /BBB with the directory where the lsv_amin program was 
installed (the BINDIR macro in the Makefile), and replacing /SSS with the 
LISTSERV spool directory (the LSVSPOOL macro from the Makefile). Other than 
that, the lines should look exactly like the examples above. The double quotes 
should be entered into the alias file.
 
For example, if you changed BINDIR to /usr/lbin, and kept the default LSVSPOOL 
directory, the new lines in /etc/aliases would look like the following.
 
listserv: "|/usr/lbin/lsv_amin /home/listserv/spool listserv"
owner-listserv: "|/usr/lbin/lsv_amin /home/listserv/spool owner-listserv"
 
After updating the alias file, you will need to issue two Sendmail commands. 
First enter "newaliases" to compile the alias file into the format the 
sendmail daemon expects. Then you need to direct the sendmail daemon currently 
running on your system to read the newly compiled list of aliases. Refer to 
the manual pages for sendmail if you are unsure of how to do so. The command, 
"kill -HUP `cat /etc/sendmail.pid`" will work on AIX and SunOS systems. If you 
are running a syslog daemon, sendmail will log the fact that it has loaded the 
new aliases file. You can check the syslog output after issuing the command to 
make sure your changes are in place.
 
Sample commands for this step:

 su root
 cd /etc
 vi aliases
 newaliases
 kill -HUP `cat sendmail.pid`
 exit

+=============================================================+
| Telling Post.Office and Netscape Mail Server about LISTSERV |
+=============================================================+

LISTSERV can be used with either of these products. You still need to make the 
same aliases but since neither Post.Office or Netscape Mail Server use 
/etc/aliases, the procedure is significantly different. L-Soft does not have 
any test machines running either of these products so the procedure as 
outlined is based on correspondence with customers who have made this 
combination work rather than based on tests run on our own systems.

First, you must make a mailbox (login) for each of the aliases discussed in 
the previous section.

Next, you must use the mail server's configuration GUI to create "program 
delivery" aliases for each of the mailboxes you have created in the previous 
step.  The "program delivery" aliases must point to the lsv_amin executable, 
which is responsible for passing incoming mail to LISTSERV in the correct 
format.

Note that this procedure is identical for both the server aliases and for the 
eight aliases that need to be created for each mailing list (see below under 
"List Creation"). If you are not familiar with "program delivery" and creating 
aliases under Post.Office or Netscape Mail Server, please consult the 
documentation for the respective program. L-Soft cannot help you with the 
configuration of Post.Office or Netscape Mail Server.

Current versions of these products may also require that you configure them so 
that lsv_amin is known as a "trusted" program. For more information, again 
please consult the documenentation for the respective program.

+=======================================================+
| Running LISTSERV under a userid other than 'listserv' |
+=======================================================+

If you do change the username under which LISTSERV runs (which for the reason 
noted above is not recommended by L-Soft), you must make sure that the 
following points are observed as you work through the installation:

* You must set the LSVNAME macro in the Makefile to the username you have 
  selected.
* If you have a compiler, you must edit lsv_amin.c and change the line
 
  #define LISTSERV "LISTSERV"
 
  to 
 
  #define LISTSERV "USERNAME"
 
  where USERNAME is the username you have selected.
 
* You must ensure that the lsv_amin mailer, when run, is invoked suid userid, 
  where "userid" is the username LISTSERV is running under. Otherwise mail  
  sent to LISTSERV will be treated as if it were being sent to a list with 
  the name "userid".

* If you do not have a compiler and must use the precompiled lsv_amin 
  executable, you will have to modify the aliases in /etc/aliases that are 
  normally made by the 'make aliases' stage of the Makefile.  For instance if 
  you have decided to run LISTSERV under the username 'listmanager', you 
  would have to make the aliases
 
  listmanager: "|/usr/local/bin/lsv_amin -t listserv"
  owner-listmanager: "|/usr/local/bin/lsv_amin -t owner-listserv"
 
  In other words, lsv_amin will be invoked suid listmanager but will feed the 
  userid 'listserv' to LISTSERV. Since you cannot change the name used 
  internally by LISTSERV unless you have a compiler, this is required to keep 
  mail to 'listmanager' and 'owner-listmanager' from being treated as list 
  mail rather than administrative mail.

* (Classic only) If you do not intend to register your server you should set

  RUNMODE="STANDALONE"
  export RUNMODE

  in the go.user file to prevent your server from attempting to use the 
  LISTSERV backbone to distribute mail (this will fail for non-registered
  servers not running under the 'listserv' userid and is just annoying for
  postmasters of other servers who will receive an error every time such
  a job goes out).

+====================================+
| IMPORTANT - License Activation Key |
+====================================+

Please note that this step is handled automatically for evaluation kits. The 
necessary file, called "license.merge", is provided in the common.tar archive 
and the "make install" command will copy it to the proper directory.
 
Before you can start up LISTSERV, you will need to install a License 
Activation Key (LAK) for 'LISTSERV-xxx' (xxx = SUNOS, AIX, BSDI, etc...). In 
order to offer the same range of services to all LISTSERV sites, regardless of 
the operating system used, we had to develop our own "license key" scheme. 
Using system supplied license managers where available and L-Soft LAKs 
elsewhere would have required us to develop multiple authorization schemes, 
and would also complicate the task of issuing license keys to customers.
 
Since the LAK manager is part of LISTSERV, installing the LAK is done last, 
after all the programs have been built and moved to their proper directories. 
The process is quite simple, you just create a file called license.merge in 
the $LSVROOT/home directory and start the LISTSERV server to compile the 
information. The instructions for doing so are described in the License 
Registration Form that came with your installation materials.

+===========================================================+
| Starting LISTSERV and Verifying a Successful Installation |
+===========================================================+
 
Once you've customized the "go.user" shell script, you're ready to start 
LISTSERV. To do so, change your current directory to LSVROOT (as defined in 
the Makefile) and enter "go". LISTSERV will print some startup messages, then 
since this is the first time your server has been run, LISTSERV will generate 
a number of files needed to route mail. You should see messages similar the 
ones below.
 
12 Jun 1998 22:16:47 LISTSERV-TCP/IP for unix version 1.8d starting...
12 Jun 1998 22:16:47 Copyright L-Soft international 1986-1998
12 Jun 1998 22:16:47 SIGNUP files are being compressed...
12 Jun 1998 22:16:47 -> No entry removed.
12 Jun 1998 22:16:48 The network tables are outdated and must be rebuilt.
* Network tables generation process started - be patient...
Currently processed 500 nodes.
Currently processed 1000 nodes.
etc...
 
And once the table generation steps have finished you will see,
 
* Step 6 complete - link weights file successfully compiled.
*
* Network tables generation completed successfully.
12 Jun 1998 22:16:54 Nearest backbone host is LISTSERV@PEACH.EASE.LSOFT.COM
12 Jun 1998 22:16:54 Nearest NJE host is LISTSERV@PSUVM
12 Jun 1998 22:16:54 Initialization complete.
 
which confirms that you've successfully installed the LISTSERV server. To 
issue LISTSERV commands, press Ctrl-C and you will be prompted to enter a 
command. You can verify that your customized version of "go.user" was used 
with the RELEASE command. It will display, among other things, the address(es) 
of the LISTSERV postmaster(s) you entered in "go.user". If not, then stop the 
server and make certain that LISTSERV owns the "go.user" file, and that 
execute permission is set for the file. To stop LISTSERV hit Ctrl-C then enter 
"stop".
 
Once you've verified that your LISTSERV server starts and accepts commands, 
you should check to make sure the mail interface is working properly. If you 
stopped your LISTSERV, then restart it. You can use "go bg" if you'd rather 
have the server run in the background. After restarting LISTSERV, login to a 
different username and send mail to the LISTSERV account on your machine. 
Include one or more LISTSERV commands in the body of the mail message. Since 
you have yet to define any mailing lists to your server, commands like 
RELEASE, INFO and THANKS would be good choices. The mail interface notifies 
the server immediately upon arrival of new mail. So unless your system is 
heavily used when you try sending the message, a response should arrive within 
a few moments. If you don't receive mail back from LISTSERV, check for syslog 
entries generated by the mail interface, lsv_amin. Also, check to see if there 
are any errors on the terminal/window where you're running LISTSERV. If you 
started the server with "go bg" check the file "listserv.log" for error 
messages.

+================================================+
| Talking to other LISTSERV evaluation kit users |
+================================================+

A discussion group for sites that have installed evaluation copies of LISTSERV 
has been created to facilitate communication between LISTSERV maintainers, 
list owners and L-Soft support staff. The list is called LSTSRV-E, and you can 
subscribe by sending mail to LISTSERV@LISTSERV.NET, with the command "SUB 
LSTSRV-E Your Name" in the body of the mail message. If you have any 
questions, comments, helpful hints, etc., please post them to LSTSRV-E for 
distribution to other people participating in the evaluation. Don't forget to 
mention which version of UNIX(R) you are using when posting. The purpose of 
the list is to share your experience and problems with other users of 
evaluation kits. Because there are so many versions and brands of unix, the 
kits haven't been tested equally on all possible platforms. Knowing which kit 
you are using will streamline the process of finding an answer to your 
questions.

+========================+
| Registering the server |
+========================+

NOTE: This section does not apply  to evaluation kits or to LISTSERV Lite
kits.  Evaluation copies  of LISTSERV  should not  be registered  because
they  are  (presumably)  temporary  servers  running  test  lists,  whose
existence should not  be broadcast. LISTSERV Lite  kits are automatically
registered (see the next section for details).                           
                                                                         
Once  the server  is ready  for production  use (that  is, once  you have
installed a permanent License Activation  Key, and once you have arranged
for  LISTSERV to  be started  automatically when  the system  boots), you
should consider  registering it  with L-Soft.  Please note  the following
restrictions:                                                            
                                                                         
L-Soft currently accepts new registrations only for sites that:          
                                                                         
* are  running version  1.8c or  higher of  LISTSERV Classic  or LISTSERV
  Classic HPO; and                                                       
                                                                         
* have  unlimited (UNITS=0)  licenses  or are  specifically licensed  for
  DISTRIBUTE-only use; and                                               
                                                                         
* have names  that are unlikely  to change  any time soon.  For instance,
  LISTSERV.EXAMPLE.ORG,   LISTS.EXAMPLE.EDU,   and  LSV.EXAMPLE.COM   are
  completely acceptable  (although we  strongly suggest  using "LISTSERV"
  rather than  "LISTS" or "LSV", simply  because that is what  most users
  are familiar  with), whereas  something like  A8B703A.CC.EXAMPLE.EDU is
  not. If  you are  running a test  serve that you  plan to  rename later
  when it  goes into production, do  not register the server  until it is
  running under its final name.                                          
                                                                         
Note also that  it is usually necessary  to provide a DNS A  record or MX
record at  minimum for  the host  name you are  registering. A  DNS CNAME
will  usually   get  rewritten  by   random  sendmails  and   will  cause
authentication problems with  outbound DISTRIBUTE and other  jobs. If you
cannot send  mail to your  LISTSERV server  from an external  address and
receive a  response with an  RFC822 From: line  that is identical  to the
NODE= value in your site configuration file, you will have to make DNS or
sendmail  configuration adjustments  so  that NODE=  and  the From:  line
match. L-Soft will  not register sites that  do not or can  not meet this
important criterion.                                                     
                                                                         
If your LISTSERV site does not meet  all of the above criteria, there are
other options for keeping your  LISTSERV networking tables current (which
is  the  most  important  reason   for  registering  the  software).  See
http://www.lsoft.com/table-updates.html for more information.            
                                                                         
Registering the  server is  necessary to broadcast  its existence  to the
other  LISTSERV servers  and to  receive automatic,  periodic updates  of
LISTSERV's networking tables. Once you  have registered, your server will
also be  sent periodic  updates about  the public  lists hosted  by other
LISTSERV  sites,  and,  similarly,  other  LISTSERV  sites  will  receive
information about  the public  lists you  are hosting.  Registration also
makes it  possible to assign  the most efficient DISTRIBUTE  routing path
for your server.                                                         
                                                                         
You may submit an online registration form at                            
                                                                         
                    http://www.lsoft.com/regform.html
                                                                         
If there are special considerations for your site that are not covered by
the standard form, or  if you are unable to access the  web site, you can
contact  registrar@lsoft.com   to  obtain   a  registration   form.  When
contacting  the site  registrar,  please tell  us  what operating  system
LISTSERV is running under so that we can send you the proper form.

+==================================================+
| Automatic Registration for LISTSERV Lite Servers |
+==================================================+

LISTSERV Lite servers are registered automatically when you start the software 
for the first time. This auto-registration is not optional for Free Edition 
servers, but may be disabled for non-Free Edition Lite servers by specifying 
STANDALONE runmode (see "RUNMODE=" in Appendix C of the Site Manager's 
Operations Guide).

The auto-registration allows you to take part in the global List of Lists and 
CataList services maintained by L-Soft. Registrations are verified on a 
regular basis by a central L-Soft server, which sends out several 
informational commands that return non-privileged information about your 
server (anyone can issue these commands). Since these registrations are 
maintained by regular communication with your server, please note that, should 
you decommission the server, registration verifications will continue to be 
mailed to your server for several days until the central server decides that 
your server is actually gone, and not simply unable to receive mail for some 
reason. Please note carefully that it is not possible for L-Soft to stop these 
registration queries manually even if you write to us and tell us that the 
server has been shut down permanently. They will stop after several days 
without a response.

+===============+
| List creation |
+===============+

In order to create a new list, you must:
 
1. Prepare a "list header", for instance using the sample provided below. You 
   can also get the header of an existing (L-Soft) LISTSERV list and use it as 
   sample.
2. Fill in the PW=CCCCCCCC on the first line with the "CREATEPW" you chose 
   when configuring LISTSERV. The PW=XXXXXXX line at the end defines the 
   password you want to assign to your list. This is the password that the 
   list owner will have to supply with sending commands via mail, if you 
   select "Validate= Yes". Alternatively, you can select "Validate= 
   Yes,Confirm" to use the "OK" mechanism, which does not require any 
   password.
3. Mail the resulting file to the LISTSERV address, from a username defined as 
   "postmaster" in the LISTSERV configuration. For instance:
 
   mail listserv@xyz.edu < newlist.create
 
If you have questions about list creation, keywords, list management and other 
high-level or system-independent LISTSERV topics, the best place to ask them 
is the LSTOWN-L list, an open forum of LISTSERV list owners.
 
Please note that LISTSERV will not create archive directories automatically. 
You must issue the appropriate "mkdir" command yourself. And when creating 
such directories, remember that the file permissions must grant the LISTSERV 
account write access to the directory. Also, directories should be specified 
as full path names.
 
For assistance with problems specific to evaluation kits, join the LSTSRV-E 
list or contact Support@LSOFT.COM for a prompt reply. Please don't forget to 
tell us which brand and version of unix you are running!
 
Following is a sample list header file that can be modified, then cut and 
pasted into a mail message to be sent to your LISTSERV server.  For help with 
the various header keywords (not all are shown here), please refer to the 
LISTSERV List Owners Manual.
 
------------------------------- Cut here --------------------------------
PUT SAMPLE.LIST PW=CCCCCCCC
*
* Title of sample LISTSERV list
*
* Review= Public         Subscription= Open       Send= Public
* Notify= Yes            Reply-to= List,Respect   Validate= No
* Notebook= Yes,/some/directory,Monthly,Public
*
* Owner= someone@somewhere.com
*
* PW= XXXXXXXX
------------------------------- Cut here --------------------------------
 
(If you use this sample, be sure to change "/some/directory" in the Notebook= 
keyword specification to a directory that actually exists on your machine. 
Also be sure to put a valid e-mail address in the Owner= keyword.)

Once you have constructed a list header file, and sent it to your LISTSERV, 
you need to instruct your mail system to route mail for that new list to the 
LISTSERV mail interface. 

(If you are running Software.Com's Post.Office or Netscape Mail Server as your 
MTA rather than sendmail, please see the section above entitled "Telling 
Post.Office and Netscape Mail Server about LISTSERV" for specifics on how to 
create "program delivery" aliases.)

Telling the MTA how to route mail to LISTSERV involves adding entries to your 
Sendmail aliases file, much like you did when installing the server itself. 
For each new list, you'll need to add eight entries to the aliases file. The 
format of those lines is as follows,
 
NAME: "|/BBB/lsv_amin /SSS NAME"
owner-NAME: "|/BBB/lsv_amin /SSS owner-NAME"
NAME-request: "|/BBB/lsv_amin /SSS NAME-request"
NAME-search-request: "|/BBB/lsv_amin /SSS NAME-search-request"
NAME-server: "|/BBB/lsv_amin /SSS NAME-server"
NAME-signoff-request: "|/BBB/lsv_amin /SSS NAME-signoff-request"
NAME-subscribe-request:   "|/BBB/lsv_amin /SSS NAME-subscribe-request"
NAME-unsubscribe-request: "|/BBB/lsv_amin /SSS NAME-unsubscribe-request"

where "NAME" is the name of the mailing list, "/BBB" in the directory where 
the mail interface was installed (BINDIR in the Makefile), and "/SSS" is the 
LISTSERV spool directory (LSVSPOOL in the Makefile).
 
For example, assuming the default values were chosen for BINDIR and LSVSPOOL, 
and LSVROOT is /home/listserv,  the aliases for a new list called "newt" would 
be,
 
newt: "|/usr/local/bin/lsv_amin /home/listserv/spool newt"
owner-newt: "|/usr/local/bin/lsv_amin /home/listserv/spool owner-newt"
newt-request: "|/usr/local/bin/lsv_amin /home/listserv/spool newt-request"
newt-search-request: "|/usr/local/bin/lsv_amin /home/listserv/spool newt-
search-request"
newt-server: "|/usr/local/bin/lsv_amin home/listserv/spool newt-server"
newt-signoff-request: "|/usr/local/bin/lsv_amin /home/listserv/spool newt-
signoff-request"
newt-subscribe-request:   "|/usr/local/bin/lsv_amin /home/listserv/spool newt-
subscribe-request"
newt-unsubscribe-request: "|/usr/local/bin/lsv_amin /home/listserv/spool newt-
unsubscribe-request"
 
(Note that /etc/aliases does not use line continuation characters and will not 
operate properly unless each alias is on a line by itself. Thus, the last 
three aliases above should be on a single physical line, not wrapped as in the 
example.)

Once you've added the new aliases to the file, you need to issue the 
"newaliases" command and send your Sendmail daemon a hangup (HUP) signal 
before they will take effect.
 
As with the earlier step where adding mail aliases was necessary, the commands 
documented above can be automatically invoked by using the "make" command. If 
you system stores aliases in /etc/aliases, and the newaliases command can be 
used to compile that file, and if the command "kill -HUP `cat /etc/aliases`" 
will cause your Sendmail to reload the alias file, then the automated method 
should work. To add the mail aliases for a new list, and to direct your 
Sendmail to use those new aliases immediately, enter "make list name=XXX" 
where "XXX" is the name of the new list.

+=================+
| Deleting a list |
+=================+

While there is no LISTSERV command to delete a list, the procedure is quite 
simple.  Log in to the listserv account (or any other account with privileges 
in LISTSERV's directories, e.g., root), copy or archive any files (list 
archives, etc.) that you want to keep to a safe place, and then use the Unix 
'rm' command to delete the list file.  For instance, if you are deleting a 
list called 'test.list', simply 'rm test.list' from the LISTSERV 'home' 
directory (by the Makefile default, this directory is /home/listserv/home).  
Optionally you may also remove the Sendmail aliases from /etc/aliases, but 
once the '.list' file is gone, it has been deleted as far as LISTSERV is 
concerned.

+=====================================+
| Note to customers migrating from VM |
+=====================================+

VM lists can be migrated to unix with a much simpler procedure:
 
A. Stop LISTSERV on unix, and go to its /home directory.
B. FTP a copy of the xxxx.LIST file from the VM system, in ASCII mode. Note 
   that you must grab the file as it appears on the VM server's "A-disk". If 
   you send a REVIEW command to the VM LISTSERV, you may be sent a file called 
   xxxx.LIST, but it is not suitable for migration: among other things, it 
   will not list subscribers with the "conceal" flag.
C. If the list is archived, edit the xxxx.LIST file (which is an ordinary text 
   file) to insert a suitable directory name in the "Notebook=" keyword (see 
   example above). Do not modify the lines with subscriber names! The only 
   lines you may edit at this stage are the ones starting with an asterisk.
D. Start the unix LISTSERV. It will issue a warning about incorrect list 
   format, and automatically convert it to the format used on unix.
 
You can also FTP the archive files (xxxx.LOGyymm) directly to the directory 
selected in point C.

+=================================+
| Starting LISTSERV automatically |
+=================================+

The "go" shell script can be called from an inittab entry if you would like 
LISTSERV to be started whenever your system is rebooted. And since the "lsv" 
program takes over the shell script's process, the "respawn" option can be 
used if you would like the init process to monitor and restart LISTSERV if it 
should stop for some reason. If you choose to treat LISTSERV like other daemon 
processes, it is advisable to redirect the standard output of the "go" script 
to a file. Otherwise, information needed to track and resolve problems will 
not be available for reference. You can either edit the "go" script, which is 
located in the LSVROOT directory, or start the server with the command "go 
bg". The "bg", or "background", option will redirect LISTSERV's informational 
and error messages to a file called "listserv.log" in the LSVROOT directory. 
By way of example, here is the inittab entry used on one of the L-Soft 
development machines (this one happens to be a Linux machine):
 
ls:3:respawn:/home/listserv/go bg    >/dev/console 2>&1
 
Please note that this respawn method may not work if you don't have sh as the 
default shell for 'listserv'. You also need to ensure that the runlevel 
specified in the inittab entry is the same as the default runlevel for the 
machine.

Please refer to the manual pages for init and inittab on your system for 
specific information on how such mechanisms work on your version of UNIX(R).

+=======================+
| File server functions |
+=======================+

There are three file server systems currently in use or under development for 
LISTSERV:
 
* The VM (mainframe) version of LISTSERV continues to support the 
  "traditional" file server system. While it is very powerful, this file 
  server system dates back to 1986 and suffers from a few annoying 
  limitations. In addition, it is written in a non portable language. This 
  will be replaced eventually with the "new" file server system, currently 
  under development.

* The non-VM versions of LISTSERV 1.8d enhance further the new file server 
  system introduced in non-VM 1.8c, which includes most of the functionality 
  of the "traditional" file system. Notably, GIVE and file "packages" are now 
  available. Most end user commands will continue to work as before. However, 
  there is no guarantee that the internal data files manipulated by the file 
  server functions will remain as before. Note that SITE.CATALOG files from 
  versions 1.8a through 1.8c are still supported and will not need to be 
  changed in order to work with 1.8d.

* The non-VM versions of LISTSERV 1.8a and 1.8b supported a "temporary" file 
  server system, to provide an interim solution while the new system was 
  being developed. This temporary system only supports a subset of the 
  functions of the traditional system. This system is no longer supported by 
  L-Soft as it has been superseded by the new non-VM file server referenced 
  above.

In general, the three systems are compatible, with the understanding that the 
temporary system does not include all the possible options. However, the 
mechanism for registering files (defining them to the file server system) is 
different. With the traditional (VM) system, you create files called "listname 
FILELIST", which contain definitions for all the files belonging to a 
particular archive. With the temporary system, you store these definitions in 
a file called "site.catalog", in the LISTSERV "home" directory (by the 
Makefile default, this directory is LSVROOT/home). You create files called 
listname.catalog and register them in site.catalog in order to provide access 
to them. Please be aware that there are major differences between the way 
files are registered on VM and workstation systems as many list owners use (or 
are used to) a VM server with different conventions.
 
To register a new file to the server, you add a line to the "site.catalog" 
file in the LSVROOT/home directory (create "site.catalog" if it does not 
exist; L-Soft does not ship it with the software). Do not modify the 
"system.catalog" file, as it is part of LISTSERV and may be replaced when you 
apply software updates; however, site.catalog is formatted identically to 
system.catalog. Here is what a typical "site.catalog" entry for a file looks 
like:
 
MY.FILE /aaa/bbb/my.file XXX YYY
 
The first item, MY.FILE, is the name by which the file is known to LISTSERV. 
That is, the users will use GET MY.FILE to order a copy of that file. The name 
is case-insensitive and must contain one and only one period (in other words, 
all files served by LISTSERV must have a file name and file extension 
separated by a "." character). It is recommended that this identifier consist 
of a filename of no more than 13 characters and a file extension of no more 
than 15 characters.  For instance

VERYLONGFILENAME.VERYLONGFILEEXTENSION /aaa/bbb/my.file XXX YYY

will work, but the display of this name in the output of an INDEX command will 
look like this:
 
* filename      filetype        GET PUT -fm lrecl nrecs date       time
* --------      --------        --- --- --- ----- ----- ---------- --------
  TEST          CATALOG         ALL OWN V      73     6 1998-02-18 11:18:31
  VERYLONGFILENAME VERYLONGFILEEXTENSION   ALL CTL V      39     3 1998-04-09 
08:48:25
  PEERS         NAMES           ALL LMC V     108  1681 1998-01-13 20:01:20

The second item, "/aaa/bbb/my.file", is the name LISTSERV will use for the 
actual UNIX file. Note that the directory must be created before you register 
the file. For security reasons, LISTSERV will not create the directory (or set 
the protections) for you. This item should be typed in lower case.

Note: if you are upgrading from LISTSERV 1.8a or 1.8b to 1.8c or later, the 
preceding represents a change in the format of site.catalog entries. For 
compatibility, the old style entries are also acceptable.

Note that if you are not creating special subdirectories for file archives and 
they will reside in the LSVROOT/home directory, you can simplify the 
site.catalog entry by using "A" instead of the full path, e.g.:

MY.FILE my.file.A XXX YYY
 
If you are running a large production server, however, this is not advised; it 
is much better to create separate directories for each list and put archive 
files belonging to each list in those directories rather than to store them 
all in the LSVROOT/home directory.

The third and fourth items are "File Access Codes" (FACs). The first is for 
read accesses, and the second for writing. The following file access codes are 
available:
 
  ALL: universal access.
  CTL: LISTSERV administrator only.
  PRIVATE(xxx): only members of the xxx list have access.
  OWNER(xxx): only the owners of the xxx list have access.
  SERVICE(xxx): only users in the service area of the xxx list have access.
  NOTEBOOK(xxx): same access as the archives of the xxx list.
  user@host: the user in question is granted access.
 
Except for ALL and CTL, which must occur on their own, you can specify 
multiple file access code entries, separated by a comma with no intervening 
space. For instance:
 
MY.FILE /pub/my.file JOE@XYZ.EDU,JACK@XYZ.EDU,PRIVATE(XYZ-L) CTL
 
defines a file that Joe, Jack and the subscribers of the XYZ-L list can order 
via the GET command, but that only the LISTSERV administrator can update.

NOTE CAREFULLY that you cannot use the VM-specific FAC codes PRV or OWN under 
the unix version of LISTSERV.  You MUST use the PRIVATE(xxx) or OWNER(xxx) 
FACs from the list above (and you MUST specify the listname) or the outcome 
will not be what you expect. 

IMPORTANT: LISTSERV does not set file protections to ensure that only the 
people listed are allowed to access the files. These attributes apply to 
LISTSERV commands (GET, PUT, INDEX) only; it is your responsibility to protect 
the actual UNIX file and parent directory by setting the file protections 
and/or ownership (UID and GID) to prevent unwanted access by local users. 
Please keep in mind that the LISTSERV username must be able to read the files 
it is to distribute to people, and it must have read/write access to files you 
want people to be able to update via PUT commands.

For more information on running the LISTSERV file archive server on your 
machine, including how to set up sub-catalogs, please consult chapter 8 of the 
Site Manager's Operations Manual for LISTSERV, available from L-Soft's ftp and 
World Wide Web sites.

+==========================================+
| The bare facts about installing LISTSERV |
+==========================================+

* Create a listserv account on your system.
* Make a temporary directory, say /tmp/lsvinst or whatever is convenient.
* Copy the files, common.tar.Z and `uname`.tar.Z to that directory, 
  uncompress and untar them.
* Edit the Makefile (if necessary), changing the BINDIR, LSVROOT and LSVSPOOL 
  macros to point to the appropriate directories.
* Enter "make mailer" to compile the sendmail interface, "lsv_amin", and 
  enter "make lcmd" to build the command interface utility "lcmd". If you 
  don't want to use the precompiled lsv binary, enter "make server" to make 
  the LISTSERV server "lsv".  You can make all three of them with "make all" 
  if you prefer.
* Copy the file go.user.sample to go.user, edit go.user, and set the 
  environment variables as directed by the comments in the file.
* Enter "make install" to create the LISTSERV work directory and spool 
  directory, copy "lsv" and the data files in the "home" directory to 
  wherever you defined LSVROOT, and also to copy "lsv_amin" to the BINDIR 
  directory.
* Add the lines,

 	listserv: "|/BBB/lsv_amin /SSS listserv"
 	owner-listserv: "|/BBB/lsv_amin /SSS owner-listserv"

  (where /BBB is the BINDIR directory, and /SSS is the LSVSPOOL directory) to 
  your sendmail aliases file. Then rebuild the aliases and send the 
  appropriate signal to your sendmail daemon to load the new aliases.
* Delete all the files in /tmp/lsvinst (or whatever you called the work space 
  in step 1). All the files needed to run LISTSERV have been copied to either 
  LSVROOT or BINDIR already, so there's no need to keep anything that's left 
  in the work directory.
* Follow the instructions in the License Registration Form you received with 
  your installation materials to install your License Access Key (LAK). If 
  you are installing an evaluation copy of LISTSERV, this step is handled 
  automatically by the "make install" command listed above.
* Ensure that you have set file and directory permissions in such a way that 
  lsv_amin and the 'listserv' user have read/write/execute authority where 
  needed. This is the most common problem reported by evaluation kit users.
* To start the LISTSERV server, change directories to LSVROOT and enter either
  "go" to run the server with output logged to the terminal, or "go bg" to run
  in the background with the log written to listserv.log in the LSVROOT 
  directory.
* Test the server by sending mail to "listserv" from any account other than 
  "listserv" itself with some command in the body of the mail message. Since 
  you haven't defined any mailing lists yet, commands that don't requires 
  lists, like INFO, RELEASE or even THANKS commands might be best.
* Subscribe to the LSTSRV-E mailing list by sending the command "SUB LSTSRV-E 
  Your Name", in the body of a mail message, to LISTSERV@LISTSERV.NET.
* Once you've tested your server sufficiently, fill out the sample 
  registration form given in the "Register your Server" section and return it 
  to L-Soft. Please note that if you are installing an evaluation copy of 
  LISTSERV you should skip this step.

If all went well, you're ready to add mailing lists to your server. Please 
refer to the "List creation" section of this guide for instructions on how to 
do so.

+==================================================================+
| Installing the LISTSERV web archive and administration interface |
+==================================================================+

1. Copy the 'wa' executable from your source scratch directory to the CGI 
script directory for your web server. You can call it something else, but a 
short name will help keep the HTML documents small! Note that you need to 
make 'wa' run suid listserv in order to allow it to access LISTSERV archive 
files (the correct permissions for 'wa' should be 4755 and it should be 
owned by 'listserv').
  
2. Create a subdirectory on your web server to contain the various files 
LISTSERV will be creating. You should not use your main directory as 
LISTSERV will create quite a few files! The suggested name is 'archives'. 
 
3. Create a subdirectory on your web server to contain the various files 
LISTSERV will be creating for the web archive interface.  The suggested 
name (and the name LISTSERV will expect by default) for the subdirectory 
you will create in this step is 'archives'. For a unix server running 
httpd or Apache it might be /usr/local/etc/httpd/htdocs/archives . Please 
note the following IMPORTANT restrictions carefully:

- Do not simply use your main HTML documents directory as LISTSERV will 
  create quite a few files. It is much more orderly to keep the web archive 
  interface's files and subdirectories in their own place in any case.
 
- Do not use the directory you keep the list's notebook archives in for 
  this purpose. Notebook archives should always be kept separate from the 
  web interface, preferably in a completely separate directory hierarchy.
 
- Corollary to the above: Do not set the Notebook= keyword for any list so 
  that the list's notebook archives are kept in the subdirectory used by 
  the web archive interface for the list.

4. Create a world-readable file called /etc/lsv-wa.config with the following 
two statements:
 
 PATH xxx
 URL yyy
 
where 'xxx' is the absolute path to the directory you've just created in #3
and 'yyy' is the URL to this directory (preferably relative).  For instance:
 
 PATH /usr/local/etc/httpd/htdocs/archives
 URL /archives

This file is required in order for the 'wa' script to be able to find these
two resources. 
 
5. Modify LISTSERV's configuration to add two variables, as follows: 
 
* WWW_ARCHIVE_CGI is the relative URL that leads to the CGI script you 
  have just installed. Typically this will be something like '/cgi-
  bin/wa' or '/scripts/wa'. This is a URL, not an OS path name. 
* WWW_ARCHIVE_DIR is the full path name to the directory you created in 
  step 3.
* Under unix, don't forget to export! Add 
 
  export WWW_ARCHIVE_CGI
  export WWW_ARCHIVE_DIR
 
  at the end of your go.user file before you save it.
 
6. For each list that you want accessible through the web interface, you must 
create a subdirectory in the directory you created in step 3, named like 
the list. For instance, if you create 'archives/xyz-l', the list XYZ-L will 
be accessible through the interface. Note that only lists with public 
archives are ever made accessible, for security reasons. 

Reboot LISTSERV. It should create a file accessible with the URL 
http://localhost/archives/index.html, and from there you should be able to 
access all the postings.

Complete information on installing the Web Archive Interface is contained in 
chapter 5 of the Site Manager's Operations Manual.

+======================================+
| Upgrading your LISTSERV installation |
+======================================+

Upgrading LISTSERV is almost as simple as installing it.  Simply follow these 
steps:

1. First, install the new LAK onto your old installation, following the 
instructions that come with the LAK.  Send LISTSERV a "SHOW LICENSE" 
command after restarting LISTSERV to ensure that the new LAK has been 
installed properly.
 
2. Back up the entire LISTSERV directory hierarchy (just in case).
 
3. Stop LISTSERV. If you have LISTSERV set up to respawn itself, be sure to 
bring LISTSERV to a complete stop.
 
4. Get the current unix evaluation kit (or Lite kit, depending on your 
installation) for your brand of unix from ftp.lsoft.com . If you are 
upgrading a LISTSERV Classic installation, or going from LISTSERV Lite to 
LISTSERV Classic, be sure to download common.tar.Z as well as the 
`uname`.tar.Z! This is very important as the common files also change from 
version to version. LISTSERV Lite installations do not need (and should not 
download)  common.tar.Z. Note that the LISTSERV Classic evaluation kits are 
production code limited only by an evaluation LAK, which your production 
LAK will override.
 
5. Per the installation instructions above, login as (or su) 'root', 
uncompress and untar the file(s) into a scratch directory, and then edit 
the Makefile so that it contains the correct values for your installation. 

6. If your scratch directory is not already your current directory, CD into 
your scratch directory. Touch all of the files you have just unarchived by 
issuing 'touch *' and 'touch home/*'.  This is an important step as the 
Makefile will not update any production files that are dated later than the 
files you are trying to update them with.  Due to the way most unixes 
implement 'cp' it is entirely possible to have older production files with
dates newer than the files you have downloaded to update them with.

7. Run the update stage of the Makefile by issuing the command 'make 
update' . This will update all files (including the executables) that have 
changed from the previous version. Please note that your local settings, 
lists, archives, and so forth will be preserved.  If you have a compiler, 
note that you should delete or rename the precompiled 'lsv' executable 
before running 'make update' so that it can be relinked locally.
 
8. If you have the web archive interface installed, copy 'wa' from the scratch 
directory to your cgi-bin directory to update it. Currently the Makefile 
will not do this for you.
 
9. Restart LISTSERV and send a command to make sure the installation was 
successful.

+===========================+
| Contacting L-Soft Support |
+===========================+

At http://www.lsoft.com/lsv-faq.html we've attempted to document a few of the 
most frequently-asked questions pertaining to installing and running a 
LISTSERV server. Before writing to our support department for problem 
resolution, please take a moment to read through the online FAQ and see if 
your problem is answered there.

L-Soft recognizes that the FAQ pages are not going to solve every problem you 
may face. We are always willing to help diagnose and correct problems you may 
be having with your registered LISTSERVr server. To that end, please note the 
following when you write to L-Soft with a problem report: 

1. Please make the subject line of your report indicative of the problem, and 
in particular the product with which you are having a problem. A subject 
like "Problem posting to moderated LISTSERV list" is much more useful to us 
than "Help me please!"
 
2. Include any appropriate log entries. LISTSERV keeps logs of everything it 
does when you are running it in the background (i.e., with 'go bg', and 
without a log excerpt it is often impossible to determine what caused a 
given error.
 
3. If LISTSERV dumps core, please run the debugger on the core file (see 
question I.3 in the LISTSERV support FAQ) and include the results.
 
4. Always send a copy of your site configuration file (with the passwords 
XXX'ed out).
 
5. Send along anything else that you think might be helpful in diagnosing the 
problem.

If you are running an evaluation version of our software, please join the 
evaluation users' list, LSTSRV-E@PEACH.EASE.LSOFT.COM, and send your trouble 
reports there.

If you are running LISTSERV Lite, please join the LISTSERV-LITE mailing list, 
LISTSERV-LITE@PEACH.EASE.LSOFT.COM, and send your trouble reports there.

If your server is registered and has paid-up maintenance, you may send 
problems to SUPPORT@LSOFT.COM for a quick reply.

+==========================================+
| Documentation and where to get more help |
+==========================================+
 
You should be aware that there are several documentation files included with 
LISTSERV. They are located in the ~listserv/home directory by default and 
include the following:

listserv.memo	  A General Introduction to LISTSERV
listpres.memo	  A presentation of LISTSERV for the general user
listownr.memo	  A List Owner's Manual for LISTSERV 
listkeyw.memo	  A manual of the various list header keywords and what they 
                  do
listall.refcard   A quick reference card for LISTSERV commands

L-Soft provides formal documentation in both online formats and downloadable
word-processing formats at the URL http://www.lsoft.com/manuals/.

There are several mailing lists dedicated to the support of LISTSERV.

LSTSRV-L@PEACH.EASE.LSOFT.COM       for LISTSERV maintainers and interested 
                                    list owners

LSTOWN-L@PEACH.EASE.LSOFT.COM       for LISTSERV list owners

LSTSRV-E@PEACH.EASE.LSOFT.COM       for LISTSERV evaluation kit users  

To subscribe to any of these lists, send mail to LISTSERV@LISTSERV.NET with 
the following command in the body of the message:

SUBSCRIBE listname Your Name


------------------------------------------------------------------------------
LISTSERV is a registered trademark licensed to L-Soft international, Inc.
LSMTP is a registered trademark of L-Soft international, Inc.
ListPlex is a registered service mark of L-Soft international, Inc.
EASE and CATALIST are service marks of L-Soft international, Inc.
L-SOFT is a trademark of L-Soft international.
 
All other trademarks, both marked and not marked, are the property of their 
respective owners.
------------------------------------------------------------------------------