Browse Source

finally finish packaging this beast ;-)

Ralf S. Engelschall 23 years ago
parent
commit
3cb7b8e988
2 changed files with 511 additions and 9 deletions
  1. 120 9
      majordomo/majordomo.spec
  2. 391 0
      majordomo/users.config

+ 120 - 9
majordomo/majordomo.spec

@@ -29,20 +29,21 @@ Summary:      Mailing List Manager
 URL:          http://www.greatcircle.com/majordomo/
 Vendor:       Great Circle Associates
 Packager:     The OpenPKG Project
-Distribution: OpenPKG [JUNK]
+Distribution: OpenPKG [EVAL]
 Group:        Mail
 License:      Majordomo License Agreement
 Version:      1.94.5
-Release:      20020206
+Release:      20021206
 
 #   list of sources
 Source0:      http://www.greatcircle.com/majordomo/%{version}/majordomo-%{version}.tar.gz
+Source1:      users.config
 
 #   build information
 Prefix:       %{l_prefix}
 BuildRoot:    %{l_buildroot}
 BuildPreReq:  OpenPKG, openpkg >= 20020206, perl, gcc
-PreReq:       OpenPKG, openpkg >= 20020206, perl, bash
+PreReq:       OpenPKG, openpkg >= 20020206, perl, bash, MTA
 AutoReq:      no
 AutoReqProv:  no
 
@@ -56,22 +57,132 @@ AutoReqProv:  no
     %{l_shtool} subst \
         -e 's;^\(PERL =\).*;\1 %{l_prefix}/bin/perl;' \
         -e 's;^\(CC =\).*;\1 %{l_prefix}/bin/gcc;' \
-        -e 's;^\(W_HOME =\).*;\1 %{l_prefix};' \
-        -e 's;^\(W_USER =\).*;\1 %{l_muid};' \
-        -e 's;^\(W_GROUP =\).*;\1 %{l_mgid};' \
+        -e 's;^\(W_HOME =\).*;\1 %{l_prefix}/libexec/majordomo;' \
+        -e 's;^\(W_MAJORDOMO_CF =\).*;\1 %{l_prefix}/etc/majordomo/majordomo.cf;' \
+        -e 's;^\(MAN =\).*;\1 %{l_prefix}/man;' \
+        -e 's;^\(W_USER =\).*;\1 %{l_ruid};' \
+        -e 's;^\(W_GROUP =\).*;\1 %{l_rgid};' \
         -e 's;^\(W_SHELL =\).*;\1 %{l_prefix}/bin/bash;' \
+        -e 's;^\(W_PATH =\).*;\1 %{l_prefix}/bin:/bin:/usr/bin;' \
         -e 's;^\(TMPDIR =\).*;\1 %{l_prefix}/var/majordomo/tmp;' \
         Makefile
+    %{l_shtool} subst \
+        -e 's|"Majordomo-Owner|"majordomo-owner|' \
+        -e 's|"Majordomo|"majordomo|' \
+        -e 's|\(\$homedir *= *"\)[^"]*\(";\)|\1%{l_prefix}/libexec/majordomo\2|' \
+        -e 's|\(\$listdir *= *"\)[^"]*\(";\)|\1%{l_prefix}/var/majordomo/list\2|' \
+        -e 's|\(\$log *= *"\)[^"]*\(";\)|\1%{l_prefix}/var/majordomo/log/majordomo.log\2|' \
+        -e 's|\(\$sendmail_command *= *"\)[^"]*\(";\)|\1%{l_prefix}/sbin/sendmail\2|' \
+        -e 's|\(\$whereami *= *"\)[^"]*\(";\)|\1example.com\2|' \
+        -e 's|"/usr/tmp";|"%{l_prefix}/var/majordomo/tmp";|' \
+        sample.cf
+    %{l_shtool} subst \
+        -e 's;/usr/lib/sendmail;%{l_prefix}/sbin/sendmail;g' \
+        `find . -type f -print`
     %{l_make} %{l_mflags -O} wrapper
 
 %install
     rm -rf $RPM_BUILD_ROOT
