aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorcrees <crees@FreeBSD.org>2011-06-22 00:00:53 +0800
committercrees <crees@FreeBSD.org>2011-06-22 00:00:53 +0800
commit0998ac898868d692a7ebacc033169fbe97abcf75 (patch)
treefc15fe00f3afd90bae61593a5dfc33256616558f /mail
parentd82551edb1fc950cf7382ee4afd137d9f96b9717 (diff)
downloadfreebsd-ports-graphics-0998ac898868d692a7ebacc033169fbe97abcf75.tar.gz
freebsd-ports-graphics-0998ac898868d692a7ebacc033169fbe97abcf75.tar.zst
freebsd-ports-graphics-0998ac898868d692a7ebacc033169fbe97abcf75.zip
Let's try this one again.
- Stop touching files outside WRKDIR before install - Use USERS and GROUPS -- this time via patch [1] - Change BROKEN to IGNORE fo incorrect OPTIONS choices - Use @stopdaemon PR: ports/157868 Submitted by: Guido Falsi <mad@madpilot.net> Approved by: rene (mentor)
Diffstat (limited to 'mail')
-rw-r--r--mail/mailman/Makefile42
-rw-r--r--mail/mailman/files/patch-configure-in70
-rw-r--r--mail/mailman/pkg-deinstall8
-rw-r--r--mail/mailman/pkg-install42
-rw-r--r--mail/mailman/pkg-plist1
5 files changed, 89 insertions, 74 deletions
diff --git a/mail/mailman/Makefile b/mail/mailman/Makefile
index 7dda1427d6c..c2ea5e1ddd2 100644
--- a/mail/mailman/Makefile
+++ b/mail/mailman/Makefile
@@ -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,7 +98,7 @@ 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
EXTRA_PATCHES+= ${FILESDIR}/postfix-verp.diff
@@ -102,7 +107,7 @@ EXTRA_PATCHES+= ${FILESDIR}/postfix-verp.diff
.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,14 @@ 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.
@${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/patch-configure-in b/mail/mailman/files/patch-configure-in
new file mode 100644
index 00000000000..e8ccfcfa511
--- /dev/null
+++ b/mail/mailman/files/patch-configure-in
@@ -0,0 +1,70 @@
+
+$FreeBSD$
+
+Mailman tests for existence of users during configure -- unfortunately
+this creates a problem; we create the users just before install.
+
+We remove the testing part.
+
+--- configure.in.bak 2010-09-20 19:18:27.000000000 +0100
++++ configure.in 2011-06-14 20:20:29.209438957 +0100
+@@ -311,28 +311,7 @@
+ # $2 == user id to check for
+ AC_SUBST($1)
+ changequote(,)
+-if test -z "$$1"
+-then
+- cat > conftest.py <<EOF
+-import grp
+-gid = ''
+-for group in "$2".split():
+- try:
+- try:
+- gname = grp.getgrgid(int(group))[0]
+- break
+- except ValueError:
+- gname = grp.getgrnam(group)[0]
+- break
+- except KeyError:
+- gname = ''
+-fp = open("conftest.out", "w")
+-fp.write("%s\n" % gname)
+-fp.close()
+-EOF
+- $PYTHON conftest.py
+- $1=`cat conftest.out`
+-fi
++$1=$2
+ changequote([, ])
+ rm -f conftest.out conftest.py])
+
+@@ -343,28 +322,7 @@
+ # $2 == user id to check for
+ AC_SUBST($1)
+ changequote(,)
+-if test -z "$$1"
+-then
+- cat > conftest.py <<EOF
+-import pwd
+-uid = ''
+-for user in "$2".split():
+- try:
+- try:
+- uname = pwd.getpwuid(int(user))[0]
+- break
+- except ValueError:
+- uname = pwd.getpwnam(user)[0]
+- break
+- except KeyError:
+- uname = ''
+-fp = open("conftest.out", "w")
+-fp.write("%s\n" % uname)
+-fp.close()
+-EOF
+- $PYTHON conftest.py
+- $1=`cat conftest.out`
+-fi
++$1=$2
+ changequote([, ])
+ rm -f conftest.out conftest.py])
+
diff --git a/mail/mailman/pkg-deinstall b/mail/mailman/pkg-deinstall
index 05972ee6ebc..48ad970113f 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 2441fa53211..11add7d3e51 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 71e6af4cac6..cd9b880e03f 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