summaryrefslogtreecommitdiff
path: root/mail-filter/opendkim
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /mail-filter/opendkim
reinit the tree, so we can have metadata
Diffstat (limited to 'mail-filter/opendkim')
-rw-r--r--mail-filter/opendkim/Manifest11
-rw-r--r--mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch52
-rw-r--r--mail-filter/opendkim/files/opendkim-r1.service15
-rw-r--r--mail-filter/opendkim/files/opendkim.init.r355
-rw-r--r--mail-filter/opendkim/files/opendkim.service11
-rw-r--r--mail-filter/opendkim/metadata.xml34
-rw-r--r--mail-filter/opendkim/opendkim-2.10.3-r2.ebuild198
-rw-r--r--mail-filter/opendkim/opendkim-2.10.3-r3.ebuild204
-rw-r--r--mail-filter/opendkim/opendkim-2.10.3.ebuild195
9 files changed, 775 insertions, 0 deletions
diff --git a/mail-filter/opendkim/Manifest b/mail-filter/opendkim/Manifest
new file mode 100644
index 000000000000..c8441c65bf07
--- /dev/null
+++ b/mail-filter/opendkim/Manifest
@@ -0,0 +1,11 @@
+AUX opendkim-2.10.3-gnutls-3.4.patch 1555 SHA256 a003aee444b2a6c9056831608f58451603c09530f48d0bac17c074889aae2228 SHA512 f159f7ef3dffe876ccb01cff5b8fbb599357765ff028ef1db28b7f3dba5e13579c7e9bac305fc36fc324fdad0697224f8caa66d27dd3a1085b5fca133365f4ef WHIRLPOOL 24fa16f90ccdf0616dc8789258c51ff3fac452c6749433ffaa71f231500a0953f020b40e12e5eccd828a01ab37c8bf671175070fad5b5c3d164afe85c719fad7
+AUX opendkim-r1.service 516 SHA256 df348f416abe79f3520571010b1c8e8da3bc60f70c877a70ccb737b4698ed0d0 SHA512 ad0f95ee60628319f3e8f316984f2bee0fd278cebd52bf1c662cc0d38ff09e5bc5df76349e8aeb2918cdf44a92b05b2d5df2ed11738e86a6a5a64c86004fd971 WHIRLPOOL 750e21cca8680cc620a9a89827acd39b72b360f272be091c44e013efc8b2b02d3771d42fe78fae8a4e1e9a7f024ba6face1963862a52ff8c1792ae9592f2c8ab
+AUX opendkim.init.r3 1430 SHA256 0054940f1d1d562829c0094b2e440f10b175f0c4de20c3da4b6d9f758f062436 SHA512 d0a5985ffac171774664d4f619924f25c462d5829e8281b8ff643c22918295d513cf6e0e3a335c550c378b6d4739604539585f2ca809172a090f15d5c1294cf4 WHIRLPOOL 5e9f15649d111566c4bd3fd28c3c73861b00c257fc9bd0ea9d4c3780e59486b056c646905a2b79db9c00083cbf250e6783f30f5ce41cfbda453337eb7dffad8c
+AUX opendkim.service 439 SHA256 8636aee39d924067d1f1673291d1501cec3e6fdee0de16533a1e3616471b35ed SHA512 308edc70fdb0bd57b424e739412217fd8017b017e9b27bc0954dec55294d10d8b7713f6f191836b94aa49bf578bfb391dca748af0c8d9b72e14ebe1eae21e834 WHIRLPOOL 4b7c42b130a31120efba7aa04f90cacd8c6b760204577e2914901eddc6cb425b1c06253d60f43673d28f9992e4b078010f444a390569544573601b3fdbf66e76
+DIST opendkim-2.10.3.tar.gz 1210224 SHA256 43a0ba57bf942095fe159d0748d8933c6b1dd1117caf0273fa9a0003215e681b SHA512 97923e533d072c07ae4d16a46cbed95ee799aa50f19468d8bc6d1dc534025a8616c3b4b68b5842bc899b509349a2c9a67312d574a726b048c0ea46dd4fcc45d8 WHIRLPOOL 36bbf0f3e81fa291f31123d3614ba113b893d4ba76a5fe017cc9a393888c1ea95525b85e6042bc1db96e9a00e52aa13a251c38438cd03b0fd92b47d17036d680
+EBUILD opendkim-2.10.3-r2.ebuild 6173 SHA256 1d4a503103979c1f06c47d884dbda39c8ae7338113cde4636eaff389b1b5f682 SHA512 c0b6e2563ad7e5e13ca513319a4f2a50c9c1aa222277b37e6e66304a214b9eec614cab97aa908575e7736abf4cc745a6ac3dba437f11ae82b42ad13277ecfdc8 WHIRLPOOL 8e876e9776e810719c715556197aca7d553c7b38970a8aa11da5eba4af885961c92f3efb82706010065411d0c2fe4359505d100fbef018f723c19a782a62c176
+EBUILD opendkim-2.10.3-r3.ebuild 6084 SHA256 a5002b90771a65cf4d5aa8b2851df52467771d91cd1c4f3bd33df9e09b69e1d5 SHA512 b37ffaaaa1b573d058af0cec7c0187381122d3fc62464051967c23dbc6086fe7d90bd88d76fb8762e765bbceefa593e7d16217287b483f2b51bcc3d2625e9495 WHIRLPOOL 618731c543ffce2d4cb693e1bf171d8344725bca41c317a532ef12cf367bf14a3f6d80142ca022bfc74b98596a7ec203b01d8756c1de82e04321188f833700a5
+EBUILD opendkim-2.10.3.ebuild 6093 SHA256 590e9a6a4b077abb570a23c7bb741aac1a32eda335899a862a50d7e59c33db24 SHA512 081e874b5df8ef16e77ec0cb10ba4ebf66a0fe73a1cfe1fc0c899c2a6f378e54daf230508639c9599e49192685ed9ffb64a23085a0d442574a60877a89a8963e WHIRLPOOL a258f242bc7ddecedc69c56a9889329517f3f973a255b5690289e1ce1979a8de2496cf050fde0d7dd1344c0cfa102fef05e913acd61cdf54fc2f1256e569159a
+MISC ChangeLog 4272 SHA256 e50abbaf1e17ba53309740b1922439d012028f017774f09d9f981791ee386304 SHA512 e0fda7ec8d3fee12cba7accaa7692f50f5d4687a213f01369899888aeb7c2aea692e18be484d63acd8b93007bec7275f5015c573790c5e6e2233e00eb4216911 WHIRLPOOL dbbe390c0f67bc446f9b7c1bbc71c20212bd569d745dd3e9f25ece8145abcaa2cd5d17cb465427b69076a475879a82b5c44eb9d0ff4fa0fc1b38bc426397cf48
+MISC ChangeLog-2015 14887 SHA256 c3eaa03db3025033777fd3568b7c8004596144605607136f3098e7fb60b53503 SHA512 5499168a44f7a262eedbe6926378ca86a8cb6128faa5a7f2c7c6b8ffd1a1e6fc26c48c9324391f6a3296a9b9ad8f24be598a17916d0273217fcf5c2838c7abf3 WHIRLPOOL 8ccbac366bb408f2ea82500ea34d4ba25717e6287878491f9efa69e852f58a389f46ca4a46920db3cd9b3eb49201c29df9002a086d7866e8269e5aa8880c19f2
+MISC metadata.xml 1576 SHA256 82a94a57d66c26988555f5666eac0b3e0dcdbd533ecbc0198b00d0966594d20f SHA512 8595e50d9a6775a337a06d7ca32c00d6b37c862eba46c5edfe895230d89cd8952fccca8ad0ed98483b7d47318c6178a11d0ee33070f731d31960c8c20fb10cb7 WHIRLPOOL aaba7c06b37d58b7870bbdd1afb693958935dfb4e7339c4bdfb671bea2466a4366ef162227d02cb43f5e11152ff2160cf8e9383a72701b149aec01ba34d0f65b
diff --git a/mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch b/mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch
new file mode 100644
index 000000000000..f4594efaac94
--- /dev/null
+++ b/mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch
@@ -0,0 +1,52 @@
+From 3eea12e5f9af7739d5d009c6888b65bd4875a554 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 4 Mar 2017 00:41:35 +0200
+Subject: [PATCH] crypto: support gnutls-3.4
+
+https://sourceforge.net/p/opendkim/patches/36/
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ libopendkim/dkim.c | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/libopendkim/dkim.c b/libopendkim/dkim.c
+index d0d75a5..0c2278e 100644
+--- a/libopendkim/dkim.c
++++ b/libopendkim/dkim.c
+@@ -5301,6 +5301,8 @@ dkim_sig_process(DKIM *dkim, DKIM_SIGINFO *sig)
+ size_t diglen = 0;
+ #ifdef USE_GNUTLS
+ gnutls_datum_t key;
++ gnutls_digest_algorithm_t hash;
++ gnutls_sign_algorithm_t sign_algo;
+ #else /* USE_GNUTLS */
+ BIO *key;
+ #endif /* USE_GNUTLS */
+@@ -5442,7 +5444,22 @@ dkim_sig_process(DKIM *dkim, DKIM_SIGINFO *sig)
+ return DKIM_STAT_OK;
+ }
+
+- rsastat = gnutls_pubkey_verify_hash(rsa->rsa_pubkey, 0,
++ hash = GNUTLS_DIG_SHA1;
++
++ if (dkim_libfeature(dkim->dkim_libhandle,
++ DKIM_FEATURE_SHA256) &&
++ sig->sig_hashtype == DKIM_HASHTYPE_SHA256)
++ hash = GNUTLS_DIG_SHA256;
++
++ sign_algo = gnutls_pk_to_sign(GNUTLS_PK_RSA, hash);
++ if (sign_algo == GNUTLS_SIGN_UNKNOWN)
++ {
++ assert(0);
++ /* NOTREACHED */
++ }
++
++ rsastat = gnutls_pubkey_verify_hash2(rsa->rsa_pubkey,
++ sign_algo, 0,
+ &rsa->rsa_digest,
+ &rsa->rsa_sig);
+ if (rsastat < 0)
+--
+2.10.2
+
diff --git a/mail-filter/opendkim/files/opendkim-r1.service b/mail-filter/opendkim/files/opendkim-r1.service
new file mode 100644
index 000000000000..f2e937a6bf16
--- /dev/null
+++ b/mail-filter/opendkim/files/opendkim-r1.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=DomainKeys Identified Mail (DKIM) Milter
+Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html
+After=network.target nss-lookup.target syslog.target
+
+[Service]
+ExecStart=/usr/sbin/opendkim -f -x /etc/opendkim/opendkim.conf
+ExecReload=/bin/kill -USR1 $MAINPID
+RuntimeDirectory=opendkim
+RuntimeDirectoryMode=0750
+User=milter
+Group=milter
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mail-filter/opendkim/files/opendkim.init.r3 b/mail-filter/opendkim/files/opendkim.init.r3
new file mode 100644
index 000000000000..bb8ac96f0570
--- /dev/null
+++ b/mail-filter/opendkim/files/opendkim.init.r3
@@ -0,0 +1,55 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+CONFFILE=/etc/opendkim/${SVCNAME}.conf
+
+depend() {
+ use dns logger net
+ before mta
+}
+
+check_cfg() {
+
+ PIDFILE=$(sed -ne 's/^[[:space:]]*PidFile[[:space:]]\+//p' "${CONFFILE}")
+ local PIDDIR="${PIDFILE%/*}"
+ if [ ! -d "${PIDDIR}" ] ; then
+ checkpath -q -d -o milter:milter -m 0755 "${PIDDIR}" || return 1
+ fi
+ if [ ! -f "${CONFFILE}" ] ; then
+ eerror "Configuration file ${CONFFILE} is missing"
+ return 1
+ fi
+ if [ -z "${PIDFILE}" ] ; then
+ eerror "Configuration file needs PidFile setting - recommend adding 'PidFile /var/run/opendkim/${SVCNAME}.pid' to ${CONFFILE}"
+ return 1
+ fi
+
+ if egrep -q '^[[:space:]]*Background[[:space:]]+no' "${CONFFILE}" ; then
+ eerror "${SVCNAME} service cannot run with Background key set to yes!"
+ return 1
+ fi
+}
+
+start() {
+ check_cfg || return 1
+
+ # Remove stalled Unix socket if no other process is using it
+ local UNIX_SOCKET=$(sed -ne 's/^[[:space:]]*Socket[[:space:]]\+\(unix\|local\)://p' "${CONFFILE}")
+
+ if [ -S "${UNIX_SOCKET}" ] && ! fuser -s "${UNIX_SOCKET}"; then
+ rm "${UNIX_SOCKET}"
+ fi
+
+ ebegin "Starting OpenDKIM"
+ start-stop-daemon --start --pidfile "${PIDFILE}" \
+ --exec /usr/sbin/opendkim -- -x "${CONFFILE}"
+ eend $?
+}
+
+stop() {
+ check_cfg || return 1
+ ebegin "Stopping OpenDKIM"
+ start-stop-daemon --stop --pidfile "${PIDFILE}"
+ eend $?
+}
diff --git a/mail-filter/opendkim/files/opendkim.service b/mail-filter/opendkim/files/opendkim.service
new file mode 100644
index 000000000000..be534d670bca
--- /dev/null
+++ b/mail-filter/opendkim/files/opendkim.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=DomainKeys Identified Mail (DKIM) Milter
+Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html
+After=network.target nss-lookup.target syslog.target
+
+[Service]
+ExecStart=/usr/sbin/opendkim -f -x /etc/opendkim/opendkim.conf
+ExecReload=/bin/kill -USR1 $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mail-filter/opendkim/metadata.xml b/mail-filter/opendkim/metadata.xml
new file mode 100644
index 000000000000..0a92fe435f3c
--- /dev/null
+++ b/mail-filter/opendkim/metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>net-mail@gentoo.org</email>
+ <name>Net-Mail</name>
+ </maintainer>
+ <longdescription>A program implementing the Milter API that signs and verifies
+using the DKIM standard. This is a fork of Sendmail's DKIM-milter</longdescription>
+ <use>
+ <!--flag name='diffheaders'>On verification failure, compare the
+ original and the received headers to look for possible munging</flag-->
+ <flag name="unbound">Use the unbound dnssec library to perform DKIM DNS
+ queries.</flag>
+ <flag name="opendbx">Use opendbx backend to facilitate dataset driven
+ OpenDKIM configuration options like stats, bodylengthdb, etc. against a wide
+ variety of database types</flag>
+ <flag name="sasl">Used to authenticate to a LDAP server in various ways if
+ required.</flag>
+ <flag name="ldap">Enable openldap as a dataset facilitator or keys,
+ determining domains to sign for, and any other dataset that opendkim
+ supports.</flag>
+ <flag name="lua">Enables control over signature verification, filtering and
+ policy to be controlled by user defined lua scripts.</flag>
+ <flag name="poll">Use poll() instead of select() for the provided
+ asynchronous resolver library.</flag>
+ <flag name="memcached">Add support for using <pkg>dev-libs/libmemcached</pkg>
+ </flag>
+ <flag name="lmdb">Add support for using <pkg>dev-db/lmdb</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">opendkim</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mail-filter/opendkim/opendkim-2.10.3-r2.ebuild b/mail-filter/opendkim/opendkim-2.10.3-r2.ebuild
new file mode 100644
index 000000000000..cae5527aec29
--- /dev/null
+++ b/mail-filter/opendkim/opendkim-2.10.3-r2.ebuild
@@ -0,0 +1,198 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools db-use eutils systemd user
+
+# for betas
+#MY_P=${P/_b/.B}
+#S=${WORKDIR}/${PN}-2.8.0
+#SRC_URI="mirror://sourceforge/opendkim/${MY_P}.tar.gz"
+
+DESCRIPTION="A milter-based application to provide DKIM signing and verification"
+HOMEPAGE="http://opendkim.org"
+SRC_URI="mirror://sourceforge/opendkim/${P}.tar.gz"
+
+LICENSE="Sendmail-Open-Source BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+berkdb gnutls ldap libressl lmdb lua memcached opendbx poll sasl selinux +ssl static-libs unbound"
+
+DEPEND="|| ( mail-filter/libmilter mail-mta/sendmail )
+ dev-libs/libbsd
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ berkdb? ( >=sys-libs/db-3.2:* )
+ opendbx? ( >=dev-db/opendbx-1.4.0 )
+ lua? ( dev-lang/lua:* )
+ ldap? ( net-nds/openldap )
+ lmdb? ( dev-db/lmdb )
+ memcached? ( dev-libs/libmemcached )
+ sasl? ( dev-libs/cyrus-sasl )
+ unbound? ( >=net-dns/unbound-1.4.1 net-dns/dnssec-root )
+ !unbound? ( net-libs/ldns )
+ gnutls? ( >=net-libs/gnutls-2.11.7 )"
+
+RDEPEND="${DEPEND}
+ sys-process/psmisc
+ selinux? ( sec-policy/selinux-dkim )
+"
+
+REQUIRED_USE="sasl? ( ldap )"
+
+pkg_setup() {
+ enewgroup milter
+ # mail-milter/spamass-milter creates milter user with this home directory
+ # For consistency reasons, milter user must be created here with this home directory
+ # even though this package doesn't need a home directory for this user (#280571)
+ enewuser milter -1 -1 /var/lib/milter milter
+}
+
+src_prepare() {
+ sed -i -e 's:/var/db/dkim:/etc/opendkim:g' \
+ -e 's:/var/db/opendkim:/var/lib/opendkim:g' \
+ -e 's:/etc/mail:/etc/opendkim:g' \
+ -e 's:mailnull:milter:g' \
+ -e 's:^#[[:space:]]*PidFile.*:PidFile /run/opendkim/opendkim.pid:' \
+ opendkim/opendkim.conf.sample opendkim/opendkim.conf.simple.in \
+ stats/opendkim-reportstats{,.in} || die
+
+ sed -i -e 's:dist_doc_DATA:dist_html_DATA:' libopendkim/docs/Makefile.am \
+ || die
+
+ sed -i -e '/sock.*mt.getcwd/s:mt.getcwd():"/tmp":' opendkim/tests/*.lua
+ sed -i -e '/sock.*mt.getcwd/s:mt.getcwd():"/proc/self/cwd":' opendkim/tests/*.lua
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ if use berkdb ; then
+ myconf=$(db_includedir)
+ myconf="--with-db-incdir=${myconf#-I}"
+ myconf+=" --enable-popauth"
+ myconf+=" --enable-query_cache"
+ myconf+=" --enable-stats"
+ fi
+ if use unbound; then
+ myconf+=" --with-unbound"
+ else
+ myconf+=" --with-ldns"
+ fi
+ if use ldap; then
+ myconf+=" $(use_with sasl)"
+ fi
+ econf \
+ $(use_with berkdb db) \
+ $(use_with opendbx odbx) \
+ $(use_with lua) \
+ $(use_enable lua rbl) \
+ $(use_with ldap openldap) \
+ $(use_with lmdb) \
+ $(use_enable poll) \
+ $(use_enable static-libs static) \
+ $(use_with gnutls) \
+ $(use_with memcached libmemcached) \
+ ${myconf} \
+ --docdir=/usr/share/doc/${PF} \
+ --htmldir=/usr/share/doc/${PF}/html \
+ --enable-filter \
+ --enable-atps \
+ --enable-identity_header \
+ --enable-rate_limit \
+ --enable-resign \
+ --enable-replace_rules \
+ --enable-default_sender \
+ --enable-sender_macro \
+ --enable-vbr \
+ --disable-live-testing
+ #--with-test-socket=/tmp/opendkim-$(echo ${RANDOM})-S
+ #--disable-rpath
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dosbin stats/opendkim-reportstats
+
+ newinitd "${FILESDIR}/opendkim.init.r3" opendkim
+ systemd_newunit "${FILESDIR}/opendkim-r1.service" opendkim.service
+
+ dodir /etc/opendkim /var/lib/opendkim
+ fowners milter:milter /var/lib/opendkim
+
+ # default configuration
+ if [ ! -f "${ROOT}"/etc/opendkim/opendkim.conf ]; then
+ grep ^[^#] "${S}"/opendkim/opendkim.conf.simple \
+ > "${D}"/etc/opendkim/opendkim.conf
+ if use unbound; then
+ echo TrustAnchorFile /etc/dnssec/root-anchors.txt >> "${D}"/etc/opendkim/opendkim.conf
+ fi
+ echo UserID milter >> "${D}"/etc/opendkim/opendkim.conf
+ if use berkdb; then
+ echo Statistics /var/lib/opendkim/stats.dat >> \
+ "${D}"/etc/opendkim/opendkim.conf
+ fi
+ fi
+
+ use static-libs || find "${D}" -name "*.la" -delete
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSION} ]]; then
+ elog "If you want to sign your mail messages and need some help"
+ elog "please run:"
+ elog " emerge --config ${CATEGORY}/${PN}"
+ elog "It will help you create your key and give you hints on how"
+ elog "to configure your DNS and MTA."
+
+ ewarn "Make sure your MTA has r/w access to the socket file."
+ ewarn "This can be done either by setting UMask to 002 and adding MTA's user"
+ ewarn "to milter group or you can simply set UMask to 000."
+ fi
+}
+
+pkg_config() {
+ local selector keysize pubkey
+
+ read -p "Enter the selector name (default ${HOSTNAME}): " selector
+ [[ -n "${selector}" ]] || selector=${HOSTNAME}
+ if [[ -z "${selector}" ]]; then
+ eerror "Oddly enough, you don't have a HOSTNAME."
+ return 1
+ fi
+ if [[ -f "${ROOT}"etc/opendkim/${selector}.private ]]; then
+ ewarn "The private key for this selector already exists."
+ else
+ keysize=1024
+ # generate the private and public keys
+ opendkim-genkey -b ${keysize} -D "${ROOT}"etc/opendkim/ \
+ -s ${selector} -d '(your domain)' && \
+ chown milter:milter \
+ "${ROOT}"etc/opendkim/"${selector}".private || \
+ { eerror "Failed to create private and public keys." ; return 1; }
+ chmod go-r "${ROOT}"etc/opendkim/"${selector}".private
+ fi
+
+ # opendkim selector configuration
+ echo
+ einfo "Make sure you have the following settings in your /etc/opendkim/opendkim.conf:"
+ einfo " Keyfile /etc/opendkim/${selector}.private"
+ einfo " Selector ${selector}"
+
+ # MTA configuration
+ echo
+ einfo "If you are using Postfix, add following lines to your main.cf:"
+ einfo " smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " and read http://www.postfix.org/MILTER_README.html"
+
+ # DNS configuration
+ einfo "After you configured your MTA, publish your key by adding this TXT record to your domain:"
+ cat "${ROOT}"etc/opendkim/${selector}.txt
+ einfo "t=y signifies you only test the DKIM on your domain. See following page for the complete list of tags:"
+ einfo " http://www.dkim.org/specs/rfc4871-dkimbase.html#key-text"
+}
diff --git a/mail-filter/opendkim/opendkim-2.10.3-r3.ebuild b/mail-filter/opendkim/opendkim-2.10.3-r3.ebuild
new file mode 100644
index 000000000000..18f586f3be7b
--- /dev/null
+++ b/mail-filter/opendkim/opendkim-2.10.3-r3.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools db-use eutils systemd user
+
+# for betas
+#MY_P=${P/_b/.B}
+#S=${WORKDIR}/${PN}-2.8.0
+#SRC_URI="mirror://sourceforge/opendkim/${MY_P}.tar.gz"
+
+DESCRIPTION="A milter-based application to provide DKIM signing and verification"
+HOMEPAGE="http://opendkim.org"
+SRC_URI="mirror://sourceforge/opendkim/${P}.tar.gz"
+
+LICENSE="Sendmail-Open-Source BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="+berkdb gnutls ldap libressl lmdb lua memcached opendbx poll sasl selinux +ssl static-libs unbound"
+
+DEPEND="|| ( mail-filter/libmilter mail-mta/sendmail )
+ dev-libs/libbsd
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ berkdb? ( >=sys-libs/db-3.2:* )
+ opendbx? ( >=dev-db/opendbx-1.4.0 )
+ lua? ( dev-lang/lua:* )
+ ldap? ( net-nds/openldap )
+ lmdb? ( dev-db/lmdb )
+ memcached? ( dev-libs/libmemcached )
+ sasl? ( dev-libs/cyrus-sasl )
+ unbound? ( >=net-dns/unbound-1.4.1 net-dns/dnssec-root )
+ !unbound? ( net-libs/ldns )
+ gnutls? ( >=net-libs/gnutls-3.3 )"
+
+RDEPEND="${DEPEND}
+ sys-process/psmisc
+ selinux? ( sec-policy/selinux-dkim )
+"
+
+REQUIRED_USE="sasl? ( ldap )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-gnutls-3.4.patch"
+)
+
+pkg_setup() {
+ enewgroup milter
+ # mail-milter/spamass-milter creates milter user with this home directory
+ # For consistency reasons, milter user must be created here with this home directory
+ # even though this package doesn't need a home directory for this user (#280571)
+ enewuser milter -1 -1 /var/lib/milter milter
+}
+
+src_prepare() {
+ default
+
+ sed -i -e 's:/var/db/dkim:/etc/opendkim:g' \
+ -e 's:/var/db/opendkim:/var/lib/opendkim:g' \
+ -e 's:/etc/mail:/etc/opendkim:g' \
+ -e 's:mailnull:milter:g' \
+ -e 's:^#[[:space:]]*PidFile.*:PidFile /run/opendkim/opendkim.pid:' \
+ opendkim/opendkim.conf.sample opendkim/opendkim.conf.simple.in \
+ stats/opendkim-reportstats{,.in} || die
+
+ sed -i -e 's:dist_doc_DATA:dist_html_DATA:' libopendkim/docs/Makefile.am \
+ || die
+
+ sed -i -e '/sock.*mt.getcwd/s:mt.getcwd():"/tmp":' opendkim/tests/*.lua
+ sed -i -e '/sock.*mt.getcwd/s:mt.getcwd():"/proc/self/cwd":' opendkim/tests/*.lua
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=()
+ if use berkdb ; then
+ myconf+=(
+ $(db_includedir)
+ --with-db-incdir=${myconf#-I}
+ --enable-popauth
+ --enable-query_cache
+ --enable-stats
+ )
+ fi
+ if use unbound; then
+ myconf+=( --with-unbound )
+ else
+ myconf+=( --with-ldns )
+ fi
+ if use ldap; then
+ myconf+=( $(use_with sasl) )
+ fi
+ econf \
+ $(use_with berkdb db) \
+ $(use_with opendbx odbx) \
+ $(use_with lua) \
+ $(use_enable lua rbl) \
+ $(use_with ldap openldap) \
+ $(use_with lmdb) \
+ $(use_enable poll) \
+ $(use_enable static-libs static) \
+ $(use_with gnutls) \
+ $(use_with memcached libmemcached) \
+ "${myconf[@]}" \
+ --enable-filter \
+ --enable-atps \
+ --enable-identity_header \
+ --enable-rate_limit \
+ --enable-resign \
+ --enable-replace_rules \
+ --enable-default_sender \
+ --enable-sender_macro \
+ --enable-vbr \
+ --disable-live-testing
+ #--with-test-socket=/tmp/opendkim-$(echo ${RANDOM})-S
+ #--disable-rpath
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dosbin stats/opendkim-reportstats
+
+ newinitd "${FILESDIR}/opendkim.init.r3" opendkim
+ systemd_newunit "${FILESDIR}/opendkim-r1.service" opendkim.service
+
+ dodir /etc/opendkim /var/lib/opendkim
+ fowners milter:milter /var/lib/opendkim
+
+ # default configuration
+ if [ ! -f "${ROOT}"/etc/opendkim/opendkim.conf ]; then
+ grep ^[^#] "${S}"/opendkim/opendkim.conf.simple \
+ > "${D}"/etc/opendkim/opendkim.conf
+ if use unbound; then
+ echo TrustAnchorFile /etc/dnssec/root-anchors.txt >> "${D}"/etc/opendkim/opendkim.conf
+ fi
+ echo UserID milter >> "${D}"/etc/opendkim/opendkim.conf
+ if use berkdb; then
+ echo Statistics /var/lib/opendkim/stats.dat >> \
+ "${D}"/etc/opendkim/opendkim.conf
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSION} ]]; then
+ elog "If you want to sign your mail messages and need some help"
+ elog "please run:"
+ elog " emerge --config ${CATEGORY}/${PN}"
+ elog "It will help you create your key and give you hints on how"
+ elog "to configure your DNS and MTA."
+
+ ewarn "Make sure your MTA has r/w access to the socket file."
+ ewarn "This can be done either by setting UMask to 002 and adding MTA's user"
+ ewarn "to milter group or you can simply set UMask to 000."
+ fi
+}
+
+pkg_config() {
+ local selector keysize pubkey
+
+ read -p "Enter the selector name (default ${HOSTNAME}): " selector
+ [[ -n "${selector}" ]] || selector=${HOSTNAME}
+ if [[ -z "${selector}" ]]; then
+ eerror "Oddly enough, you don't have a HOSTNAME."
+ return 1
+ fi
+ if [[ -f "${ROOT}"etc/opendkim/${selector}.private ]]; then
+ ewarn "The private key for this selector already exists."
+ else
+ keysize=1024
+ # generate the private and public keys
+ opendkim-genkey -b ${keysize} -D "${ROOT}"etc/opendkim/ \
+ -s ${selector} -d '(your domain)' && \
+ chown milter:milter \
+ "${ROOT}"etc/opendkim/"${selector}".private || \
+ { eerror "Failed to create private and public keys." ; return 1; }
+ chmod go-r "${ROOT}"etc/opendkim/"${selector}".private
+ fi
+
+ # opendkim selector configuration
+ echo
+ einfo "Make sure you have the following settings in your /etc/opendkim/opendkim.conf:"
+ einfo " Keyfile /etc/opendkim/${selector}.private"
+ einfo " Selector ${selector}"
+
+ # MTA configuration
+ echo
+ einfo "If you are using Postfix, add following lines to your main.cf:"
+ einfo " smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " and read http://www.postfix.org/MILTER_README.html"
+
+ # DNS configuration
+ einfo "After you configured your MTA, publish your key by adding this TXT record to your domain:"
+ cat "${ROOT}"etc/opendkim/${selector}.txt
+ einfo "t=y signifies you only test the DKIM on your domain. See following page for the complete list of tags:"
+ einfo " http://www.dkim.org/specs/rfc4871-dkimbase.html#key-text"
+}
diff --git a/mail-filter/opendkim/opendkim-2.10.3.ebuild b/mail-filter/opendkim/opendkim-2.10.3.ebuild
new file mode 100644
index 000000000000..9e1f0e702189
--- /dev/null
+++ b/mail-filter/opendkim/opendkim-2.10.3.ebuild
@@ -0,0 +1,195 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools db-use eutils systemd user
+
+# for betas
+#MY_P=${P/_b/.B}
+#S=${WORKDIR}/${PN}-2.8.0
+#SRC_URI="mirror://sourceforge/opendkim/${MY_P}.tar.gz"
+
+DESCRIPTION="A milter-based application to provide DKIM signing and verification"
+HOMEPAGE="http://opendkim.org"
+SRC_URI="mirror://sourceforge/opendkim/${P}.tar.gz"
+
+LICENSE="Sendmail-Open-Source BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="+berkdb gnutls ldap lmdb lua memcached opendbx poll sasl selinux +ssl static-libs unbound"
+
+DEPEND="|| ( mail-filter/libmilter mail-mta/sendmail )
+ dev-libs/libbsd
+ ssl? ( >=dev-libs/openssl-0.9.8:* )
+ berkdb? ( >=sys-libs/db-3.2:* )
+ opendbx? ( >=dev-db/opendbx-1.4.0 )
+ lua? ( dev-lang/lua:* )
+ ldap? ( net-nds/openldap )
+ lmdb? ( dev-db/lmdb )
+ memcached? ( dev-libs/libmemcached )
+ sasl? ( dev-libs/cyrus-sasl )
+ unbound? ( >=net-dns/unbound-1.4.1 net-dns/dnssec-root )
+ !unbound? ( net-libs/ldns )
+ gnutls? ( >=net-libs/gnutls-2.11.7 )"
+
+RDEPEND="${DEPEND}
+ sys-process/psmisc
+ selinux? ( sec-policy/selinux-dkim )
+"
+
+REQUIRED_USE="sasl? ( ldap )"
+
+pkg_setup() {
+ enewgroup milter
+ # mail-milter/spamass-milter creates milter user with this home directory
+ # For consistency reasons, milter user must be created here with this home directory
+ # even though this package doesn't need a home directory for this user (#280571)
+ enewuser milter -1 -1 /var/lib/milter milter
+}
+
+src_prepare() {
+ sed -i -e 's:/var/db/dkim:/etc/opendkim:g' \
+ -e 's:/var/db/opendkim:/var/lib/opendkim:g' \
+ -e 's:/etc/mail:/etc/opendkim:g' \
+ -e 's:mailnull:milter:g' \
+ -e 's:^#[[:space:]]*PidFile.*:PidFile /run/opendkim/opendkim.pid:' \
+ opendkim/opendkim.conf.sample opendkim/opendkim.conf.simple.in \
+ stats/opendkim-reportstats{,.in} || die
+
+ sed -i -e 's:dist_doc_DATA:dist_html_DATA:' libopendkim/docs/Makefile.am \
+ || die
+
+ sed -i -e '/sock.*mt.getcwd/s:mt.getcwd():"/tmp":' opendkim/tests/*.lua
+ sed -i -e '/sock.*mt.getcwd/s:mt.getcwd():"/proc/self/cwd":' opendkim/tests/*.lua
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ if use berkdb ; then
+ myconf=$(db_includedir)
+ myconf="--with-db-incdir=${myconf#-I}"
+ myconf+=" --enable-popauth"
+ myconf+=" --enable-query_cache"
+ myconf+=" --enable-stats"
+ fi
+ if use unbound; then
+ myconf+=" --with-unbound"
+ else
+ myconf+=" --with-ldns"
+ fi
+ if use ldap; then
+ myconf+=" $(use_with sasl)"
+ fi
+ econf \
+ $(use_with berkdb db) \
+ $(use_with opendbx odbx) \
+ $(use_with lua) \
+ $(use_enable lua rbl) \
+ $(use_with ldap openldap) \
+ $(use_with lmdb) \
+ $(use_enable poll) \
+ $(use_enable static-libs static) \
+ $(use_with gnutls) \
+ $(use_with memcached libmemcached) \
+ ${myconf} \
+ --docdir=/usr/share/doc/${PF} \
+ --htmldir=/usr/share/doc/${PF}/html \
+ --enable-filter \
+ --enable-atps \
+ --enable-identity_header \
+ --enable-rate_limit \
+ --enable-resign \
+ --enable-replace_rules \
+ --enable-default_sender \
+ --enable-sender_macro \
+ --enable-vbr \
+ --disable-live-testing
+ #--with-test-socket=/tmp/opendkim-$(echo ${RANDOM})-S
+ #--disable-rpath
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dosbin stats/opendkim-reportstats
+
+ newinitd "${FILESDIR}/opendkim.init.r3" opendkim
+ systemd_dounit "${FILESDIR}/opendkim.service"
+
+ dodir /etc/opendkim /var/lib/opendkim
+ fowners milter:milter /var/lib/opendkim
+
+ # default configuration
+ if [ ! -f "${ROOT}"/etc/opendkim/opendkim.conf ]; then
+ grep ^[^#] "${S}"/opendkim/opendkim.conf.simple \
+ > "${D}"/etc/opendkim/opendkim.conf
+ if use unbound; then
+ echo TrustAnchorFile /etc/dnssec/root-anchors.txt >> "${D}"/etc/opendkim/opendkim.conf
+ fi
+ echo UserID milter >> "${D}"/etc/opendkim/opendkim.conf
+ if use berkdb; then
+ echo Statistics /var/lib/opendkim/stats.dat >> \
+ "${D}"/etc/opendkim/opendkim.conf
+ fi
+ fi
+
+ use static-libs || find "${D}" -name "*.la" -delete
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSION} ]]; then
+ elog "If you want to sign your mail messages and need some help"
+ elog "please run:"
+ elog " emerge --config ${CATEGORY}/${PN}"
+ elog "It will help you create your key and give you hints on how"
+ elog "to configure your DNS and MTA."
+
+ ewarn "Make sure your MTA has r/w access to the socket file."
+ ewarn "This can be done either by setting UMask to 002 and adding MTA's user"
+ ewarn "to milter group or you can simply set UMask to 000."
+ fi
+}
+
+pkg_config() {
+ local selector keysize pubkey
+
+ read -p "Enter the selector name (default ${HOSTNAME}): " selector
+ [[ -n "${selector}" ]] || selector=${HOSTNAME}
+ if [[ -z "${selector}" ]]; then
+ eerror "Oddly enough, you don't have a HOSTNAME."
+ return 1
+ fi
+ if [[ -f "${ROOT}"etc/opendkim/${selector}.private ]]; then
+ ewarn "The private key for this selector already exists."
+ else
+ keysize=1024
+ # generate the private and public keys
+ opendkim-genkey -b ${keysize} -D "${ROOT}"etc/opendkim/ \
+ -s ${selector} -d '(your domain)' && \
+ chown milter:milter \
+ "${ROOT}"etc/opendkim/"${selector}".private || \
+ { eerror "Failed to create private and public keys." ; return 1; }
+ chmod go-r "${ROOT}"etc/opendkim/"${selector}".private
+ fi
+
+ # opendkim selector configuration
+ echo
+ einfo "Make sure you have the following settings in your /etc/opendkim/opendkim.conf:"
+ einfo " Keyfile /etc/opendkim/${selector}.private"
+ einfo " Selector ${selector}"
+
+ # MTA configuration
+ echo
+ einfo "If you are using Postfix, add following lines to your main.cf:"
+ einfo " smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " and read http://www.postfix.org/MILTER_README.html"
+
+ # DNS configuration
+ einfo "After you configured your MTA, publish your key by adding this TXT record to your domain:"
+ cat "${ROOT}"etc/opendkim/${selector}.txt
+ einfo "t=y signifies you only test the DKIM on your domain. See following page for the complete list of tags:"
+ einfo " http://www.dkim.org/specs/rfc4871-dkimbase.html#key-text"
+}