summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHanno <hanno@gentoo.org>2016-11-15 18:17:18 +0100
committerHanno <hanno@gentoo.org>2016-11-15 18:17:18 +0100
commit9467ca8131ab1356cc4a109ed5e1dd596f77a342 (patch)
tree7ccf76c8c69216786bad96d7eb9ddd42547b1274 /net-mail
parentapp-admin/mongo-tools: Build PIE (Position Independent Executables) to avoid ... (diff)
downloadgentoo-9467ca8131ab1356cc4a109ed5e1dd596f77a342.tar.gz
gentoo-9467ca8131ab1356cc4a109ed5e1dd596f77a342.tar.bz2
gentoo-9467ca8131ab1356cc4a109ed5e1dd596f77a342.zip
net-mail/mailman: Version bump.
Fix security bug #592858 (CSRF, CVE-2016-6893). Fix python optimization paths. Package-Manager: portage-2.3.2
Diffstat (limited to 'net-mail')
-rw-r--r--net-mail/mailman/Manifest1
-rw-r--r--net-mail/mailman/mailman-2.1.23.ebuild165
2 files changed, 166 insertions, 0 deletions
diff --git a/net-mail/mailman/Manifest b/net-mail/mailman/Manifest
index d82c0b326e8b..2e6c81cb7f3b 100644
--- a/net-mail/mailman/Manifest
+++ b/net-mail/mailman/Manifest
@@ -1 +1,2 @@
DIST mailman-2.1.20.tgz 9204867 SHA256 522c2b5c5ab91398fdf949a8961162c314f6323cd1bfeb907e0fb2d88277711f SHA512 2821ce9f22f7f927f3f3e51ad949b43066be4510aa781c63de1acdc8bec5408e242ece7e83bbf77affcdab61fa9715cb239ceed197cda647e8e56308ba9adce7 WHIRLPOOL 4678622b8e98654fe551bf00f3afebaef2e6df49f13755c2277a696b7aaf0a7e6f261a94c190ed212465d6b81be9121a66ca454c998861b3b73ddbdbef3e9095
+DIST mailman-2.1.23.tgz 9290881 SHA256 b022ca6f8534621c9dbe50c983948688bc4623214773b580c2c78e4a7ae43e69 SHA512 398dd5c301005512900aff38c068ee641eea9f2970dfde17c37a8641759bd6fff8e6d37ad63c0c86b4b1594459b3c92023844ca4ec23d1681ac02542bd97f8db WHIRLPOOL c5e45bd4fb59dca5017f547e25986addff8079bf10bdcb6f814942e56cfc618d0e6e075beb7d5240e591d809f27af442c4da9c5e5f35358f5bf86a4f24c1d38d
diff --git a/net-mail/mailman/mailman-2.1.23.ebuild b/net-mail/mailman/mailman-2.1.23.ebuild
new file mode 100644
index 000000000000..048c30f2df95
--- /dev/null
+++ b/net-mail/mailman/mailman-2.1.23.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-single-r1 multilib systemd user
+
+DESCRIPTION="A python-based mailing list server with an extensive web interface"
+SRC_URI="mirror://sourceforge/${PN}/${P/_p/-}.tgz"
+HOMEPAGE="http://www.list.org/"
+S="${WORKDIR}/${P/_p/-}"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="selinux"
+
+DEPEND="
+ virtual/mta
+ virtual/cron
+ virtual/httpd-cgi
+ virtual/python-dnspython[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-mailman )
+"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+ INSTALLDIR=${MAILMAN_PREFIX:-"/usr/$(get_libdir)/mailman"}
+ VAR_PREFIX=${MAILMAN_VAR_PREFIX:-"/var/lib/mailman"}
+ CGIUID=${MAILMAN_CGIUID:-apache}
+ CGIGID=${MAILMAN_CGIGID:-apache}
+ MAILUSR=${MAILMAN_MAILUSR:-mailman}
+ MAILUID=${MAILMAN_MAILUID:-280}
+ MAILGRP=${MAILMAN_MAILGRP:-mailman}
+ MAILGID=${MAILMAN_MAILGID:-280}
+
+ # Bug #58526: switch to enew{group,user}.
+ # need to add mailman here for compile process.
+ # Duplicated at pkg_postinst() for binary install.
+ enewgroup ${MAILGRP} ${MAILGID}
+ enewuser ${MAILUSR} ${MAILUID} /bin/bash ${INSTALLDIR} mailman,cron
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-2.1.14_rc1-directory-check.patch"
+ epatch "${FILESDIR}/${PN}-2.1.9-icons.patch"
+}
+
+src_configure() {
+ econf \
+ --without-permcheck \
+ --prefix="${INSTALLDIR}" \
+ --with-mail-gid=${MAILGID} \
+ --with-cgi-gid=${CGIGID} \
+ --with-cgi-ext="${MAILMAN_CGIEXT}" \
+ --with-var-prefix="${VAR_PREFIX}" \
+ --with-username=${MAILUSR} \
+ --with-groupname=${MAILGRP} \
+ --with-python="${PYTHON}"
+}
+
+src_install () {
+ emake "DESTDIR=${D}" doinstall
+
+ insinto /etc/apache2/modules.d
+ newins "${FILESDIR}/50_mailman.conf-r2" 50_mailman.conf
+ sed \
+ -e "s:/usr/local/mailman/cgi-bin:${INSTALLDIR}/cgi-bin:g" \
+ -e "s:/usr/local/mailman/icons:${INSTALLDIR}/icons:g" \
+ -e "s:/usr/local/mailman/archives:${VAR_PREFIX}/archives:g" \
+ -i "${D}/etc/apache2/modules.d/50_mailman.conf" || die
+
+ newdoc "${FILESDIR}/README.gentoo-r3" README.gentoo
+
+ dodoc ACK* BUGS FAQ NEWS README* TODO UPGRADING INSTALL contrib/mailman.mc \
+ contrib/README.check_perms_grsecurity contrib/virtusertable
+
+ exeinto ${INSTALLDIR}/bin
+ doexe build/contrib/*.py contrib/majordomo2mailman.pl contrib/auto \
+ contrib/mm-handler*
+
+ dodir /etc/mailman
+ mv "${D}/${INSTALLDIR}/Mailman/mm_cfg.py" "${D}/etc/mailman"
+ dosym /etc/mailman/mm_cfg.py ${INSTALLDIR}/Mailman/mm_cfg.py
+
+ # Save the old config for updates from pre-2.1.9-r2
+ # To be removed some distant day
+ for i in /var/mailman /home/mailman /usr/local/mailman ${INSTALLDIR}; do
+ if [ -f ${i}/Mailman/mm_cfg.py ] && ! [ -L ${i}/Mailman/mm_cfg.py ]; then
+ cp ${i}/Mailman/mm_cfg.py "${D}/etc/mailman/mm_cfg.py" || die
+ fi
+ done
+
+ newinitd "${FILESDIR}/mailman.rc" mailman
+ cp "${FILESDIR}/mailman.service" "${T}/mailman.service" || die
+ sed -i "s/^User=.*/User=${MAILUSR}/" "${T}/mailman.service" || die
+ systemd_dounit "${T}/mailman.service"
+
+ keepdir ${VAR_PREFIX}/logs
+ keepdir ${VAR_PREFIX}/locks
+ keepdir ${VAR_PREFIX}/spam
+ keepdir ${VAR_PREFIX}/archives/public
+ keepdir ${VAR_PREFIX}/archives/private
+ keepdir ${VAR_PREFIX}/lists
+ keepdir ${VAR_PREFIX}/qfiles
+
+ chown -R ${MAILUSR}:${MAILGRP} "${D}/${VAR_PREFIX}" "${D}/${INSTALLDIR}" "${D}"/etc/mailman/* || die
+ chown ${CGIUID}:${MAILGRP} "${D}/${VAR_PREFIX}/archives/private" || die
+ chmod 2775 "${D}/${INSTALLDIR}" "${D}/${INSTALLDIR}"/templates/* \
+ "${D}/${INSTALLDIR}"/messages/* "${D}/${VAR_PREFIX}" "${D}/${VAR_PREFIX}"/{logs,lists,spam,locks,archives/public} || die
+ chmod 2770 "${D}/${VAR_PREFIX}/archives/private" || die
+ chmod 2770 "${D}/${VAR_PREFIX}/qfiles" || die
+ chmod 2755 "${D}/${INSTALLDIR}"/cgi-bin/* "${D}/${INSTALLDIR}/mail/mailman" || die
+
+ python_optimize "${D}/${INSTALLDIR}/bin/" \
+ "${D}/${INSTALLDIR}/Mailman/" \
+ "${D}/${INSTALLDIR}/Mailman/*"
+}
+
+pkg_postinst() {
+ enewgroup ${MAILGRP} ${MAILGID}
+ enewuser ${MAILUSR} ${MAILUID} -1 ${INSTALLDIR} mailman,cron
+ echo
+ elog "Please read /usr/share/doc/${PF}/README.gentoo.bz2 for additional"
+ elog "Setup information, mailman will NOT run unless you follow"
+ elog "those instructions!"
+ echo
+
+ elog "An example Mailman configuration file for Apache has been installed into:"
+ elog " ${APACHE2_MODULES_CONFDIR}/50_mailman.conf"
+ echo
+ elog "To enable, you will need to add \"-D MAILMAN\" to"
+ elog "/etc/conf.d/apache2."
+ echo
+
+ ewarn "Default-Configuration has changed deeply in 2.1.9-r2. You can configure"
+ ewarn "mailman with the following variables:"
+ ewarn "MAILMAN_PREFIX (default: /usr/$(get_libdir)/mailman)"
+ ewarn "MAILMAN_VAR_PREFIX (default: /var/lib/mailman)"
+ ewarn "MAILMAN_CGIUID (default: apache)"
+ ewarn "MAILMAN_CGIGID (default: apache)"
+ ewarn "MAILMAN_CGIEXT (default: empty)"
+ ewarn "MAILMAN_MAILUSR (default: mailman)"
+ ewarn "MAILMAN_MAILUID (default: 280)"
+ ewarn "MAILMAN_MAILGRP (default: mailman)"
+ ewarn "MAILMAN_MAILGID (default: 280)"
+ ewarn
+ ewarn "Config file is now symlinked in /etc/mailman, so etc-update works."
+ ewarn
+ ewarn "If you're upgrading from below 2.1.9-r2 or changed MAILMAN_PREFIX, you"
+ ewarn "NEED to make a few manual updates to your system:"
+ ewarn
+ ewarn "1. Update your mailman users's home directory: usermod -d ${INSTALLDIR} mailman"
+ ewarn "2. Re-import the crontab: su - mailman -c 'crontab cron/crontab.in'"
+ ewarn "3. Copy your old mm_cfg.py file to /etc/mailman/mm_cfg.py"
+ ewarn
+ ewarn "Additionally if you've modified MAILMAN_VAR_PREFIX (or upgraded from"
+ ewarn "a pre 2.1.9-r2 installation), you should move your old lists/ and"
+ ewarn "archives/ directory to the new location, ensuring that the"
+ ewarn "permissions is correct. See bug #208789 for a discussion."
+}