# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 GENQMAIL_PV=20080406 QMAIL_SPP_PV=0.42 QMAIL_TLS_PV=20190114 QMAIL_TLS_F=${PN}-1.05-tls-smtpauth-${QMAIL_TLS_PV}.patch QMAIL_TLS_CVE=vu555316.patch QMAIL_BIGTODO_PV=103 QMAIL_BIGTODO_F=big-todo.${QMAIL_BIGTODO_PV}.patch QMAIL_LARGE_DNS='qmail-103.patch' QMAIL_SMTPUTF8='qmail-smtputf8.patch' inherit qmail DESCRIPTION="qmail -- a secure, reliable, efficient, simple message transfer agent" HOMEPAGE=" http://netqmail.org https://cr.yp.to/qmail.html http://qmail.org " SRC_URI="mirror://qmail/${P}.tar.gz https://dev.gentoo.org/~hollow/distfiles/${GENQMAIL_F} https://www.ckdhr.com/ckd/${QMAIL_LARGE_DNS} !vanilla? ( highvolume? ( mirror://qmail/${QMAIL_BIGTODO_F} ) qmail-spp? ( mirror://sourceforge/qmail-spp/${QMAIL_SPP_F} ) ssl? ( https://mirror.alexh.name/qmail/netqmail/${QMAIL_TLS_F} http://inoa.net/qmail-tls/${QMAIL_TLS_CVE} https://arnt.gulbrandsen.priv.no/qmail/qmail-smtputf8.patch ) ) " LICENSE="public-domain" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~x86" IUSE="authcram gencertdaily highvolume libressl qmail-spp ssl vanilla" REQUIRED_USE="vanilla? ( !ssl !qmail-spp !highvolume )" RESTRICT="test" DEPEND=" acct-group/nofiles acct-group/qmail acct-user/alias acct-user/qmaild acct-user/qmaill acct-user/qmailp acct-user/qmailq acct-user/qmailr acct-user/qmails net-dns/libidn2 net-mail/queue-repair sys-apps/gentoo-functions sys-apps/groff ssl? ( !libressl? ( >=dev-libs/openssl-1.1:0= ) libressl? ( dev-libs/libressl:= ) ) " RDEPEND="${DEPEND} sys-apps/ucspi-tcp virtual/checkpassword virtual/daemontools authcram? ( >=net-mail/cmd5checkpw-0.30 ) ssl? ( sys-apps/ucspi-ssl ) !mail-mta/courier !mail-mta/esmtp !mail-mta/exim !mail-mta/mini-qmail !mail-mta/msmtp[mta] !mail-mta/nullmailer !mail-mta/opensmtpd !mail-mta/postfix !mail-mta/qmail-ldap !mail-mta/sendmail !mail-mta/ssmtp[mta] " pkg_setup() { if [[ -n "${QMAIL_PATCH_DIR}" ]]; then eerror eerror "The QMAIL_PATCH_DIR variable for custom patches" eerror "has been removed from ${PN}. If you need custom patches" eerror "see 'user patches' in the portage manual." eerror die "QMAIL_PATCH_DIR is not supported anymore" fi } src_unpack() { genqmail_src_unpack use qmail-spp && qmail_spp_src_unpack unpack ${P}.tar.gz } PATCHES=( "${FILESDIR}/${PV}-exit.patch" "${FILESDIR}/${PV}-readwrite.patch" "${DISTDIR}/${QMAIL_LARGE_DNS}" "${FILESDIR}/${PV}-fbsd-utmpx.patch" "${FILESDIR}/${P}-ipme-multiple.patch" ) src_prepare() { if ! use vanilla; then if use ssl; then # This patch contains relative paths and needs to be cleaned up. sed 's~^--- \.\./\.\./~--- ~g' \ < "${DISTDIR}"/${QMAIL_TLS_F} \ > "${T}"/${QMAIL_TLS_F} || die PATCHES+=( "${T}/${QMAIL_TLS_F}" "${DISTDIR}/${QMAIL_TLS_CVE}" "${FILESDIR}/qmail-smtputf8.patch" ) fi if use highvolume; then PATCHES+=( "${DISTDIR}/${QMAIL_BIGTODO_F}" ) fi if use qmail-spp; then if use ssl; then SPP_PATCH="${QMAIL_SPP_S}/qmail-spp-smtpauth-tls-20060105.diff" else SPP_PATCH="${QMAIL_SPP_S}/netqmail-spp.diff" fi # make the patch work with "-p1" sed -e 's#^--- \([Mq]\)#--- a/\1#' -e 's#^+++ \([Mq]\)#+++ b/\1#' -i ${SPP_PATCH} || die PATCHES+=( "${SPP_PATCH}" ) fi fi default pushd "${WORKDIR}" >/dev/null || die use qmail-spp && eapply "${FILESDIR}/genqmail-20080406-ldflags.patch" eapply "${FILESDIR}"/use-new-path-for-functions.sh.patch popd >/dev/null || die qmail_src_postunpack # Fix bug #33818 but for netqmail (Bug 137015) if ! use authcram; then einfo "Disabled CRAM_MD5 support" sed -e 's,^#define CRAM_MD5$,/*&*/,' -i "${S}"/qmail-smtpd.c || die else einfo "Enabled CRAM_MD5 support" fi ht_fix_file Makefile* } src_compile() { qmail_src_compile use qmail-spp && qmail_spp_src_compile } src_install() { qmail_src_install } pkg_postinst() { qmail_queue_setup qmail_rootmail_fixup qmail_tcprules_build qmail_config_notice qmail_supervise_config_notice elog elog "If you are looking for documentation, check those links:" elog "https://wiki.gentoo.org/wiki/Virtual_mail_hosting_with_qmail" elog " -- qmail/vpopmail Virtual Mail Hosting System Guide" elog "http://www.lifewithqmail.com/" elog " -- Life with qmail" elog } pkg_preinst() { qmail_tcprules_fixup } pkg_config() { # avoid some weird locale problems export LC_ALL=C qmail_config_fast qmail_tcprules_config qmail_tcprules_build use ssl && qmail_ssl_generate }