summaryrefslogtreecommitdiff
path: root/mail-mta/opensmtpd
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-02-05 18:44:56 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-02-05 18:44:56 +0000
commit29aabba0ea759c6a2864ff5631735b67ee38e5e0 (patch)
treeab466b4dfa7abecb401b2f8039d08af4689306bb /mail-mta/opensmtpd
parentd42200bec37eef2a7478d88988ff00addd0a9202 (diff)
gentoo resync : 05.02.2020
Diffstat (limited to 'mail-mta/opensmtpd')
-rw-r--r--mail-mta/opensmtpd/Manifest7
-rw-r--r--mail-mta/opensmtpd/files/opensmtpd-6.0.3_p1-security-fixes.patch91
-rw-r--r--mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r1.ebuild88
-rw-r--r--mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r2.ebuild78
-rw-r--r--mail-mta/opensmtpd/opensmtpd-6.4.0_p1.ebuild83
-rw-r--r--mail-mta/opensmtpd/opensmtpd-6.6.2_p1.ebuild81
6 files changed, 254 insertions, 174 deletions
diff --git a/mail-mta/opensmtpd/Manifest b/mail-mta/opensmtpd/Manifest
index e3273da05d48..6f28249609ab 100644
--- a/mail-mta/opensmtpd/Manifest
+++ b/mail-mta/opensmtpd/Manifest
@@ -1,11 +1,12 @@
AUX opensmtpd-6.0.3_p1-fix-crash-on-auth.patch 1130 BLAKE2B ca2a207549056dc729c34d394ffcc6b3f565ca3963a7c9b56f9f2a2ed68997f2839716945c412f6ba2340931297a8e0afeebae93ef6d767ec251dbe66b196a05 SHA512 23558294281527c679c563f35103ccaac04efa4c62a1494e9907480c38a554b551b86a838204df8a314f7fa86452cbf816690abedf3b5c0179758a9205616c38
AUX opensmtpd-6.0.3_p1-openssl_1.1.patch 21039 BLAKE2B 05e6e416f8253bb42d3d0cb213c14d2d07ec8d6beee3058621ac41f7a3815562098be4e5eed863d78443d08ad55f70a94d0c9c031630e87a73388510f4e42c55 SHA512 7e6567889ca823ada283153861806e69cee0185d6dc98aa15675c18ee81d2e118e9bc3a9848551b9f49e772de38234b7d4170e66fb6e6b932a50654b5d9a3806
+AUX opensmtpd-6.0.3_p1-security-fixes.patch 3018 BLAKE2B 6ee6e23f50e705c3ed34eee7cfb38bf73ab4cf057104ab829cc0005063f75cf7c628e01de5258688b896861ac6dedfc40b45e7ce11d9f50a777c6ed5fa7653ad SHA512 751497713dc02fa512d4c61ac7feea792c44841673ede4b92ac474605fa2a2808fc6919336a3d53b5b9b8001d45c3dd321c8746c68d36076c2da94ca83a1b0ab
AUX smtpd.initd 231 BLAKE2B a4991c9226daa2289cb20238dcee0dad8b4ff83474327649b61c7394e46fc929c7792b885f58bf76769567ad2058134b97e5019b508e2edec108a4bafb9cc2b4 SHA512 e4c8386bd7e8d8171172aa181305a55ca67cba6d4c82d77d8846e1bd3301dd9d118bb39dad6c144677f050194de813e4d83e06ea6dd591d4f07da8c4a1edde37
AUX smtpd.pam 147 BLAKE2B 1706fe27cf53621428f563af146d1197dfc59133dda79fe08141ec4ca9b240880ef63da3f27e4fb8b653af4ae413ca42cdeb343e1f4e737b7e6258c0d338223d SHA512 d0574cc732138fefffe3ca78da2d689f0849de70dfd65204c99a98a58b2165eb46b23a1c32b356ea2eaf8abd56a4929c7419b29cec1d6b284e344680bab24086
AUX smtpd.service 138 BLAKE2B c76db1847110622621701cdf1fdb764d26bf28b86a25adf9ae8e0ba15838a2a9ddc677f54f5d5fe191591b2bd5c7f20067fc00b6679f448e25371e27f231589d SHA512 b70b173ac275b871d78bac0e55b2e0c8d8a6538c7f2c4dc86fe67fb37a1ee942e0442353b338b286759618299f51b144396251db13f82c9afa035dcaae11a258
AUX smtpd.socket 114 BLAKE2B e684727be39592dce128cc0ab02f8e5bc4510591dcb2c170b49c120e84319b53e10eae275bc6a26ed8c9d51e53a21e41c551f18afd2441602cefc4e93344d50c SHA512 fbbccb4aab80a4a4612609e590965940642321119a65359cf2490530f81d55706a0105309d321a624d40348f12776724d2cf6b8bf29ea24391e60ef8b8bc8ba2
DIST opensmtpd-6.0.3p1.tar.gz 699702 BLAKE2B 49f08e8329adc049a562b6ef7efa4c0a39cbcfe8a158cb905cfc726a7302ffe9833ccfb52041340767d55d0f2ae2087e8eac92b7359016c6c76b4d963a334558 SHA512 e579818a0ddbe637deb5a4e40f43eaf797783903ceac18fd89a57581b135b9e407d424e1a70ff7b4b06a0ee50bafb6e8ab2451371917887904b06ff1b55d320f
-DIST opensmtpd-6.4.0p1.tar.gz 718638 BLAKE2B 23c1c286a865efcbd16461ec8930f5325a6e164a58ceb7bbe0feb9088bcf615b7fd7e2eb6820bcde161864c476087b39c289c75ea5ca0b18c46710f9723b3dd7 SHA512 c60dbac857925041769104adae33393f526a328767e19bc78d06e45a13b7dd50f3eefdaa3811b8da330c24a670e98da74e18af5ac486266dade6255a6f3b5135
-EBUILD opensmtpd-6.0.3_p1-r1.ebuild 2213 BLAKE2B 015734bb445633aa0bc6d62e3dd88948f8f72a1ca430a0a3000fe98c263f10f36f1653aea746fd6d5c4434403a97c08c7ffcd3c84dd083778c5750776067efa8 SHA512 b43bd968b921c33948bd90d30f261250bdad0e1f7913ccf7746c05a5e1ca9206052335fcd1486f8dee6944f231b00a68bc0ac082197c75d1d2b6cddcb78ad74f
-EBUILD opensmtpd-6.4.0_p1.ebuild 2063 BLAKE2B a92dfe9b7fa4ea5f743a2905a452c13fecbaf4e0fbe3850ae4592540d28ee253b21b380d59ea3a507ad16d27afa5474ec631d9885248c943f980ecb1121eac47 SHA512 0c3c4dbffea429af46334ceb4f183617d7e18fa80eb8cd80f6493e661b55ceef8ef8822884febd335ad848a77c23974f9b2d32b23617f93730e4c5cbd72aa384
+DIST opensmtpd-6.6.2p1.tar.gz 777422 BLAKE2B e372a10f618e83ccb6c782d056750f89a5224898a28957509ab306fbe8bb4ea94462c1bbccbbe9c0dea64623c250d9fe9f3b74f2e26eda5d6c232bec50bff1d0 SHA512 b0f7ea94514a4a1880a22996064caa7da0a15e6453236ca2f004402125affa80e9d8c25d3e63826b45045305851959bc58c2c855829e46d6967bf6cd13bd1e91
+EBUILD opensmtpd-6.0.3_p1-r2.ebuild 1910 BLAKE2B e2f00b235de73368d49e209cabc7f0ef80e2a2fd3e967c91a6fe905fa2b3ea0f3e90085d1c7e4c72a9028c1fb5ecfc6ef1f51daf9ddac3c0109fc3394f2d20e7 SHA512 f8c3bf0561a798a4ff39fbf0b123a84626fc7d0e90c7ef7b7357bda4530c9cfb90f64c853bc2f5424bc594c21e2883a3111db30693e6d4da06e9cbb29be94d1c
+EBUILD opensmtpd-6.6.2_p1.ebuild 1991 BLAKE2B c966262b89036eed65c75fe9977687a64b9352ffe210394b36176ec4751e398b1e270d7896349b42d60bf19f81a2173c6de9951c0211d7d1f7726f7c8acaa5e7 SHA512 fe27a9f688a678e98ef73f45a237ae28f2fe412d888185dc23fbb3ebc2f887c1c5635dee61907ccc4986138ff486e1b44d0d58b64d750384f94632bc47d8f1d0
MISC metadata.xml 595 BLAKE2B c13a49c15ec7c4430834682a4428b80e81be9832cbf6fbdd506ce9bcfc625aabf342d094ee83c689e63573cff9bfb2abee86196374c617c75aa487eb83ad0e4c SHA512 aa7344806cd011cec6c7afa277345eb2988f11970ea3038d969efa50d5b1f485f199f15a1b632197700791c2242ed8f712ff3cc382b1491e44c14ee94075a1d5
diff --git a/mail-mta/opensmtpd/files/opensmtpd-6.0.3_p1-security-fixes.patch b/mail-mta/opensmtpd/files/opensmtpd-6.0.3_p1-security-fixes.patch
new file mode 100644
index 000000000000..58f3ed8c38b1
--- /dev/null
+++ b/mail-mta/opensmtpd/files/opensmtpd-6.0.3_p1-security-fixes.patch
@@ -0,0 +1,91 @@
+diff -ru OpenSMTPD-opensmtpd-6.0.3/smtpd/mta_session.c OpenSMTPD-opensmtpd-6.0.3-fixed/smtpd/mta_session.c
+--- OpenSMTPD-opensmtpd-6.0.3/smtpd/mta_session.c 2018-01-04 23:24:01.000000000 +0100
++++ OpenSMTPD-opensmtpd-6.0.3-fixed/smtpd/mta_session.c 2020-01-29 09:47:24.607457717 +0100
+@@ -1290,40 +1290,20 @@
+ break;
+
+ case IO_ERROR:
++ case IO_TLSERROR:
+ log_debug("debug: mta: %p: IO error: %s", s, io_error(io));
+- if (!s->ready) {
+- mta_error(s, "IO Error: %s", io_error(io));
+- mta_connect(s);
+- break;
+- }
+- else if (!(s->flags & (MTA_FORCE_TLS|MTA_FORCE_SMTPS|MTA_FORCE_ANYSSL))) {
+- /* error in non-strict SSL negotiation, downgrade to plain */
+- if (s->flags & MTA_TLS) {
+- log_info("smtp-out: Error on session %016"PRIx64
+- ": opportunistic TLS failed, "
+- "downgrading to plain", s->id);
+- s->flags &= ~MTA_TLS;
+- s->flags |= MTA_DOWNGRADE_PLAIN;
+- mta_connect(s);
+- break;
+- }
+- }
+- mta_error(s, "IO Error: %s", io_error(io));
+- mta_free(s);
+- break;
+
+- case IO_TLSERROR:
+- log_debug("debug: mta: %p: TLS IO error: %s", s, io_error(io));
+- if (!(s->flags & (MTA_FORCE_TLS|MTA_FORCE_SMTPS|MTA_FORCE_ANYSSL))) {
++ if (s->state == MTA_STARTTLS && s->use_smtp_tls) {
+ /* error in non-strict SSL negotiation, downgrade to plain */
+- log_info("smtp-out: TLS Error on session %016"PRIx64
+- ": TLS failed, "
++ log_info("smtp-out: Error on session %016"PRIx64
++ ": opportunistic TLS failed, "
+ "downgrading to plain", s->id);
+ s->flags &= ~MTA_TLS;
+ s->flags |= MTA_DOWNGRADE_PLAIN;
+ mta_connect(s);
+ break;
+ }
++
+ mta_error(s, "IO Error: %s", io_error(io));
+ mta_free(s);
+ break;
+diff -ru OpenSMTPD-opensmtpd-6.0.3/smtpd/smtp_session.c OpenSMTPD-opensmtpd-6.0.3-fixed/smtpd/smtp_session.c
+--- OpenSMTPD-opensmtpd-6.0.3/smtpd/smtp_session.c 2018-01-04 23:24:01.000000000 +0100
++++ OpenSMTPD-opensmtpd-6.0.3-fixed/smtpd/smtp_session.c 2020-01-29 09:47:24.610791335 +0100
+@@ -2004,25 +2004,23 @@
+ memmove(maddr->user, p, strlen(p) + 1);
+ }
+
+- if (!valid_localpart(maddr->user) ||
+- !valid_domainpart(maddr->domain)) {
+- /* accept empty return-path in MAIL FROM, required for bounces */
+- if (mailfrom && maddr->user[0] == '\0' && maddr->domain[0] == '\0')
+- return (1);
++ /* accept empty return-path in MAIL FROM, required for bounces */
++ if (mailfrom && maddr->user[0] == '\0' && maddr->domain[0] == '\0')
++ return (1);
+
+- /* no user-part, reject */
+- if (maddr->user[0] == '\0')
+- return (0);
+-
+- /* no domain, local user */
+- if (maddr->domain[0] == '\0') {
+- (void)strlcpy(maddr->domain, domain,
+- sizeof(maddr->domain));
+- return (1);
+- }
++ /* no or invalid user-part, reject */
++ if (maddr->user[0] == '\0' || !valid_localpart(maddr->user))
+ return (0);
++
++ /* no domain part, local user */
++ if (maddr->domain[0] == '\0') {
++ (void)strlcpy(maddr->domain, domain,
++ sizeof(maddr->domain));
+ }
+
++ if (!valid_domainpart(maddr->domain))
++ return (0);
++
+ return (1);
+ }
+
diff --git a/mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r1.ebuild b/mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r1.ebuild
deleted file mode 100644
index bd087d961d5c..000000000000
--- a/mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r1.ebuild
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib user flag-o-matic eutils pam toolchain-funcs autotools systemd
-
-DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD"
-HOMEPAGE="https://www.opensmtpd.org"
-SRC_URI="https://www.opensmtpd.org/archives/${P/_}.tar.gz"
-
-LICENSE="ISC BSD BSD-1 BSD-2 BSD-4"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="libressl pam +mta"
-
-DEPEND="!libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- elibc_musl? ( sys-libs/fts-standalone )
- sys-libs/zlib
- pam? ( sys-libs/pam )
- sys-libs/db:=
- dev-libs/libevent
- app-misc/ca-certificates
- net-mail/mailbase
- net-libs/libasr
- !mail-mta/courier
- !mail-mta/esmtp
- !mail-mta/exim
- !mail-mta/mini-qmail
- !mail-mta/msmtp[mta]
- !mail-mta/netqmail
- !mail-mta/nullmailer
- !mail-mta/postfix
- !mail-mta/qmail-ldap
- !mail-mta/sendmail
- !mail-mta/ssmtp[mta]
-"
-RDEPEND="${DEPEND}"
-
-S=${WORKDIR}/${P/_}
-PATCHES=(
- "${FILESDIR}/${P}-fix-crash-on-auth.patch"
- "${FILESDIR}/${P}-openssl_1.1.patch"
-)
-
-src_configure() {
- tc-export AR
- AR="$(which "$AR")" econf \
- --with-table-db \
- --with-user-smtpd=smtpd \
- --with-user-queue=smtpq \
- --with-group-queue=smtpq \
- --with-path-socket=/run \
- --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \
- --sysconfdir=/etc/opensmtpd \
- $(use_with pam auth-pam)
-}
-
-src_install() {
- default
- newinitd "${FILESDIR}"/smtpd.initd smtpd
- systemd_dounit "${FILESDIR}"/smtpd.{service,socket}
- use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd
- dosym /usr/sbin/smtpctl /usr/sbin/makemap
- dosym /usr/sbin/smtpctl /usr/sbin/newaliases
- if use mta ; then
- dodir /usr/sbin
- dosym /usr/sbin/smtpctl /usr/sbin/sendmail
- dosym /usr/sbin/smtpctl /usr/bin/sendmail
- dosym /usr/sbin/smtpctl /usr/$(get_libdir)/sendmail
- fi
-}
-
-pkg_preinst() {
- enewgroup smtpd 25
- enewuser smtpd 25 -1 /var/empty smtpd
- enewgroup smtpq 252
- enewuser smtpq 252 -1 /var/empty smtpq
-}
-
-pkg_postinst() {
- einfo
- einfo "Plugins for SQLite, MySQL, PostgreSQL, LDAP, socketmaps,"
- einfo "Redis, and many other useful addons and filters are"
- einfo "available in the mail-filter/opensmtpd-extras package."
- einfo
-}
diff --git a/mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r2.ebuild b/mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r2.ebuild
new file mode 100644
index 000000000000..14d9fa69ea4a
--- /dev/null
+++ b/mail-mta/opensmtpd/opensmtpd-6.0.3_p1-r2.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit pam toolchain-funcs systemd
+
+DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD"
+HOMEPAGE="https://www.opensmtpd.org"
+SRC_URI="https://www.opensmtpd.org/archives/${P/_}.tar.gz"
+
+LICENSE="ISC BSD BSD-1 BSD-2 BSD-4"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="libressl pam +mta"
+
+DEPEND="
+ acct-user/smtpd
+ acct-user/smtpq
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ elibc_musl? ( sys-libs/fts-standalone )
+ sys-libs/zlib
+ pam? ( sys-libs/pam )
+ sys-libs/db:=
+ dev-libs/libevent
+ app-misc/ca-certificates
+ net-mail/mailbase
+ net-libs/libasr
+ !mail-mta/courier
+ !mail-mta/esmtp
+ !mail-mta/exim
+ !mail-mta/mini-qmail
+ !mail-mta/msmtp[mta]
+ !mail-mta/netqmail
+ !mail-mta/nullmailer
+ !mail-mta/postfix
+ !mail-mta/qmail-ldap
+ !mail-mta/sendmail
+ !mail-mta/ssmtp[mta]
+"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${P/_}
+PATCHES=(
+ "${FILESDIR}/${P}-fix-crash-on-auth.patch"
+ "${FILESDIR}/${P}-openssl_1.1.patch"
+ "${FILESDIR}/${P}-security-fixes.patch"
+)
+
+src_configure() {
+ tc-export AR
+ AR="$(which "$AR")" econf \
+ --with-table-db \
+ --with-user-smtpd=smtpd \
+ --with-user-queue=smtpq \
+ --with-group-queue=smtpq \
+ --with-path-socket=/run \
+ --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \
+ --sysconfdir=/etc/opensmtpd \
+ $(use_with pam auth-pam)
+}
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/smtpd.initd smtpd
+ systemd_dounit "${FILESDIR}"/smtpd.{service,socket}
+ use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd
+ dosym smtpctl /usr/sbin/makemap
+ dosym smtpctl /usr/sbin/newaliases
+ if use mta ; then
+ dodir /usr/sbin
+ dosym smtpctl /usr/sbin/sendmail
+ dosym ../sbin/smtpctl /usr/bin/sendmail
+ mkdir -p "${ED}"/usr/$(get_libdir) || die
+ ln -s --relative "${ED}"/usr/sbin/smtpctl "${ED}"/usr/$(get_libdir)/sendmail || die
+ fi
+}
diff --git a/mail-mta/opensmtpd/opensmtpd-6.4.0_p1.ebuild b/mail-mta/opensmtpd/opensmtpd-6.4.0_p1.ebuild
deleted file mode 100644
index 51dedcde092b..000000000000
--- a/mail-mta/opensmtpd/opensmtpd-6.4.0_p1.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib user flag-o-matic eutils pam toolchain-funcs autotools systemd
-
-DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD"
-HOMEPAGE="https://www.opensmtpd.org"
-SRC_URI="https://www.opensmtpd.org/archives/${P/_}.tar.gz"
-
-LICENSE="ISC BSD BSD-1 BSD-2 BSD-4"
-SLOT="0"
-KEYWORDS="" #~amd64 ~arm ~arm64 ~x86"
-IUSE="pam +mta"
-
-DEPEND="dev-libs/libressl
- elibc_musl? ( sys-libs/fts-standalone )
- sys-libs/zlib
- pam? ( sys-libs/pam )
- sys-libs/db:=
- dev-libs/libevent
- app-misc/ca-certificates
- net-mail/mailbase
- net-libs/libasr
- !mail-mta/courier
- !mail-mta/esmtp
- !mail-mta/exim
- !mail-mta/mini-qmail
- !mail-mta/msmtp[mta]
- !mail-mta/netqmail
- !mail-mta/nullmailer
- !mail-mta/postfix
- !mail-mta/qmail-ldap
- !mail-mta/sendmail
- !mail-mta/ssmtp[mta]
-"
-RDEPEND="${DEPEND}"
-
-S=${WORKDIR}/${P/_}
-
-src_configure() {
- tc-export AR
- AR="$(which "$AR")" econf \
- --with-table-db \
- --with-user-smtpd=smtpd \
- --with-user-queue=smtpq \
- --with-group-queue=smtpq \
- --with-path-socket=/run \
- --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \
- --sysconfdir=/etc/opensmtpd \
- $(use_with pam auth-pam)
-}
-
-src_install() {
- default
- newinitd "${FILESDIR}"/smtpd.initd smtpd
- systemd_dounit "${FILESDIR}"/smtpd.{service,socket}
- use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd
- dosym /usr/sbin/smtpctl /usr/sbin/makemap
- dosym /usr/sbin/smtpctl /usr/sbin/newaliases
- if use mta ; then
- dodir /usr/sbin
- dosym /usr/sbin/smtpctl /usr/sbin/sendmail
- dosym /usr/sbin/smtpctl /usr/bin/sendmail
- dosym /usr/sbin/smtpctl /usr/$(get_libdir)/sendmail
- fi
-}
-
-pkg_preinst() {
- enewgroup smtpd 25
- enewuser smtpd 25 -1 /var/empty smtpd
- enewgroup smtpq 252
- enewuser smtpq 252 -1 /var/empty smtpq
-}
-
-pkg_postinst() {
- einfo
- einfo "Plugins for SQLite, MySQL, PostgreSQL, LDAP, socketmaps,"
- einfo "Redis, and many other useful addons and filters are"
- einfo "available in the mail-filter/opensmtpd-extras package."
- einfo
-}
diff --git a/mail-mta/opensmtpd/opensmtpd-6.6.2_p1.ebuild b/mail-mta/opensmtpd/opensmtpd-6.6.2_p1.ebuild
new file mode 100644
index 000000000000..610591f1deec
--- /dev/null
+++ b/mail-mta/opensmtpd/opensmtpd-6.6.2_p1.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit pam systemd
+
+DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD"
+HOMEPAGE="https://www.opensmtpd.org"
+SRC_URI="https://www.opensmtpd.org/archives/${P/_}.tar.gz"
+
+LICENSE="ISC BSD BSD-1 BSD-2 BSD-4"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="libressl pam +mta"
+
+DEPEND="
+ acct-user/smtpd
+ acct-user/smtpq
+ !libressl? ( >=dev-libs/openssl-1.1:0= )
+ libressl? ( dev-libs/libressl:0= )
+ elibc_musl? ( sys-libs/fts-standalone )
+ sys-libs/zlib
+ pam? ( sys-libs/pam )
+ sys-libs/db:=
+ dev-libs/libevent
+ app-misc/ca-certificates
+ net-mail/mailbase
+ net-libs/libasr
+ !mail-mta/courier
+ !mail-mta/esmtp
+ !mail-mta/exim
+ !mail-mta/mini-qmail
+ !mail-mta/msmtp[mta]
+ !mail-mta/netqmail
+ !mail-mta/nullmailer
+ !mail-mta/postfix
+ !mail-mta/qmail-ldap
+ !mail-mta/sendmail
+ !mail-mta/ssmtp[mta]
+"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${P/_}
+
+src_configure() {
+ econf \
+ --sysconfdir=/etc/smtpd \
+ --with-path-mbox=/var/spool/mail \
+ --with-path-empty=/var/empty \
+ --with-path-socket=/run \
+ --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \
+ --with-user-smtpd=smtpd \
+ --with-user-queue=smtpq \
+ --with-group-queue=smtpq \
+ $(use_with pam auth-pam)
+}
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/smtpd.initd smtpd
+ systemd_dounit "${FILESDIR}"/smtpd.{service,socket}
+ use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd
+ dosym smtpctl /usr/sbin/makemap
+ dosym smtpctl /usr/sbin/newaliases
+ if use mta ; then
+ dodir /usr/sbin
+ dosym smtpctl /usr/sbin/sendmail
+ dosym ../sbin/smtpctl /usr/bin/sendmail
+ mkdir -p "${ED}"/usr/$(get_libdir) || die
+ ln -s --relative "${ED}"/usr/sbin/smtpctl "${ED}"/usr/$(get_libdir)/sendmail || die
+ fi
+}
+
+pkg_postinst() {
+ ewarn
+ ewarn "If you're upgrading from version 6.0, note that the"
+ ewarn "configuration syntax has changed, and config files"
+ ewarn "now live in /etc/smtpd instead of /etc/opensmtpd."
+ ewarn
+}