home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume28
/
bmw-5
/
part01
/
README
< prev
next >
Wrap
Text File
|
1994-07-09
|
9KB
|
267 lines
BMW 5.0
COPYRIGHT 1994 CLAY LUTHER
THIS SOFTWARE IS FREE. YOU MAY DISTRIBUTE THIS SOFTWARE AS YOU WANT, BUT
THIS AND ALL OTHER COPYRIGHT NOTICES MUST REMAIN INTACT.
SETTING UP A THE BMW SOFTWARE TO MANAGE LISTS.
THIS SOFTWARE MAY BE DISTRIBUTED UNDER THE GNU SOFTWARE LICENSE.
BMW is written in perl and your system must have perl installed to run it.
Perl was selected because it is fast AND interpreted. The user can more
easily change the scripts to suit his site than if they were written in a
precompiled language. So, perl was choosen.
Look over the FILES file and make sure that your tarball unpack correctly.
There is no Makefile to execute, but you may have to edit the bmw scripts to
correctly point at your perl executable. Look at the first line of each
script and make sure that the #! path is correct. For example, on my system
it is #!/usr/bin/perl, but serveral systems install perl in /usr/local/bin;
such a system would change the #! path to #!/usr/local/bin/perl.
BMW relies on sendmail to handle incoming and outgoing messages. In general,
all the BMW programs accept information on standard input (the mail message).
It is assumed that the mail message is piped in from sendmail.
This means that you must be able to add aliases to your sendmail aliases file.
On most systems only the superuser can do this. If you do not have superuser
permission, you will probably have to get it before you can operate a
BMW mailing list.
CREATE THE BMW DIRECTORY
Create a directory that is owned by the bmw owner (on my system, I actually
created a user specifically for owning and operating the mailing lists).
I'll call this directory $BMW. Unpack the bmw scripts into $BMW.
You may have permission problems if the $BMW subdirectories are not in the
same group as what sendmail runs under. On most systems, this is bin. On
my system, the user bmw is in group bin (same as sendmail). I've set the
permissions on $BMW and all its subdirectories to 775. Furthermore, the
edited files under each $BMW/$LIST directory (subscribers, subscribers.d and
log) should be set to 774.
WHAT ALIASES DO I NEED?
The BMW requires 7 aliases per list to operate. If your mailing list is
named $LIST then these are:
$LIST - alias to a pipe to bmwmail; the address that members post messages to
$LIST-mail - alias to an included file, the actual list of subscribers
$LIST-owner - alias to the list's owner
$LIST-request - alias to a pipe to the bmw program for handling server requests
$LIST-log - alias to the log of the mailing list
$LIST-digest - alias to the digest log of the mailing list
$LIST-digest-mail - alias to the included list of digest subscribers
Edit your sendmail aliases file, and create the following aliases for your
list:
$LIST: "|$BMW/bmwmail $LIST"
$LIST-mail: ":include:$BMW/$LIST/subscribers"
$LIST-owner: <put your address here!>
$LIST-request: "|$BMW/bmw $LIST"
$LIST-digest: "$BMW/$LIST/digest"
$LIST-digest-mail: ":include:$BMW/$LIST/subscribers.d"
Save the aliases file and run newaliases. Check your aliases with
/usr/lib/sendmail -bv -v <one of the aliases goes here!>.
NOTE: Your users should only send messages to $LIST, $LIST-owner, and
$LIST-request. The other addresses are used internally by bmw.
CREATE YOUR $LIST SUBDIRECTORY
Create a directory under $BMW named for your $LIST (lower-case).
EDIT THE BMW SCRIPTS AND FIX BMWCF
Edit bmw, bmwmail, digestify, senddigest, and mkarchive. Search for the
first occurence of BMWCF. Change the value of BMWCF to point to whereever
you are putting the bmw.cf file. This should be all you need to change
in the scripts themselves (well, besides the perl #! path).
EDIT bmw.cf
After putting bmw.cf whereever you want, edit it. This allows you to set
bmw operating globals to whatever you want. Examine the bmw script and look
for the initialization of the GLOBALS array. If there is a value you don't
like here (certainly any the the ...DIR directory globals will need your
attention), put them in your bmw.cf file.
Look at the bmw.cf file that came with the bmw distribution:
basedir = /home/bmw
digest = 1
log = 1
debug = 0
This sets the BASEDIR value to /home/bmw, tells bmw that there is a digest
form of the mailing list, tells bmw to log requests, and tells bmw not to
print debugging information during execution.
RUN A TEST
The easiest way to run a test is to execute bmw by hand. Type in the
following, substituting your list's name for $LIST and your mail address for
$ADDRESS.
% bmw $LIST
Subject: ping
From: $ADDRESS
who
^D
If bmw prints out an error, try to solve the problem and run the test again.
If no error is printed, check your mailbox. Also, check the mail mailbox of
$LIST-owner. You should have a response from bmw for the ping and who request.
If there is an error message in $LIST-owner's mailbox, try to fix the error
(perhaps a permission error?) and run the test again.
TEST ALIASES
Now comes a bigger test. Type in the following with appropriate substitutions:
% /usr/lib/sendmail -v $LIST-request
Subject: ping
From: $ADDRESS
who
sub
uns
dig
und
dir
help
.
Watch sendmail execute your message closely; did it error? If it does at
this level, it is most likely a permissions problem. Go check your permissions
on the $LIST directory and its files and try again.
Next, check your mailbox. Confirm that bmw was able to execute all of those
commands.
Check the $LIST-owner's mailbox. Did bmw send you a error messsage? If so,
see if you can fix it and run the test again.
Check the $LIST directory. If you have bmw logging on, check the log file.
Are the requests in the log file, especially the sub/uns/dig/und requests?
MAIL A TEST
Now, mail a message to $LIST-request using your favorite mail program. Make
it a sub request. Wait for the reponse and check the $BMW/$LIST/subsribers
file to make sure you were added.
Now, mail a test message to $LIST. Wait a little while. Do you get the
message back? If not, try mailing to the $LIST with
% /usr/lib/sendmail -v $LIST
Subject: testing
testing
.
And see what it says. Is there an error? Try to fix the error and repeat
the test. It will usually be a permissions error.
If you can subscribe, unsubscribe, and mail messages to the $LIST and get
reponses, you have probably set bmw up correctly!
SETTING UP THE DIGEST AND LOG
If you are running a digest and log of the mailing list (not a bmw log, but
a monthly log for archiving later), there are a few extra steps you must
take.
First, place the aliases to the digest and the log in the subscribers file.
This will allow them to be sent automatically when the mailing list is mailed
to. Send a test message to the list with /usr/lib/sendmail -v and make sure
that a copy of the message appears in $LIST/monthly and $LIST/digest. If
the digest file does not appear, try piping a test message by hand through
digestify. Repair any reported errors.
Send a DIGEST request to $LIST-request. Check the $LIST/subscribers.d file -
is your address in there? If not, check for permission problems and make sure
that your bmw.cf file has "digest = 1" in it.
Next, run senddigest:
% senddigest $LIST
Did you get a copy of the digest? If so, congratulations! If not, look
at the errors reported, check your postmaster's mailbox, and check the
list owner's mailbox for errors.
CHECK MKARCHIVE
If you are doing list logging (a monthly file exists in the $LIST directory
after sending a message to the list [$LIST-log is in your subscribers file,
right?]), run mkarchive to make sure that the monthly file can be archived:
% mkarchive $LIST
If there are errors (did you set your ARCDIR with bmw.cf?), fix them and
repeat the process with another monthly file in place.
SET UP CRON
If everything is working, set up your crontab. The distribution comes with
an example crontab named kron. Edit this file to suit your system and
submit it to cron.
The crontab should have a senddigest entry, which bundles up and sends out
the $LIST/digest file to the addresses listed in $LIST/subscribers.d.
The crontab should have an entry for mkarchive, which moves the $LIST/monthly
file to the $ARCDIR (specified in bmw.cf) and compresses it.
EDIT YOUR HELP AND MESSAGE FILES
Change the $BMW/help and $BMW/message files to suit your site. You can also
create $LIST/help and $LIST/message files which override the $BMW files when
a that $LIST is mailed to.
ANNOUNCE YOUR MAILING LIST
Tell people about your list and have fun.
OTHER PROGRAMS - ledit
Ledit is a program that allows your edit the subscribers and subscribers.d
file of a list safely (it does some primitive file locking). It does not
use the bmw.cf file, so you will need to change one value in it, SDIR,
and possibly your EDITOR command, to suit your system. To edit a list
with ledit:
% ledit $LIST
to edit the subscribers file, or
% ledit -d $LIST
to edit the subscribers.d file.