-    %{l_shtool} mkdir -p $RPM_BUILD_ROOT%{l_prefix}
-    %{l_make} %{l_mflags} install MAKEFLAGS="W_HOME=$RPM_BUILD_ROOT%{l_prefix}"
-    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/bin \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/majordomo \
+        $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo \
+        $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/tmp \
+        $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/log \
+        $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/list
+    %{l_make} %{l_mflags} install install-wrapper \
+        W_HOME=$RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo \
+        W_MAJORDOMO_CF=$RPM_BUILD_ROOT%{l_prefix}/etc/majordomo/majordomo.cf \
+        MAN=$RPM_BUILD_ROOT%{l_prefix}/man \
+        TMPDIR=$RPM_BUILD_ROOT%{l_prefix}/var/majordomo/tmp \
+        W_USER=`%{l_shtool} echo -e %u` \
+        W_GROUP=`%{l_shtool} echo -e %g` \
+        WRAPPER_OWNER=`%{l_shtool} echo -e %u` \
+        WRAPPER_GROUP=`%{l_shtool} echo -e %g`
+    mv $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/majordomo.cf \
+       $RPM_BUILD_ROOT%{l_prefix}/etc/majordomo/
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/sample.cf
+    mv $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/archive2.pl \
+       $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/archive
+    mv $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/wrapper \
+       $RPM_BUILD_ROOT%{l_prefix}/bin/majordomo-wrapper
+    mv $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/bin/approve \
+       $RPM_BUILD_ROOT%{l_prefix}/bin/majordomo-approve
+    mv $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/bin/bounce \
+       $RPM_BUILD_ROOT%{l_prefix}/bin/majordomo-bounce
+    mv $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/bin/medit \
+       $RPM_BUILD_ROOT%{l_prefix}/bin/majordomo-medit
+    for man in bounce-remind digest approve bounce resend; do
+        mv $RPM_BUILD_ROOT%{l_prefix}/man/man1/$man.1 \
+           $RPM_BUILD_ROOT%{l_prefix}/man/man1/majordomo-$man.1
+    done
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/bin
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/majordomo/Tools
+    %{l_shtool} install -c -m 600 \
+        %{SOURCE users.config} \
+        $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/list/
+    echo "User Support Mailing List <users@example.com>" >users.info
+    %{l_shtool} install -c -m 600 \
+        users.info $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/list/users.info
+    %{l_shtool} install -c -m 600 \
+        /dev/null $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/list/users.aliases
+    %{l_shtool} install -c -m 600 \
+        /dev/null $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/list/users.archive
+    %{l_shtool} install -c -m 600 \
+        /dev/null $RPM_BUILD_ROOT%{l_prefix}/var/majordomo/list/users
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%attr(4755,%{l_susr},%{l_rgrp}) %{l_prefix}/bin/majordomo-wrapper' \
+        '%config %{l_prefix}/etc/majordomo/majordomo.cf' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/majordomo/list' \
+        '%config %attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/majordomo/list/*' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/majordomo/log' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/majordomo/tmp'
 
 %files -f files
 
 %clean
     rm -rf $RPM_BUILD_ROOT
 
+%post
+    #   add hook into MTA configuration
+    if [ ".$1" = .1 ]; then
+        aliases_file=`$RPM_INSTALL_PREFIX/etc/rc --query mta_aliases_file`
+        update_command=`$RPM_INSTALL_PREFIX/etc/rc --query mta_aliases_update`
+        if [ ".$aliases_file" != . ]; then
+            ( echo "#    Majordomo Common Interface"
+              echo "majordomo:             \"|$RPM_INSTALL_PREFIX/bin/majordomo-wrapper majordomo\""
+              echo "majordomo-master:      nobody"
+              echo "owner-majordomo:       majordomo-master"
+              echo "owner-owner:           majordomo-master"
+              echo ""
+              echo "#    Majordomo Mailing List"
+              echo "users:                 \"|$RPM_INSTALL_PREFIX/bin/majordomo-wrapper resend -l users -h example.com users-L\""
+              echo "users-L:               :include:$RPM_INSTALL_PREFIX/var/majordomo/list/users,"
+              echo "                       \"|$RPM_INSTALL_PREFIX/bin/majordomo-wrapper archive -a -f $RPM_INSTALL_PREFIX/var/majordomo/list/users.archive\""
+              echo "users-request:         \"|$RPM_INSTALL_PREFIX/bin/majordomo-wrapper request-answer users\""
+              echo "users-approval:        nobody"
+              echo "owner-users:           nobody"
+            ) |\
+            $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
+                -a -i "$RPM_INSTALL_PREFIX:majordomo" $aliases_file
+        fi
+        if [ ".$update_command" != . ]; then
+            eval $update_command
+        fi
+    fi
+
+%postun
+    #   remove hook from MTA configuration
+    if [ ".$1" = .0 ]; then
+        aliases_file=`$RPM_INSTALL_PREFIX/etc/rc --query mta_aliases_file`
+        update_command=`$RPM_INSTALL_PREFIX/etc/rc --query mta_aliases_update`
+        if [ ".$aliases_file" != . ]; then
+            $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
+                -r -i "$RPM_INSTALL_PREFIX:majordomo" $aliases_file
+        fi
+        if [ ".$update_command" != . ]; then
+            eval $update_command
+        fi
+    fi
+

