diff options
author | xtraeme <xtraeme@pkgsrc.org> | 2003-12-23 11:02:13 +0000 |
---|---|---|
committer | xtraeme <xtraeme@pkgsrc.org> | 2003-12-23 11:02:13 +0000 |
commit | ba66919f950fc68d97a5f09a481dff6914bcb5dd (patch) | |
tree | 64c2b43d0b28d595cbc5d417653d6d96a71b6192 /mail/mailman/Makefile | |
parent | 839613806ef24d5545ec27bb10ff7b00bde026f7 (diff) | |
download | pkgsrc-ba66919f950fc68d97a5f09a481dff6914bcb5dd.tar.gz |
Update to 2.1.3 from pkgsrc-wip via Todd Vierling. This also closes
PR pkg/22820.
Changes:
- Closed a cross-site scripting exploit in the create cgi script.
- Improvements in the performance of the bounce processor.
Now, instead of processing each bounce immediately (which
can cause severe lock contention), bounce events are queued.
Every 15 minutes by default, the queued bounce events are
processed en masse, on a list-per-list basis, so that each
list only needs to be locked once.
- When some or all of a message's recipients have temporary
delivery failures, the message is moved to a "retry" queue.
This queue wakes up occasionally and moves the file back to
the outgoing queue for attempted redelivery. This should
fix most observed OutgoingRunner 100% cpu consumption,
especially for bounces to local recipients when using the
Postfix MTA.
- Optional support for fsync()'ing qfile data after writing.
Under some catastrophic system failures (e.g. power lose),
it would be possible to lose messages because the data
wasn't sync'd to disk. By setting SYNC_AFTER_WRITE to True
in Mailman/Queue/Switchboard.py, you can force Mailman to
fsync() queue files after flushing them. The benefits are
debatable for most operating environments, and you must
ensure that your Python has the os.fsync() function defined
before enabling this feature (it isn't, even on all
Unix-like operating systems).
And more... please review Changelog to see a complete list of changes.
Diffstat (limited to 'mail/mailman/Makefile')
-rw-r--r-- | mail/mailman/Makefile | 162 |
1 files changed, 63 insertions, 99 deletions
diff --git a/mail/mailman/Makefile b/mail/mailman/Makefile index 2e69bb96184..9cd235bce76 100644 --- a/mail/mailman/Makefile +++ b/mail/mailman/Makefile @@ -1,8 +1,9 @@ -# $NetBSD: Makefile,v 1.7 2003/09/05 21:18:52 bouyer Exp $ +# $NetBSD: Makefile,v 1.8 2003/12/23 11:02:13 xtraeme Exp $ -DISTNAME= mailman-2.0.12 +DISTNAME= mailman-2.1.3 CATEGORIES= mail www -MASTER_SITES= ${MASTER_SITE_GNU:=mailman/} +MASTER_SITES= http://www.list.org/ \ + ${MASTER_SITE_GNU:=mailman/} EXTRACT_SUFX= .tgz MAINTAINER= bouyer@NetBSD.org @@ -16,6 +17,11 @@ PKG_SYSCONFSUBDIR?= httpd MESSAGE_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} MESSAGE_SUBST+= DOCDIR=${DOCDIR} +GNU_CONFIGURE= yes +GNU_CONFIGURE_PREFIX= ${EXECDIR} + +MAKE_FLAGS+= DIRSETGID=${TRUE} + EXECDIR= ${PREFIX}/lib/mailman MAILMAN_DATADIR?= /var/db/mailman EGDIR= ${PREFIX}/share/examples/mailman @@ -29,110 +35,68 @@ FILES_SUBST+= EXECDIR=${EXECDIR} FILES_SUBST+= MAILMAN_USER=${MAILMAN_USER} FILES_SUBST+= MAILMAN_GROUP=${MAILMAN_GROUP} FILES_SUBST+= MAILMAN_DATADIR=${MAILMAN_DATADIR} - -PKG_GROUPS= ${MAILMAN_GROUP} -PKG_USERS= ${MAILMAN_USER}:${MAILMAN_GROUP}::Mailman\\ user::${SH} - -# We have some extra steps to do at postinstall time -INSTALL_EXTRA_TMPL= files/install.local - -OWN_DIRS_PERMS= ${EXECDIR} root ${MAILMAN_GROUP} 755 - -OWN_DIRS_PERMS= ${MAILMAN_DATADIR} ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS= ${MAILMAN_DATADIR}/logs ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/archives ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/lists ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/locks ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/qfiles ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/data ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/spam ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/filters ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/archives/public ${MAILMAN_USER} ${MAILMAN_GROUP} 775 -MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/archives/private ${MAILMAN_USER} ${MAILMAN_GROUP} 775 - -CONF_FILES+= ${EGDIR}/mailman.conf ${PKG_SYSCONFDIR}/mailman.conf -CONF_FILES+= ${EXECDIR}/Mailman/mm_cfg.py.dist ${EXECDIR}/Mailman/mm_cfg.py - -NO_BIN_ON_FTP= requires compiled-in hardcoded uid/gid -NO_BIN_ON_CDROM= ${NO_BIN_ON_FTP} - -PYTHON_VERSIONS_ACCEPTED= 21 20 -PYTHON_PATCH_SCRIPTS= Mailman/Archiver/pipermail.py -PYTHON_PATCH_SCRIPTS+= Mailman/pythonlib/cgi.py -PYTHON_PATCH_SCRIPTS+= Mailman/pythonlib/smtplib.py -PYTHON_PATCH_SCRIPTS+= admin/bin/Release.py -PYTHON_PATCH_SCRIPTS+= admin/bin/faq2ht.py -PYTHON_PATCH_SCRIPTS+= admin/bin/mm2do -PYTHON_PATCH_SCRIPTS+= bin/add_members -PYTHON_PATCH_SCRIPTS+= bin/arch -PYTHON_PATCH_SCRIPTS+= bin/check_db -PYTHON_PATCH_SCRIPTS+= bin/check_perms -PYTHON_PATCH_SCRIPTS+= bin/clone_member -PYTHON_PATCH_SCRIPTS+= bin/config_list -PYTHON_PATCH_SCRIPTS+= bin/digest_arch -PYTHON_PATCH_SCRIPTS+= bin/dumpdb -PYTHON_PATCH_SCRIPTS+= bin/find_member -PYTHON_PATCH_SCRIPTS+= bin/list_lists -PYTHON_PATCH_SCRIPTS+= bin/list_members -PYTHON_PATCH_SCRIPTS+= bin/mmsitepass -PYTHON_PATCH_SCRIPTS+= bin/move_list -PYTHON_PATCH_SCRIPTS+= bin/newlist -PYTHON_PATCH_SCRIPTS+= bin/remove_members -PYTHON_PATCH_SCRIPTS+= bin/rmlist -PYTHON_PATCH_SCRIPTS+= bin/sync_members -PYTHON_PATCH_SCRIPTS+= bin/update -PYTHON_PATCH_SCRIPTS+= bin/version -PYTHON_PATCH_SCRIPTS+= bin/withlist -PYTHON_PATCH_SCRIPTS+= contrib/qmail-to-mailman.py -PYTHON_PATCH_SCRIPTS+= contrib/rotatelogs.py -PYTHON_PATCH_SCRIPTS+= contrib/securelinux_fix.py -PYTHON_PATCH_SCRIPTS+= cron/bumpdigests -PYTHON_PATCH_SCRIPTS+= cron/checkdbs -PYTHON_PATCH_SCRIPTS+= cron/gate_news -PYTHON_PATCH_SCRIPTS+= cron/mailpasswds -PYTHON_PATCH_SCRIPTS+= cron/nightly_gzip -PYTHON_PATCH_SCRIPTS+= cron/qrunner -PYTHON_PATCH_SCRIPTS+= cron/senddigests -PYTHON_PATCH_SCRIPTS+= filters/bowa-strip -PYTHON_PATCH_SCRIPTS+= misc/Cookie.py -PYTHON_PATCH_SCRIPTS+= scripts/answer_majordomo_mail -PYTHON_PATCH_SCRIPTS+= scripts/mailcmd -PYTHON_PATCH_SCRIPTS+= scripts/mailowner -PYTHON_PATCH_SCRIPTS+= scripts/owner -PYTHON_PATCH_SCRIPTS+= scripts/post -PYTHON_PATCH_SCRIPTS+= scripts/request - -MAILMAN_CONFIGURE_ARGS= --with-python=${PYTHONBIN} -MAILMAN_CONFIGURE_ARGS+= -prefix=${EXECDIR} -MAILMAN_CONFIGURE_ARGS+= --with-var-prefix=${MAILMAN_DATADIR} -MAILMAN_CONFIGURE_ARGS+= --with-username=${MAILMAN_USER} -MAILMAN_CONFIGURE_ARGS+= --with-groupname=${MAILMAN_GROUP} -MAILMAN_CONFIGURE_ARGS+= --with-mail-gid=${MAILMAN_MAILGROUP} - -# we can't do the configure things before install, because the user/group has -# to exist and this is only done after build -do-build: #nothing - -pre-install: +PLIST_SUBST+= PYVERSSUFFIX=${PYVERSSUFFIX} + +PKG_GROUPS= ${MAILMAN_GROUP} +PKG_USERS= ${MAILMAN_USER}:${MAILMAN_GROUP}::Mailman\\ user::${SH} + +OWN_DIRS_PERMS+= ${EXECDIR} root ${MAILMAN_GROUP} 755 +OWN_DIRS_PERMS+= ${MAILMAN_DATADIR} ${MAILMAN_USER} ${MAILMAN_GROUP} 755 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/archives ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/archives/public ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/archives/private ${MAILMAN_USER} ${MAILMAN_GROUP} 771 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/data ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/lists ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/locks ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/logs ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/qfiles ${MAILMAN_USER} ${MAILMAN_GROUP} 775 +MAKE_DIRS_PERMS+= ${MAILMAN_DATADIR}/spam ${MAILMAN_USER} ${MAILMAN_GROUP} 775 + +CONF_FILES+= ${EGDIR}/mailman.conf ${PKG_SYSCONFDIR}/mailman.conf +CONF_FILES+= ${EXECDIR}/Mailman/mm_cfg.py.dist ${EXECDIR}/Mailman/mm_cfg.py + +PYTHON_VERSIONS_ACCEPTED= 22 21 +PYTHON_PATCH_SCRIPTS+= Mailman/Archiver/pipermail.py +PYTHON_PATCH_SCRIPTS+= Mailman/Post.py +PYTHON_PATCH_SCRIPTS+= admin/bin/Release.py +PYTHON_PATCH_SCRIPTS+= admin/bin/faq2ht.py +PYTHON_PATCH_SCRIPTS+= admin/bin/mm2do +PYTHON_PATCH_SCRIPTS+= bin/msgfmt.py + +APACHE_GROUP?= www + +CONFIGURE_ARGS+= --with-cgi-gid=${APACHE_GROUP} +CONFIGURE_ARGS+= --with-cgi-ext=.cgi +CONFIGURE_ARGS+= --with-groupname=${MAILMAN_GROUP} +CONFIGURE_ARGS+= --with-mail-gid=${MAILMAN_MAILGROUP} +CONFIGURE_ARGS+= --with-python=${PYTHONBIN} +CONFIGURE_ARGS+= --with-username=${MAILMAN_USER} +CONFIGURE_ARGS+= --with-var-prefix=${MAILMAN_DATADIR} +CONFIGURE_ARGS+= --without-permcheck + +# Put in externally invalid defaults (MESSAGE directs how to fix it) +CONFIGURE_ARGS+= --with-mailhost=localhost +CONFIGURE_ARGS+= --with-urlhost=localhost + +post-patch: @${SED} ${FILES_SUBST_SED} ${FILESDIR}/mailman.conf.dist \ - > ${WRKDIR}/mailman.conf.dist + >${WRKDIR}/mailman.conf.dist + ${RM} -f ${WRKSRC}/[A-Z]*.orig -do-install: +pre-install: ${INSTALL} -d -o ${MAILMAN_USER} -g ${MAILMAN_GROUP} -m775 ${EXECDIR} ${INSTALL_DATA_DIR} ${DOCDIR} - cd ${WRKSRC}; \ - ./configure ${MAILMAN_CONFIGURE_ARGS}; \ - ${MAKE} install - cd ${WRKSRC}; \ - for i in ACKNOWLEDGMENTS BUGS FAQ INSTALL NEWS README README.BSD \ - README.EXIM README.LINUX README.NETSCAPE README.QMAIL \ - README.SENDMAIL TODO UPGRADING; do \ + ${INSTALL_DATA_DIR} ${EXECDIR}/support + +post-install: + cd ${WRKSRC} && for i in [A-IN-U]*; do \ ${INSTALL_DATA} $$i ${DOCDIR}/; \ done ${INSTALL_DATA_DIR} ${EGDIR} - cd ${WRKDIR}; ${INSTALL_DATA} mailman.conf.dist ${EGDIR}/mailman.conf - ${CHOWN} -R root ${EXECDIR} + ${INSTALL_DATA} ${WRKDIR}/mailman.conf.dist ${EGDIR}/mailman.conf + ${CHOWN} -R root:${MAILMAN_GROUP} ${EXECDIR} ${CHMOD} -R g-w ${EXECDIR} + ${CHMOD} g+s ${EXECDIR}/cgi-bin/* .include "../../lang/python/application.mk" .include "../../mk/bsd.pkg.mk" |