diff options
author | Chris Rees <crees@FreeBSD.org> | 2011-06-15 17:06:18 +0000 |
---|---|---|
committer | Chris Rees <crees@FreeBSD.org> | 2011-06-15 17:06:18 +0000 |
commit | 9435d28edb199ae5c7c8c02b2d5160bc81207d85 (patch) | |
tree | c4eec99fdef54f6cf0d70f5c7551d077400525fd /mail/mailman | |
parent | - add an option (off by default) to build and install the VTK binding classes (diff) |
- Revert previous USERS fix until reworked and tested
- Revert MAIL_GROUP change for Postfix
- Reset maintainership
Approved by: tabthorpe (co-mentor), wxs (maintainer)
Notes
Notes:
svn path=/head/; revision=275631
Diffstat (limited to 'mail/mailman')
-rw-r--r-- | mail/mailman/Makefile | 52 | ||||
-rw-r--r-- | mail/mailman/pkg-deinstall | 8 | ||||
-rw-r--r-- | mail/mailman/pkg-install | 42 | ||||
-rw-r--r-- | mail/mailman/pkg-plist | 1 |
4 files changed, 77 insertions, 26 deletions
diff --git a/mail/mailman/Makefile b/mail/mailman/Makefile index ff9d8b172c28..7dda1427d6c5 100644 --- a/mail/mailman/Makefile +++ b/mail/mailman/Makefile @@ -7,7 +7,7 @@ PORTNAME= mailman DISTVERSION= 2.1.14 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES?= mail MASTER_SITES= ${MASTER_SITE_GNU} \ SF/${PORTNAME}/Mailman%202.1%20%28stable%29/${PORTVERSION} @@ -15,7 +15,7 @@ MASTER_SITE_SUBDIR= ${PORTNAME} EXTRACT_SUFX= .tgz DIST_SUBDIR= mailman -MAINTAINER?= wxs@FreeBSD.org +MAINTAINER?= ports@FreeBSD.org COMMENT?= A mailing list manager (MLM) with a user-friendly web front-end OPTIONS= SENDMAIL "for use with sendmail" off \ @@ -27,15 +27,13 @@ OPTIONS= SENDMAIL "for use with sendmail" off \ HTDIG "htdig integration patches" off \ NAMAZU2 "make private archives searchable with namazu2" off -USE_AUTOTOOLS= autoconf -GNU_CONFIGURE_PREFIX= ${MAILMANDIR} +HAS_CONFIGURE= yes USE_PYTHON= yes MAKE_JOBS_SAFE= yes -CONFIGURE_ARGS+=--with-python=${PYTHON_CMD} \ +CONFIGURE_ARGS+= --prefix=${MAILMANDIR} --with-python=${PYTHON_CMD} \ --with-username=${MM_USERNAME} \ --with-groupname=${MM_GROUPNAME} \ - --with-mail-gid=${MAIL_GID} --with-cgi-gid=${CGI_GID} \ - --with-permcheck=no + --with-mail-gid=${MAIL_GID} --with-cgi-gid=${CGI_GID} SUB_FILES= pkg-message SUB_LIST+= MAILMANDIR=${MAILMANDIR} USE_RC_SUBR= mailman @@ -53,9 +51,6 @@ IMGDIR?= www/icons # # End of user-configurable variables. -USERS= ${MM_USERNAME} -GROUPS= ${MM_GROUPNAME} - MAILMANDIR= ${PREFIX}/${MM_DIR} PKGINSTALL= ${WRKDIR}/pkg-install PKGDEINSTALL= ${WRKDIR}/pkg-deinstall @@ -74,7 +69,7 @@ IMGFILES= PythonPowered.png mailman.jpg mm-icon.png .if defined(WITH_SENDMAIL) .if defined(WITH_EXIM3) || defined(WITH_EXIM4) || defined(WITH_POSTFIX) || \ defined(WITH_COURIER) -IGNORE= can only have one MTA selected to integrate with +BROKEN= choose only one MTA integration .endif MAIL_GID?= mailnull .endif @@ -82,7 +77,7 @@ MAIL_GID?= mailnull .if defined(WITH_EXIM3) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM4) || defined(WITH_POSTFIX) || \ defined(WITH_COURIER) -IGNORE= can only have one MTA selected to integrate with +BROKEN= choose only one MTA integration .endif MAIL_GID?= nobody .endif @@ -90,7 +85,7 @@ MAIL_GID?= nobody .if defined(WITH_EXIM4) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM3) || defined(WITH_POSTFIX) || \ defined(WITH_COURIER) -IGNORE= can only have one MTA selected to integrate with +BROKEN= choose only one MTA integration .endif MAIL_GID?= mail .endif @@ -98,16 +93,16 @@ MAIL_GID?= mail .if defined(WITH_POSTFIX) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM3) || defined(WITH_EXIM4) || \ defined(WITH_COURIER) -IGNORE= can only have one MTA selected to integrate with +BROKEN= choose only one MTA integration .endif -MAIL_GID?= nobody +MAIL_GID?= mailman EXTRA_PATCHES+= ${FILESDIR}/postfix-verp.diff .endif .if defined(WITH_COURIER) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM3) || defined(WITH_EXIM4) || \ defined(WITH_POSTFIX) -IGNORE= can only have one MTA selected to integrate with +BROKEN= choose only one MTA integration .endif MAIL_GID?= courier .endif @@ -154,18 +149,29 @@ pre-fetch: post-patch: @${REINPLACE_CMD} -e 's#%%LOCALBASE%%#${LOCALBASE}#g' \ ${WRKSRC}/Mailman/Defaults.py.in -# Disable username check in configure -- we promise to make the users! - @${REINPLACE_CMD} \ - -e 's#^MM_FIND_\([^_]*\)_NAME.*#MAILMAN_\1=$${\1NAME}#' \ - ${WRKSRC}/configure.in + +pre-configure:: +# Mailman's configure script needs the "mailman" user/group to exist, so +# $PKGINSTALL has to be patched before the do-configure target executes. @${SED} \ - -e 's#%%USER%%#${MM_USERNAME}#g' \ - -e 's#%%MAILMANDIR%%#${MAILMANDIR}#g' \ - ${MASTERDIR}/pkg-install > ${PKGINSTALL} + -e 's#%%USER%%#${MM_USERNAME}#g' -e 's#%%UID%%#${MM_USERID}#g' \ + -e 's#%%GROUP%%#${MM_GROUPNAME}#g' -e 's#%%GID%%#${MM_GROUPID}#g' \ + -e 's#%%MAILMANDIR%%#${MAILMANDIR}#g' ${MASTERDIR}/pkg-install > \ + ${PKGINSTALL} + @${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL + +post-configure: @${SED} \ -e 's#%%USER%%#${MM_USERNAME}#g' -e 's#%%GROUP%%#${MM_GROUPNAME}#g' \ -e 's#%%PREFIX%%#${PREFIX}#g' -e 's#%%MAILMANDIR%%#${MAILMANDIR}#g' \ ${MASTERDIR}/pkg-deinstall > ${PKGDEINSTALL} +# port system auditors complain if dir is created prior to install +# but configure demands it be there. we delete it now if empty, +# so it will be re-created. For existing installs, this is ignored + @- ${RMDIR} ${MAILMANDIR} 2> /dev/null + +pre-install: + @${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL post-install: @${RM} -f ${MAILMANDIR}/pythonlib/*.egg-info diff --git a/mail/mailman/pkg-deinstall b/mail/mailman/pkg-deinstall index 48ad970113fc..05972ee6ebc5 100644 --- a/mail/mailman/pkg-deinstall +++ b/mail/mailman/pkg-deinstall @@ -23,6 +23,10 @@ DEINSTALL) echo "---> /usr/bin/crontab -u "%%USER%%" -r" fi + echo "---> Stopping Mailman's qrunner daemon" + %%PREFIX%%/etc/rc.d/mailman.sh stop >/dev/null 2>&1 + /bin/sleep 2 + echo "---> Preserving the \"last_mailman_version\" file" /bin/cp -f %%MAILMANDIR%%/data/last_mailman_version /var/tmp/ @@ -47,6 +51,10 @@ POST-DEINSTALL) /bin/mv -f /var/tmp/last_mailman_version %%MAILMANDIR%%/data/ fi + echo '---> - If you are not using Mailman any more, you should manually delete' + echo '---> - the "%%USER%%" user and "%%GROUP%%" group.' + echo '---> - You may delete them with "pw groupdel %%GROUP%%; pw userdel %%USER%%".' + ;; esac diff --git a/mail/mailman/pkg-install b/mail/mailman/pkg-install index 11add7d3e514..2441fa532116 100644 --- a/mail/mailman/pkg-install +++ b/mail/mailman/pkg-install @@ -6,11 +6,49 @@ PATH=/bin:/usr/bin:/usr/sbin case $2 in +PRE-INSTALL) + echo "---> Starting install script:" + + if [ -z "%%MAILMANDIR%%" -o \ + -z "%%USER%%" -o -z "%%GROUP%%" -o \ + -z "%%UID%%" -o -z "%%GID%%" ]; then + echo "ERROR: A required pragma was empty" + exit 1 + fi + + # Create group if required + if pw group show "%%GROUP%%" >/dev/null 2>&1; then + echo "---> Using existing group \"%%GROUP%%\"" + else + echo "---> Adding group \"%%GROUP%%\" (%%GID%%)" + /usr/sbin/pw groupadd %%GROUP%% -g %%GID%% || exit 1 + fi + + # Create user if required + if pw user show "%%USER%%" >/dev/null 2>&1; then + echo "---> Using existing user \"%%USER%%\"" + else + echo "---> Adding user \"%%USER%%\" (%%UID%%)" + pw useradd "%%USER%%" -u "%%UID%%" -g "%%GROUP%%" -h - \ + -d "%%MAILMANDIR%%" -s "/sbin/nologin" -c "Mailman Owner" || exit 1 + fi + + # Create home directory if required + if [ -d "%%MAILMANDIR%%" ]; then + echo "---> Using existing Mailman directory (%%MAILMANDIR%%)" + echo " (There may be existing active mailing lists - this installation will" + echo " attempt to preserve them.)" + else + echo "---> Creating Mailman directory (%%MAILMANDIR%%)" + (umask 002 && /bin/mkdir -p "%%MAILMANDIR%%") || exit 1 + /usr/sbin/chown -R "%%USER%%:%%GROUP%%" "%%MAILMANDIR%%" || exit 1 + /bin/chmod g+s "%%MAILMANDIR%%" || exit 1 + fi + ;; + POST-INSTALL) echo "---> Starting post-install script:" - /bin/chmod g+s "%%MAILMANDIR%%" || exit 1 - echo "---> Checking crontab(5) file for user \"%%USER%%\"" if [ -e /var/cron/allow ]; then diff --git a/mail/mailman/pkg-plist b/mail/mailman/pkg-plist index cd9b880e03ff..71e6af4cac62 100644 --- a/mail/mailman/pkg-plist +++ b/mail/mailman/pkg-plist @@ -1,5 +1,4 @@ @comment $FreeBSD$ -@stopdaemon mailman @unexec if cmp -s %D/%%MMDIR%%/Mailman/mm_cfg.py %D/%%MMDIR%%/Mailman/mm_cfg.py.dist; then rm -f %D/%%MMDIR%%/Mailman/mm_cfg.py; fi @unexec rm -f %D/%%MMDIR%%/Mailman/mm_cfg.pyc @exec mkdir -p %D/%%MMDIR%%/archives |