diff options
author | Benedikt Boehm <hollow@gentoo.org> | 2007-06-17 10:24:00 +0000 |
---|---|---|
committer | Benedikt Boehm <hollow@gentoo.org> | 2007-06-17 10:24:00 +0000 |
commit | 6b65222c68a4a63bdd4b21b63a1abc5442fd7c87 (patch) | |
tree | a7f07be8bcf4a56a709bc57a02d52bf427f6fefe /mail-mta/qmail-ldap | |
parent | some more qmail-ldap use flags (diff) | |
download | historical-6b65222c68a4a63bdd4b21b63a1abc5442fd7c87.tar.gz historical-6b65222c68a4a63bdd4b21b63a1abc5442fd7c87.tar.bz2 historical-6b65222c68a4a63bdd4b21b63a1abc5442fd7c87.zip |
add QmailLDAP/Controls patch; add queue-custom-error.patch; prettify sed magic
Package-Manager: portage-2.1.2.9
Diffstat (limited to 'mail-mta/qmail-ldap')
-rw-r--r-- | mail-mta/qmail-ldap/ChangeLog | 8 | ||||
-rw-r--r-- | mail-mta/qmail-ldap/Manifest | 25 | ||||
-rw-r--r-- | mail-mta/qmail-ldap/files/digest-qmail-ldap-1.03-r6 | 15 | ||||
-rw-r--r-- | mail-mta/qmail-ldap/metadata.xml | 5 | ||||
-rw-r--r-- | mail-mta/qmail-ldap/qmail-ldap-1.03-r6.ebuild | 519 |
5 files changed, 560 insertions, 12 deletions
diff --git a/mail-mta/qmail-ldap/ChangeLog b/mail-mta/qmail-ldap/ChangeLog index 3937fc178e12..0d88eea7868a 100644 --- a/mail-mta/qmail-ldap/ChangeLog +++ b/mail-mta/qmail-ldap/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for mail-mta/qmail-ldap # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail-ldap/ChangeLog,v 1.16 2007/06/16 13:48:10 hollow Exp $ +# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail-ldap/ChangeLog,v 1.17 2007/06/17 10:24:00 hollow Exp $ + +*qmail-ldap-1.03-r6 (17 Jun 2007) + + 17 Jun 2007; Benedikt Böhm <hollow@gentoo.org> metadata.xml, + +qmail-ldap-1.03-r6.ebuild: + add QmailLDAP/Controls patch; add queue-custom-error.patch; prettify sed magic *qmail-ldap-1.03-r5 (16 Jun 2007) diff --git a/mail-mta/qmail-ldap/Manifest b/mail-mta/qmail-ldap/Manifest index 153134f9af17..3bf67782c91b 100644 --- a/mail-mta/qmail-ldap/Manifest +++ b/mail-mta/qmail-ldap/Manifest @@ -119,20 +119,29 @@ MD5 6ca7a3cdbfa79a51ee627c059319041d files/tcprules.d-Makefile.qmail 132 RMD160 275cf670b111f0673be05c5bb6362943af34e1f2 files/tcprules.d-Makefile.qmail 132 SHA256 505e202a5a28a036669e51d3fb51d3c02a3a35d76764c5e3f4fa0c43564a89d6 files/tcprules.d-Makefile.qmail 132 DIST qmail-1.03.tar.gz 220668 RMD160 b851f273f1d365d38efd949b1efcf35768ffa30f SHA1 18fb960481291a0503e93a94df3f6094edb7f27a SHA256 21ed6c562cbb55092a66197c35c8222b84115d1acab0854fdb1ad1f301626f88 +DIST qmail-ldap-1.03-20060201-controls20060401b.patch 195476 RMD160 c480b43f252432a334182eeeadb75be36a3179da SHA1 a5eb897080c6b6828731a1c646c7f0448ce10a92 SHA256 35cb5bd86f351543cb6b2aa4f8e4821d3d51e41b157abfa45b98da8d95601158 DIST qmail-ldap-1.03-20060201.patch.gz 270788 RMD160 c5702f1e4ddc9b5c4bd7d9960d6bab8514ef9d97 SHA1 c413cabc489cad971d1492d08400d5c0c291899b SHA256 92ba895df1957109ad856cc1d1554ece4d25d59017e77127dd52d76afd05525a +DIST qmail-ldap-1.03-queue-custom-error.patch 2472 RMD160 9d653c77c4f3982945f98e031d6b729628ef102a SHA1 1a23226c1725fccd462fe42f8e523f1b234d5912 SHA256 77536616109591ef5f4bc0f309879167a14b3d6ce4778ff3f2dcaee9a424c25a DIST qmail-ldap-1.03-spp-0.42.patch 13618 RMD160 508570102eea891b09bcf7e26c33ebe9c19526b3 SHA1 b8f9a133f56565a54a6083656e9b9d86a59e6698 SHA256 0f673a5944347d5e46c7beffd5d9fa760cecb2e61a3291c3392ffa6777cee8c8 EBUILD qmail-ldap-1.03-r5.ebuild 14312 RMD160 79139eeafb061d5d790e131213057b6b6c5ca47e SHA1 9144055af75c4f64374d6ae536bdc7b2dfc6c575 SHA256 53136669e942a76b361d20fcd889c4bd11b2d3498ef6d925a6118dadd99fa719 MD5 50cc283eae449ac5d5cf36113b77060d qmail-ldap-1.03-r5.ebuild 14312 RMD160 79139eeafb061d5d790e131213057b6b6c5ca47e qmail-ldap-1.03-r5.ebuild 14312 SHA256 53136669e942a76b361d20fcd889c4bd11b2d3498ef6d925a6118dadd99fa719 qmail-ldap-1.03-r5.ebuild 14312 -MISC ChangeLog 8202 RMD160 ec03dd9f39a45f9e7a2cc7069dabde54c65bfc39 SHA1 a9eaf3ad0cd0c1b815e6c5e91ecdd9c69d5bb4a6 SHA256 e2a681154728e5ba0d83fd4c99e5f94dd214dc4a55a6e53e6cab2af11163245d -MD5 b1971508ed1266ecf7cf00bacf847458 ChangeLog 8202 -RMD160 ec03dd9f39a45f9e7a2cc7069dabde54c65bfc39 ChangeLog 8202 -SHA256 e2a681154728e5ba0d83fd4c99e5f94dd214dc4a55a6e53e6cab2af11163245d ChangeLog 8202 -MISC metadata.xml 351 RMD160 3bc6ba6b890012efeba3513628722b60d1ba9810 SHA1 fc418e523f806f7c5149a618d3a625dce465f6dc SHA256 8fcab9b17e14be48f4a3f7ad99888f37b0706491523dcf8683f99ca7e0b8e954 -MD5 e6984382993ef6b46f6abfcc6781ae36 metadata.xml 351 -RMD160 3bc6ba6b890012efeba3513628722b60d1ba9810 metadata.xml 351 -SHA256 8fcab9b17e14be48f4a3f7ad99888f37b0706491523dcf8683f99ca7e0b8e954 metadata.xml 351 +EBUILD qmail-ldap-1.03-r6.ebuild 15192 RMD160 a2098a40ea5206a5082e2cb6f85775c65cd81391 SHA1 cbeadc2d7d7896194c5fd889ee6a7c3ec5b28852 SHA256 96a41289fccdddf9b14ad87286c728ca6ac77e8b97a723b666a92da3e5688f50 +MD5 a1d2b121ae9e489dc081d0cb2c1c301f qmail-ldap-1.03-r6.ebuild 15192 +RMD160 a2098a40ea5206a5082e2cb6f85775c65cd81391 qmail-ldap-1.03-r6.ebuild 15192 +SHA256 96a41289fccdddf9b14ad87286c728ca6ac77e8b97a723b666a92da3e5688f50 qmail-ldap-1.03-r6.ebuild 15192 +MISC ChangeLog 8413 RMD160 b4cef041657cb82b9b5bea959612953c7bee2dbd SHA1 99ae92f534979369531c4b4aa7608b7d09fbbe84 SHA256 807a81599eda5f96691803750994974be31a1fb48e6349bcc72b2b0b6a1c9895 +MD5 a0b02ada9d830db77317d066d4fa6067 ChangeLog 8413 +RMD160 b4cef041657cb82b9b5bea959612953c7bee2dbd ChangeLog 8413 +SHA256 807a81599eda5f96691803750994974be31a1fb48e6349bcc72b2b0b6a1c9895 ChangeLog 8413 +MISC metadata.xml 274 RMD160 b34739abe171522004ed69a7df6db178429ed47b SHA1 0714382cdd6138d1a7949f730c60df5e8058b483 SHA256 ae84918a025442981b8832fba60cb274de53724bbe092258d8388985d265bf1e +MD5 fbfbac7493a4261c305da3e4c3cb1ed7 metadata.xml 274 +RMD160 b34739abe171522004ed69a7df6db178429ed47b metadata.xml 274 +SHA256 ae84918a025442981b8832fba60cb274de53724bbe092258d8388985d265bf1e metadata.xml 274 MD5 5bb0b0fe448cc576033c262c27c8f151 files/digest-qmail-ldap-1.03-r5 780 RMD160 c0bd77623bdcfa364dbb8b5d6dc5e993e08b9f67 files/digest-qmail-ldap-1.03-r5 780 SHA256 91cf16cfaef5274cbc8fce507452c7e152911ba1fe150c6711d7484ea5a3e3c1 files/digest-qmail-ldap-1.03-r5 780 +MD5 c7761f44798950cc3f1922c50b6f5fc0 files/digest-qmail-ldap-1.03-r6 1400 +RMD160 90576f0931ed5c57d4cfd470a6f40071377e7eec files/digest-qmail-ldap-1.03-r6 1400 +SHA256 7a5042c7267e22e6d8d08cacff45ce38bc211222c2c21d123c4d73775936d5a9 files/digest-qmail-ldap-1.03-r6 1400 diff --git a/mail-mta/qmail-ldap/files/digest-qmail-ldap-1.03-r6 b/mail-mta/qmail-ldap/files/digest-qmail-ldap-1.03-r6 new file mode 100644 index 000000000000..ef8485304ff2 --- /dev/null +++ b/mail-mta/qmail-ldap/files/digest-qmail-ldap-1.03-r6 @@ -0,0 +1,15 @@ +MD5 622f65f982e380dbe86e6574f3abcb7c qmail-1.03.tar.gz 220668 +RMD160 b851f273f1d365d38efd949b1efcf35768ffa30f qmail-1.03.tar.gz 220668 +SHA256 21ed6c562cbb55092a66197c35c8222b84115d1acab0854fdb1ad1f301626f88 qmail-1.03.tar.gz 220668 +MD5 9bdeac2f203b6dfdd32f6ec59ab1496f qmail-ldap-1.03-20060201-controls20060401b.patch 195476 +RMD160 c480b43f252432a334182eeeadb75be36a3179da qmail-ldap-1.03-20060201-controls20060401b.patch 195476 +SHA256 35cb5bd86f351543cb6b2aa4f8e4821d3d51e41b157abfa45b98da8d95601158 qmail-ldap-1.03-20060201-controls20060401b.patch 195476 +MD5 55fa135415ee011f3f4234d7d52a3565 qmail-ldap-1.03-20060201.patch.gz 270788 +RMD160 c5702f1e4ddc9b5c4bd7d9960d6bab8514ef9d97 qmail-ldap-1.03-20060201.patch.gz 270788 +SHA256 92ba895df1957109ad856cc1d1554ece4d25d59017e77127dd52d76afd05525a qmail-ldap-1.03-20060201.patch.gz 270788 +MD5 c584cc3f14e92dbaa4d86333c7eb8efc qmail-ldap-1.03-queue-custom-error.patch 2472 +RMD160 9d653c77c4f3982945f98e031d6b729628ef102a qmail-ldap-1.03-queue-custom-error.patch 2472 +SHA256 77536616109591ef5f4bc0f309879167a14b3d6ce4778ff3f2dcaee9a424c25a qmail-ldap-1.03-queue-custom-error.patch 2472 +MD5 a5d9c4ba5a7b8c858341cc4ef8ebd447 qmail-ldap-1.03-spp-0.42.patch 13618 +RMD160 508570102eea891b09bcf7e26c33ebe9c19526b3 qmail-ldap-1.03-spp-0.42.patch 13618 +SHA256 0f673a5944347d5e46c7beffd5d9fa760cecb2e61a3291c3392ffa6777cee8c8 qmail-ldap-1.03-spp-0.42.patch 13618 diff --git a/mail-mta/qmail-ldap/metadata.xml b/mail-mta/qmail-ldap/metadata.xml index ab7537134ba7..53eec4364115 100644 --- a/mail-mta/qmail-ldap/metadata.xml +++ b/mail-mta/qmail-ldap/metadata.xml @@ -3,8 +3,7 @@ <pkgmetadata> <herd>qmail</herd> <maintainer> - <email>robbat2@gentoo.org</email> - <name>Robin H. Johnson</name> - <description>maintainer for the standard qmail part</description> + <email>hollow@gentoo.org</email> + <name>Benedikt Böhm</name> </maintainer> </pkgmetadata> diff --git a/mail-mta/qmail-ldap/qmail-ldap-1.03-r6.ebuild b/mail-mta/qmail-ldap/qmail-ldap-1.03-r6.ebuild new file mode 100644 index 000000000000..fc468cd36554 --- /dev/null +++ b/mail-mta/qmail-ldap/qmail-ldap-1.03-r6.ebuild @@ -0,0 +1,519 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail-ldap/qmail-ldap-1.03-r6.ebuild,v 1.1 2007/06/17 10:24:00 hollow Exp $ + +inherit eutils toolchain-funcs fixheadtails flag-o-matic + +QMAIL_LDAP_PATCH=20060201 +QMAIL_SPP_PATCH=0.42 +CONTROLS_PATCH=20060401b + +DESCRIPTION="qmail -- a secure, reliable, efficient, simple message transfer agent" +HOMEPAGE=" + http://www.qmail-ldap.org + http://cr.yp.to/qmail.html + http://qmail.org/ +" +SRC_URI=" + mirror://qmail/qmail-${PV}.tar.gz + http://www.nrg4u.com/qmail/${P}-${QMAIL_LDAP_PATCH}.patch.gz + mirror://gentoo/${P}-${QMAIL_LDAP_PATCH}-controls${CONTROLS_PATCH}.patch + mirror://gentoo/${P}-queue-custom-error.patch + qmail-spp? ( mirror://gentoo/${P}-spp-${QMAIL_SPP_PATCH}.patch ) +" + +LICENSE="as-is" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="cluster controldb gencertdaily highvolume mailwrapper qmail-spp rfc2307 rfc822 ssl zlib" +RESTRICT="test" + +DEPEND=" + !mail-mta/qmail + sys-apps/groff + net-mail/queue-repair + ssl? ( dev-libs/openssl ) + net-nds/openldap +" +RDEPEND=" + mailwrapper? ( net-mail/mailwrapper ) + !mailwrapper? ( !virtual/mta ) + sys-apps/ucspi-tcp + sys-process/daemontools + net-mail/dot-forward + ${DEPEND} +" +PROVIDE=" + virtual/mta + virtual/mda +" + +# Important: QMAIL_CONF_SPLIT should always be a prime number! +MY_CONF_SPLIT="${QMAIL_CONF_SPLIT:-23}" + +MY_S="${WORKDIR}"/qmail-${PV} +TCPRULES_DIR=/etc/tcprules.d + +if use gencertdaily; then + CRON_FOLDER=cron.daily +else + CRON_FOLDER=cron.hourly +fi + + +src_unpack() { + unpack qmail-${PV}.tar.gz + cd "${MY_S}" + + # main ldap patch + # includes: netqmail-1.05, EXTTODO, BIGTODO, TLS/SMTPAUTH, 0.0.0.0 fix + epatch ${DISTDIR}/${P}-${QMAIL_LDAP_PATCH}.patch.gz + + # QmailLDAP/Controls patch + # includes: RFC2307/822 fixes + epatch ${DISTDIR}/${P}-${QMAIL_LDAP_PATCH}-controls${CONTROLS_PATCH}.patch + + # fix libraries for controls patch + sed -i -e 's|NEWLDAPPROGLIBS=.*|& str.a|' Makefile + + # Add custom bounce messages to qmail-queue + epatch ${DISTDIR}/${P}-queue-custom-error.patch + + # qmail-spp patch + use qmail-spp && epatch ${DISTDIR}/${P}-spp-${QMAIL_SPP_PATCH}.patch + + if [[ -n "${QMAIL_PATCH_DIR}" && -d "${QMAIL_PATCH_DIR}" ]] + then + echo + ewarn "You enabled custom patches from ${QMAIL_PATCH_DIR}." + ewarn "Be warned that you won't get any support when using " + ewarn "this feature. You're on your own from now!" + ebeep + epatch "${QMAIL_PATCH_DIR}/"* + echo + fi + + # makefile options + local INCLUDES="-I/usr/include" + local LDAPLIBS="-L/usr/lib -lldap -llber" + local LDAPFLAGS="-DALTQUEUE -DEXTERNAL_TODO -DDASH_EXT -DSMTPEXECCHECK" + local SECUREBIND= CONTROLDB= RFCFLAGS= + + use cluster && LDAPFLAGS="${LDAPFLAGS} -DQLDAP_CLUSTER" + use highvolume && LDAPFLAGS="${LDAPFLAGS} -DBIGTODO" + use zlib && LDAPFLAGS="${LDAPFLAGS} -DDATA_COMPRESS -D QMQP_COMPRESS" + + use controldb && CONTROLDB="-DUSE_CONTROLDB -DQLDAP_BAILOUT" + + use rfc2307 && RFCFLAGS="${RFCFLAGS} -DRFC2307" + use rfc822 && RFCFLAGS="${RFCFLAGS} -DRFC822" + + use ssl && SECUREBIND="-DSECUREBIND_TLS -DSECUREBIND_SSL" + + # a lot of sed magic to get Makefile right + local EXP= + + EXP="${EXP} s|^#LDAPINCLUDES=.*|LDAPINCLUDES=${INCLUDES}|;" + EXP="${EXP} s|^#LDAPLIBS=.*|LDAPLIBS=${LDAPLIBS}|;" + EXP="${EXP} s|^#LDAPFLAGS=.*|LDAPFLAGS=${LDAPFLAGS}|;" + + EXP="${EXP} s|^#CONTROLDB=.*|CONTROLDB=${CONTROLDB}|;" + EXP="${EXP} s|^#RFCFLAGS=.*|RFCFLAGS=${RFCFLAGS}|;" + EXP="${EXP} s|^#SECUREBIND=.*|SECUREBIND=${SECUREBIND}|;" + + # TODO: do we even need this with LDAP? + EXP="${EXP} s|^#SHADOWLIBS=.*|SHADOWLIBS=-lcrypt|;" + + # automagic maildir creation + EXP="${EXP} s|^#\(MDIRMAKE=.*\)|\1|;" + EXP="${EXP} s|^#\(HDIRMAKE=.*\)|\1|;" + + use zlib && EXP="${EXP} s|^#ZLIB=.*|ZLIB=-lz|;" + + if use ssl; then + EXP="${EXP} s|^#\(TLS=.*\)|\1|;" + EXP="${EXP} s|^#TLSINCLUDES=.*|TLSINCLUDES=${INCLUDES}|;" + EXP="${EXP} s|^#TLSLIBS=.*|TLSLIBS=-L/usr/lib -lssl -lcrypto|;" + EXP="${EXP} s|^#OPENSSLBIN=.*|OPENSSLBIN=/usr/bin/openssl|;" + fi + + sed -i -e "${EXP}" Makefile || die "could not patch Makefile" + + is_prime ${MY_CONF_SPLIT} || die 'QMAIL_CONF_SPLIT is not a prime number.' + einfo "Using conf-split value of ${MY_CONF_SPLIT}." + + ht_fix_file Makefile* + append-ldflags $(bindnow-flags) + + # The following commands patch the conf-{cc,ld} files to use the user's + # specified CFLAGS and LDFLAGS. These rather complex commands are needed + # because a user supplied patch might apply changes to these files, too. + # Fixes Bug #165981. + echo "$(head -n 1 "${MY_S}/conf-cc" | sed -e "s#^g\?cc\s\+\(-O2\)\?#$(tc-getCC) #")" \ + "${CFLAGS}" > "${MY_S}/conf-cc.tmp" && + mv "${MY_S}/conf-cc.tmp" "${MY_S}/conf-cc" || die 'Patching conf-cc failed.' + + echo "$(head -n 1 "${MY_S}/conf-ld" | sed -e "s#^g\?cc\s\+\(-s\)\?#$(tc-getCC) #")" \ + "${LDLAGS}" > "${MY_S}/conf-ld.tmp" && + mv "${MY_S}/conf-ld.tmp" "${MY_S}/conf-ld" || die 'Patching conf-ld failed.' + + echo -n "${MY_CONF_SPLIT}" > "${MY_S}/conf-split" +} + +src_compile() { + cd "${MY_S}" + emake it man ldap || die "make failed" +} + +src_install() { + cd "${MY_S}" + + einfo "Setting up directory hierarchy ..." + + diropts -m 755 -o root -g qmail + dodir /var/qmail/{,bin,boot,control} + + keepdir /var/qmail/users + + diropts -m 755 -o alias -g qmail + dodir /var/qmail/alias + + einfo "Installing the qmail software ..." + + insopts -o root -g qmail -m 755 + insinto /var/qmail/boot + doins home home+df proc proc+df binm1 binm1+df binm2 \ + binm2+df binm3 binm3+df + + insinto /var/qmail/bin + + insopts -o qmailq -g qmail -m 4711 + doins qmail-queue + + insopts -o root -g qmail -m 700 + doins qmail-{lspawn,start,newu,newmrh} + + insopts -o root -g qmail -m 711 + doins qmail-{getpw,local,remote,rspawn,clean,send,pw2u} splogger + + insopts -o root -g qmail -m 755 + doins bouncesaying condredirect config-fast datemail elq \ + except forward maildir2mbox maildirmake maildirwatch \ + mailsubj pinq predate preline qail qbiff \ + qmail-{inject,pop3d,popup,qmqpc,qmqpd,qmtpd,qread} \ + qmail-{qstat,showctl,smtpd,tcpok,tcpto} \ + qreceipt qsmhook sendmail tcp-env + doins auth_{imap,pop,smtp} condwrite digest dirmaker \ + pbs{add,check,dbd} qmail-{cdb,forward,group} \ + qmail-{ldaplookup,quotawarn,reply,secretary,todo,verify} + + einfo "Installing manpages" + into /usr + doman *.[1-8] + + dodoc BLURB* CHANGES FAQ INSTALL* PIC* README* REMOVE* SECURITY \ + SENDMAIL SYSDEPS TARGETS TEST* THANKS* THOUGHTS TODO* \ + UPGRADE VERSION* \ + QLDAP* ${FILESDIR}/samples.ldif + + # use the correct maildirmake + # the courier-imap one has some extensions that are nicer + [[ -e /usr/bin/maildirmake ]] && \ + MAILDIRMAKE="/usr/bin/maildirmake" || \ + MAILDIRMAKE="${D}/var/qmail/bin/maildirmake" + + einfo "Adding env.d entry for qmail" + insopts -m 644 + doenvd ${FILESDIR}/99qmail + + einfo "Creating sendmail replacement ..." + diropts -m 755 + dodir /usr/sbin /usr/lib + + if use mailwrapper + then + insinto /etc/mail + doins ${FILESDIR}/mailer.conf + else + dosym /var/qmail/bin/sendmail /usr/sbin/sendmail + dosym /var/qmail/bin/sendmail /usr/lib/sendmail + fi + + einfo "Setting up the default aliases ..." + diropts -m 700 -o alias -g qmail + ${MAILDIRMAKE} ${D}/var/qmail/alias/.maildir + keepdir /var/qmail/alias/.maildir/{cur,new,tmp} + + for i in /var/qmail/alias/.qmail-{mailer-daemon,postmaster,root} + do + if [[ ! -f ${i} ]]; then + touch ${D}${i} + fowners alias:qmail ${i} + fi + done + + einfo "Setting up maildirs by default in the account skeleton ..." + diropts -m 755 -o root -g root + insinto /etc/skel + newins ${FILESDIR}/dot-qmail .qmail.sample + fperms 644 /etc/skel/.qmail.sample + ${MAILDIRMAKE} ${D}/etc/skel/.maildir + keepdir /etc/skel/.maildir/{cur,new,tmp} + + einfo "Setting up all services (send, smtp, qmtp, qmqp, pop3) ..." + insopts -o root -g root -m 755 + diropts -m 755 -o root -g root + dodir /var/qmail/supervise + + for i in send smtpd qmtpd qmqpd pop3d; do + insopts -o root -g root -m 755 + diropts -m 755 -o root -g root + dodir /var/qmail/supervise/qmail-${i}{,/log} + fperms +t /var/qmail/supervise/qmail-${i}{,/log} + insinto /var/qmail/supervise/qmail-${i} + newins ${FILESDIR}/run-qmail-${i} run + insinto /var/qmail/supervise/qmail-${i}/log + newins ${FILESDIR}/run-qmail-${i}-log run + diropts -m 755 -o qmaill + keepdir /var/log/qmail/qmail-${i} + done + + dodir ${TCPRULES_DIR} + insinto ${TCPRULES_DIR} + newins ${FILESDIR}/tcprules.d-Makefile.qmail Makefile.qmail + for i in smtp qmtp qmqp pop3; do + newins ${FILESDIR}/tcp.${i}.sample tcp.qmail-${i} + done + + einfo "Installing OpenLDAP schema ..." + insinto /etc/openldap/schema + doins qmail.schema + + einfo "Installing some stock configuration files" + insinto /var/qmail/control + insopts -o root -g root -m 644 + doins ${FILESDIR}/conf-{common,send,qmtpd,qmqpd,pop3d} + newins ${FILESDIR}/conf-smtpd conf-smtpd + newins ${FILESDIR}/dot-qmail defaultdelivery + use ssl && \ + doins ${FILESDIR}/servercert.cnf + + einfo "Configuration sanity checker and launcher" + into /var/qmail + insopts -o root -g root -m 644 + dobin ${FILESDIR}/qmail-config-system + + if use qmail-spp; then + einfo "Installing files for qmail-spp" + insinto /var/qmail/control/ + doins ${FILESDIR}/smtpplugins + keepdir /var/qmail/plugins/ + fi + + if use ssl; then + einfo "SSL Certificate creation script" + dobin ${FILESDIR}/mkservercert + einfo "RSA key generation cronjob" + insinto /etc/${CRON_FOLDER} + doins ${FILESDIR}/qmail-genrsacert.sh + chmod +x ${D}/etc/${CRON_FOLDER}/qmail-genrsacert.sh + + # for some files + keepdir /var/qmail/control/tlshosts/ + fi +} + +rootmailfixup() { + # so you can check mail as root easily + local TMPCMD="ln -sf /var/qmail/alias/.maildir/ ${ROOT}/root/.maildir" + if [[ -d "${ROOT}/root/.maildir" && ! -L "${ROOT}/root/.maildir" ]] ; then + elog "Previously the qmail ebuilds created /root/.maildir/ but not" + elog "every mail was delivered there. If the directory does not" + elog "contain any mail, please delete it and run:" + elog "${TMPCMD}" + else + ${TMPCMD} + fi + chown -R alias:qmail ${ROOT}/var/qmail/alias/.maildir 2>/dev/null +} + +buildtcprules() { + for i in smtp qmtp qmqp pop3; do + # please note that we don't check if it exists + # as we want it to make the cdb files anyway! + f=tcp.qmail-${i} + src=${ROOT}${TCPRULES_DIR}/${f} + cdb=${ROOT}${TCPRULES_DIR}/${f}.cdb + tmp=${ROOT}${TCPRULES_DIR}/.${f}.tmp + [[ -e ${src} ]] && tcprules ${cdb} ${tmp} < ${src} + done +} + +pkg_postinst() { + einfo "Setting up the message queue hierarchy ..." + /usr/bin/queue-repair.py \ + --create --split "${MY_CONF_SPLIT}" \ + $(use highvolume && echo '--bigtodo' || echo '--no-bigtodo') \ + ${ROOT}/var/qmail >/dev/null || \ + die 'queue-repair failed' + + rootmailfixup + buildtcprules + + # for good measure + env-update + + elog "To setup qmail to run out-of-the-box on your system, run:" + elog "emerge --config =${CATEGORY}/${PF}" + elog + elog "To start qmail at boot you have to add svscan to your startup" + elog "and create the following links:" + elog "ln -s /var/qmail/supervise/qmail-send /service/qmail-send" + elog "ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd" + elog + elog "To start the pop3 server as well, create the following link:" + elog "ln -s /var/qmail/supervise/qmail-pop3d /service/qmail-pop3d" + elog + elog "Additionally, the QMTP and QMQP protocols are supported, " + elog "and can be started as:" + elog "ln -s /var/qmail/supervise/qmail-qmtpd /service/qmail-qmtpd" + elog "ln -s /var/qmail/supervise/qmail-qmqpd /service/qmail-qmqpd" + elog + elog "Additionally, if you wish to run qmail right now, you should " + elog "run this before anything else:" + elog "source /etc/profile" + elog + elog "If you are looking for documentation, check those links:" + elog "http://www.lifewithqmail.com/ldap/" + elog " -- Life with qmail-ldap" + elog + elog "For sample ldifs, please check" + elog "/usr/share/doc/${PF}/samples.ldif.gz" +} + +pkg_preinst() { + mkdir -p ${TCPRULES_DIR} + for proto in smtp qmtp qmqp pop3; do + for ext in '' .cdb; do + old="/etc/tcp.${proto}${ext}" + new="${TCPRULES_DIR}/tcp.qmail-${proto}${ext}" + fail=0 + if [[ -f "$old" && ! -f "$new" ]]; then + einfo "Moving $old to $new" + cp $old $new || fail=1 + else + fail=1 + fi + if [[ "${fail}" = 1 && -f ${old} ]]; then + eerror "Error moving $old to $new, be sure to check the" + eerror "configuration! You may have already moved the files," + eerror "in which case you can delete $old" + fi + done + done +} + +# Candidate for eclass +pkg_setup() { + # keep in sync with mini-qmail pkg + einfo "Creating groups and users" + enewgroup nofiles 200 + enewgroup qmail 201 + enewuser alias 200 -1 /var/qmail/alias 200 + enewuser qmaild 201 -1 /var/qmail 200 + enewuser qmaill 202 -1 /var/qmail 200 + enewuser qmailp 203 -1 /var/qmail 200 + enewuser qmailq 204 -1 /var/qmail 201 + enewuser qmailr 205 -1 /var/qmail 201 + enewuser qmails 206 -1 /var/qmail 201 +} + +pkg_config() { + # avoid some weird locale problems + export LC_ALL=C + + if [[ ${ROOT} = / ]] ; then + if [[ ! -f ${ROOT}var/qmail/control/me ]] ; then + export qhost=$(hostname --fqdn) + ${ROOT}var/qmail/bin/config-fast $qhost + fi + else + ewarn "Skipping some configuration as it MUST be run on the final host" + fi + + einfo "Accepting relaying by default from all ips configured on this machine." + LOCALIPS=$(/sbin/ifconfig | grep inet | cut -d' ' -f 12 -s | cut -b 6-20) + TCPSTRING=":allow,RELAYCLIENT=\"\",RBLSMTPD=\"\"" + for ip in $LOCALIPS; do + myline="${ip}${TCPSTRING}" + for proto in smtp qmtp qmqp; do + f="${ROOT}${TCPRULES_DIR}/tcp.qmail-${proto}" + egrep -q "${myline}" ${f} || echo "${myline}" >>${f} + done + done + + buildtcprules + + if use ssl; then + ebegin "Generating RSA keys for SSL/TLS, this can take some time" + ${ROOT}/etc/${CRON_FOLDER}/qmail-genrsacert.sh + eend $? + einfo "Creating a self-signed ssl-certificate:" + ${ROOT}/var/qmail/bin/mkservercert + einfo "If you want to have a properly signed certificate " + einfo "instead, do the following:" + # space at the end of the string because of the current implementation + # of einfo + einfo "openssl req -new -nodes -out req.pem \\ " + einfo " -config /var/qmail/control/servercert.cnf \\ " + einfo " -keyout /var/qmail/control/servercert.pem" + einfo "Send req.pem to your CA to obtain signed_req.pem, and do:" + einfo "cat signed_req.pem >> /var/qmail/control/servercert.pem" + fi +} + +# --- TODO: The following code can be moved to prime.eclass -- +# Original Author: Michael Hanselmann <hansmi@gentoo.org> +# Purpose: Functions for prime numbers + +# Prints a list of primes between min and max inclusive +# +# Note: this functions gets very slow when used with large numbers. +# +# Syntax: primes <min> <max> +primes() { + local min=${1} max=${2} + local result= primelist=2 i p + + [[ ${min} -le 2 ]] && result="${result} 2" + + for ((i = 3; i <= max; i += 2)) + do + for p in ${primelist} + do + [[ $[i % p] == 0 || $[p * p] -gt ${i} ]] && \ + break + done + if [[ $[i % p] != 0 ]] + then + primelist="${primelist} ${i}" + [[ ${i} -ge ${min} ]] && \ + result="${result} ${i}" + fi + done + + echo ${result} +} + +# Checks wether a number is a prime number +# +# Syntax: is_prime <number> +is_prime() { + local number=${1} i + for i in $(primes ${number} ${number}) + do + [[ ${i} == ${number} ]] && return 0 + done + return 1 +} +# --- end of prime.eclass --- |