play better with mailwrapper. #73486
authorScott W Taylor <swtaylor@gentoo.org>
Mon, 6 Dec 2004 01:48:12 +0000 (01:48 +0000)
committerScott W Taylor <swtaylor@gentoo.org>
Mon, 6 Dec 2004 01:48:12 +0000 (01:48 +0000)
mail-mta/courier/ChangeLog
mail-mta/courier/Manifest
mail-mta/courier/courier-0.47-r1.ebuild [new file with mode: 0644]
mail-mta/courier/courier-0.47.20041129.ebuild
mail-mta/courier/files/digest-courier-0.47-r1 [new file with mode: 0644]

index 5e475dcd9b03401f5154708847adfbd18fc7e9dd..cc15c8dde4267d77ff27428d62a0ceac460e2533 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for mail-mta/courier
 # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-mta/courier/ChangeLog,v 1.33 2004/12/06 00:05:07 swtaylor Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/courier/ChangeLog,v 1.34 2004/12/06 01:48:12 swtaylor Exp $
+
+*courier-0.47-r1 (05 Dec 2004)
+
+  05 Dec 2004; Scott W Taylor <swtaylor@gentoo.org> +courier-0.47-r1.ebuild,
+  courier-0.47.20041129.ebuild:
+  build courier before mailwrapper, bug 73486
 
   05 Dec 2004; Scott W Taylor <swtaylor@gentoo.org>
   courier-0.47.20041129.ebuild:
index 6878e89e2f8028cf084d6f9d2f66c64c5449f644..f660a519b64a51f0541073f47140d6dd4ce5bccb 100644 (file)
@@ -1,10 +1,11 @@
 MD5 eae06bc935727a2243daae27af6fba24 courier-0.47.ebuild 10447
-MD5 0d316189e05ab90a1847b72ee753ede4 courier-0.47.20041129.ebuild 8452
+MD5 c5e69a1c8e1d465302292b1f0227810d courier-0.47.20041129.ebuild 8462
 MD5 9482696d470d858a2e9331aed21191fa courier-0.46.ebuild 9766
 MD5 8169e6bebff6d078a1c11fad92e6ffbe courier-0.46.20040825.ebuild 10008
 MD5 7428e4492712d927ef9d824ed3e21d85 courier-0.46.20040902.ebuild 10010
-MD5 46e87d08af2c3c939b44c011aa9142ec ChangeLog 15578
+MD5 78bdfa030f5627786b3c3c4132fbf328 ChangeLog 15766
 MD5 b287829e2f9edbcf1ff7bb349055e77e metadata.xml 392
+MD5 322182696ada6d378d8079890a0869c3 courier-0.47-r1.ebuild 10648
 MD5 52f032e570c6f5f9f69b4e4bdfa562a1 files/password.dist 247
 MD5 a546a21f960e4f921e71f614f719a2ce files/bofh 23
 MD5 1c43ee40b3a67f8c6f30fa0f08293211 files/digest-courier-0.46 66
@@ -17,4 +18,5 @@ MD5 d41d8cd98f00b204e9800998ecf8427e files/locallowercase 0
 MD5 7bd4625b319ee834c65e73ec927cd2ff files/courier-init 5414
 MD5 e3a4ab031bd750b7ce2c7b85fee83d8e files/set-mime 741
 MD5 548c02d9627ea67bf8109dcf960a60c8 files/digest-courier-0.47.20041129 75
+MD5 8396693e821bf04e8382d047cc740b5e files/digest-courier-0.47-r1 66
 MD5 4eb96413bfbc91629bdf43526716cd1e files/dot_courier 26
