Fix Bug #165981 by using sed voodoo to patch conf-{cc,ld}.
authorMichael Hanselmann <hansmi@gentoo.org>
Sun, 11 Feb 2007 18:54:22 +0000 (18:54 +0000)
committerMichael Hanselmann <hansmi@gentoo.org>
Sun, 11 Feb 2007 18:54:22 +0000 (18:54 +0000)
Package-Manager: portage-2.1.2-r9

mail-mta/netqmail/ChangeLog
mail-mta/netqmail/Manifest
mail-mta/netqmail/files/digest-netqmail-1.05-r5 [new file with mode: 0644]
mail-mta/netqmail/netqmail-1.05-r5.ebuild [new file with mode: 0644]

index 3fb1dfd51d9c4386b1d54aef4f70e3b4ae01e8c9..7b3d3cd5f67d25de8fc0dd18ea4a754271fbe0aa 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for mail-mta/netqmail
 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-mta/netqmail/ChangeLog,v 1.25 2007/01/15 19:52:32 hansmi Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/netqmail/ChangeLog,v 1.26 2007/02/11 18:54:22 hansmi Exp $
+
+*netqmail-1.05-r5 (11 Feb 2007)
+
+  11 Feb 2007; Michael Hanselmann <hansmi@gentoo.org>
+  +netqmail-1.05-r5.ebuild:
+  Fix Bug #165981 by using sed voodoo to patch conf-{cc,ld}.
 
   15 Jan 2007; Michael Hanselmann <hansmi@gentoo.org>
   netqmail-1.05-r4.ebuild:
index 6720e62c6b2e353e46a3d27f888dbbc9c5a6f4e5..62714686e57fb831d16138a77acc7ca73c461ed3 100644 (file)
@@ -118,10 +118,14 @@ EBUILD netqmail-1.05-r4.ebuild 13104 RMD160 b1095b206282d8625b84b476154d20e9241d
 MD5 55e76e90add1cca7444abb3c347c8a3d netqmail-1.05-r4.ebuild 13104
 RMD160 b1095b206282d8625b84b476154d20e9241df122 netqmail-1.05-r4.ebuild 13104
 SHA256 e0ea5ec85f365e918ae076aee01e8868b0864382c388fbe66743b64257708ab6 netqmail-1.05-r4.ebuild 13104
-MISC ChangeLog 3903 RMD160 d3620166fa31f93417816f220dd519ffe409209c SHA1 006d81f6936c7edf099e110cc776fa5a0eedb173 SHA256 17729efb80c4ed3d192cebc7b871b6ed140fe721929a1c8c36c1f5cd72c0af17
-MD5 7fd13b39af1102fe2ba81e2fc6916973 ChangeLog 3903
-RMD160 d3620166fa31f93417816f220dd519ffe409209c ChangeLog 3903
-SHA256 17729efb80c4ed3d192cebc7b871b6ed140fe721929a1c8c36c1f5cd72c0af17 ChangeLog 3903
+EBUILD netqmail-1.05-r5.ebuild 13667 RMD160 2dd5caa791b6fd1677075be535610713c0bae08f SHA1 2d14ff4bbdbb94bfc67ec509aab737957fae8050 SHA256 23bbe4828beba94eadc83c751b80345b4c1c7f46953bacae7ce8dd32049a8296
+MD5 128c7329c55d918ac8ee6adbd940f3c9 netqmail-1.05-r5.ebuild 13667
+RMD160 2dd5caa791b6fd1677075be535610713c0bae08f netqmail-1.05-r5.ebuild 13667
+SHA256 23bbe4828beba94eadc83c751b80345b4c1c7f46953bacae7ce8dd32049a8296 netqmail-1.05-r5.ebuild 13667
+MISC ChangeLog 4080 RMD160 433f0a6c675e1a049c3e5166535d102f783ecaba SHA1 42e82bc56139ec41d0a8d263b5e5e44afc9047f2 SHA256 51517b9860bdabc6c4ba4d7ac95ac57d2b40597b1841060b542ace5ad4abb711
+MD5 5f6f9dcd1b137e3c5aef116ddf15070c ChangeLog 4080
+RMD160 433f0a6c675e1a049c3e5166535d102f783ecaba ChangeLog 4080
+SHA256 51517b9860bdabc6c4ba4d7ac95ac57d2b40597b1841060b542ace5ad4abb711 ChangeLog 4080
 MISC metadata.xml 278 RMD160 be877359df23e815e5acd94ecc97df2560671fa7 SHA1 2ea5039fde031f70169844e9ff5bcd4a20e32666 SHA256 0d8d56eeab2c34a34acb9f558c9198d843e4666bdbe061f6ec87ab4396a75d2a
 MD5 1f12f659d2cf9550971387cb78c2f0af metadata.xml 278
 RMD160 be877359df23e815e5acd94ecc97df2560671fa7 metadata.xml 278
