Skip to content

Commit

Permalink
mail-mta/netqmail: fix SMTPUTF8 mode
Browse files Browse the repository at this point in the history
This fix was provided by the original patch author, but he sadly did not provide
a new patch.

Closes: https://bugs.gentoo.org/611142
Signed-off-by: Rolf Eike Beer <[email protected]>
Signed-off-by: Joonas Niilola <[email protected]>
  • Loading branch information
DerDakon authored and juippis committed Nov 1, 2019
1 parent f7e50a4 commit c0c074a
Show file tree
Hide file tree
Showing 2 changed files with 208 additions and 0 deletions.
12 changes: 12 additions & 0 deletions mail-mta/netqmail/files/qmail-smtputf8-crlf-fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
https://bugs.gentoo.org/611142

--- a/qmail-remote.c 2019-10-29 22:46:27.076000000 +0100
+++ b/qmail-remote.c 2019-10-29 22:48:18.868000000 +0100
@@ -556,6 +556,7 @@ void checkutf8message()
if (r == 0) break;
if (r == -1) temp_read();

+ if (ch == '\n' && !stralloc_cats(&firstpart,"\r")) temp_nomem();
if (!stralloc_append(&firstpart,&ch)) temp_nomem();

if (ch == '\r')
196 changes: 196 additions & 0 deletions mail-mta/netqmail/netqmail-1.06-r10.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

GENQMAIL_PV=20191010
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://github.com/DerDakon/genqmail/releases/download/genqmail-${GENQMAIL_PV}/${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"
"${FILESDIR}/qmail-smtputf8-crlf-fix.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

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
}

0 comments on commit c0c074a

Please sign in to comment.