diff options
author | Chris Rees <crees@FreeBSD.org> | 2011-06-13 19:22:25 +0000 |
---|---|---|
committer | Chris Rees <crees@FreeBSD.org> | 2011-06-13 19:22:25 +0000 |
commit | ccc31701b668a185336a7e25e897c0cb6c426f10 (patch) | |
tree | 779bd87f8d5fece3200e6414ad3320f7582c2c0e /mail/mailman | |
parent | 28fbd44e738fd7d3a27404d9dc66ca88169a2bfb (diff) | |
download | ports-ccc31701b668a185336a7e25e897c0cb6c426f10.tar.gz ports-ccc31701b668a185336a7e25e897c0cb6c426f10.zip |
- Correct GROUP when postfix OPTION is selected [1]
- Add nobody user and group to UIDs/GIDs for mail/mailman [2]
- Stop touching files outside WRKDIR before install [2]
- Use USERS and GROUPS [2]
- Change BROKEN to IGNORE for incorrect OPTIONS choices [2]
- Use @stopdaemon [2]
- Correct rc script to check for pidfile before attempting kill [2]
PR: ports/142000
Submitted by: Adriaan <ratten.adriaan@gmail.com> [1], crees [2]
Approved by: rene (mentor), wxs (maintainer)
Notes
Notes:
svn path=/head/; revision=275498
Diffstat (limited to 'mail/mailman')
-rw-r--r-- | mail/mailman/Makefile | 50 | ||||
-rw-r--r-- | mail/mailman/files/mailman.in | 4 | ||||
-rw-r--r-- | mail/mailman/pkg-deinstall | 8 | ||||
-rw-r--r-- | mail/mailman/pkg-install | 42 | ||||
-rw-r--r-- | mail/mailman/pkg-plist | 1 |
5 files changed, 28 insertions, 77 deletions
diff --git a/mail/mailman/Makefile b/mail/mailman/Makefile index 30ee78bdf614..2102306026bd 100644 --- a/mail/mailman/Makefile +++ b/mail/mailman/Makefile @@ -7,7 +7,7 @@ PORTNAME= mailman DISTVERSION= 2.1.14 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES?= mail MASTER_SITES= ${MASTER_SITE_GNU} \ SF/${PORTNAME}/Mailman%202.1%20%28stable%29/${PORTVERSION} @@ -27,13 +27,15 @@ OPTIONS= SENDMAIL "for use with sendmail" off \ HTDIG "htdig integration patches" off \ NAMAZU2 "make private archives searchable with namazu2" off -HAS_CONFIGURE= yes +USE_AUTOTOOLS= autoconf +GNU_CONFIGURE_PREFIX= ${MAILMANDIR} USE_PYTHON= yes MAKE_JOBS_SAFE= yes -CONFIGURE_ARGS+= --prefix=${MAILMANDIR} --with-python=${PYTHON_CMD} \ +CONFIGURE_ARGS+=--with-python=${PYTHON_CMD} \ --with-username=${MM_USERNAME} \ --with-groupname=${MM_GROUPNAME} \ - --with-mail-gid=${MAIL_GID} --with-cgi-gid=${CGI_GID} + --with-mail-gid=${MAIL_GID} --with-cgi-gid=${CGI_GID} \ + --with-permcheck=no SUB_FILES= pkg-message SUB_LIST+= MAILMANDIR=${MAILMANDIR} USE_RC_SUBR= mailman @@ -51,6 +53,9 @@ 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 @@ -69,7 +74,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) -BROKEN= choose only one MTA integration +IGNORE= can only have one MTA selected to integrate with .endif MAIL_GID?= mailnull .endif @@ -77,7 +82,7 @@ MAIL_GID?= mailnull .if defined(WITH_EXIM3) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM4) || defined(WITH_POSTFIX) || \ defined(WITH_COURIER) -BROKEN= choose only one MTA integration +IGNORE= can only have one MTA selected to integrate with .endif MAIL_GID?= nobody .endif @@ -85,7 +90,7 @@ MAIL_GID?= nobody .if defined(WITH_EXIM4) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM3) || defined(WITH_POSTFIX) || \ defined(WITH_COURIER) -BROKEN= choose only one MTA integration +IGNORE= can only have one MTA selected to integrate with .endif MAIL_GID?= mail .endif @@ -93,16 +98,16 @@ MAIL_GID?= mail .if defined(WITH_POSTFIX) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM3) || defined(WITH_EXIM4) || \ defined(WITH_COURIER) -BROKEN= choose only one MTA integration +IGNORE= can only have one MTA selected to integrate with .endif -MAIL_GID?= mailman +MAIL_GID?= nobody EXTRA_PATCHES+= ${FILESDIR}/postfix-verp.diff .endif .if defined(WITH_COURIER) .if defined(WITH_SENDMAIL) || defined(WITH_EXIM3) || defined(WITH_EXIM4) || \ defined(WITH_POSTFIX) -BROKEN= choose only one MTA integration +IGNORE= can only have one MTA selected to integrate with .endif MAIL_GID?= courier .endif @@ -149,29 +154,18 @@ pre-fetch: post-patch: @${REINPLACE_CMD} -e 's#%%LOCALBASE%%#${LOCALBASE}#g' \ ${WRKSRC}/Mailman/Defaults.py.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. +# Disable username check in configure -- we promise to make the users! + @${REINPLACE_CMD} \ + -e 's#^MM_FIND_\([^_]*\)_NAME.*#MAILMAN_\1=$${\1NAME}#' \ + ${WRKSRC}/configure.in @${SED} \ - -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: + -e 's#%%USER%%#${MM_USERNAME}#g' \ + -e 's#%%MAILMANDIR%%#${MAILMANDIR}#g' \ + ${MASTERDIR}/pkg-install > ${PKGINSTALL} @${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/files/mailman.in b/mail/mailman/files/mailman.in index d3f4818c0d73..b3faf9fd8faa 100644 --- a/mail/mailman/files/mailman.in +++ b/mail/mailman/files/mailman.in @@ -30,7 +30,9 @@ mailman_start() { } mailman_stop() { - %%MAILMANDIR%%/bin/mailmanctl -q stop + [ -f $pidfile ] \ + && %%MAILMANDIR%%/bin/mailmanctl -q stop \ + || echo ${name} not running? (check ${pidfile}) } run_rc_command "$1" diff --git a/mail/mailman/pkg-deinstall b/mail/mailman/pkg-deinstall index 05972ee6ebc5..48ad970113fc 100644 --- a/mail/mailman/pkg-deinstall +++ b/mail/mailman/pkg-deinstall @@ -23,10 +23,6 @@ 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/ @@ -51,10 +47,6 @@ 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 2441fa532116..11add7d3e514 100644 --- a/mail/mailman/pkg-install +++ b/mail/mailman/pkg-install @@ -6,49 +6,11 @@ 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 71e6af4cac62..cd9b880e03ff 100644 --- a/mail/mailman/pkg-plist +++ b/mail/mailman/pkg-plist @@ -1,4 +1,5 @@ @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 |