forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Hanno Böck <[email protected]> Package-Manager: Portage-3.0.16, Repoman-3.0.2
- Loading branch information
Showing
2 changed files
with
313 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST courier-1.0.13.tar.bz2 7533779 BLAKE2B 38db2127df3f9d0371ee01563663ebabefdfb0e03bad01f6bdc421d2371191a27cfda00cb7927af2d4f8f3cec4f9e7756c786ae53cf60a23c1067d8620a105d7 SHA512 f2cf42791b6422151b7c155ae1533c0587abe4d13c498a96a678c8bafd8dd103631896cbf6c4ef53e288a81355ac625ee65eb3fec695d0d6d96bbfd6d3dd5d7b | ||
DIST courier-1.0.14.tar.bz2 7541652 BLAKE2B 5ddaabcfc49d5681b884311187eae04e492e273040dde6af83ab7ac4af117010be61c916cd909a686477c84997ca64cc435c1415f431c42c220c026d581e17da SHA512 7d66368745f3afdef0e1f4bd8078617203d7b846c96d499575daa07644ed5f800ff76e9c145f22010a677a5b754e4d4f300d95bc3f7d3a60a54271f284f80b5c | ||
DIST courier-1.0.17.tar.bz2 7644893 BLAKE2B c31a5f9b27119b0affc7fe3b66da8d35534f519c8ade77b5e59e0b08f92f143b54d519ef0f726b1e68f900e8f330811befb7f2d626de041ebee53be25e089bbe SHA512 588415d1062581ba7fef64eb884c129e4802d90f6e6bf583e249c6e83e62ec90dbc7ccc0e6e9ce4697c00a4c66b10b84bfc6121854fa7abacd613010f34936d6 | ||
DIST courier-1.0.5.tar.bz2 7465054 BLAKE2B 55e9ba2a85889e7210652475149f4d3e687fd63a27b44a5a16c888b2f60bb18c4156e3344792585fed2ee3d81770e79c55ce5791842c255b8701bad5d2f8af4e SHA512 99a8e98633da99abd1f6f4e24328d4655526d51dc9fc03ffcb9c1e0cce0e608dedb2ac9511829af4487ff5af4618500d6fbbee26568f2a05e3c9d3cf3b48b2a5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,312 @@ | ||
# Copyright 1999-2021 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
inherit eutils flag-o-matic multilib | ||
|
||
DESCRIPTION="An MTA designed specifically for maildirs" | ||
HOMEPAGE="https://www.courier-mta.org/" | ||
SRC_URI="mirror://sourceforge/courier/${P}.tar.bz2" | ||
|
||
LICENSE="GPL-3" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86" | ||
IUSE="postgres ldap libressl mysql pam nls ipv6 spell fax crypt norewrite \ | ||
fam web webmail gnutls" | ||
|
||
DEPEND=" | ||
>=net-libs/courier-authlib-0.71.1 | ||
>=net-libs/courier-unicode-2.1.2 | ||
net-dns/libidn:= | ||
gnutls? ( net-libs/gnutls:= ) | ||
!gnutls? ( | ||
!libressl? ( dev-libs/openssl:0= ) | ||
libressl? ( dev-libs/libressl:0= ) | ||
) | ||
>=sys-libs/gdbm-1.8.0 | ||
dev-libs/libpcre | ||
app-misc/mime-types | ||
fax? ( >=media-libs/netpbm-9.12 app-text/ghostscript-gpl >=net-dialup/mgetty-1.1.28 ) | ||
pam? ( sys-libs/pam ) | ||
mysql? ( dev-db/mysql-connector-c ) | ||
ldap? ( >=net-nds/openldap-1.2.11 ) | ||
postgres? ( dev-db/postgresql:= ) | ||
spell? ( app-text/aspell ) | ||
fam? ( virtual/fam ) | ||
!mail-filter/maildrop | ||
!mail-mta/esmtp | ||
!mail-mta/exim | ||
!mail-mta/mini-qmail | ||
!mail-mta/msmtp[mta] | ||
!mail-mta/netqmail | ||
!mail-mta/nullmailer | ||
!mail-mta/postfix | ||
!mail-mta/qmail-ldap | ||
!mail-mta/sendmail | ||
!mail-mta/ssmtp[mta] | ||
!mail-mta/opensmtpd | ||
!net-mail/dot-forward | ||
!sys-apps/ucspi-tcp | ||
" | ||
|
||
RDEPEND="${DEPEND} | ||
dev-lang/perl | ||
sys-process/procps" | ||
|
||
# get rid of old style virtual/imapd - bug 350792 | ||
# all blockers really needed? | ||
RDEPEND="${RDEPEND} | ||
!net-mail/bincimap | ||
!net-mail/courier-imap | ||
!net-mail/cyrus-imapd | ||
!net-mail/uw-imap" | ||
|
||
PDEPEND="pam? ( net-mail/mailbase ) | ||
crypt? ( >=app-crypt/gnupg-1.0.4 )" | ||
|
||
src_prepare() { | ||
use norewrite && epatch "${FILESDIR}/norewrite.patch" | ||
default | ||
} | ||
|
||
src_configure() { | ||
filter-flags '-fomit-frame-pointer' | ||
|
||
local myconf | ||
myconf="" | ||
|
||
use ldap && myconf="${myconf} --with-ldapconfig=/etc/courier/maildropldap.conf" | ||
|
||
econf ${myconf} \ | ||
$(use_with fam) \ | ||
$(use_with ipv6) \ | ||
$(use_with spell ispell) \ | ||
$(use_with ldap ldapaliasd) \ | ||
$(use_enable ldap maildroldap) \ | ||
$(use_with gnutls) \ | ||
--with-notice=unicode \ | ||
--enable-mimetypes=/etc/mime.types \ | ||
--prefix=/usr \ | ||
--disable-root-check \ | ||
--mandir=/usr/share/man \ | ||
--sysconfdir=/etc/courier \ | ||
--datadir=/usr/share/courier \ | ||
--sharedstatedir=/var/lib/courier/com \ | ||
--localstatedir=/var/lib/courier \ | ||
--with-piddir=/var/run/courier \ | ||
--with-authdaemonvar=/var/lib/courier/authdaemon \ | ||
--with-mailuser=mail \ | ||
--with-mailgroup=mail \ | ||
--with-paranoid-smtpext \ | ||
--with-db=gdbm \ | ||
--disable-autorenamesent \ | ||
--cache-file="${S}/configuring.cache" \ | ||
--host="${CHOST}" debug=true || die "./configure" | ||
sed -e'/^install-perms-local:/a\ sed -e\"s|^|'"${D}"'|g\" -i permissions.dat' -i Makefile | ||
} | ||
|
||
src_compile() { | ||
default | ||
} | ||
|
||
etc_courier() { | ||
# Import existing /etc/courier/file if it exists. | ||
# Add option only if it was not already set or even commented out | ||
file="${1}" ; word="`echo \"${2}\" | sed -e\"s|=.*$||\" -e\"s|^.*opt ||\"`" | ||
[ ! -e "${D}/etc/courier/${file}" ] && [ -e "/etc/courier/${file}" ] && \ | ||
cp "/etc/courier/${file}" "${D}/etc/courier/${file}" | ||
grep -q "${word}" "${D}/etc/courier/${file}" || \ | ||
echo "${2}" >> "${D}/etc/courier/${file}" | ||
} | ||
|
||
etc_courier_chg() { | ||
file="${1}" ; key="${2}" ; value="${3}" ; section="${4}" | ||
[ -z "${section}" ] && section="${2}" | ||
grep -q "${key}" "${file}" && elog "Changing ${file}: ${key} to ${value}" | ||
sed -i -e"/\#\#NAME: ${section}/,+30 s|${key}=.*|${key}=\"${value}\"|g" ${file} | ||
} | ||
|
||
src_install() { | ||
local f | ||
diropts -o mail -g mail | ||
keepdir /var/lib/courier/tmp | ||
keepdir /var/lib/courier/msgs | ||
make install DESTDIR="${D}" || die "install" | ||
make install-configure || die "install-configure" | ||
|
||
# init script takes care of this | ||
rm -rf "${D}/var/run" | ||
|
||
# Get rid of files we dont want | ||
if ! use webmail ; then | ||
rm -rf "${D}/usr/$(get_libdir)/courier/courier/webmail" \ | ||
"${D}/usr/$(get_libdir)/courier/courier/sqwebmaild" \ | ||
"${D}/usr/share/courier/sqwebmail/" \ | ||
"${D}/usr/sbin/webmaild" \ | ||
"${D}/usr/sbin/webgpg" \ | ||
"${D}/etc/courier/webmail.authpam" \ | ||
"${D}/var/lib/courier/webmail-logincache" \ | ||
"${D}"/etc/courier/sqwebmaild* | ||
fi | ||
|
||
if ! use web ; then | ||
rm -rf "${D}/usr/share/courier/courierwebadmin/" \ | ||
"${D}/etc/courier/webadmin" | ||
fi | ||
|
||
for dir2keep in $(cd "${D}" && find ./var/lib/courier -type d) ; do | ||
keepdir "$dir2keep" || die "failed running keepdir: $dir2keep" | ||
done | ||
|
||
newinitd "${FILESDIR}/courier-init-r4" "courier" | ||
use fam || sed -i -e's|^.*use famd$||g' "${D}/etc/init.d/courier" | ||
|
||
cd "${D}/etc/courier" | ||
if use webmail ; then | ||
insinto /etc/courier | ||
newins "${FILESDIR}/apache-sqwebmail.inc" apache-sqwebmail.inc | ||
fi | ||
|
||
for f in *.dist ; do cp "${f}" "${f%%.dist}" ; done | ||
if use ldap ; then | ||
[ -e ldapaliasrc ] && ( chown root:mail ldapaliasrc ; chmod 640 ldapaliasrc ) | ||
else | ||
rm -f ldapaliasrc | ||
fi | ||
|
||
( [ -e /etc/courier/sizelimit ] && cat /etc/courier/sizelimit || echo 0 ) \ | ||
> "${D}/etc/courier/sizelimit" | ||
etc_courier maildroprc "" | ||
etc_courier esmtproutes "" | ||
etc_courier backuprelay "" | ||
etc_courier locallowercase "" | ||
etc_courier bofh "opt BOFHBADMIME=accept" | ||
etc_courier bofh "opt BOFHSPFTRUSTME=1" | ||
etc_courier bofh "opt BOFHSPFHELO=pass,neutral,unknown,none,error,softfail,fail" | ||
etc_courier bofh "opt BOFHSPFHELO=pass,neutral,unknown,none" | ||
etc_courier bofh "opt BOFHSPFFROM=all" | ||
etc_courier bofh "opt BOFHSPFMAILFROM=all" | ||
etc_courier bofh "#opt BOFHSPFHARDERROR=fail" | ||
etc_courier esmtpd "BOFHBADMIME=accept" | ||
etc_courier esmtpd-ssl "BOFHBADMIME=accept" | ||
etc_courier esmtpd-msa "BOFHBADMIME=accept" | ||
|
||
use fam && etc_courier_chg imapd IMAP_CAPABILITY "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE" | ||
use fam || etc_courier_chg imapd IMAP_CAPABILITY "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256" | ||
|
||
# Fix for a sandbox violation on subsequential merges | ||
# - [email protected], 2005-07-10 | ||
dosym ../share/courier/pop3d /usr/sbin/courier-pop3d | ||
dosym ../share/courier/pop3d-ssl /usr/sbin/courier-pop3d-ssl | ||
dosym ../share/courier/imapd /usr/sbin/courier-imapd | ||
dosym ../share/courier/imapd-ssl /usr/sbin/courier-imapd-ssl | ||
|
||
cd "${S}" | ||
cp imap/README README.imap | ||
use nls && cp unicode/README README.unicode | ||
dodoc AUTHORS BENCHMARKS COPYING* ChangeLog* INSTALL NEWS README* TODO courier/doc/*.txt | ||
dodoc libs/tcpd/README.couriertls | ||
mv "${D}/usr/share/courier/htmldoc" "${D}/usr/share/doc/${PF}/html" | ||
|
||
if use webmail ; then | ||
insinto /usr/$(get_libdir)/courier/courier | ||
insopts -m 755 -o mail -g mail | ||
doins "${S}/courier/webmaild" | ||
fi | ||
|
||
if use web ; then | ||
insinto /etc/courier/webadmin | ||
insopts -m 400 -o mail -g mail | ||
doins "${FILESDIR}/password.dist" | ||
fi | ||
|
||
# avoid name collisions in /usr/sbin, make webadmin match | ||
cd "${D}/usr/sbin" | ||
for f in imapd imapd-ssl pop3d pop3d-ssl ; do mv "${f}" "courier-${f}" ; done | ||
if use web ; then | ||
sed -i -e 's:\$sbindir\/imapd:\$sbindir\/courier-imapd:g' \ | ||
-e 's:\$sbindir\/imapd-ssl:\$sbindir\/courier-imapd-ssl:g' \ | ||
"${D}/usr/share/courier/courierwebadmin/admin-40imap.pl" \ | ||
|| ewarn "failed to fix webadmin" | ||
sed -i -e 's:\$sbindir\/pop3d:\$sbindir\/courier-pop3d:g' \ | ||
-e 's:\$sbindir\/pop3d-ssl:\$sbindir\/courier-pop3d-ssl:g' \ | ||
"${D}/usr/share/courier/courierwebadmin/admin-45pop3.pl" \ | ||
|| ewarn "failed to fix webadmin" | ||
fi | ||
|
||
# users should be able to send mail. Could be restricted with suictl. | ||
chmod u+s "${D}/usr/bin/sendmail" | ||
|
||
dosym ../bin/sendmail /usr/sbin/sendmail | ||
} | ||
|
||
src_test() { | ||
if [ `whoami` != 'root' ]; then | ||
emake -j1 check | ||
else | ||
einfo "make check skipped, can't run as root." | ||
einfo "You can enable it with FEATURES=\"userpriv\"" | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
use fam && elog "fam daemon is needed for courier-imapd" \ | ||
|| ewarn "courier was built without fam support" | ||
} | ||
|
||
pkg_config() { | ||
mailhost="$(hostname)" | ||
export mailhost | ||
|
||
domainname="$(domainname)" | ||
if [ "x$domainname" = "x(none)" ] ; then | ||
domainname="$(echo ${mailhost} | sed -e "s/[^\.]*\.\(.*\)/\1/")" | ||
fi | ||
export domainname | ||
|
||
if [ "${ROOT}" = "/" ] ; then | ||
file="${ROOT}/etc/courier/locals" | ||
if [ ! -f "${file}" ] ; then | ||
echo "localhost" > "${file}"; | ||
echo "${domainname}" >> "${file}"; | ||
fi | ||
file="${ROOT}/etc/courier/esmtpacceptmailfor.dir/${domainname}" | ||
if [ ! -f "${file}" ] ; then | ||
echo "${domainname}" > "${file}" | ||
/usr/sbin/makeacceptmailfor | ||
fi | ||
|
||
file="${ROOT}/etc/courier/smtpaccess/${domainname}" | ||
if [ ! -f "${file}" ] | ||
then | ||
netstat -nr | grep "^[1-9]" | while read network gateway netmask rest | ||
do | ||
i=1 | ||
net="" | ||
TIFS="${IFS}" | ||
IFS="." | ||
for o in "${netmask}" | ||
do | ||
if [ "${o}" == "255" ] | ||
then | ||
[ "_${net}" == "_" ] || net="${net}." | ||
t="$(echo "${network}" | cut -d " " -f ${i})" | ||
net="${net}${t}" | ||
fi | ||
i="$((${i} + 1))" | ||
done | ||
IFS="${TIFS}" | ||
echo "doing configuration - relay control for the network ${net} !" | ||
echo "${net} allow,RELAYCLIENT" >> ${file} | ||
done | ||
/usr/sbin/makesmtpaccess | ||
fi | ||
fi | ||
|
||
echo "creating cert for esmtpd-ssl:" | ||
/usr/sbin/mkesmtpdcert | ||
echo "creating cert for imapd-ssl:" | ||
/usr/sbin/mkpop3dcert | ||
echo "creating cert for pop3d-ssl:" | ||
/usr/sbin/mkimapdcert | ||
} |