Received: from zonker-fddi.hpl.hp.com by opus.hpl.hp.com with SMTP (1.37.109.8/15.5+ECS 3.3+HPL1.1) id AA26622; Mon, 14 Nov 1994 15:17:31 -0800 Return-Path: <poulton@zonker.hpl.hp.com-DeleteThis> Received: by zonker.hpl.hp.com (1.37.109.8/15.5+ECS 3.3+HPL1.1) id AA13667; Mon, 14 Nov 1994 15:17:21 -0800 Date: Mon, 14 Nov 1994 15:17:21 -0800 From: Ken Poulton <poulton@zonker.hpl.hp.com-DeleteThis> Message-Id: <9411142317.AA13667@zonker.hpl.hp.com-DeleteThis> To: wind_talk@opus.hpl.hp.com-DeleteThis Subject: Re: Setting up a mail group
> I was wondering how you set up a mail group like windtalk.
>
> I would like to create them for:
>
> Skiing/Snowboarding (snow.talk?)
> CFA Candidates (people studying for the CFA)
>
> I have a sparc 10, but only limited internet access (just mail).
We use a public-domain listserver system. I attach the README. If this
looks like something you want to get and you have no FTP access, I could
e-mail the source to you (it comes in a 1.3 MB shar file).
Ken Poulton
poulton@opus.hpl.hp.com-DeleteThis
"Never put off until tomorrow what you can postpone into the next
millenium." -- Bob Jewett
LISTPROCESSOR SYSTEM
--------------------
Copyright (c) 1991-93, Anastasios C. Kotsikonas
tasos@cs.bu.edu-DeleteThis
July 1 1993
DESCRIPTION:
This is a system that implements various mailing lists with
one list manager. It is automated, and obliterates the need
for user intervention and maintenance of multiple aliases of
the form "list, list-owner, list-request", etc. There is
support provided for public and private hierarchical
archives, moderated and non-moderated lists, peer lists,
peer servers, private lists, address aliasing, news connec-
tions and gateways, mail queueing, digests, list ownership,
owner preferences, crash recovery, batch processing, confi-
gurable headers, regular expressions, archive searching, and
live user connections via TCP/IP.
COPYING: You may distribute the software freely, but you may not include
any part of the code in a commercial application whatsoever, directly or by
implication. Modified code may NOT be distributed.
AGREEMENT: This software can be used and distributed freely only as a
whole and not in parts, as long as you do not remove or alter the author
and copyright notices in the file defs.h; this notices are #define'd in
the symbols VERSION and COPYRIGHT. Although you may alter the code
provided for your personal use, you may not alter the functions
create_header(), create_multi_recipient_header() and main() in list.c,
listproc.c and serverd.c (where applicable), and you may not redistribute
any changes you may have made. No part of the source code bearing a
copyright notice can be included in commercial software systems without
written permission by the author.
By using this software you are bound by this agreement.
This software comes with no warranties and cannot be sold for profit.
The AGREEMENT and COPYRIGHT notices should be included in all source
files when distributing this software.
COPYRIGHT: Copyright (c) 1991-93, Anastasios C. Kotsikonas
Use, duplication or disclosure by the Federal Government is subject to the
restrictions set forth in FAR 52.227-19(c), Commercial Computer Software or,
for Department of Defense Users, by DFAR 252.227-7013(c)(1)(ii).
UPDATES: All updates can be obtained from cs.bu.edu (128.197.10.1) via
anonymous ftp, in the directory pub/listserv. If you downloaded this version
from another ftp site, please keep an eye on cs.bu.edu. Bug fixes will
be posted periodically over there, and no notifications will be posted to
news; you should check the directory periodically.
COMPILER: The programs are written to be ANSI C compliant (almost); if your
compiler cannot handle them, I suggest you also download unproto.tar.Z
from cs.bu.edu; cd pub/unproto; this is a nice set of programs that will
convert ANSI-isms to old style C -- please send any questions about unproto
to its author, not me. In this case, follow the instructions in the Makefile
in the src directory for adjustments to be able to use this package.
For those compilers that die when they see a contol-L in the source code, I
have written a C program that "cleans" source files; it is called clean.c and
can be found in pub/utils as well; compile as follows:
% cc -Dunix clean.c -o clean
The compiler should support symbol names longer than 8 characters. Also consult
the Makefile, as well as the PORT SPECIFIC section in ../doc/server.1
LINKING: If you are using the interactive part of ListProcessor and your
setup uses a name server, you may wish to link with libraries that provide
DNS support (for example, on SYSV R4 compile with -lsockdns instead of
-lsocket).
PREPROCESSOR: Strings are defined using both ANSI C specifications and
non-ANSI standards, so that unproto will work correctly (unproto 2.0 does not
handle ANSI string concatenations). Which ones are used during compilation
depends whether the macro __STDC__ is defined by the compiler/preprocessor.
Note: the script 'stds' is now rarely needed and can be obtained from cs.bu.edu
in the directory pub/listserv/utils.
SOURCE CODE MODIFICATIONS: If you modify the code to work around problems
with your operating system, or enhance the system, please send me diff's
to be incorporated in the next release.
TCP/IP SUPPORT: The 'system' mailmethod and the live ListProcessor require
support for Berkeley sockets and internet support. The system defines the macro
TCP_IP in defs.h. Remove this definition if your host does not support sockets,
etc. Failure to do so will lead to compiler errors.
SEMAPHORE/SIGNAL SUPPORT: The interactive part of the system depends on
semaphore support. If your host does not support semaphores, undefine the
symbol GO_INTERACTIVE in defs.h; this symbol is automatically undefined if
TCP_IP is not defined, or the SIGCLD/SIGCHLD, SIGUSR1 and SIGUSR2 signals are
not present. The system uses the POSIX waipid() function which may not be
available on your system (like Sequent for example). You may use wait3()
instead; see serverd.c, sighandle(). If you use wait3() and its first argument
whould be a union, then compile with -DWAIT3_NEEDS_UNION (integer is used by
default).
SPECIAL HEADER FILES: Platforms that have the <sys/select.h>, <ulimit.h>
and/or <setjmp.h> header files should use -DHAVE_SELECT_H -DHAVE_ULIMIT_H
and -DHAVE_SETJMP_H when compiling.
SIGNALS: Various UNIX versions deal with signals in a number of ways.
If your UNIX is strict SYSVR4 compile with -Dsvr4 -- SYSVR4 uses sighold() and
sigrelse(); if it is SYSVR3 compile with -Dsvr3 -- the same functions are
defined; if it is strict BSD based compile with -Dbsd -- BSD uses
sigblock() and sigsetmask(). If your system does not define either of these
sets of routines or is not a strict implementation of the above, do not
use the above flags and certain signals will be ignored at certain times
due to an old- bug with system(). In defs.h certain ports are given
predefined flavors.
NON-BLOCKING I/O: The system employs a timeout mechanism that works
only with the 'system' mailmethod, provided that the host supports
non-blocking I/O; if it does not, undefine the symbol NONBLOCKING_IO
in defs.h (defined by default).
LOCKS: The system relies heavily on locks; however, a number of systems
do not support locking across NFS mounted file systems, or do not support
locks at all. If you are experiencing locking problems, define the symbol
NO_LOCKS in defs.h (or compile with -DNO_LOCKS) and pray, or move the system
to a local file system. The following ports have NO_LOCKS automatically
defined: Minix, Ultrix, NeXT, Apollo, Xenix, Convex.
SYSLOG: You may use syslog(3) for reporting if you compile with
-DSYSLOG=facility.
USING ANOTHER HOST TO SEND MAIL: By default, the 'system' mailmethod connects
to "localhost" for mail delivery; you may use another host by altering the
symbol SENDMAIL_HOST in sysmail.h
SUBSCRIPTION SUSPENSION: The system scans error messages looking for addresses
to suspend sending mail to, and it allows by default a 7 day grace period. This
period may be changed by altering list.h or by compiling with
-DGRACE_PERIOD=time_in_seconds.
Errors-To: lines: If you do not want the system to put Errors-To: lines
compile with -DNO_ERRORS_TO.
ZMAILER and other non-sendmail mailers: If your mailer requires a
'HELO hostname' or 'HELO ip-address' greeting, then compile with -DZMAILER.
If TCP/IP is available, the host's name and IP address are obtained with system
calls. If not, they default to "localhost" and "127.0.0.1" (see defs.h) and
they have to redefined. By default, the hostname is included in the greeting.
If the IP address is required, see list.c and listproc.c.
UPGRADING: If you are upgrading from an earlier version, take a look at the
UPGRADING and PORT SPECIFIC sections in ../doc/server.nr and run the
upgrade_to_6.0c shell script.
PORTS: The code has been ported to the following UNIXes:
SUN, IBM, SGI, DEC, HP, Convex, Stardent, KPC, NeXT, SCO, Apollo, Sequent, Data
General, i860, i386 (bsd) and OSF. If you are on a different host, try first
compiling with -Dunknown_port.
INSTALLATION DIRECTORY: Change the HOMEDIR symbol in Makefile to be the top
level directory where this system is installed.
FORUM: You should join our forum at unix-listproc@avs.com-DeleteThis where we discuss
problems and enhancements about this system; send a subscribe request to
listproc@avs.com-DeleteThis
ACKNOWLEDGEMENTS: I would like to thank the following people for their
suggestions and contributions to this system (not all suggestions have been
incorporated):
1) Bob Boyd (rbn@epavax.rtpnc.epa.gov-DeleteThis): IRIX port, gateway connections
feedback, 5.3 beta testing. [Since Dec. 1992 Bob is no longer at EPA
and I wish him good luck]
2) Stefan Schroer (Stefan.Schroer@cyber.urz.uni-wuppertal.dbp.de-DeleteThis): MINIX port
(code not reported since 5.0), help files, original 'get' and 'index'
requests.
3) Scott J. Ellentuch (tuc@stormking.com-DeleteThis): IBM R6000 port, enhancements to
the farch utility, 5.3&up beta testing, setting up of the unix-listproc
forum, endless support on the net -- he is my buddy.
4) David Warner (warner@austin.onu.edu-DeleteThis): IBM R6000 bug fixing, 5.3 beta
testing, tolerance with my obnoxious code -- I owe this gentleman a lot.
5) Nathan F. Estey (nestey@copper.Denver.Colorado.EDU-DeleteThis): 5.4 suggestions.
6) Aad Nienhuis (aad@sconar.sco.uva.nl-DeleteThis) for the catmail utility.
7) Warren Burstein (warren@itexjct.jct.ac.il-DeleteThis): digests, owner moderated lists
(listproc sends messages to owner, owner sends back the approved ones --
my scheme uses APPROVE and DISCARD requests), significant code rewriting,
manager preferences, automatic archiving of messages.
8) Nicos Kontopoulos (nicos@cs.bu.edu-DeleteThis) for a lot of tiny suggestions.
9) Matthias Klose <doko@cs.tu-berlin.de-DeleteThis>, John Neil <neil@dehn.mth.pdx.edu-DeleteThis>
for the NeXT port.
10) Ken Mayer (ken@visix.com-DeleteThis) for the Precedence: stuff.
11) Henry Spencer for the pattern matching routines.
12) Carlos O'Ryan Lira (coryan@mat.puc.cl-DeleteThis) for the Apollo port.
13) Anand V Raman (A.Raman@massey.ac.nz-DeleteThis) for modifying 'setup' to rebuild the
system under the HOMEDIR definition in Makefile.
14) Kenneth Lorber (keni@oasys.dt.navy.mil-DeleteThis) for providing fio.c and speeding up
the system by reducing the number of syscom()'s.
15) All of those of you who made literally a myriad of small suggestions here
and there, and contributed even a single character of code, and especially
all of you who let me into your systems to do the ports myself.
The ListProcessor system includes 158 files:
HOMEDIR/doc:
*.nr -- proformatted man pages
catmail.1 -- man page for the catmail utility
farch.1 -- man page for the file archiving utility
ilp.1 -- man page for the Interactive ListProcessor client
list.1 -- man page for the mailing list processing application
listproc.1 -- man page for the request processing application
queue.1 -- man page for the mail queue processing application
server.1 -- man page describing the system
serverd.1 -- man page for the system daemon
start.1 -- man page for the system's housekeeper
README -- instructions for installing the man pages on your system
HOMEDIR/help:
TOPICS -- index file with topics and corresponding filenames
general -- general help file
approve -- help on the approve request
discard -- help on the discard request
information -- help on the information request
lists -- help on the lists request
recipients -- help on the recipients request
set -- help on the set request
statistics -- help on the statistics request
subscribe -- help on the subscribe request
unsubscribe -- help on the unsubscribe request
index -- help on the index request
get -- help on the get request
release -- help on the release request
which -- help on the which request
reports -- help on the reports request
edit -- help on the edit request
put -- help on the put request
live -- help on how to access the live ListProcessor
listproc -- help on this system
fax -- help on the fax request
search -- help on the search request
run -- help on the run request
HOMEDIR/archives:
HOMEDIR/archives/listproc: Master archive:
DIR -- info on files and directories they are located
INDEX -- master index of all archives (listproc, pub, unix)
summary-of-requests -- list of all commands
info -- info on this archive
HOMEDIR/archives/listproc/example.dat:
example.dat1 -- part 1 of file example.dat in archive listproc
example.dat2 -- part 2 of file example.dat in archive listproc
example.dat3 -- part 3 of file example.dat in archive listproc
HOMEDIR/archives/ilp: Source files for the ILP client:
DIR -- info on files in this subdirectory
INDEX -- index of all archives in this archive
ilp.c -- the ILP client
ilp.h -- specific definitions for ilp.h
ilpp.h -- definition of ILP Protocol
ilp.1 -- (as before)
ilp.nr -- (as before)
makefile -- makefile to build the ILP client
HOMEDIR/archives/pub: Subarchive of listproc:
DIR -- info on files and directories they are located
INDEX -- index of all archives in this archive
info -- info on this archive
HOMEDIR/archives/unix: Subarchive of listproc:
DIR -- info on files and directories they are located
INDEX -- index of all archives in this archive
info -- info on this archive
HOMEDIR/archives/pub/unix: Subarchive of pub (duplicate name example):
DIR -- info on files and directories they are located
INDEX -- index of files in this archive
info -- info on this archive
HOMEDIR/archives/pub/private: Subarchive of pub; example private archive
DIR -- info on files and directories they are located
INDEX -- index of files in this archive
info -- info on this archive
HOMEDIR/src:
REGISTRATION -- registration form for using this software
README -- this file
global.h -- global variables definitions
struct.h -- defines the server structure
defs.h -- general definitions
tlock.c -- tests for locks, i.e. whether any server programs are running
on another file system via NFS
list.h -- specific definitions for list.c
list.c -- the list's server
listproc.h -- specific definitions for listproc.c
listproc.c -- server for individual requests
pqueue.h -- specific definitions for pqueue.c
pqueue.c -- processes the mail queue
serverd.h -- specific definitions for serverd.c
serverd.c -- parent program that spawns list or listproc
start.h -- specific definitions for start.c
start.c -- does housekeeping before spawning serverd, makes sure that
files exist, kills any running server processes, etc
sysmail.h -- specific definitions for sysmail.c
sysmail.c -- system mailmethod routines
catmail.h -- specific definitions for catmail.c
catmail.c -- append incoming mail to the appropriate file
signals.c -- signal processing routines
sender.c -- sender address manipulation routines
misc.c -- general purpose routines
farch.c -- utility for easy archiving of files
next.h -- specific definitions for NeXT hosts
sem.c -- semaphore definitions for serverd's interactive part
rev.c -- source to BSD 'rev'
ilpp.h -- Interactive ListProcessor Protocol definition
ilp.h -- specific definitions for ilp.c
ilp.c -- client application to connect to an interactive system
silp.c -- system ilp used by ListProcessor to connect to remote servers
regex.c -- fornt end to pattern matching routines
regerror.c -- pattern matching routines -- Henry Spencer
regexp.c -- pattern matching routines -- Henry Spencer
regexp.h -- pattern matching routines -- Henry Spencer
regmagic.h -- pattern matching routines -- Henry Spencer
regsub.c -- pattern matching routines -- Henry Spencer
fwin.c -- utility that returns subsets of files
fio.c -- simple system calls submitted by keni@oasys.dt.navy.mil-DeleteThis
strftime.c -- UC Berkeley public domain version of this function
semset.c -- utility to check/set a semaphore's value
Makefile -- to build your own server
HOMEDIR/src/ansi:
*.h -- specific ANSI string definitions for various programs
HOMEDIR/src/nonansi:
*.h -- specific non-ANSI string definitions for various programs
HOMEDIR/gateway:
gateway.c -- gateway for connecting your host to another on Internet
gateway.h -- specific definitions for gateway.c
ilpp.h -- definition of the interactive ListProcessor Protocol
README -- how to install and use the gateway
Makefile -- how to build the gateway
HOMEDIR/util:
combine.c -- user utility to automatically combine archive files
received in multiple mail messages
expn.c -- check if address is reachable
check_addr -- script to check the validity of an incoming address
mmdfcatmail.c -- utility to use before catmail if using an MMDF mailer
which.sh -- UCB "which" source
use_From:_address.sh -- program+script to use the From: address instead of
the "From " for identification
HOMEDIR:
makefile -- to build your system
ILPP -- description of the ILP protocol
setup -- a script to be run before starting for the first time
systest -- script that analyzes your system
queued -- daemon controlling the processing of the mail queue
peer -- script to add a peer list
news -- script to add a news group to a list
redux -- script that reduces the size of mbox by removing unnecessary
fields from the header of each message
ulock -- in conjunction with the 'flocks' file, this utility
removes all locked files (unlocks them)
flocks -- script to remove locked files
.awk -- awk program used for the 'statistics' and 'recipients'
ListProcessor requests
.stats -- shell script used for the 'statistics' ListProcessor request
.grep -- shell program used for the 'statistics' ListProcessor request
.ignored -- a list of email addresses whose messages are ignored
owners -- a list of all list owner addresses
unwanted.hosts -- hosts not allowed to connect to ILP
upgrade_to_6.0c -- upgrade script
welcome.live -- welcome message upon live log in
README -- general guidelines for first time users
FAQ -- most frequently asked questions
WHATS_NEW -- what's with this version
config -- the system's configuration file
|-->-----------> START
| |
| |
^ (spawns-and-dies)
| |
| |
|--<--restart--- SERVERD <--shutdown-<--|
/\ r
/ \ e
/ \ s
(spawns either one as necessary) t
/ \ a
/ \ r
LIST LISTPROC --->---t
The diagram shows that 'start' spawns 'serverd' and then dies, and that
'listproc' may request 'serverd' to die (shutdown) or request that the
system is restarted, in which case 'serverd' spawns 'start' and dies.
Enjoy!
Revision history:
Version Date Status Comments
------------------------------------------------------------------------------
3.45 12/20/90 Outdated * First public version; bugs with listproc
3.67 01/03/91 Outdated Bugs fixed
3.68 01/04/91 Outdated * v3.67 + tlock utility
4.0 04/09/91 Exprmntl v3.68 + STATISTICS listproc command
4.1 04/16/91 Outdated v4.0 + redux utility
4.2 05/02/91 Outdated v4.1 w/ optimized source code, better doc.
4.21 05/03/91 Outdated v4.2 w/ redux which was left out by mistake
4.3 05/03/91 Outdated * v4.21 w/ better mailer-daemon msg handling
4.4 05/22/91 Exprmntl v4.3 w/ enhanced tlock,control,start,listproc
4.5 06/12/91 Exprmntl v4.3 w/ enhanced listproc
5.0 07/17/91 Outdated * v4.4 + support for multiple lists
5.1 08/27/91 Outdated v5.0 + bug fixes, enhanced listproc
5.1 Rev I 10/03/91 Outdated v5.0 + more bug fixes
5.2 10/08/91 Outdated * v5.1 + archives, GET, INDEX requests,
farch utility, moderated lists,
disabled listproc commands on a per list
basis, link with peer lists and news
feeds
5.2 Rev A 10/10/91 Outdated v5.2 + bug fixes
5.21 10/15/91 Exprmntl v5.2A + multiple recipients in one message
5.3 beta 10/31/91 Exprmntl v5.21 + system mailmethod, bug fixes
5.3 12/05/91 Outdated v5.21 + bug fixes, universal system mailmethod,
multiple recipients in one message,
support for blanks in email addresses,
user-set limit on size of messages,
RFC 821 compliant SMTP implementation,
extensive mail loop detection mechanism,
new scripts (stds, reformat), enhanced
GET request, and more.
5.31 12/09/91 PstdNews * v5.3 + mail queueing capability/subsystem +
RELEASE request
5.4 beta 12/16/91 Exprmntl v5.31 + crash recovery mechanism, manager
approved subscriptions (private lists),
multiple lines of text for describing
archived files, batch processing,
WHICH request, automatic use of
unproto in the Makefile, private
archives, list owners with restricted
system privileges, email aliasing
for requests, SYSTEM/REPORTS/PUT/EDIT
list administration requests, automatic
archiving of distributed messages only,
enhanced INDEX/GET requests, same
archive names allowed on different
levels of the hierarchy (path spec. to
an archive)
5.4 02/05/92 Outdated v5.31 + v5.4 beta
5.41 03/05/92 PstdNews * v5.4 + catmail (system is now more secure), bug
fixes, owner preferences
5.5 beta 04/08/92 Exprmntl v5.41 + two ways for moderating lists by owners
(+ APPROVE/DISCARD list administration
requests), enhanced farch, fix to GET
request, list digests, optional
Comment: line, manager preferences,
enhanced help system, GET/INDEX
requests now report file sizes, new
config options ignore_invalid_requests
and relaxed_syntax, EXECUTE request
5.5 05/18/92 Outdated v5.5 beta + NeXT port
6.0beta 01/19/93 Exprmntl v5.5 + interactive system, ULISTPROCESSOR_UMASK
env var, Precedence:, configurable
headers, regular expressions, auto
archiving of lists' messages, enhanced
farch, ability to execute commands
on a per list basis, ability to
continue commands in the config file on
multiple lines, HP, Apollo, Sequent &
DG ports, interception of requests sent
to a list, list defaults, CONCEAL
attribute, user settable subscription
addresses, various user utilities,
gateway client, screening and analysis
of error messages, support for syslog,
auto splitting of outgoing files, FAX
request
6.0 04/01/93 Outdated v6.0beta + ports + bug fixes + SEARCH request
6.0a 07/20/93 Outdated v6.0 + VIEW requests server/client abort
operation, more bug fixes, true
concurrency
6.0b 09/13/93 Outdated * v6.0a + tons of bug fixes, better mail loop
detection
6.0c 11/30/93 Released v6.0b + ability not to compress archived files,
ULISTPROC_ARCHIVES_UMASK env var, bug
fixes
*Source for these versions has been posted to news.
This archive was generated by hypermail 2b29 : Mon Dec 10 2001 - 02:28:21 PST