summaryrefslogtreecommitdiff
path: root/mail/majordomo
diff options
context:
space:
mode:
authorSatoshi Asami <asami@FreeBSD.org>1996-07-20 01:39:22 +0000
committerSatoshi Asami <asami@FreeBSD.org>1996-07-20 01:39:22 +0000
commit6073bad6184b4b40eb77d2e688cfbf847d443c6d (patch)
tree40ed516ad30d08131b5a43084d5bafbe6d201ad3 /mail/majordomo
parentPut "sudoers.sample" in the package and copy it to "sudoers" if the (diff)
Finally, the majordomo mailing list manager.
Submitted by: James FitzGibbon <james@nexis.net>
Notes
Notes: svn path=/head/; revision=3408
Diffstat (limited to 'mail/majordomo')
-rw-r--r--mail/majordomo/Makefile25
-rw-r--r--mail/majordomo/distinfo1
-rw-r--r--mail/majordomo/files/aliases.majordomo126
-rw-r--r--mail/majordomo/files/patch-aa81
-rw-r--r--mail/majordomo/files/patch-ab89
-rw-r--r--mail/majordomo/files/patch-ac158
-rw-r--r--mail/majordomo/files/post-install-notes31
-rw-r--r--mail/majordomo/files/test-l0
-rw-r--r--mail/majordomo/files/test-l-digest0
-rw-r--r--mail/majordomo/files/test-l.passwd1
-rw-r--r--mail/majordomo/pkg-comment1
-rw-r--r--mail/majordomo/pkg-descr16
-rw-r--r--mail/majordomo/pkg-plist31
-rw-r--r--mail/majordomo/scripts/configure15
14 files changed, 575 insertions, 0 deletions
diff --git a/mail/majordomo/Makefile b/mail/majordomo/Makefile
new file mode 100644
index 000000000000..99c7f69b9732
--- /dev/null
+++ b/mail/majordomo/Makefile
@@ -0,0 +1,25 @@
+# New ports collection makefile for: majordomo
+# Version required: 1.93
+# Date created: 8 Jul 1996
+# Whom: james@nexis.net
+#
+# $Id$
+#
+
+DISTNAME= majordomo-1.93
+CATEGORIES+= mail
+MASTER_SITES= ftp://ftp.greatcircle.com/pub/majordomo/
+EXTRACT_SUFX= .tar.Z
+
+MAINTAINER= james@nexis.net
+
+# Needs to create a user and group
+IS_INTERACTIVE= yes
+NO_PACKAGE= yes
+ALL_TARGET= default
+INSTALL_TARGET= install install-wrapper install-archive2
+
+post-install:
+ cp -p ${FILESDIR}/post-install-notes ${PREFIX}/majordomo/Doc
+
+.include <bsd.port.mk>
diff --git a/mail/majordomo/distinfo b/mail/majordomo/distinfo
new file mode 100644
index 000000000000..d1434c302e44
--- /dev/null
+++ b/mail/majordomo/distinfo
@@ -0,0 +1 @@
+MD5 (majordomo-1.93.tar.Z) = c589a3c3d420d68e096eafdfdac0c8aa
diff --git a/mail/majordomo/files/aliases.majordomo b/mail/majordomo/files/aliases.majordomo
new file mode 100644
index 000000000000..b68cf7b935c1
--- /dev/null
+++ b/mail/majordomo/files/aliases.majordomo
@@ -0,0 +1,126 @@
+##
+## Basic Majordomo Aliases
+##
+## Replace your own email for "Postmaster" in the "majordomo-owner" alias.
+##
+
+majordomo: "|/usr/local/majordomo/wrapper majordomo"
+majordomo-owner: Postmaster
+owner-majordomo: majordomo-owner
+majordom: majordomo-owner
+
+## The bounces mailing list is used to move people off of lists when their
+## e-mail address becomes undeliverable. See the bounce-remind script for a
+## way to inform people that they've been moved.
+
+## bounces mailing list
+#owner-bounces:majordomo-owner
+#bounces-approval:owner-bounces
+#owner-bounces-outgoing:owner-bounces
+
+#bounces: "|/usr/local/majordomo/wrapper resend -l bounces -h thud.cdrom.com bounces-outgoing"
+
+#bounces-outgoing::include:/usr/local/majordomo/lists/bounces
+
+## Test List
+##
+## This is a testing list that should be removed once you are familiar with
+## the operation of Majordomo.
+##
+owner-test-l:Postmaster
+owner-test-l-digest:owner-test-l
+owner-test-l-outgoing:owner-test-l
+owner-test-l-digest-outgoing:owner-test-l
+test-l-approval:owner-test-l
+test-l-digest-approval:owner-test-l
+
+test-l: "|/usr/local/majordomo/wrapper resend -l test-l -h thud.cdrom.com test-l-outgoing"
+test-l-digest:test-l
+test-l-outgoing::include:/usr/local/majordomo/lists/test-l,
+ "|/usr/local/majordomo/wrapper archive -a -m -f /usr/local/majordomo/lists/test-l.archive/test-l.archive",
+ "|/usr/local/majordomo/wrapper digest -r -C -l test-l-digest test-l-digest-outgoing"
+test-l-digest-outgoing::include:/usr/local/majordomo/lists/test-l-digest
+
+test-l-request: "|/usr/local/majordomo/wrapper majordomo -l test-l"
+test-l-digest-request: "|/usr/local/majordomo/wrapper majordomo -l test-l-digest"
+
+
+## Sample Lists
+##
+## Majordomo lists take one of four general forms:
+##
+## 1. Regular mailing list
+## 2. Mailing list with archiving
+## 3. Mailing list with a digested form of the list
+## 4. Mailing list with a digested form of the list and archiving
+##
+## Examples for each are commented out below
+##
+
+
+# Regular Mailing List
+#
+
+#owner-listname:user
+#owner-listname-outgoing:owner-listname
+#listname-approval:owner-listname
+
+#listname: "|/usr/local/majordomo/wrapper resend -l listname -h thud.cdrom.com listname-outgoing"
+#listname-outgoing::include:/usr/local/majordomo/lists/listname
+
+#listname-request: "|/usr/local/majordomo/wrapper majordomo -l listname"
+
+
+# Mailing List with archiving
+#
+
+#owner-listname:user
+#owner-listname-outgoing:owner-listname
+#listname-approval:owner-listname
+
+#listname: "|/usr/local/majordomo/wrapper resend -l listname -h thud.cdrom.com listname-outgoing"
+#listname-outgoing::include:/usr/local/majordomo/lists/listname,
+# "|/usr/local/majordomo/wrapper archive -a -m -f /usr/local/majordomo/lists/listname.archive/listname.archive"
+
+#listname-request: "|/usr/local/majordomo/wrapper majordomo -l listname"
+
+
+# Mailing List with a digested form of the list
+#
+
+#owner-listname:user
+#owner-listname-digest:owner-listname
+#owner-listname-outgoing:owner-listname
+#owner-listname-digest-outgoing:owner-listname
+#listname-approval:owner-listname
+#listname-digest-approval:owner-listname
+
+#listname: "|/usr/local/majordomo/wrapper resend -l listname -h thud.cdrom.com listname-outgoing"
+#listname-digest:listname
+#listname-outgoing::include:/usr/local/majordomo/lists/listname,
+# "|/usr/local/majordomo/wrapper digest -r -C -l listname-digest listname-digest-outgoing"
+#listname-digest-outgoing::include:/usr/local/majordomo/lists/listname-digest
+
+#listname-request: "|/usr/local/majordomo/wrapper majordomo -l listname"
+#listname-digest-request: "|/usr/local/majordomo/wrapper majordomo -l listname-digest"
+
+
+# Mailing List with a digested form of the list and archiving
+#
+
+#owner-listname:user
+#owner-listname-digest:owner-listname
+#owner-listname-outgoing:owner-listname
+#owner-listname-digest-outgoing:owner-listname
+#listname-approval:owner-listname
+#listname-digest-approval:owner-listname
+
+#listname: "|/usr/local/majordomo/wrapper resend -l listname -h thud.cdrom.com listname-outgoing"
+#listname-digest:listname
+#listname-outgoing::include:/usr/local/majordomo/lists/listname,
+# "|/usr/local/majordomo/wrapper archive -a -m -f /usr/local/majordomo/lists/listname.archive/listname.archive",
+# "|/usr/local/majordomo/wrapper digest -r -C -l listname-digest listname-digest-outgoing"
+#listname-digest-outgoing::include:/usr/local/majordomo/lists/listname-digest
+
+#listname-request: "|/usr/local/majordomo/wrapper majordomo -l listname"
+#listname-digest-request: "|/usr/local/majordomo/wrapper majordomo -l listname-digest"
diff --git a/mail/majordomo/files/patch-aa b/mail/majordomo/files/patch-aa
new file mode 100644
index 000000000000..9d843a19c6c0
--- /dev/null
+++ b/mail/majordomo/files/patch-aa
@@ -0,0 +1,81 @@
+*** Makefile.orig Mon Jul 8 23:41:43 1996
+--- Makefile Tue Jul 9 11:24:56 1996
+***************
+*** 19,31 ****
+ #
+
+ # This is where "wrapper" looks for the programs it's supposed to run.
+! W_BIN=/tools/majordomo-1.93
+
+ # This is the environment that (along with LOGNAME and USER inherited from the
+ # parent process, and without the leading "W_" in the variable names) gets
+ # passed to processes run by "wrapper"
+
+! W_PATH=/bin:/usr/bin:/usr/ucb
+ W_HOME=${W_BIN}
+ W_SHELL=/bin/csh
+ W_MAJORDOMO_CF=$(W_BIN)/majordomo.cf
+--- 19,31 ----
+ #
+
+ # This is where "wrapper" looks for the programs it's supposed to run.
+! W_BIN=@@PREFIX@@/majordomo
+
+ # This is the environment that (along with LOGNAME and USER inherited from the
+ # parent process, and without the leading "W_" in the variable names) gets
+ # passed to processes run by "wrapper"
+
+! W_PATH=/bin:/usr/bin:
+ W_HOME=${W_BIN}
+ W_SHELL=/bin/csh
+ W_MAJORDOMO_CF=$(W_BIN)/majordomo.cf
+***************
+*** 45,52 ****
+ # and comment out the BSD settings above.
+ #
+ #
+! W_UID = 54
+! W_GID = 54
+ W_CHOWN=root
+ W_CHMOD=4755
+ WRAPPER_FLAGS = -DBIN=\"${W_BIN}\" -DPATH=\"PATH=${W_PATH}\" \
+--- 45,52 ----
+ # and comment out the BSD settings above.
+ #
+ #
+! W_UID = @@UID@@
+! W_GID = @@GID@@
+ W_CHOWN=root
+ W_CHMOD=4755
+ WRAPPER_FLAGS = -DBIN=\"${W_BIN}\" -DPATH=\"PATH=${W_PATH}\" \
+***************
+*** 83,99 ****
+ # proper place unless a majordomo.cf file exists in whcih case the
+ # majordomo.cf file will be used.
+ install-cf:
+! (test ! -f majordomo.cf && echo "using sample.cf" && \
+! cp sample.cf $(W_BIN)/majordomo.cf; exit 0)
+! (test -f majordomo.cf && echo "using majordomo.cf" && \
+! cp majordomo.cf $(W_BIN)/majordomo.cf; exit 0)
+
+ install-man:
+! @-test -d $(W_BIN)/man || mkdir $(W_BIN)/man
+! @-test -d $(W_BIN)/man/man1 || mkdir $(W_BIN)/man/man1
+! @-test -d $(W_BIN)/man/man8 || mkdir $(W_BIN)/man/man8
+! cp Doc/man/approve.1 $(W_BIN)/man/man1
+! cp Doc/man/majordomo.8 $(W_BIN)/man/man8
+
+ install-shared: install-wrapper-shared install-scripts
+
+--- 83,93 ----
+ # proper place unless a majordomo.cf file exists in whcih case the
+ # majordomo.cf file will be used.
+ install-cf:
+! cp sample.cf $(W_BIN)/majordomo.cf
+
+ install-man:
+! cp Doc/man/approve.1 @@PREFIX@@/man/man1
+! cp Doc/man/majordomo.8 @@PREFIX@@/man/man8
+
+ install-shared: install-wrapper-shared install-scripts
+
diff --git a/mail/majordomo/files/patch-ab b/mail/majordomo/files/patch-ab
new file mode 100644
index 000000000000..c1c351d15ab9
--- /dev/null
+++ b/mail/majordomo/files/patch-ab
@@ -0,0 +1,89 @@
+*** sample.cf.orig Tue Jul 9 09:32:19 1996
+--- sample.cf Tue Jul 9 09:35:46 1996
+***************
+*** 1,5 ****
+ # $whereami -- What machine am I running on?
+! $whereami = "foo.GreatCircle.COM";
+
+ # $whoami -- Who do users send requests to me as?
+ $whoami = "Majordomo@$whereami";
+--- 1,5 ----
+ # $whereami -- What machine am I running on?
+! $whereami = "@@HOSTNAME@@";
+
+ # $whoami -- Who do users send requests to me as?
+ $whoami = "Majordomo@$whereami";
+***************
+*** 12,29 ****
+ if ( defined $ENV{"HOME"}) {
+ $homedir = $ENV{"HOME"};
+ } else {
+! $homedir = "/usr/local/majordomo-1.92";
+ }
+
+ # $listdir -- Where are the mailing lists?
+! $listdir = "/usr/local/mail/lists";
+
+ # $digest_work_dir -- the parent directory for digest's queue area
+ # Each list must have a subdirectory under this directory in order for
+ # digest to work. E.G. The bblisa list would use:
+ # /usr/local/mail/digest/bblisa
+ # as its directory.
+! $digest_work_dir = '/usr/local/mail/digest';
+
+ # $log -- Where do I write my log?
+ $log = "$homedir/Log";
+--- 12,29 ----
+ if ( defined $ENV{"HOME"}) {
+ $homedir = $ENV{"HOME"};
+ } else {
+! $homedir = "/usr/local/majordomo-1.93";
+ }
+
+ # $listdir -- Where are the mailing lists?
+! $listdir = "@@PREFIX@@/majordomo/lists";
+
+ # $digest_work_dir -- the parent directory for digest's queue area
+ # Each list must have a subdirectory under this directory in order for
+ # digest to work. E.G. The bblisa list would use:
+ # /usr/local/mail/digest/bblisa
+ # as its directory.
+! $digest_work_dir = "@@PREFIX@@/majordomo/digests";
+
+ # $log -- Where do I write my log?
+ $log = "$homedir/Log";
+***************
+*** 33,39 ****
+ # however the $to variable is provided by the person sending mail,
+ # and much mischief can be had by playing with this variable.
+ # Use $to with care.
+! $mailer = "/usr/lib/sendmail -f\$sender -t";
+
+ # Majordomo will look for "get" and "index" files related to $list in
+ # directory "$filedir/$list$filedir_suffix", so set $filedir and
+--- 33,39 ----
+ # however the $to variable is provided by the person sending mail,
+ # and much mischief can be had by playing with this variable.
+ # Use $to with care.
+! $mailer = "/usr/sbin/sendmail -f\$sender -t";
+
+ # Majordomo will look for "get" and "index" files related to $list in
+ # directory "$filedir/$list$filedir_suffix", so set $filedir and
+***************
+*** 73,79 ****
+ # the safe locations for archive directories. This should be defined as
+ # a series of root anchored directory paths as will be used as prefixes
+ # to the file names specified to the archive2.pl script.
+! @archive_dirs = ( "/spool/archive/bblisa", "/usr/spool/archive/firewalls" );
+
+
+ # Set this to 1 if you want to use the experimental mechanism for allowing
+--- 73,80 ----
+ # the safe locations for archive directories. This should be defined as
+ # a series of root anchored directory paths as will be used as prefixes
+ # to the file names specified to the archive2.pl script.
+! @archive_dirs = ( "@@PREFIX@@/majordomo/lists/test-l.archive",
+! );
+
+
+ # Set this to 1 if you want to use the experimental mechanism for allowing
diff --git a/mail/majordomo/files/patch-ac b/mail/majordomo/files/patch-ac
new file mode 100644
index 000000000000..622e5d18433e
--- /dev/null
+++ b/mail/majordomo/files/patch-ac
@@ -0,0 +1,158 @@
+*** majordomo.pl.orig Tue Jul 9 12:59:43 1996
+--- majordomo.pl Tue Jul 9 13:00:47 1996
+***************
+*** 241,247 ****
+ }
+
+ # Globals referenced by &set_mail* and &sendmail
+! $mail_prog = "/usr/lib/sendmail -f\$sender -t";
+ $mail_from = "Majordomo";
+ $mail_sender = "Majordomo-Owner";
+
+--- 241,247 ----
+ }
+
+ # Globals referenced by &set_mail* and &sendmail
+! $mail_prog = "/usr/sbin/sendmail -f\$sender -t";
+ $mail_from = "Majordomo";
+ $mail_sender = "Majordomo-Owner";
+
+*** request-answer.orig Tue Jul 9 13:07:44 1996
+--- request-answer Tue Jul 9 13:09:07 1996
+***************
+*** 38,44 ****
+ $list = $ARGV[0];
+
+ sub do_exec_sendmail {
+! exec("/usr/lib/sendmail", "-f$list-request", "-t") ||
+ die("Failed to exec sendmail");
+ }
+
+--- 38,44 ----
+ $list = $ARGV[0];
+
+ sub do_exec_sendmail {
+! exec("/usr/sbin/sendmail", "-f$list-request", "-t") ||
+ die("Failed to exec sendmail");
+ }
+
+*** resend.orig Tue Jul 9 13:09:13 1996
+--- resend Tue Jul 9 13:09:57 1996
+***************
+*** 348,354 ****
+ &bounce("Approval required");
+ }
+
+! $sendmail_cmd = "/usr/lib/sendmail $opt_m -f$sendmail_sender " .
+ join(" ", @ARGV);
+
+ if (defined($opt_d)) {
+--- 348,354 ----
+ &bounce("Approval required");
+ }
+
+! $sendmail_cmd = "/usr/sbin/sendmail $opt_m -f$sendmail_sender " .
+ join(" ", @ARGV);
+
+ if (defined($opt_d)) {
+***************
+*** 464,472 ****
+ if (defined($opt_d)) {
+ # debugging, so just say it, don't do it
+ open(MAIL, ">-");
+! print MAIL ">>> /usr/lib/sendmail -f$sendmail_sender -t\n";
+ } else {
+! local(@mailer) = split(' ',"/usr/lib/sendmail -f$sendmail_sender -t");
+ open(MAIL, "|-") || &do_exec_sendmail(@mailer);
+ }
+
+--- 464,472 ----
+ if (defined($opt_d)) {
+ # debugging, so just say it, don't do it
+ open(MAIL, ">-");
+! print MAIL ">>> /usr/sbin/sendmail -f$sendmail_sender -t\n";
+ } else {
+! local(@mailer) = split(' ',"/usr/sbin/sendmail -f$sendmail_sender -t");
+ open(MAIL, "|-") || &do_exec_sendmail(@mailer);
+ }
+
+*** bounce.orig Tue Jul 9 13:10:07 1996
+--- bounce Tue Jul 9 13:11:03 1996
+***************
+*** 71,78 ****
+ if (defined($opt_d)) {
+ open(MSG, ">&STDOUT");
+ } else {
+! open(MSG, "|/usr/lib/sendmail $majordomo{$list}") ||
+! die("open(MSG, \"|/usr/lib/sendmail $majordomo{$list}\"): $!\nStopped");
+ }
+
+ print MSG <<EOF;
+--- 71,78 ----
+ if (defined($opt_d)) {
+ open(MSG, ">&STDOUT");
+ } else {
+! open(MSG, "|/usr/sbin/sendmail $majordomo{$list}") ||
+! die("open(MSG, \"|/usr/sbin/sendmail $majordomo{$list}\"): $!\nStopped");
+ }
+
+ print MSG <<EOF;
+*** new-list.orig Fri Jul 12 10:49:21 1996
+--- new-list Fri Jul 12 10:49:39 1996
+***************
+*** 39,45 ****
+
+ open(MAIL, "|-") ||
+ &do_exec_sendmail(split(' ',
+! "/usr/lib/sendmail -f$list-approval -t"));
+
+ print MAIL <<"EOM";
+ To: $reply_to
+--- 39,45 ----
+
+ open(MAIL, "|-") ||
+ &do_exec_sendmail(split(' ',
+! "/usr/sbin/sendmail -f$list-approval -t"));
+
+ print MAIL <<"EOM";
+ To: $reply_to
+*** bounce-remind.orig Fri Jul 12 10:48:48 1996
+--- bounce-remind Fri Jul 12 10:49:17 1996
+***************
+*** 33,40 ****
+ # All these should be in the standard PERL library
+ unshift(@INC, $homedir);
+
+! open(MSG, "|/usr/lib/sendmail bounces@$whereami") ||
+! die("open(MSG, \"|/usr/lib/sendmail bounces@$whereami\"): $!\nStopped");
+
+ print MSG <<EOF;
+ To: Bounces@$whereami
+--- 33,40 ----
+ # All these should be in the standard PERL library
+ unshift(@INC, $homedir);
+
+! open(MSG, "|/usr/sbin/sendmail bounces@$whereami") ||
+! die("open(MSG, \"|/usr/sbin/sendmail bounces@$whereami\"): $!\nStopped");
+
+ print MSG <<EOF;
+ To: Bounces@$whereami
+*** digest/digest.orig Sat Jul 13 12:21:12 1996
+--- digest/digest Sat Jul 13 12:21:28 1996
+***************
+*** 214,220 ****
+
+ close(DIGEST);
+
+! system("/usr/lib/sendmail -f$V{'ERRORS-TO'} $V{'REALLY-TO'} < $DIGEST");
+
+ if ( ! defined($opt_C) ) {
+ open(NUM_FILE, ">$V{'NUM_FILE'}") ||
+--- 214,220 ----
+
+ close(DIGEST);
+
+! system("/usr/sbin/sendmail -f$V{'ERRORS-TO'} $V{'REALLY-TO'} < $DIGEST");
+
+ if ( ! defined($opt_C) ) {
+ open(NUM_FILE, ">$V{'NUM_FILE'}") ||
diff --git a/mail/majordomo/files/post-install-notes b/mail/majordomo/files/post-install-notes
new file mode 100644
index 000000000000..c729a62a41cf
--- /dev/null
+++ b/mail/majordomo/files/post-install-notes
@@ -0,0 +1,31 @@
+Post-Install Notes for Majordomo v1.93
+======================================
+
+Before you can use Majordomo, you will need to complete a few steps
+manually:
+
+ - customize 'majordomo.cf' in your majordomo directory
+
+ - look at 'aliases.majordomo' in your majordomo directory for examples
+ of how to create lists. A test list (test-l) has been created and
+ configured for you. Be sure to remove this list if you do not
+ want to use it for testing.
+
+ - substitute your own email address for "Postmaster" for the
+ "majordomo-owner" alias.
+
+ - add 'aliases.majordomo' to your sendmail configuration. This can
+ be done by adding a line similar to the following to
+ /etc/sendmail.cf :
+
+ OA/etc/aliases.majordomo (for 8.6.x Sendmail)
+
+ O AliasFile=/etc/aliases,/etc/aliases.majordomo (for 8.7.x Sendmail)
+
+ or a line similar to the following to your m4 macros file :
+
+ define(`ALIAS_FILE',/etc/aliases,/etc/aliases.majordomo')
+
+
+Enjoy Majordomo!
+
diff --git a/mail/majordomo/files/test-l b/mail/majordomo/files/test-l
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/mail/majordomo/files/test-l
diff --git a/mail/majordomo/files/test-l-digest b/mail/majordomo/files/test-l-digest
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/mail/majordomo/files/test-l-digest
diff --git a/mail/majordomo/files/test-l.passwd b/mail/majordomo/files/test-l.passwd
new file mode 100644
index 000000000000..9daeafb9864c
--- /dev/null
+++ b/mail/majordomo/files/test-l.passwd
@@ -0,0 +1 @@
+test
diff --git a/mail/majordomo/pkg-comment b/mail/majordomo/pkg-comment
new file mode 100644
index 000000000000..ad957d301c79
--- /dev/null
+++ b/mail/majordomo/pkg-comment
@@ -0,0 +1 @@
+The Majordomo mailing list manager
diff --git a/mail/majordomo/pkg-descr b/mail/majordomo/pkg-descr
new file mode 100644
index 000000000000..63c923320fda
--- /dev/null
+++ b/mail/majordomo/pkg-descr
@@ -0,0 +1,16 @@
+Majordomo is a program which automates the management of Internet
+ mailing lists. Commands are sent to Majordomo via electronic mail to
+ handle all aspects of list maintainance. Once a list is set up,
+ virtually all operations can be performed remotely, requiring no
+ intervention upon the postmaster of the list site.
+
+ _majordomo - n: a person who speaks, makes arrangements, or takes
+ charge for another. From latin "major domus" - "master of the
+ house". _
+
+
+Be sure to read Doc/post-install-notes for important configuration details
+after installation.
+
+--
+j.
diff --git a/mail/majordomo/pkg-plist b/mail/majordomo/pkg-plist
new file mode 100644
index 000000000000..e0261f87a9e2
--- /dev/null
+++ b/mail/majordomo/pkg-plist
@@ -0,0 +1,31 @@
+majordomo/aliases.majordomo
+majordomo/archive
+majordomo/bounce-remind
+majordomo/config_parse.pl
+majordomo/digest
+majordomo/majordomo
+majordomo/majordomo.cf
+majordomo/majordomo.pl
+majordomo/majordomo_version.pl
+majordomo/new-list
+majordomo/request-answer
+majordomo/resend
+majordomo/resend.README
+majordomo/shlock.pl
+majordomo/test
+majordomo/wrapper
+majordomo/Tools/archive2.pl
+majordomo/bin/approve
+majordomo/bin/bounce
+majordomo/bin/medit
+majordomo/lists/test-l
+majordomo/lists/test-l.info
+majordomo/lists/test-l.passwd
+majordomo/Doc/FAQ
+majordomo/Doc/README
+majordomo/Doc/list-owner-info
+majordomo/Doc/majordomo.lisa6.ps
+majordomo/Doc/majordomo.ora
+majordomo/Doc/post-install-notes
+man/man1/approve.1.gz
+man/man8/majordomo.8.gz
diff --git a/mail/majordomo/scripts/configure b/mail/majordomo/scripts/configure
new file mode 100644
index 000000000000..3f25be3f3956
--- /dev/null
+++ b/mail/majordomo/scripts/configure
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+#
+
+eval '(exit $?0)' && eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
+& eval 'exec /usr/bin/perl -S $0 $argv:q'
+if 0;
+
+chop( $HOSTNAME=`hostname` );
+@files = ( "$ENV{'WRKSRC'}/Makefile", "$ENV{'WRKSRC'}/sample.cf", "$ENV{'FILESDIR'}/aliases.majordomo" );
+
+( $null, $null, $mjUID, $mjGID ) = getpwnam( "majordom" );
+system( "perl -pi -e 's|@@PREFIX@@|$ENV{'PREFIX'}|g' @files" );
+system( "perl -pi -e 's|@@HOSTNAME@@|$HOSTNAME|g' @files" );
+system( "perl -pi -e 's|@@UID@@|$mjUID|g' @files" );
+system( "perl -pi -e 's|@@GID@@|$mjGID|g' @files" );