BeroList v2.0.0
===============
(c) 1996 by Bernhard Rosenkraenzer, root@startrek.in-trier.de

 
====================
1. WHAT IS BEROLIST?
====================

BeroList is an easy-to-use, easy-to-install mailing list server. Unlike many
other mailing list servers, BeroList does not require perl to be installed
on your system.

===============
2. INSTALLATION
===============

IF YOU ARE UPDATING FROM A PREVIOUS VERSION OF BEROLIST, YOU *MUST* EDIT
YOUR LIST CONFIG FILES! PLEASE READ ON !

To install BeroList, edit the list.h file according to your computer and
operating system (The options are commented in the file).
Though BeroList can determine the hostname itself, I strongly recommend to
set the hostname in the list.h. The hostname determination is probably not
protable to all unix systems, and will not work correctly with some Linux
beta kernels.
Run 'make 386' if you will be running the program on a 80386 processor,
'make 486' if you will be using a 80486 processor, 'make 586' on a Pentium.
Code generated for Pentium processors will run on 486-based systems, as
well. It's smaller, but slower on 486s.
Use 'make' without parameters for all other processors.
If you are using a compiler other than gcc, you will probably have to edit
the makefile.
The program has been tested on a Pentium/133 running Linux kernel versions
1.3.95 up to 2.0.22, a 386 running Linux 1.3.84, and a 486 using Linux 2.0.0
(compilers: gcc 2.7.0, 2.7.2, 2.7.2.l3 and 2.7.2.1), using libcs from 5.3.12
to 5.4.7, but it should work on other systems, as well. Minor changes may be
necessary, especially for non-Linux Unix derivates.

It is recommended to add the line 'Tbin' to your sendmail.cf file, which
makes 'bin' (which is used as the sender of mails) a 'trusted' user, who may
send messages with other user names in the From: field.

==========================
3. CREATING A MAILING LIST
==========================

3.1. ASSIGNING THE ADDRESS
--------------------------
3.1.1. If you have root access
------------------------------
  ENTRY IN /etc/aliases
  --------------------------

  To create a mailing list, add the list to your /etc/aliases file. Create a
  pipe to BeroList's 'list' program.
  An entry for the mailing list test-list with BeroList installed in
  /usr/inet/lists should, for example, look like this:

  test-list:"|/usr/inet/lists/list"

  Run newaliases after making the change.

  Since BeroList determines by the message header's To: field which list is
  addressed, you can run several mailing lists using the same copy of
  BeroList. An alias entry like

  test-list:"|/usr/inet/lists/list"
  startrek:"|/usr/inet/lists/list"
  linux:"|/usr/inet/lists/list"

  would be exactly what the program is ment for. (If the lists are configured
  accordingly, of course. :) )

3.1.2. If you don't have root access
------------------------------------

  Get a second e-mail account from your system administration.
  The login name of the second account must match the list name.

  In the new user's home directory, create a file called
  .forward, which forwards incoming mails to the program.
  If the "list" program is in /home/user1/, the .forward file
  would have to say

  "|/home/user1/list"

3.2. CONFIG FILE
----------------

Next, create a file in your mailing list directory, called listname.config
(in our example: test-list.config).
All list-related filenames have to be lowercase, to prevent the program from
trying to use case-sensitive e-mail addresses.
You can define the following options in the config file:

newusers=yes/no	If set to yes, new users can subscribe to the list by
		sending a message with subject 'subscribe' to the list
		address (default). If no, new users must be subscribed
		by a list operator. (see 3.4)
closed=yes/no	If yes, only members of the list may send messages to the
		list. If no, everyone may send messages. (default)
contact=address	Address of a list operator (for newusers=no lists only).
		Users trying to subscribe will get a message like
		"You may not subscribe to the list by yourself. Contact
		the list operator, (address specified here)."
		(defaults to root@(Host specified in list.h))
sender=address/original/list
		Specifies the sender of messages generated by the list.
		If set to original (default), the sender will be copied
		from the incoming message's header.
		If an address is specified, all list messages have
		From: (specified address)
		in the header.
		If set to list, BeroList will determine the list address
		and use it. (Enables replies to the entire list.)
errors-to=address
		If a message from mailer-daemon@somewhere arrives to the
		list (normally an error message; caused mail loops if
		sender was = listname@listhost in early versions),
		it is sent to this address instead.
		If not specified, the error message is sent to the
		address specified as contact.

