7ee04260ef
(Portage version: 2.2.0_alpha6/svn/Linux x86_64, RepoMan options: --force) git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@2766 6952d904-891a-0410-993b-d76249ca496b
200 lines
7.8 KiB
Bash
200 lines
7.8 KiB
Bash
# Copyright 1999-2010 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/net-mail/mailman/mailman-2.1.11.ebuild,v 1.4 2008/08/15 15:26:26 nixnut Exp $
|
|
|
|
inherit eutils python multilib perl-app
|
|
|
|
MH_VER="2.6.16"
|
|
MM_VER="2.1.12"
|
|
INDEXING_VER="0.1"
|
|
HTDIG_VER="0.1"
|
|
EXITSTATUS_VER="0.1"
|
|
MODINC_VER="0.1"
|
|
MHONARC_VER="0.1"
|
|
ANTISPAM_VER="0.1"
|
|
RESPONSE_VER="0.1"
|
|
DAILYMBOX_VER="0.1"
|
|
|
|
DESCRIPTION="A python-based mailing list server with an extensive web interface"
|
|
SRC_URI="mirror://sourceforge/${PN}/${P}.tgz
|
|
http://www.mhonarc.org/release/MHonArc/tar/MHonArc-${MH_VER}.tar.bz2
|
|
http://www.openinfo.co.uk/mm/patches/444879/indexing-${MM_VER}-${INDEXING_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/444884/htdig-${MM_VER}-${HTDIG_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/644797/exitstatus-${MM_VER}-${EXITSTATUS_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/760567/modinc-${MM_VER}-${MODINC_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/mhonarc/mhonarc-${MM_VER}-${MHONARC_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/850805/antispam-${MM_VER}-${ANTISPAM_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/supportlist/response-${MM_VER}-${RESPONSE_VER}.patch.gz
|
|
http://www.openinfo.co.uk/mm/patches/dailymbox/dailymbox-${MM_VER}-${DAILYMBOX_VER}.patch.gz"
|
|
HOMEPAGE="http://www.list.org/ http://www.openinfo.co.uk/mm/ http://www.mhonarc.org/"
|
|
|
|
SLOT="0"
|
|
LICENSE="GPL-2"
|
|
KEYWORDS="amd64 ~arm ppc sparc x86"
|
|
IUSE=""
|
|
|
|
DEPEND=">=dev-lang/python-2.3
|
|
virtual/mta
|
|
virtual/cron
|
|
virtual/httpd-cgi"
|
|
RDEPEND="!net-mail/mhonarc"
|
|
|
|
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 -G cron -c "mailman"
|
|
}
|
|
|
|
src_unpack() {
|
|
unpack ${A}
|
|
cd "${S}"
|
|
epatch "${FILESDIR}/${PN}-2.1.12-directory-check.patch" || die "patch failed."
|
|
epatch "${FILESDIR}/${PN}-2.1.9-icons.patch" || die "patch failed."
|
|
epatch "${FILESDIR}/${PN}-2.1.13-ldflags.patch" || die "patch failed."
|
|
epatch "${DISTDIR}/indexing-${MM_VER}-${INDEXING_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/htdig-${MM_VER}-${HTDIG_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/exitstatus-${MM_VER}-${EXITSTATUS_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/modinc-${MM_VER}-${MODINC_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/mhonarc-${MM_VER}-${MHONARC_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/antispam-${MM_VER}-${ANTISPAM_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/response-${MM_VER}-${RESPONSE_VER}.patch.gz" || die "patch failed."
|
|
epatch "${DISTDIR}/dailymbox-${MM_VER}-${DAILYMBOX_VER}.patch.gz" || die "patch failed."
|
|
cd ${WORKDIR}/MHonArc-${MH_VER}
|
|
epatch "${FILESDIR}"/mhonarc-${MH_VER}-list-output-order.patch
|
|
}
|
|
|
|
src_compile() {
|
|
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} \
|
|
|| die "configure failed"
|
|
|
|
emake || die "make failed"
|
|
cd ${WORKDIR}/MHonArc-${MH_VER}
|
|
perl-app_src_compile
|
|
}
|
|
|
|
src_install () {
|
|
emake "DESTDIR=${D}" doinstall || die
|
|
|
|
insinto /etc/apache2/modules.d
|
|
newins "${FILESDIR}/50_mailman.conf-r1" 50_mailman.conf
|
|
dosed "s:/usr/local/mailman/cgi-bin:${INSTALLDIR}/cgi-bin:g" /etc/apache2/modules.d/50_mailman.conf
|
|
dosed "s:/usr/local/mailman/icons:${INSTALLDIR}/icons:g" /etc/apache2/modules.d/50_mailman.conf
|
|
dosed "s:/usr/local/mailman/archives:${VAR_PREFIX}/archives:g" /etc/apache2/modules.d/50_mailman.conf
|
|
|
|
newdoc "${FILESDIR}/README.gentoo-r3" README.gentoo || die "newdoc failed"
|
|
|
|
dodoc ACK* BUGS FAQ NEWS README* TODO UPGRADING INSTALL contrib/mailman.mc \
|
|
contrib/README.check_perms_grsecurity contrib/virtusertable || die "dodoc failed"
|
|
|
|
exeinto ${INSTALLDIR}/bin
|
|
doexe build/contrib/*.py contrib/majordomo2mailman.pl contrib/auto \
|
|
contrib/mm-handler* || die
|
|
|
|
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"
|
|
fi
|
|
done
|
|
|
|
newinitd "${FILESDIR}/mailman.rc" mailman
|
|
|
|
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/*
|
|
chown ${CGIUID}:${MAILGRP} "${D}/${VAR_PREFIX}/archives/private"
|
|
chmod 2775 "${D}/${INSTALLDIR}" "${D}/${INSTALLDIR}"/templates/* \
|
|
"${D}/${INSTALLDIR}"/messages/* "${D}/${VAR_PREFIX}" "${D}/${VAR_PREFIX}"/{logs,lists,spam,locks,archives/public}
|
|
chmod 2770 "${D}/${VAR_PREFIX}/archives/private"
|
|
chmod 2770 "${D}/${VAR_PREFIX}/qfiles"
|
|
chmod 2755 "${D}/${INSTALLDIR}"/cgi-bin/* "${D}/${INSTALLDIR}/mail/mailman"
|
|
|
|
cd ${WORKDIR}/MHonArc-${MH_VER}
|
|
sed -e "s|-prefix /usr |-docpath '${D}/usr/share/doc/${PF}/mhonarc' -prefix '${D}/${INSTALLDIR}/mhonarc' -libpath '${D}/${SITE_LIB}' |g" -i Makefile
|
|
perl-module_src_install
|
|
prepalldocs
|
|
|
|
|
|
}
|
|
|
|
pkg_postinst() {
|
|
python_mod_optimize ${INSTALLDIR}/bin/ ${INSTALLDIR}/Mailman
|
|
|
|
enewgroup ${MAILGRP} ${MAILGID}
|
|
enewuser ${MAILUSR} ${MAILUID} -1 ${INSTALLDIR} mailman -G cron -c "mailman"
|
|
elog
|
|
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!"
|
|
elog
|
|
|
|
elog "An example Mailman configuration file for Apache has been installed into:"
|
|
elog " ${APACHE2_MODULES_CONFDIR}/50_mailman.conf"
|
|
elog
|
|
elog "To enable, you will need to add \"-D MAILMAN\" to"
|
|
elog "/etc/conf.d/apache2."
|
|
elog
|
|
|
|
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."
|
|
ebeep
|
|
}
|
|
|
|
pkg_postrm() {
|
|
INSTALLDIR=${MAILMAN_PREFIX:-"/usr/$(get_libdir)/mailman"}
|
|
python_mod_cleanup ${INSTALLDIR}/bin ${INSTALLDIR}/Mailman
|
|
}
|