diff options
author | Brian Jackson <iggy@gentoo.org> | 2003-07-23 04:01:05 +0000 |
---|---|---|
committer | Brian Jackson <iggy@gentoo.org> | 2003-07-23 04:01:05 +0000 |
commit | 22659cb85db9b5bf0271b0656ea9e666a3397d5d (patch) | |
tree | 32b146811a7b8db8904efe82765b51c25e63a7a7 | |
parent | fix bug 25028, and switch to single init script (diff) | |
download | historical-22659cb85db9b5bf0271b0656ea9e666a3397d5d.tar.gz historical-22659cb85db9b5bf0271b0656ea9e666a3397d5d.tar.bz2 historical-22659cb85db9b5bf0271b0656ea9e666a3397d5d.zip |
fix bug 25028, and switch to single init script
-rw-r--r-- | net-mail/courier/Manifest | 2 | ||||
-rw-r--r-- | net-mail/courier/courier-0.42.2-r2.ebuild | 349 | ||||
-rw-r--r-- | net-mail/courier/files/courier-init | 168 | ||||
-rw-r--r-- | net-mail/courier/files/digest-courier-0.42.2-r2 | 1 |
4 files changed, 519 insertions, 1 deletions
diff --git a/net-mail/courier/Manifest b/net-mail/courier/Manifest index a1d3c2585db8..1ab66d50a52e 100644 --- a/net-mail/courier/Manifest +++ b/net-mail/courier/Manifest @@ -1,7 +1,7 @@ MD5 b573cbab1e7859e1648d7ef48da3592d courier-0.42.2-r2.ebuild 10154 MD5 53327473ab98ae5f796aa93d31126841 courier-0.42.2-r1.ebuild 9800 MD5 cde0b9d363f6d323dff0b3435d2e89d0 courier-0.42.2.ebuild 9694 -MD5 aa0ca31939f522cd2e90b1bcee5626c7 ChangeLog 4534 +MD5 ea744618a84ea0ec955723c788c8f747 ChangeLog 4534 MD5 891fa054ac6cfcaee491ccaae9b84a85 metadata.xml 463 MD5 52f032e570c6f5f9f69b4e4bdfa562a1 files/password.dist 247 MD5 a546a21f960e4f921e71f614f719a2ce files/bofh 23 diff --git a/net-mail/courier/courier-0.42.2-r2.ebuild b/net-mail/courier/courier-0.42.2-r2.ebuild new file mode 100644 index 000000000000..28a77f6ae818 --- /dev/null +++ b/net-mail/courier/courier-0.42.2-r2.ebuild @@ -0,0 +1,349 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /home/cvsroot/gentoo-x86/net-mail/courier/courier-0.41.0.ebuild + +inherit flag-o-matic eutils + +filter-flags -fomit-frame-pointer +filter-flags -funroll-loops + +DESCRIPTION="An MTA designed specifically for maildirs" +SRC_URI="mirror://sourceforge/courier/${P}.tar.bz2" +HOMEPAGE="http://www.courier-mta.org/" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~x86 -ppc -sparc" +IUSE="gdbm tcltk postgres ldap berkdb mysql pam nls tcltk ipv6 spell fax crypt" + +PROVIDE="virtual/mta + virtual/imapd" + +RDEPEND="virtual/glibc + >=dev-tcltk/expect-5.33.0 + >=dev-libs/openssl-0.9.6 + crypt? ( >=app-crypt/gnupg-1.0.4 ) + fax? ( >=media-libs/netpbm-9.12 + >=app-text/ghostscript-7.05.5 + >=net-dialup/mgetty-1.1.28 ) + pam? ( >=sys-libs/pam-0.75 ) + berkdb? ( >=sys-libs/db-3.2 ) + gdbm? ( >=sys-libs/gdbm-1.8.0 ) + mysql? ( >=dev-db/mysql-3.23.36 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + postgres? ( >=dev-db/postgresql-7.1.3 ) + tcltk? ( >=dev-tcltk/expect-5.33.0 ) + spell? ( virtual/aspell-dict )" +DEPEND="${RDEPEND} + app-admin/fam-oss + dev-lang/perl + sys-apps/procps" + +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 berkdb \ + && myconf="${myconf} --with-db=db" \ + || myconf="${myconf} --with-db=gdbm" + 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 \ + --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 +} + +src_install() { + dodir /var/lib/courier + dodir /etc/pam.d + make install DESTDIR=${D} || die + # fix bug #15873 bad owner on /var/run/courier + diropts -o mail -g mail + keepdir /var/run/courier + + 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 + newexe ${FILESDIR}/courier courier-old + newexe ${FILESDIR}/courier-authdaemond courier-authdaemond + newexe ${FILESDIR}/courier-ldapaliasd courier-ldapaliasd + newexe ${FILESDIR}/courier-mta courier-mta + newexe ${FILESDIR}/courier-esmtpd courier-esmtpd + newexe ${FILESDIR}/courier-esmtpd-ssl courier-esmtpd-ssl + newexe ${FILESDIR}/courier-esmtpd-msa courier-esmtpd-msa + newexe ${FILESDIR}/courier-imapd courier-imapd + newexe ${FILESDIR}/courier-imapd-ssl courier-imapd-ssl + newexe ${FILESDIR}/courier-pop3d-ssl courier-pop3d-ssl + newexe ${FILESDIR}/courier-pop3d courier-pop3d + newexe ${FILESDIR}/courier-filterd courier-filterd + + einfo "Setting up maildirs by default in the account skeleton ..." + diropts -m 755 -o root -g root + insinto /etc/skel + ${D}/usr/bin/maildirmake ${D}/etc/skel/.maildir + newins ${FILESDIR}/dot_courier .courier + fperms 644 /etc/skel/.courier + ${D}/usr/bin/maildirmake ${D}/var/spool/mail/.maildir + insinto /etc/courier + newins ${FILESDIR}/bofh bofh + newins ${FILESDIR}/locallowercase locallowercase + newins ${FILESDIR}/sizelimit sizelimit + newins ${FILESDIR}/apache-sqwebmail.inc apache-sqwebmail.inc + + touch ${D}/var/lib/courier/webmail-logincache/.keep + touch ${D}/var/lib/courier/tmp/broken/.keep + touch ${D}/var/lib/courier/msgs/.keep + touch ${D}/var/lib/courier/msgq/.keep + touch ${D}/var/lib/courier/filters/.keep + touch ${D}/var/lib/courier/faxtmp/.keep + touch ${D}/var/lib/courier/calendar/public/.keep + touch ${D}/var/lib/courier/calendar/private/.keep + touch ${D}/var/lib/courier/calendar/localcache/.keep + touch ${D}/var/lib/courier/calendar/.keep + touch ${D}/var/lib/courier/allfilters/.keep + + dodoc AUTHORS BENCHMARKS ChangeLog* NEWS README TODO + + # 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 + dosym /usr/bin/sendmail /usr/sbin/sendmail + +} + +pkg_preinst() { + # avoid name collisions in /usr/sbin + local y + cd ${D}/usr/share/courier + set_maildir 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 + 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 +} + +pkg_postinst() { + cd ${S} + make install-configure + + # fixes bug #15873 for upgrades, should be able to yank this sometime in + # the future + chown --recursive mail.mail ${ROOT}/var/run/courier + + # need to do this for new installs to be able to start courier + # without having to run rc-update ... + /etc/init.d/depscan.sh + + einfo "The following command will setup courier for you 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" + + ewarn "The init scripts for courier have changed." + ewarn "There is now one init script (/etc/init.d/courier). The rest" + ewarn "are obsolete. You can remove /etc/init.d/courier-*. You also" + ewarn "need to edit the following files in /etc/courier to enable" + ewarn "the different services:" + ewarn "imapd" + ewarn "pop3d" + ewarn "pop3d-ssl" + ewarn "esmtpd" + ewarn "imapd-ssl" + 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 -ne "\a" ; sleep 1 + echo -ne "\a" ; sleep 1 + echo -ne "\a" ; sleep 1 + echo -ne "\a" ; sleep 1 + echo -ne "\a" ; sleep 1 +} + +pkg_config() { + mailhost=`hostname` + export mailhost + + domainname=`echo ${mailhost} | sed -e "s/[^\.]*\.\(.*\)/\1/"` + 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 +} diff --git a/net-mail/courier/files/courier-init b/net-mail/courier/files/courier-init new file mode 100644 index 000000000000..c18d8d9ea430 --- /dev/null +++ b/net-mail/courier/files/courier-init @@ -0,0 +1,168 @@ +#!/sbin/runscript +# Portions Copyright 2003 Gentoo Linux +# +# script originally from Courier distfile original name = courier.sysvinit +# adapted for Gentoo by Brian Jackson +# + +prefix="/usr" +exec_prefix="/usr/bin" +sysconfdir="/etc/courier" +sbindir="/usr/sbin" +libexecdir="/usr/libcourier" +datadir="/usr/share/courier" +#authlib="/usr/lib/courier/authlib" + + +depend() { + need net +} + +checkconfig() { + + [ -f ${sysconfdir}/pop3d-ssl ] && . ${sysconfdir}/pop3d-ssl + + # If we do not have a certificate, make one up. + [ ! -f "${datadir}/pop3d.pem" ] && \ + ebegin " generating-POP3-SSL-certificate..." && "${sbindir}/mkpop3dcert" + + [ -f ${sysconfdir}/imapd-ssl ] && . ${sysconfdir}/imapd-ssl + + # If we do not have a certificate, make one up. + [ ! -f ${datadir}/imapd.pem ] && \ + ebegin " generating-IMAP-SSL-certificate..." && "${sbindir}/mkimapdcert" + + # First time after install create aliases.dat and smtpaccess.dat + + [ -f ${sysconfdir}/aliases.dat ] || ${sbindir}/makealiases + + [ -f ${sysconfdir}/${ACCESSFILE}.dat ] || ${sbindir}/makesmtpaccess + + [ -f ${sysconfdir}/${ACCESSFILE}.dat ] || ${sbindir}/makesmtpaccess-msa + + # we need this for now to check for the old init scripts + if [ -f /etc/init.d/courier-authdaemond ] ; then + einfo "As of courier-0.42.2-r2, there is only one init script used" + einfo "you can remove /etc/init.d/courier-*. /etc/init.d/courier is" + einfo "the only one you need." + fi + +} + +start() { + # Start daemons. + ebegin "Starting Courier mail server:" + + checkconfig || return 1 + + ebegin " Starting courierfilterd" + ${sbindir}/courierfilter start + + [ -x ${libexecdir}/authlib/authdaemond ] && \ + ${libexecdir}/authlib/authdaemond start && ebegin " Starting authdaemond" + + [ -x ${sbindir}/courierldapaliasd ] && \ + ${sbindir}/courierldapaliasd start && ebegin " Starting courierldapaliasd" + + ebegin " Starting courierd" + ${sbindir}/courier start + + # start esmtpd if so written + [ -f ${sysconfdir}/esmtpd ] && source ${sysconfdir}/esmtpd + case x$ESMTPDSTART in + x[yY]*) + ebegin " Starting esmtpd" + ${sbindir}/esmtpd start + ;; + esac + + # start esmtpd-msa if so written + [ -f ${sysconfdir}/esmtpd-msa ] && source ${sysconfdir}/esmtpd-msa + case x$ESMTPDSTART in + x[yY]*) + ebegin " Starting esmtpd-msa" + ${sbindir}/esmtpd-msa start + ;; + esac + + # start pop3d if so written + [ -f ${sysconfdir}/pop3d ] && source ${sysconfdir}/pop3d + case x$POP3DSTART in + x[yY]*) + ebegin " courier-pop3d" + ${sbindir}/courier-pop3d start + ;; + esac + + # start pop3d-ssl if so written + [ -f ${sysconfdir}/pop3d-ssl ] && source ${sysconfdir}/pop3d-ssl + case x$POP3DSTART in + x[yY]*) + ebegin " courier-pop3d" + ${sbindir}/courier-pop3d-ssl start + ;; + esac + + [ -f ${sysconfdir}/imapd ] && source ${sysconfdir}/imapd + case x$IMAPDSTART in + x[yY]*) + ebegin " courier-imapd" + ${sbindir}/courier-imapd start + ;; + esac + + [ -f ${sysconfdir}/imapd-ssl ] && source ${sysconfdir}/imapd-ssl + case x$IMAPDSSLSTART in + x[yY]*) + ebegin " courier-imapd-ssl" + ${sbindir}/courier-imapd-ssl start + ;; + esac + + eend $? +} + +stop() { + ebegin "Stopping Courier mail server:" + + ebegin " Stopping courier-esmtpd" + ${sbindir}/esmtpd stop + + ebegin " Stopping courier-esmtpd-msa" + ${sbindir}/esmtpd-msa stop + + [ -x ${sbindir}/courier-pop3d ] && \ + ebegin " Stopping courier-pop3d" && ${sbindir}/courier-pop3d stop + + [ -x ${sbindir}/pop3d-ssl ] && \ + ebegin " Stopping courier-pop3d-ssl" && ${sbindir}/courier-pop3d-ssl stop + + [ -x ${sbindir}/courier-imapd ] && \ + ebegin " Stopping courier-imapd" && ${sbindir}/courier-imapd stop + + + [ -x ${sbindir}/courier-imapd-ssl ] && \ + ebegin " Stopping courier-imapd-ssl" && ${sbindir}/courier-imapd-ssl stop + + ebegin " Stopping courierd" + ${sbindir}/courier stop + + [ -x ${sbindir}/courierldapaliasd ] && \ + ( ${sbindir}/courierldapaliasd stop ; ebegin " Stoping courierldapaliasd" ) + + [ -x ${libexecdir}/authlib/authdaemond ] && \ + ( ${libexecdir}/authlib/authdaemond stop ; ebegin " Stoping authdaemond" ) + + ${sbindir}/courierfilter stop + ebegin " Stopping courierfilterd" + + eend $? +} + + + +# restart() { +# ebegin "Restarting courier filterd" +# /usr/sbin/courierfilter restart +# eend $? +# } diff --git a/net-mail/courier/files/digest-courier-0.42.2-r2 b/net-mail/courier/files/digest-courier-0.42.2-r2 new file mode 100644 index 000000000000..62f09dfd9bee --- /dev/null +++ b/net-mail/courier/files/digest-courier-0.42.2-r2 @@ -0,0 +1 @@ +MD5 f607cbd949dd0fe7f138cf3b65d702f4 courier-0.42.2.tar.bz2 3348347 |