+ 391 - 0
majordomo/users.config

@@ -0,0 +1,391 @@
+# The configuration file for a majordomo mailing list.
+# Comments start with the first # on a line, and continue to the end
+# of the line. There is no way to escape the # character. The file
+# uses either a key = value for simple (i.e. a single) values, or uses
+# a here document
+#     key << END 
+#     value 1
+#     value 2
+#     [ more values 1 per line]
+#     END 
+# for installing multiple values in array types. Note that the here
+# document delimiter (END in the example above) must be the same at the end
+# of the list of entries as it is after the << characters.
+# Within a here document, the # sign is NOT a comment character.
+# A blank line is allowed only as the last line in the here document.
+#
+# The values can have multiple forms:
+#
+#	absolute_dir -- A root anchored (i.e begins with a /) directory 
+#	absolute_file -- A root anchored (i.e begins with a /) file 
+#	bool -- choose from: yes, no, y, n
+#	enum -- One of a list of possible values
+#	integer -- an integer (string made up of the digits 0-9,
+#		   no decimal point)
+#	float -- a floating point number with decimal point.
+#	regexp -- A perl style regular expression with
+# 		  leading and trailing /'s.
+#	restrict_post -- a series of space or : separated file names in which
+#                        to look up the senders address
+#	            (restrict-post should go away to be replaced by an
+#		     array of files)
+#	string -- any text up until a \n stripped of
+#		  leading and trailing whitespace
+#	word -- any text with no embedded whitespace
+#
+# A blank value is also accepted, and will undefine the corresponding keyword.
+# The character Control-A may not be used in the file.
+#
+# A trailing _array on any of the above types means that that keyword
+# will allow more than one value.
+#
+# Within a here document for a string_array, the '-' sign takes on a special
+# significance.
+#
+#     To embed a blank line in the here document, put a '-' as the first
+#       and ONLY character on the line.
+#
+#     To preserve whitespace at the beginning of a line, put a - on the
+#       line before the whitespace to be preserved
+#
+#     To put a literal '-' at the beginning of a line, double it.
+#
+#
+# The default if the keyword is not supplied is given in ()'s while the 
+# type of value is given in [], the subsystem the keyword is used in is
+# listed in <>'s. (undef) as default value means that the keyword is not
+# defined or used.
+
+	# admin_passwd         [word] (users.admin) <majordomo>
+	# The password for handling administrative tasks on the list.
+admin_passwd        =   users.admin
+
+	# administrivia        [bool] (yes) <resend>
+	# Look for administrative requests (e.g. subscribe/unsubscribe) and
+	# forward them to the list maintainer instead of the list.
+administrivia       =   yes
+
+	# advertise            [regexp_array] (undef) <majordomo>
+	# If the requestor email address matches one of these regexps, then
+	# the list will be listed in the output of a lists command. Failure
+	# to match any regexp excludes the list from the output. The
+	# regexps under noadvertise override these regexps.
+advertise           <<  END
+
+END
+
+	# announcements        [bool] (yes) <majordomo>
+	# If set to yes, comings and goings to the list will be sent to the
+	# list owner. These SUBSCRIBE/UNSUBSCRIBE event announcements are
+	# informational only (no action is required), although it is highly
+	# recommended that they be monitored to watch for list abuse.
+announcements       =   yes
+
+	# approve_passwd       [word] (users.pass) <resend>
+	# Password to be used in the approved header to allow posting to
+	# moderated list, or to bypass resend checks.
+approve_passwd      =   users.pass
+
+	# archive_dir          [absolute_dir] (undef) <majordomo>
+	# The directory where the mailing list archive is kept. This item
+	# does not currently work. Leave it blank.
+archive_dir         =
+
+	# comments             [string_array] (undef) <config>
+	# Comment string that will be retained across config file rewrites.
+comments            <<  END
+
+END
+
+	# date_info            [bool] (yes) <majordomo>
+	# Put the last updated date for the info file at the top of the
+	# info file rather than having it appended with an info command.
+	# This is useful if the file is being looked at by some means other
+	# than majordomo (e.g. finger).
+date_info           =   yes
+
+	# date_intro           [bool] (yes) <majordomo>
+	# Put the last updated date for the intro file at the top of the
+	# intro file rather than having it appended with an intro command.
+	# This is useful if the file is being looked at by some means other
+	# than majordomo (e.g. finger).
+date_intro          =   yes
+
+	# debug                [bool] (no) <resend>
+	# Don't actually forward message, just go though the motions.
+debug               =   no
+
+	# description          [string] (undef) <majordomo>
+	# Used as description for mailing list when replying to the lists
+	# command. There is no quoting mechanism, and there is only room
+	# for 50 or so characters.
+description         =	User Support Mailing List
+
+	# digest_archive       [absolute_dir] (undef) <digest>
+	# The directory where the digest archive is kept. This item does
+	# not currently work. Leave it blank.
+digest_archive      =
+
+	# digest_issue         [integer] (1) <digest>
+	# The issue number of the next issue
+digest_issue        =   1
+
+	# digest_maxdays       [integer] (undef) <digest>
+	# automatically generate a new digest when the age of the oldest
+	# article in the queue exceeds this number of days.
+digest_maxdays      =
+
+	# digest_maxlines      [integer] (undef) <digest>
+	# automatically generate a new digest when the size of the digest
+	# exceeds this number of lines.
+digest_maxlines     =
+
+	# digest_name          [string] (users) <digest>
+	# The subject line for the digest. This string has the volume  and
+	# issue appended to it.
+digest_name         =   users
+
+	# digest_rm_footer     [word] (undef) <digest>
+	# The value is the name of the list that applies the header and
+	# footers to the messages that are received by digest. This allows
+	# the list supplied headers and footers to be stripped before the
+	# messages are included in the digest. This keyword is currently
+	# non operative.
+digest_rm_footer    =
+
+	# digest_rm_fronter    [word] (undef) <digest>
+	# Works just like digest_rm_footer, except it removes the front
+	# material. Just like digest_rm_footer, it is also non-operative.
+digest_rm_fronter   =
+
+	# digest_volume        [integer] (1) <digest>
+	# The current volume number
+digest_volume       =   1
+
+	# digest_work_dir      [absolute_dir] (undef) <digest>
+	# The directory used as scratch space for digest. Don't  change
+	# this unless you know what you are doing
+digest_work_dir     =
+
+	# get_access           [enum] (list) <majordomo> /open;closed;list/
+	# One of three values: open, list, closed. Open allows anyone
+	# access to this command and closed completely disables the command
+	# for everyone. List allows only list members access, or if
+	# restrict_post is defined, only the addresses in those files are
+	# allowed access.
+get_access          =   open
+
+	# index_access         [enum] (open) <majordomo> /open;closed;list/
+	# One of three values: open, list, closed. Open allows anyone
+	# access to this command and closed completely disables the command
+	# for everyone. List allows only list members access, or if
+	# restrict_post is defined, only the addresses in those files are
+	# allowed access.
+index_access        =   open
+
+	# info_access          [enum] (open) <majordomo> /open;closed;list/
+	# One of three values: open, list, closed. Open allows anyone
+	# access to this command and closed completely disables the command
+	# for everyone. List allows only list members access, or if
+	# restrict_post is defined, only the addresses in those files are
+	# allowed access.
+info_access         =   open
+
+	# intro_access         [enum] (list) <majordomo> /open;closed;list/
+	# One of three values: open, list, closed. Open allows anyone
+	# access to this command and closed completely disables the command
+	# for everyone. List allows only list members access, or if
+	# restrict_post is defined, only the addresses in those files are
+	# allowed access.
+intro_access        =   list
+
+	# maxlength            [integer] (40000) <resend,digest>
+	# The maximum size of an unapproved message in characters. When
+	# used with digest, a new digest will be automatically generated if
+	# the size of the digest exceeds this number of characters.
+maxlength           =   50000
+
+	# message_footer       [string_array] (undef) <resend,digest>
+	# Text to be appended at the end of all messages posted to the
+	# list. The text is expanded before being used. The following
+	# expansion tokens are defined: $LIST - the name of the current
+	# list, $SENDER - the sender as taken from the from line, $VERSION,
+	# the version of majordomo. If used in a digest, no expansion
+	# tokens are provided
+message_footer      <<  END
+______________________________________________________________________
+User Support Mailing List                            users@example.com
+Automated List Manager (Majordomo)           users-request@example.com
+END
+
+	# message_fronter      [string_array] (undef) <resend,digest>
+	# Text to be prepended to the beginning of all messages posted to
+	# the list. The text is expanded before being used. The following
+	# expansion tokens are defined: $LIST - the name of the current
+	# list, $SENDER - the sender as taken from the from line, $VERSION,
+	# the version of majordomo. If used in a digest, only the expansion
+	# token _SUBJECTS_ is available, and it expands to the list of
+	# message subjects in the digest
+message_fronter     <<  END
+
+END
+
+	# message_headers      [string_array] (undef) <resend,digest>
+	# These headers will be appended to the headers of the posted
+	# message. The text is expanded before being used. The following
+	# expansion tokens are defined: $LIST - the name of the current
+	# list, $SENDER - the sender as taken from the from line, $VERSION,
+	# the version of majordomo.
+message_headers     <<  END
+X-Sender: $SENDER
+X-List-Name: $LIST
+List-Server: Majordomo [version $VERSION]
+List-Owner: <mailto:postmaster@example.com>
+List-Post: <mailto:users@example.com>
+List-Help: <mailto:majordomo@example.com?body=help>
+List-Subscribe: <mailto:majordomo@example.com?body=subscribe%20users>
+List-Unsubscribe: <mailto:majordomo@example.com?body=unsubscribe%20users>
+END
+
+	# moderate             [bool] (no) <resend>
+	# If yes, all postings to the list  must be approved by the
+	# moderator.
+moderate            =   no
+
+	# moderator            [word] (undef) <resend>
+	# Send bounces to moderator instead of owner-<listname>
+moderator           =
+
+	# mungedomain          [bool] (no) <majordomo>
+	# If set to yes, a different method is used to determine a matching
+	# address.  When set to yes, addresses of the form user@dom.ain.com
+	# are considered equivalent to addresses of the form user@ain.com.
+	# This allows a user to subscribe to a list using the domain
+	# address rather than the address assigned to a particular machine
+	# in the domain. This keyword affects the interpretation of
+	# addresses for subscribe, unsubscribe, and all private options.
+mungedomain         =   no
+
+	# noadvertise          [regexp_array] (undef) <majordomo>
+	# If the requestor name matches one of these regexps, then the list
+	# will not be listed in the output of a lists command. Noadvertise
+	# overrides advertise.
+noadvertise         <<  END
+
+END
+
+	# precedence           [word] (bulk) <resend,digest>
+	# Put a precedence header with value <value> into the outgoing
+	# message.
+precedence          =   bulk
+
+	# purge_received       [bool] (no) <resend>
+	# Remove all received lines before resending the message.
+purge_received      =   no
+
+	# reply_to             [word] () <resend,digest>
+	# Put a reply-to header with value <value> into the outgoing
+	# message. If the token $SENDER is used, then the address of the
+	# sender is used as the value of the reply-to header. This is the
+	# value of the reply-to header for digest lists.
+reply_to            =	users@example.com
+
+	# resend_host          [word] (undef) <resend>
+	# The host name that is appended to all address strings specified
+	# for resend.
+resend_host         =
+
+	# restrict_post        [restrict_post] (undef) <resend>
+	# If defined, only addresses listed in these files (colon or space
+	# separated) can post to the mailing list. By default, these files
+	# are relative to the lists directory. These files are also checked
+	# when get_access, index_access, info_access, intro_access,
+	# which_access, or who_access is set to 'list'. This is less useful
+	# than it seems it should be since there is no way to create these
+	# files if you do not have access to the machine running resend.
+	# This mechanism will be replaced in a future version of
+	# majordomo/resend.
+restrict_post       =   users users.aliases
+
+	# sender               [word] (owner-sw-nps) <majordomo,resend,digest>
+	# The envelope and sender address for the resent mail. This string
+	# has "@" and the value of resend_host appended to it to make a
+	# complete address. For majordomo, it provides the sender address
+	# for the welcome mail message generated as part of the subscribe
+	# command.
+sender              =   owner-users
+
+	# strip                [bool] (yes) <majordomo>
+	# When adding address to the list, strip off all comments etc, and
+	# put just the raw address in the list file.  In addition to the
+	# keyword, if the file <listname>.strip exists, it is the same as
+	# specifying a yes value. That yes value is overridden by the value
+	# of this keyword.
+strip               =   yes
+
+	# subject_prefix       [word] (undef) <resend>
+	# This word will be prefixed to the subject line, if it is not
+	# already in the subject. The text is expanded before being used.
+	# The following expansion tokens are defined: $LIST - the name of
+	# the current list, $SENDER - the sender as taken from the from
+	# line, $VERSION, the version of majordomo.
+subject_prefix      =
+
+	# subscribe_policy     [enum] (open+confirm) <majordomo> /open;closed
+	# One of three values: open, closed, auto; plus an optional
+	# modifier: '+confirm'.  Open allows people to subscribe themselves
+	# to the list. Auto allows anybody to subscribe anybody to the list
+	# without maintainer approval. Closed requires maintainer approval
+	# for all subscribe requests to the list.  Adding '+confirm', ie,
+	# 'open+confirm', will cause majordomo to send a reply back to the
+	# subscriber which includes a authentication number which must be
+	# sent back in with another subscribe command.
+subscribe_policy    =   open+confirm
+
+	# taboo_body           [regexp_array] (undef) <resend>
+	# If any line of the body matches one of these regexps, then the
+	# message will be bounced for review.
+taboo_body          <<  END
+
+END
+
+	# taboo_headers        [regexp_array] (undef) <resend>
+	# If any of the headers matches one of these regexps, then the
+	# message will be bounced for review.
+taboo_headers       <<  END
+
+END
+
+	# unsubscribe_policy   [enum] (open) <majordomo> /open;closed;auto/
+	# One of three values: open, closed, auto.  Open allows people to
+	# unsubscribe themselves from the list. Auto allows anybody to
+	# unsubscribe anybody to the list without maintainer approval. The
+	# existence of the file <listname>.auto is the same as specifying
+	# the value auto.  Closed requires maintainer approval for all
+	# unsubscribe requests to the list. In addition to the keyword, if
+	# the file <listname>.closed exists, it is the same as specifying
+	# the value closed. The value of this keyword overrides the value
+	# supplied by any existent files.
+unsubscribe_policy  =   open
+
+	# welcome              [bool] (yes) <majordomo>
+	# If set to yes, a welcome message (and optional 'intro' file) will
+	# be sent to the newly subscribed user.
+welcome             =   yes
+
+	# which_access         [enum] (open) <majordomo> /open;closed;list/
+	# One of three values: open, list, closed. Open allows anyone
+	# access to this command and closed completely disables the command
+	# for everyone. List allows only list members access, or if
+	# restrict_post is defined, only the addresses in those files are
+	# allowed access.
+which_access        =   closed
+
+	# who_access           [enum] (open) <majordomo> /open;closed;list/
+	# One of three values: open, list, closed. Open allows anyone
+	# access to this command and closed completely disables the command
+	# for everyone. List allows only list members access, or if
+	# restrict_post is defined, only the addresses in those files are
+	# allowed access.
+who_access          =   closed
+