summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenedikt Boehm <hollow@gentoo.org>2007-06-17 10:24:00 +0000
committerBenedikt Boehm <hollow@gentoo.org>2007-06-17 10:24:00 +0000
commite1b7296833290bbfbdc522a3455fb8e12ed95371 (patch)
tree9b85f28a40235c5903cba1ea7972979ab8b9cc11
parentsome more qmail-ldap use flags (diff)
downloadgentoo-2-e1b7296833290bbfbdc522a3455fb8e12ed95371.tar.gz
gentoo-2-e1b7296833290bbfbdc522a3455fb8e12ed95371.tar.bz2
gentoo-2-e1b7296833290bbfbdc522a3455fb8e12ed95371.zip
add QmailLDAP/Controls patch; add queue-custom-error.patch; prettify sed magic
(Portage version: 2.1.2.9)
-rw-r--r--mail-mta/qmail-ldap/ChangeLog8
-rw-r--r--mail-mta/qmail-ldap/files/digest-qmail-ldap-1.03-r615
-rw-r--r--mail-mta/qmail-ldap/metadata.xml5
-rw-r--r--mail-mta/qmail-ldap/qmail-ldap-1.03-r6.ebuild519
4 files changed, 543 insertions, 4 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/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 ---