aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mailman
diff options
context:
space:
mode:
authorwjv <wjv@FreeBSD.org>2002-02-19 21:58:55 +0800
committerwjv <wjv@FreeBSD.org>2002-02-19 21:58:55 +0800
commit5798758915a9ad9ed8239f1952a31e1401ef8c9c (patch)
tree734c0c4e5ec9720dc1b7f27171f10f7c158ba161 /mail/mailman
parent29823a820001f5fc99060d034fed72ac3366764b (diff)
downloadfreebsd-ports-gnome-5798758915a9ad9ed8239f1952a31e1401ef8c9c.tar.gz
freebsd-ports-gnome-5798758915a9ad9ed8239f1952a31e1401ef8c9c.tar.zst
freebsd-ports-gnome-5798758915a9ad9ed8239f1952a31e1401ef8c9c.zip
- Just another checkpoint commit in the cleanup of the Mailman port.
- Add a (non-standard) $PKGOPTS file (currently $FILESDIR/pkg-opts) to document the user configurable build time variables supported by the port. Add a target "options" to Makefile to display build time options in a human readable format. Remove reams of comments from Makefile - superseded by $PKGOPTS. - Clean up the killing of running qrunner processes in $PKGDEINSTALL. - Bump the $PORTREVISION. (Yes, again.)
Diffstat (limited to 'mail/mailman')
-rw-r--r--mail/mailman/Makefile52
-rw-r--r--mail/mailman/files/pkg-opts27
-rw-r--r--mail/mailman/pkg-deinstall18
-rw-r--r--mail/mailman/pkg-descr32
4 files changed, 76 insertions, 53 deletions
diff --git a/mail/mailman/Makefile b/mail/mailman/Makefile
index c85c9bf429a4..68ffd9dc80d2 100644
--- a/mail/mailman/Makefile
+++ b/mail/mailman/Makefile
@@ -7,7 +7,7 @@
PORTNAME= mailman
PORTVERSION= 2.0.8
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= mail
MASTER_SITES= http://www.list.org/ \
${MASTER_SITE_GNU} \
@@ -24,38 +24,24 @@ CONFIGURE_ARGS= --prefix=${MAILMANDIR} \
--with-python=${PYTHON_CMD} \
--with-mail-gid=${MAIL_GID} --with-cgi-gid=${CGI_GID}
USE_PYTHON= yes
+PKGOPTS= ${FILESDIR}/pkg-opts
.include <bsd.port.pre.mk>
-# These variables may be tweaked if required. However, it is recommended
-# that the USERID and GROUPID not be changed.
+# The Mailman port supports a number of variables that may be tweaked at
+# build time. Getting the values of some of them right is crucial!
+# Perform a "make options" to see more information on these variables.
#
USERNAME?= mailman
USERID?= 91
GROUPNAME?= ${USERNAME}
GROUPID?= ${USERID}
MMDIR?= mailman
-
-# Getting the value of MAIL_GID right is crucial to getting Mailman to work
-# with your MTA. By default, this port works with sendmail. If you're using
-# an alternative MTA installed from ports, you should set MAIL_GID at build
-# time according to the following table. (Please contact this port's
-# maintainer if you can fill in the blanks, or to report mistakes!)
-#
-# MTA | MAIL_GID | Submitted by
-# Exim | 6 | <wjv>
-# Postfix | 65534 | <shamrock@cypherpunks.to>
-# Qmail | ??? |
-#
.if ${OSVERSION} >= 450000
MAIL_GID?= 26
.else
MAIL_GID?= 1
.endif
-
-# By default, this port works with the current port of Apache. If your WWW
-# server executes CGI scripts under a different GID, you'll have to set this
-# at build time.
CGI_GID?= 80
MAILMANDIR= ${PREFIX}/${MMDIR}
@@ -64,11 +50,25 @@ PKGINSTALL= ${WRKDIR}/pkg-install
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
PLIST_SUB= MMDIR=${MMDIR} MMGRP=${GROUPNAME}
+options:
+ @ ${ECHO_MSG} "===> Build options for ${PKGNAME}:"
+ @ ${PERL} -ne '/^#/ || /^\s/ && print || \
+ print sprintf "* %s [%s]\n %s", split(/\|/)' ${PKGOPTS}
+
+post-extract:
+.if !defined(BATCH)
+ @ ${TEST} -r ${PKGOPTS} && \
+ (${ECHO_MSG} '-------------------------------------------------------------------------'; \
+ ${ECHO_MSG} 'Perform a "make options" to see a list of available installation options.'; \
+ ${ECHO_MSG} '-------------------------------------------------------------------------')
+.endif
+
pre-configure:
@ ${SED} -e 's#%%USER%%#${USERNAME}#g' -e 's#%%UID%%#${USERID}#g' \
-e 's#%%GROUP%%#${GROUPNAME}#g' -e 's#%%GID%%#${GROUPID}#g' \
-e 's#%%MAILMANDIR%%#${MAILMANDIR}#g' pkg-install > \
${PKGINSTALL}
+# Mailman's configure script needs the "mailman" user/group to exist.
@ ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
post-configure:
@@ -79,29 +79,21 @@ post-configure:
@ ${SED} -e 's#%%MAILMANDIR%%#${MAILMANDIR}#g' \
-e 's#%%DOCSDIR%%#${DOCSDIR}#g' pkg-message > ${PKGMESSAGE}
-pre-build:
-.if !defined(BATCH)
- @ ${ECHO_MSG} "-------------------------------------------------------"
- @ ${ECHO_MSG} " If you're using an alternative MTA (not Sendmail)"
- @ ${ECHO_MSG} " OR an older version of Sendmail, you may have to"
- @ ${ECHO_MSG} " set MAIL_GID to the gid under which your MTA is"
- @ ${ECHO_MSG} " executing. See the comments in the port's"
- @ ${ECHO_MSG} " Makefile for further information."
- @ ${ECHO_MSG} "-------------------------------------------------------"
-.endif
+pre-install:
+ @ ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
post-install:
.for dir in cron scripts
@ ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py ${MAILMANDIR}/${dir}
.endfor
@ ${CHGRP} -R ${GROUPNAME} ${MAILMANDIR}
- @ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.if !defined(NOPORTDOCS)
@ ${MKDIR} ${DOCSDIR}
.for docfile in BUGS FAQ INSTALL NEWS README* UPGRADING
@ ${INSTALL_DATA} ${WRKSRC}/${docfile} ${DOCSDIR}
.endfor
.endif
+ @ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.if !defined(BATCH)
@ ${CAT} ${PKGMESSAGE}
.endif
diff --git a/mail/mailman/files/pkg-opts b/mail/mailman/files/pkg-opts
new file mode 100644
index 000000000000..f2f660a6b893
--- /dev/null
+++ b/mail/mailman/files/pkg-opts
@@ -0,0 +1,27 @@
+# Variable|Default value|Short description
+# Multi-line/long description (optional).
+# Multi-line/long description lines must start with whitespace!
+#
+USERNAME|mailman|The username of the Mailman user
+USERID|92|The user ID of the Mailman user
+ It is recommended that you do not change this option.
+GROUPNAME|mailman|The group to which the Mailman user will belong
+GROUPID|92|The group ID for the Mailman user
+ It is recommended that you do not change this option.
+MMDIR|mailman|Mailman will be installed in ${PREFIX}/${MMDIR}
+MAIL_GID|26|The group id under which your MTA performs mail delivery
+ Getting the value of MAIL_GID right is crucial to getting Mailman to
+ work with your MTA. By default this port works with sendmail. If
+ you're using an alternative MTA installed from ports, you should set
+ MAIL_GID at build time according to the following table. (Please
+ contact this port's maintainer if you can fill in the blanks, or to
+ report mistakes!)
+ ----------------------------------------------
+ MTA | MAIL_GID | Submitted by
+ Exim | 6 | <wjv>
+ Postfix | 65534 | <shamrock@cypherpunks.to>
+ Qmail | ??? |
+GGI_GID|80|The group id under which your web server executes CGI scripts
+ By default, this port works with the current port of Apache. If your
+ WWW server executes CGI scripts under a different GID, you'll have to
+ set this at build time.
diff --git a/mail/mailman/pkg-deinstall b/mail/mailman/pkg-deinstall
index 2a9ce66c683d..d9aab3139e50 100644
--- a/mail/mailman/pkg-deinstall
+++ b/mail/mailman/pkg-deinstall
@@ -19,29 +19,29 @@ zero_crontab() {
u=$1
- echo -n "Zeroing Mailman user's crontab(5) file... "
+ echo -n 'Zeroing crontab(5) file belonging to user "%%USER%%"... '
crontab -u ${u} /dev/null || exit
- echo "done."
+ echo 'done.'
+ echo '(The crontab(5) will be deleted completely when user "%%USER%%" is removed.)'
}
export PATH=/bin:/usr/bin:/usr/sbin
case $2 in
-
DEINSTALL)
zero_crontab %%USER%%
- if ps -axwww | grep -q qrunner; then
- echo "Killing all running qrunning processes."
- killall qrunner
+ if ps -axwU %%USER%% | grep -q python; then
+ echo 'Killing all running processes belonging to user "%%USER%%".'
+ killall -u %%USER%% python
sleep 2
fi
;;
POST-DEINSTALL)
if [ -d %%MAILMANDIR%% ]; then
- echo "%%MAILMANDIR%% is not empty - this installation may have active lists"
- echo "- The \"%%USER%%\" user and \"%%GROUP%%\" group were therefore not deleted."
- echo "- You may delete them with \"pw userdel %%USER%%\"."
+ echo '%%MAILMANDIR%% is not empty - this installation may have active lists!'
+ echo '- The "%%USER%%" user and "%%GROUP%%" group were therefore not deleted.'
+ echo '- You may delete them with "pw userdel %%USER%%".'
else
delete_account %%USER%% %%GROUP%%
fi
diff --git a/mail/mailman/pkg-descr b/mail/mailman/pkg-descr
index b2b6e98e8bef..9f8660f22be1 100644
--- a/mail/mailman/pkg-descr
+++ b/mail/mailman/pkg-descr
@@ -1,17 +1,21 @@
-Mailman is software to help manage email discussion lists, much like Majordomo
-and Smartmail. Unlike most similar products, Mailman gives each mailing list a
-web page, and allows users to subscribe, unsubscribe, etc. over the web. Even
-the list manager can administer his or her list entirely from the web. Mailman
-also integrates most things people want to do with mailing lists, including
-archiving, mail-to-news gateways, integrated bounce handling, spam prevention,
-email-based admin commands, direct SMTP delivery (with fast bulk mailing),
-support for virtual domains, and more.
+Paraphrasing the website:
-Mailman runs on most Un*x-like systems, is compatible with most web servers and
-browsers, and most SMTP servers. Mailman requires Python version 1.5 or newer.
-Python is a free object-oriented scripting language. A few files are written in
-C for security purposes.
+ Mailman is a mailing list manager (MLM); that is, software to help manage
+ email discussion lists, much like Majordomo, LISTSERV, and the like.
+ Unlike most similar products, Mailman gives each mailing list a web page
+ and allows users to subscribe, unsubscribe, and change their preferences
+ via the web. Even a list manager can administer his or her list(s)
+ entirely via the web. Mailman integrates many common MLM features,
+ including web-based archiving (though it also has hooks for external
+ archivers), mail-to-news gateways, bounce handling, spam prevention,
+ Majordomo-style email-based list administration, direct SMTP delivery (with
+ fast bulk mailing), digest delivery, virtual domain support, and more.
-The manual is still only a set of READMEs provided in the Mailman distribution.
+Mailman is written mostly in Python (with a smattering of C where necessary
+for security purposes), and includes hooks to make it easily scriptable and
+extensible. It is compatible with most web servers and browsers, and most
+mail transfer agents (mail servers). Mailman's documentation may be found on
+its website.
-WWW: http://www.list.org/
+Author: Barry Warsaw <barry@zope.com> and the Mailman Cabal
+WWW: http://www.list.org/