diff --git a/mail-mta/courier/courier-0.47-r1.ebuild b/mail-mta/courier/courier-0.47-r1.ebuild
new file mode 100644 (file)
index 0000000..602c45d
--- /dev/null
@@ -0,0 +1,370 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/courier/courier-0.47-r1.ebuild,v 1.1 2004/12/06 01:48:12 swtaylor Exp $
+
+inherit eutils
+
+DESCRIPTION="An MTA designed specifically for maildirs"
+[ -z "${PV/?.??/}" ] && SRC_URI="mirror://sourceforge/courier/${P}.tar.bz2" || SRC_URI="http://www.courier-mta.org/beta/courier/${P}.tar.bz2"
+HOMEPAGE="http://www.courier-mta.org/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="x86 alpha ppc sparc amd64 ~mips"
+IUSE="postgres ldap mysql pam nls ipv6 spell fax crypt norewrite uclibc mailwrapper"
+
+PROVIDE="virtual/mta
+        virtual/mda
+        virtual/imapd"
+
+DEPEND="virtual/libc
+       >=dev-libs/openssl-0.9.6
+       >=sys-libs/gdbm-1.8.0
+       crypt? ( >=app-crypt/gnupg-1.0.4 )
+       fax? (  >=media-libs/netpbm-9.12
+               virtual/ghostscript
+               >=net-dialup/mgetty-1.1.28 )
+       pam? ( >=sys-libs/pam-0.75 )
+       mysql? ( >=dev-db/mysql-3.23.36 )
+       ldap? ( >=net-nds/openldap-1.2.11 )
+       postgres? ( >=dev-db/postgresql-7.1.3 )
+       spell? ( virtual/aspell-dict )
+       !mailwrapper? ( !virtual/mta )
+       !virtual/mda
+       !virtual/imapd"
+
+RDEPEND="${DEPEND}
+       virtual/fam
+       dev-lang/perl
+       sys-apps/procps"
+
+PDEPEND="mailwrapper? ( >=net-mail/mailwrapper-0.2 )"
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       use norewrite && epatch ${FILESDIR}/norewrite.patch
+       use uclibc && sed -i -e 's:linux-gnu\*:linux-gnu\*\ \|\ linux-uclibc:' config.sub
+}
+
+src_compile() {
+       local myconf
+       use pam || myconf="${myconf} --without-authpam"
+       use ldap || myconf="${myconf} --without-authldap"
+       use mysql || myconf="${myconf} --without-authmysql"
+       use postgres || myconf="${myconf} --without-authpostgresql"
+       use ipv6 || myconf="${myconf} --without-ipv6"
+       use spell \
+               && myconf="${myconf} --with-ispell" \
+               || myconf="${myconf} --without-ispell"
+
+       if [ -f /var/vpopmail/etc/lib_deps ]; then
+               myconf="${myconf} --with-authvchkpw"
+       else
+               myconf="${myconf} --without-authvchkpw"
+       fi
+
+       # 1. If nls is enabled and ENABLE_UNICODE is not empty...
+       #    enable the specified unicode sets
+       # 2. If nls is enabled and no unicode sets are specified,
+       #    enable them all
+       # 3. If nls is disabled, disable unicode sets
+       #
+       if use nls && [ ! -z "$ENABLE_UNICODE" ]; then
+               myconf="${myconf} --enable-unicode=$ENABLE_UNICODE"
+       elif use nls; then
+               myconf="${myconf} --enable-unicode"
+       else
+               myconf="${myconf} --disable-unicode"
+       fi
+
+       myconf="${myconf} debug=true"
+
+       ./configure \
+               --prefix=/usr \
+               --disable-root-check \
+               --mandir=/usr/share/man \
+               --sysconfdir=/etc/courier \
+               --libexecdir=/usr/lib/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 \
+               --disable-autorenamesent \
+               --with-db=gdbm \
+               --enable-mimetypes=/etc/apache/conf/mime.types \
+               --enable-workarounds-for-imap-client-bugs \
+               --host=${CHOST} ${myconf} || die "bad ./configure"
+
+       emake || die "Compile problem"
+}
+
+chg_cfg() {
+       file=${1}
+       key=${2}
+       value=${3}
+
+       echo "changing ${file}: ${key} to ${value}"
+       sed -e "/\#\#NAME: ${key}/,+20 s|${key}=.*|${key}=\"${value}\"|g" ${file} > ${file}.tmp && chmod --reference ${file} ${file}.tmp && mv ${file}.tmp ${file}
+       rm -f ${f}.tmp 1>/dev/null 2>&1
+}
+
+set_mime() {
+       local files=$*
+
+       chk_badmime='##NAME: BOFHBADMIME:0'
+       pos_badmime='##NAME: NOADDMSGID:0'
+       ins_badmime='\
+##NAME: BOFHBADMIME:0\
+#\
+# set BOFHBADMIME\
+#   to \"reject\" to return mail with invalid MIME header\
+#   to \"wrap\" to wrap mail with invalid MIME header in an attachmant\
+#   to \"accept\" to pass mail with invalid MIME header untouched\
+\
+BOFHBADMIME=accept\
+'
+
+       local f
+       for f in ${files}
+       do
+               if ! grep -q "${chk_badmime}" ${f}
+               then
+                       echo "adding parameter ${chk_badmime} to ${f}"
+                       sed -e"/${pos_badmime}/ i ${ins_badmime}" ${f} > ${f}.tmp && chmod --reference ${f} ${f}.tmp && mv -f ${f}.tmp ${f}
+                       rm -f ${f}.tmp 1>/dev/null 2>&1
+               fi
+       done
+}
+
+set_maildir() {
+       local files=$*
+
+       origmaildir='Maildir'
+       newmaildir='.maildir'
+
+       local f
+       for f in ${files}
+       do
+               echo "changing ${origmaildir} in ${f} to ${newmaildir}"
+               sed -e"/^[^\#]/ s/${origmaildir}/${newmaildir}/g" ${f} > ${f}.tmp && chmod --reference ${f} ${f}.tmp && mv -f ${f}.tmp ${f}
+               rm -f ${f}.tmp 1> /dev/null 2>&1
+       done
+}
+
+set_dollarmaildir() {
+       local files=$*
+
+       origmaildir='Maildir'
+       newmaildir='$MAILDIRPATH'
+
+       local f
+       for f in ${files}
+       do
+               echo "changing ${origmaildir} in ${f} to ${newmaildir}"
+               sed -e"/^[^\#]/ s/${origmaildir}/${newmaildir}/g" ${f} > ${f}.tmp && chmod --reference ${f} ${f}.tmp && mv -f ${f}.tmp ${f}
+               rm -f ${f}.tmp 1> /dev/null 2>&1
+       done
+}
+
+src_install() {
+       dodir /var/lib/courier
+       dodir /etc/pam.d
+       make install DESTDIR=${D} || die
+       # fix bug #15873 bad owner on /var/run/courier
+       mkdir -p ${D}/var/run/courier
+       diropts -o mail -g mail
+       for dir2keep in `(cd ${D} && find . -type d)` ; do
+               keepdir $dir2keep || die "failed running keepdir: $dir2keep"
+       done
+
+       local f
+       cd ${D}/etc/courier
+       mv imapd.authpam imap.authpam
+       mv pop3d.authpam pop3.authpam
+       for f in *.authpam
+       do
+               cp "${f}" "${D}/etc/pam.d/${f%%.authpam}"
+       done
+
+       exeinto /etc/init.d
+       # we install the new single init script as courier
+       newexe ${FILESDIR}/courier-init courier
+       # and install the old main init script as courier-old if the old one
+       # is installed which it will be now, but for the future...
+       `grep DAEMONLIST /etc/init.d/courier >&/dev/null` && \
+               newexe ${FILESDIR}/courier courier-old
+       # the rest of them don't need to be installed
+
+       einfo "Setting up maildirs by default in the account skeleton ..."
+       diropts -m 755 -o root -g root
+       keepdir /etc/skel
+       ${D}/usr/bin/maildirmake ${D}/etc/skel/.maildir
+       keepdir /var/spool/mail
+       ${D}/usr/bin/maildirmake ${D}/var/spool/mail/.maildir
+       insinto /etc/courier
+       newins ${FILESDIR}/bofh bofh
+       newins ${FILESDIR}/locallowercase locallowercase
+       newins ${FILESDIR}/apache-sqwebmail.inc apache-sqwebmail.inc
+       echo 0 > ${D}/etc/courier/sizelimit
+
+       cd ${S}
+       dodoc AUTHORS BENCHMARKS ChangeLog* NEWS README TODO
+       dodoc authlib/README.authmysql.myownquery authlib/README.ldap courier/doc/*.txt
+       echo "See /usr/share/courier/htmldoc/index.html for docs in html format" \
+               >>${D}/usr/share/doc/${P}/README.htmldocs
+
+       insinto /usr/lib/courier/courier
+       insopts -m  755 -o mail -g mail
+       doins ${S}/courier/webmaild
+
+       # See bug #10574
+       # file which describes the webadmin password file
+       insinto /etc/courier/webadmin
+       insopts -m 400 -o mail -g mail
+       doins ${FILESDIR}/password.dist
+
+       # fixes bug #25028 courier doesn't symlink sendmail to /usr/sbin
+       # and 73486 for mailwrapper support
+       if use mailwrapper ; then
+               mv ${D}/usr/bin/sendmail ${D}/usr/bin/sendmail.courier
+               rm ${D}/usr/bin/rmail
+               insinto /etc/mail
+               doins ${FILESDIR}/mailer.conf
+       else
+               dosym /usr/bin/sendmail /usr/sbin/sendmail
+       fi
+
+       echo "MAILDIR=\$HOME/.maildir" >> ${D}/etc/courier/courierd
+
+       # we change the names of the binaries, but webadmin is still looking
+       # for the old names
+       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"
+
+       # avoid name collisions in /usr/sbin
+       local y
+       cd ${D}/usr/share/courier
+       set_dollarmaildir imapd imapd-ssl pop3d pop3d-ssl
+
+       cd ${D}/usr/sbin
+       for y in imapd imapd-ssl pop3d pop3d-ssl
+       do
+               mv ${y} courier-${y}
+       done
+
+       cd ${D}/etc/courier
+       for y in *.dist
+       do
+               cp ${y} ${y%%.dist}
+       done
+       touch esmtproutes
+       touch backuprelay
+       touch maildroprc
+       [ -e ldapaliasrc ] && chown mail:root ldapaliasrc
+       chg_cfg imapd-ssl COURIERTLS /usr/bin/couriertls
+       chg_cfg authdaemonrc authmodulelist authpam
+       chg_cfg authdaemonrc version authdaemond.plain
+       set_mime esmtpd esmtpd-ssl esmtpd-msa
+       set_maildir courierd imapd imapd-ssl pop3d pop3d-ssl sqwebmaild *.dist
+}
+
+pkg_postinst() {
+       cd ${S}
+       make install-configure
+
+       einfo "The following command will setup courier for your system:"
+       einfo "ebuild /var/db/pkg/${CATEGORY}/${PN}-${PV}/${PN}-${PV}.ebuild config"
+       echo
+       einfo "To enable webmail/webadmin, run the following commands:"
+       einfo "$ echo \"Include /etc/courier/apache-sqwebmail.inc\" >> /etc/apache*/conf/apache.conf"
+       einfo "$ chmod a+rx /usr/lib/courier/courier/webmail"
+       einfo "Then visit: http(s)://localhost/courier/webmail"
+       echo
+       ewarn "There is one init script (/etc/init.d/courier)."
+       ewarn "Each component is activated by a line in its config"
+       ewarn "which is in /etc/courier:"
+       ewarn "imapd"
+       ewarn "imapd-ssl"
+       ewarn "pop3d"
+       ewarn "pop3d-ssl"
+       ewarn "esmtpd"
+       ewarn "esmtpd-msa"
+       ewarn "esmtpd-ssl"
+       ewarn "hint: look for a line at the bottom of the file that looks like so"
+       ewarn "ESMTPDSTART=NO"
+       ewarn "and change it to YES for the services that you use"
+       echo
+       einfo "expect was removed as a dependency due to it's limited usefulness."
+       einfo "If you need the ability to change passwords via webmail _while_ using AUTHPAM, you'll"
+       einfo "have to emerge expect manually. Other auth modules are unaffected."
+       ebeep 5
+}
+
+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
+}
index 976902e7582f486d07fc4dd9acd171806f0cc002..e7bfcae6a58215f41b08667b22d354101416e1a3 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-mta/courier/courier-0.47.20041129.ebuild,v 1.3 2004/12/06 00:05:07 swtaylor Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/courier/courier-0.47.20041129.ebuild,v 1.4 2004/12/06 01:48:12 swtaylor Exp $
 
 inherit eutils
 
@@ -28,7 +28,6 @@ DEPEND="virtual/libc
        ldap? ( >=net-nds/openldap-1.2.11 )
        postgres? ( >=dev-db/postgresql-7.1.3 )
        spell? ( virtual/aspell-dict )
-       mailwrapper? ( >=net-mail/mailwrapper-0.2 )
        !mailwrapper? ( !virtual/mta )
        !virtual/mda
        !virtual/imapd"
@@ -38,6 +37,8 @@ RDEPEND="${DEPEND}
        dev-lang/perl
        sys-apps/procps"
 
+PDEPEND="mailwrapper? ( >=net-mail/mailwrapper-0.2 )"
+
 src_unpack() {
        unpack ${A}
        cd ${S}
diff --git a/mail-mta/courier/files/digest-courier-0.47-r1 b/mail-mta/courier/files/digest-courier-0.47-r1
new file mode 100644 (file)
index 0000000..60ac7ea
--- /dev/null
@@ -0,0 +1 @@
+MD5 639bb3b236914e3b86f287ce3f55264e courier-0.47.tar.bz2 4268038