LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
David R Nessl <[log in to unmask]>
Fri, 27 Jun 1997 17:26:46 -0400
TEXT/PLAIN (135 lines)
-----BEGIN PGP SIGNED MESSAGE-----

A few days ago I moved all our LISTSERV lists (over 500) from LISTSERV
1.8b on VM to LISTSERV 1.8c on AIX (lists.ufl.edu).  All in all, it's gone
pretty well.  (Mostly because I wrote a huge Rexx EXEC on VM to parse and
rewrite all the LIST config files.)

Since we expect to start hosting a very large number of lists (one for
every course section in the university!), we wanted to avoid the need to
login/rsh to the LISTSERV host when adding/deleting lists.  That
specifically meant not updating /etc/aliases and running newaliases.  I
was able to avoid /etc/aliases by configuring sendmail to use lsv_amin as
a local delivery agent!  I am appending the sendmail.mc m4 file below for
your perusal; I'd also like to hear any suggestions you have for
improvements.  (This sendmail config doesn't support file-delivery, so I
can't define ids in /etc/aliases that write into a local logfile, which is
something I'd like to be to do, e.g. as a place to direct list-errors to.)

I do have a couple of items on my gripe/wish list ...

The first (and most important) item is that we need an exit to be called
before logfile creation -- each of our lists has a primary owner on our
Unix system, and we store each list's logs in a subdirectory under their
owner's home directory.  The purpose is for charging, but it doesn't work
under Unix because the logfiles are owned by the username 'listserv'.
We'd use the exit to create the empty logfile, change its owning-user to
the owner of the parent directory and its group to listserv's primary
group, and make it group-writable.  This all worked automatically for us
in the CMS Shared File System.

The second item is that the SCAN command doesn't recurse down into
sub-lists.  We make extensive use of sub-lists, and I had a
locally-written /WHOIS command for VM LISTSERV which would recurse down
thru sublists.

David R Nessl  -- Coordinator, Computer Systems (sysprog/sysadmin)
http://www.nerdc.ufl.edu/~david

- --------------------------------------------------------------------
divert(-1)
#
# Name:         nerdc-listserv.mc
# Purpose:      An m4 source file for defining the sendmail config file
#               to be used on the lists.ufl.edu host which is dedicated
#               to LISTSERV.
# Fix log:
#  06/12/97     [log in to unmask]           First Try.
#
divert(0)

OSTYPE(aix4)dnl
VERSIONID(`@(#)nerdc-listserv.mc 1.1.0 (NERDC/UF) 06/12/97')dnl

#-- Send double bounce messages to the bit bucket. [[enable after testing]]
#Xdefine(`confDOUBLE_BOUNCE_ADDRESS', `/dev/null')dnlX
#-- Add a line to error notifications telling clueless users
#-- to not bother trying to reply.
define(`confERROR_MESSAGE', `   *** Do Not Try To Reply! This notice was not sent by a human. ***')dnl
#-- With LISTSERV lists, the default max of 25 hops is way too low.
define(`confMAX_HOP', `50')dnl
#-- Allow incoming messages up to 3MB in size.
define(`confMAX_MESSAGE_SIZE', `3000000')dnl
#-- Enable MIME format error messages so that DSN notification works.
define(`confMIME_FORMAT_ERRORS', `true')dnl
#-- Add some legalese to use against spammers.
define(`confSMTP_LOGIN_MSG', `$j Sendmail $v ready at $b; unlawful use will be prosecuted.')dnl
#-- Keep statistics (may be too much overhead).
define(`STATUS_FILE', `/var/log/sendmail.st')dnl
#-- We still use NERVM as the local BITNET-Internet gateway.
define(`BITNET_RELAY', `NERVM.NERDC.UFL.EDU')dnl

FEATURE(always_add_domain)dnl
FEATURE(nouucp)dnl
#-- Major speed improvement by bypassing lots of DNS lookups.
FEATURE(nocanonify)dnl
#-- Advertise ourself as lists.ufl.edu, i.e. the same as our MX name.
MASQUERADE_AS(lists.ufl.edu)dnl

LOCAL_CONFIG
#-- Recognize our MX name (lists.ufl.edu) as ourself.
#-- For backward compatibility with LISTSERV on VM, also recognize
#-- ourself as nerdc.ufl.edu.
#-- Note: We cannot recognize ourself as nervm for backward compatibility
#-- because remaining real nervm users could never get postings/results
#-- from LISTSERV.
Cw lists.ufl.edu nerdc.ufl.edu

MAILER(smtp)dnl
MAILER(local)dnl
MAILER_DEFINITIONS
#-- OK, we've included the standard "local" delivery-agent rules,
#-- so now we need to replace the local delivery-agent definition with
#-- one that uses LISTSERV's lsv_amin program so we can avoid defining
#-- each LISTSERV list in /etc/aliases.
#-- Since we are defining our own local delivery agent which will delivery
#-- to listnames which are not enrolled as users, we must use /etc/aliases
#-- to auto-forward all special users, like root and postmaster and
#-- list-master, because sendmail won't be processing ~/.forward files.
#-- Purposely omit the following flags which are typical for "local" delivery:
#--     F=m     - lsv_admin expects only one recipient list per instantiation
#--     F=r     - ??? (I don't know why)
#--     F=S     - lsv_amin is instead installed as setuid-listserv
#--     F=w     - lists aren't enrolled usernames, so bypass /etc/passwd lookup
#--     U=u:g   - lsv_amin is instead installed as setuid-listserv
#--     F=n     - suppress prepending Bezerkley "From xxx" separator line
Mlocal, P=/node/sbin/lsv_amin,
        S=10/30,
        R=20/40,
        D=/node/sbin/listserv,
        T=DNS/RFC822/X-Unix,
        F=/,    # allow appending to files
        F=|,    # allow calling the "prog" program delivery agent
        F=9,    # convert incoming base64 mime back to plaintext
        F=A,    # required for redirection in /etc/aliases file
        F=D,    # force inclusion of date info headers
        F=F,    # force inclusion of "from" info headers
        F=l,    # this agent performs local (final) delivery
        F=M,    # force inclusion of message-id info headers
        F=P,    # force inclusion of return-path info headers
        F=s,    # strip quotes off addresses
        F=u,    # don't muck with the up/lowcase of the command & args
        A=lsv_amin /var/spool/listserv $u
#-- Done.

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3a
Charset: latin1

iQCVAwUBM7QwGJ58IU00gfAVAQH9oAQAmC2KWYR0xBuZYlAvuqksKeUuUMx9aD0C
4GMTaq/cUEgkX8en8HL2UcoTA19qAAaIgFspuc65OVt4VwXPhBPVGCHYKSVYWPxQ
Gev1rkMIQuFTYU34x7UiLIs7t/76/e4X5drA4PTr/bY2X85XLnjziGHn5IUY33XL
GCv72YROn/w=
=9lxa
-----END PGP SIGNATURE-----

ATOM RSS1 RSS2