Majordomo

EARLY DRAFT

This is for version 1.93.

Domo has some unnecessarily configuration requirements and interactions between its invocation in /etc/aliases and its configuration in majordomo.cf.

Here are some brief notes on how I set it up.

First, it seems to me that majordomo.cf sets enough variables that most of the stuff in /etc/aliases shouldn't need to be set there -- that they should be determined by the config file. Do I really need to specify various filenames and directory paths in my aliases? If they don't match what's in the config file, you're hosed and the error message may not tell you why it didn't work (eg: the archive file/dir isn't where you said it might be).

Perhaps all the flags and options in /etc/aliases give you flexibility you might need, but it seems many of them should default to the values specified in the .cf file.

Building

Get the source from ftp.greatcircle.com; it's mostly Perl-4, but there is one C program you have to compile. Build it anywhere, like /usr/local/src/majordomo-1.93.

Create a user and group called "majordom" (8 character name restriction in UNIX), and a login directory appropriately owned. Set modes to be owner and group write, with permission inheritance. Install the code into this directory. The program wrapper must be installed as root because it's set-uid. You'll probably want archive2.pl, and it must be moved rom the Tools directory into your ~majordom directory.

Create directories for lists, archives, digest creation, and an empty log file as named in your majordomo.cf file, described below.

/etc/aliases

# test list

test:   "|/users/majordom/wrapper resend -l test -h GLOBE.Gov test-outgoing"
test-digest:    test

test-outgoing:  :include:/users/majordom/lists/test,
                "|/users/majordom/wrapper digest -r -C -l test-digest test-dige\
st-outgoing",
                "|/users/majordom/wrapper archive2.pl -a -m -f /users/majordom/\
archives/test"


test-digest-outgoing:   :include:/users/majordom/lists/test-digest

owner-test:                     cshenton
owner-test-outgoing:            owner-test
owner-test-digest:              owner-test
owner-test-digest-outgoing:     owner-test

test-approval:                  cshenton
test-digest-approval:           test-approval

test-request:           "|/users/majordom/wrapper majordomo -l test"
test-digest-request:    "|/users/majordom/wrapper majordomo -l test-digest"

Why isn't resend getting it's From: hostname from majordomo.cf? I'ts specified there.

archive2.pl breaks "-f filename" into $dir and $basename; it then scans @archive_dirs to find a match with $dir; it fails if none. Approaches:

  1. archive2.pl will create files, so create a separate ~/archives/ dir and make @archive_dirs set to that.
  2. Just put the archives in the $lists dir as name-archive.date make @archive_dirs just the name of the list dir;
We'll go with the first because it's easiest, more straight forward, and obvious: all good design goals. With this, all archives are in the same dir, but grouped by name and date-suffix, so this is no problem.

majordomo.cf

My majordomo.cf can be used as a sample. I'll pick out some lines and comment on them after each.

[later; comments are inline with the config file now.]

Chris Shenton

$Id: Welcome.html,v 1.1 1996/05/08 18:59:55 cshenton Exp $