@@ -129,3 +133,6 @@ SHA256 0d8d56eeab2c34a34acb9f558c9198d843e4666bdbe061f6ec87ab4396a75d2a metadata
 MD5 b3f63b32fd284e450fa4c057fd563f8b files/digest-netqmail-1.05-r4 1015
 RMD160 225c6860fbfcaf81c448c51d02aff3bd73fa1a44 files/digest-netqmail-1.05-r4 1015
 SHA256 a36f48dee042213e5b7ac5f480422db5bbec2f1d6fa5cf1b623a213d5def387e files/digest-netqmail-1.05-r4 1015
+MD5 b3f63b32fd284e450fa4c057fd563f8b files/digest-netqmail-1.05-r5 1015
+RMD160 225c6860fbfcaf81c448c51d02aff3bd73fa1a44 files/digest-netqmail-1.05-r5 1015
+SHA256 a36f48dee042213e5b7ac5f480422db5bbec2f1d6fa5cf1b623a213d5def387e files/digest-netqmail-1.05-r5 1015
diff --git a/mail-mta/netqmail/files/digest-netqmail-1.05-r5 b/mail-mta/netqmail/files/digest-netqmail-1.05-r5
new file mode 100644 (file)
index 0000000..4b66db3
--- /dev/null
@@ -0,0 +1,12 @@
+MD5 39b6f70f65056472ff97ab40c1dba7b4 big-todo.103.patch 5546
+RMD160 a16a429796d869b8217e42b7ddb607c95d9bbcd8 big-todo.103.patch 5546
+SHA256 afa0a249e3271badd442f0bdae39997d9fe536157d8a0d62b6706f3dfcd11a72 big-todo.103.patch 5546
+MD5 ecbd06a11022e61e5a4dda38c78c950e netqmail-1.05-tls-smtpauth-20060105.patch 147837
+RMD160 18a3edd3ea7e7a8e4d6cadbd3c0bd5e8cb041caa netqmail-1.05-tls-smtpauth-20060105.patch 147837
+SHA256 326af9647e752e158f7672ca3fb592fe23c5f44502ddfcd6b5b6bc6c7ecf4c27 netqmail-1.05-tls-smtpauth-20060105.patch 147837
+MD5 4c03848af9d37e281f3b82cc59230d9b netqmail-1.05.tar.gz 252264
+RMD160 e5bd8557c58a2686233449254b146e74389a7652 netqmail-1.05.tar.gz 252264
+SHA256 59788abf252e2da224542c1c8b727311335c61d990f24f4edf28f6eb5483f676 netqmail-1.05.tar.gz 252264
+MD5 384372f60ba2c1071601d0fea1f221ec qmail-spp-0.42.tar.gz 18689
+RMD160 5511722c52346692488a63bca53106d580a004c7 qmail-spp-0.42.tar.gz 18689
+SHA256 1518e7e82d10fbbb8ecc520f51daf503edeb9c3a9fb935be65a8185e7b53808d qmail-spp-0.42.tar.gz 18689
diff --git a/mail-mta/netqmail/netqmail-1.05-r5.ebuild b/mail-mta/netqmail/netqmail-1.05-r5.ebuild
new file mode 100644 (file)
index 0000000..6f4d0b1
--- /dev/null
@@ -0,0 +1,484 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/netqmail/netqmail-1.05-r5.ebuild,v 1.1 2007/02/11 18:54:22 hansmi Exp $
+
+inherit eutils toolchain-funcs fixheadtails flag-o-matic
+
+TLS_AUTH_PATCH=20060105
+QMAIL_SPP_PATCH=0.42
+
+DESCRIPTION="qmail -- a secure, reliable, efficient, simple message transfer agent"
+HOMEPAGE="
+       http://netqmail.org/
+       http://cr.yp.to/qmail.html
+       http://qmail.org/
+"
+SRC_URI="
+       mirror://qmail/netqmail-${PV}.tar.gz
+       !vanilla? (
+               ssl? ( http://shupp.org/patches/netqmail-${PV}-tls-smtpauth-${TLS_AUTH_PATCH}.patch )
+               highvolume? ( mirror://qmail/big-todo.103.patch )
+               qmail-spp? ( mirror://sourceforge/qmail-spp/qmail-spp-${QMAIL_SPP_PATCH}.tar.gz )
+       )
+"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="gencertdaily highvolume mailwrapper noauthcram qmail-spp ssl vanilla"
+RESTRICT="test"
+
+DEPEND="
+       !mail-mta/qmail
+       sys-apps/groff
+       net-mail/queue-repair
+       ssl? ( dev-libs/openssl )
+"
+RDEPEND="
+       mailwrapper? ( net-mail/mailwrapper )
+       !mailwrapper? ( !virtual/mta )
+       sys-apps/ucspi-tcp
+       sys-process/daemontools
+       net-mail/dot-forward
+       !noauthcram? (
+               || ( >=net-mail/checkpassword-0.90 >=net-mail/checkpassword-pam-0.99 )
+               >=net-mail/cmd5checkpw-0.30
+       )
+       ${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="${S}/netqmail-${PV}"
+QMAIL_SPP_S="${WORKDIR}/qmail-spp-${QMAIL_SPP_PATCH}"
+TCPRULES_DIR=/etc/tcprules.d
+
+if use gencertdaily; then
+       CRON_FOLDER=cron.daily
+else
+       CRON_FOLDER=cron.hourly
+fi
+
+src_unpack() {
+       unpack netqmail-${PV}.tar.gz
+       use qmail-spp && \
+               unpack qmail-spp-${QMAIL_SPP_PATCH}.tar.gz
+
+       cd "${S}"
+
+       ./collate.sh || die "patching failed"
+
+       cd "${MY_S}"
+
+       if ! use vanilla; then
+               use ssl && \
+                       epatch ${DISTDIR}/netqmail-1.05-tls-smtpauth-20060105.patch
+
+               if use highvolume; then
+                       epatch ${DISTDIR}/big-todo.103.patch
+               fi
+
+               if use qmail-spp; then
+                       if use ssl; then
+                               epatch ${QMAIL_SPP_S}/qmail-spp-smtpauth-tls-20060105.diff
+                       else
+                               epatch ${QMAIL_SPP_S}/netqmail-spp.diff
+                       fi
+               fi
+       fi
+
+       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
+
+       is_prime ${MY_CONF_SPLIT} || die 'QMAIL_CONF_SPLIT is not a prime number.'
+       einfo "Using conf-split value of ${MY_CONF_SPLIT}."
+
+       # Fix bug #33818 but for netqmail (Bug 137015)
+       if use noauthcram; then
+               einfo "Disabling CRAM_MD5 support"
+               sed -e 's,^#define CRAM_MD5$,/*&*/,' -i ${MY_S}/qmail-smtpd.c
+       else
+               einfo "Enabled CRAM_MD5 support"
+       fi
+
+       ht_fix_file Makefile*
+       append-ldflags $(bindnow-flags)
+
+       use ssl && append-flags -DTLS
+
+       # 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 || 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
+
+       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*
+
+       # 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"
+       dodir /etc/env.d
+       insinto /etc/env.d
+       doins ${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 ${ROOT}${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 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 ${QMAIL_SPP_S}/samples/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
+               einfo "Previously the qmail ebuilds created /root/.maildir/ but not"
+               einfo "every mail was delivered there. If the directory does not"
+               einfo "contain any mail, please delete it and run:"
+               einfo "${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
+
+       einfo "To setup qmail to run out-of-the-box on your system, run:"
+       einfo "emerge --config =${CATEGORY}/${PF}"
+       echo
+       einfo "To start qmail at boot you have to add svscan to your startup"
+       einfo "and create the following links:"
+       einfo "ln -s /var/qmail/supervise/qmail-send /service/qmail-send"
+       einfo "ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd"
+       echo
+       einfo "To start the pop3 server as well, create the following link:"
+       einfo "ln -s /var/qmail/supervise/qmail-pop3d /service/qmail-pop3d"
+       echo
+       einfo "Additionally, the QMTP and QMQP protocols are supported, "
+       einfo "and can be started as:"
+       einfo "ln -s /var/qmail/supervise/qmail-qmtpd /service/qmail-qmtpd"
+       einfo "ln -s /var/qmail/supervise/qmail-qmqpd /service/qmail-qmqpd"
+       echo
+       einfo "Additionally, if you wish to run qmail right now, you should "
+       einfo "run this before anything else:"
+       einfo "source /etc/profile"
+       echo
+       einfo "If you are looking for documentation, check those links:"
+       einfo "http://www.gentoo.org/doc/en/qmail-howto.xml"
+       einfo "  -- qmail/vpopmail Virtual Mail Hosting System Guide"
+       einfo "http://www.lifewithqmail.com/"
+       einfo "  -- Life with qmail"
+}
+
+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 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 ---