Example:
Our test-list.config might look like this:

newusers=no
closed=no
contact=roomcleaner@whitehouse.gov
sender=test-list@windows-sucks.linux.org
errors-to=too-high-fees@dtag.de

It would result in a list that does not accept new users. Users trying to
subscribe would be told to contact roomcleaner@whitehouse.gov.
It would accept messages from people not in the list. All outgoing messages
would be sent from test-list@windows-sucks.linux.org
Errors would be sent to too-high-fees@dtag.de.

The config file must be readable by 'bin'. I recommend running
'chown bin.bin *' in your lists directory.


3.3. MEMBERS FILE (optional)
----------------------------
Next, create a file called listname.members.
Its format is:

User1@Host1
User2@Host2
...

or

Realname 1 <User1@Host1>
Realname 2 <User2@Host2>
...

or any other valid format of e-mail addresses.

All people listed in the listname.members file are subscribed to the list.
If you do not create the listname.members file, it will be automatically
created when a user sends a 'subscribe' message to the list.

The file must be read-writeable by user 'bin'. (Do 'chown bin.bin
listname.members')


3.4. OPERATORS FILE (optional)
------------------------------
Next, create a file called listname.operators. (And again, replace
'listname' by the name of your mailing list. ;) )

Its format is exactly like the MEMBERS FILE (see 3.3.)

All people listed here are list operators, meaning they can subscribe and
unsubscribe users by sending messages with subjects like 'subscribe
root@startrek.in-trier.de' or 'unsubscribe billg@microsoft.com' to the list.

The file must be readable by 'bin'.


3.5. FOOTER FILE (optional)
---------------------------
Next, create a file called listname.footer. (optional)
If the file exists, it will be appended to every message that passes the
list.

The file must be readable by 'bin'.


3.6. WELCOME FILE (optional)
----------------------------
Last, create a file called listname.welcome. (optional)
If the file exists, it will be sent to new subscribers.
If the first line starts with 'Subject: ', it will be used as subject of the
message.

The file must be readable by 'bin'.

==================================================
4. UPDATING FROM 0.x.x AND 1.x.x VERSIONS TO 2.x.x
==================================================
Version 2.0.0 implements a completely new way of sending messages by
connecting to a SMTP server without using an external program.
The advantage is that mail to lists is processed significantly faster
(especially for large lists), and it uses less system resources.
If you insist on using the old way (it might be more reliable on some
systems), #define USE_SENDMAIL in the list.h file.

===========
5. PROBLEMS
===========
If you have problems with the program, read the PROBLEMS file. It describes
the most common mistakes people make in installing, and the solutions.
If nothing seems to help, drop a message to the mailing list
(berolist@startrek.in-trier.de), or contact me directly
(root@startrek.in-trier.de).

==========
6. UPDATES
==========
Whenever I make changes to the program, a new version can be found in the
ftp://ftp.startrek.in-trier.de/pub/progs/unix/net/mail-list
directory.
If you wish to be notified of updates, subscribe to the list
berolist@startrek.in-trier.de.


====================
7. CHANGING THE CODE
====================
You are permitted to change the program code. If you make any improvements,
please help improving the product, and send me a copy of your version.
You can contact my by e-mail at root@startrek.in-trier.de, or upload the
file to ftp://ftp.startrek.in-trier.de/incoming/progs/unix
Or, drop a message to the BeroList mailing list,
berolist@startrek.in-trier.de

Ok, ok... The code is mostly uncommented...
I want it to be a challenge for hackers... (err...) ;)


============================
8. THE BEROLIST MAILING LIST
============================
I have created a mailing list for discussion of BeroList which is running on
berolist@startrek.in-trier.de (guess which program I used... ;) ). If you're
interested in improving the program, subscribe.


==========
9. COPYING
==========
The program may be freely copied as long as the copyright notice is not
removed. Programs based on this program MUST have a reference to BeroList in
the documentation and (if possible) the program itself.


BBBBB   EEEEE  RRRRR     OOO       Bernhard Rosenkraenzer
B    B E       R    R   O   O      Auf der Hard 3
B    B E       R    R  O     O     54456 Tawern
BBBBB  EEEEEE  RRRRR   O     O     Germany
B    B E       R  R    O     O
B    B E       R   R    O   O      e-mail:  root@startrek.in-trier.de
BBBBB   EEEEE  R    R    OOO       FidoNet: 2:2452/307.46
