From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- mail-mta/qpsmtpd/Manifest | 17 ++++ .../files/qpsmtpd-0.40-badrcptto_allowrelay.patch | 10 +++ .../files/qpsmtpd-0.83-accept-empty-email.patch | 44 +++++++++++ .../qpsmtpd/files/qpsmtpd-0.83-clamd_conf.patch | 12 +++ .../qpsmtpd/files/qpsmtpd-0.84-Net-DNS-id.patch | 28 +++++++ mail-mta/qpsmtpd/files/qpsmtpd.confd | 25 ++++++ mail-mta/qpsmtpd/files/qpsmtpd.envd | 2 + mail-mta/qpsmtpd/files/qpsmtpd.initd | 62 +++++++++++++++ mail-mta/qpsmtpd/files/qpsmtpd.initd-r1 | 62 +++++++++++++++ mail-mta/qpsmtpd/files/qpsmtpd.xinetd | 20 +++++ mail-mta/qpsmtpd/metadata.xml | 14 ++++ mail-mta/qpsmtpd/qpsmtpd-0.84-r2.ebuild | 80 +++++++++++++++++++ mail-mta/qpsmtpd/qpsmtpd-0.95.ebuild | 91 ++++++++++++++++++++++ mail-mta/qpsmtpd/qpsmtpd-9999.ebuild | 74 ++++++++++++++++++ 14 files changed, 541 insertions(+) create mode 100644 mail-mta/qpsmtpd/Manifest create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd-0.83-accept-empty-email.patch create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd-0.83-clamd_conf.patch create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd-0.84-Net-DNS-id.patch create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd.confd create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd.envd create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd.initd create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd.initd-r1 create mode 100644 mail-mta/qpsmtpd/files/qpsmtpd.xinetd create mode 100644 mail-mta/qpsmtpd/metadata.xml create mode 100644 mail-mta/qpsmtpd/qpsmtpd-0.84-r2.ebuild create mode 100644 mail-mta/qpsmtpd/qpsmtpd-0.95.ebuild create mode 100644 mail-mta/qpsmtpd/qpsmtpd-9999.ebuild (limited to 'mail-mta/qpsmtpd') diff --git a/mail-mta/qpsmtpd/Manifest b/mail-mta/qpsmtpd/Manifest new file mode 100644 index 000000000000..ec78b2c4d8a2 --- /dev/null +++ b/mail-mta/qpsmtpd/Manifest @@ -0,0 +1,17 @@ +AUX qpsmtpd-0.40-badrcptto_allowrelay.patch 498 SHA256 f0bc5f9d4865084ef673e5271725dd01ec1d3fbfcf4ea47988d728c5acd14acf SHA512 542a36cc410386873fb1eeb39debc443615f39dd0cdfc0e21e914542515ae75294904778f78324e5e5ce03c39542a1e00be0b4d3c7a114b14591f343078ec8c7 WHIRLPOOL 237eb12e95ba61e0a511c42a0e51184eb7dbc6c059008952226fff5c0484509f6d3ad1899fdbf62de98cb798e3bcfec5c4f8e7de2ac62370160c41e14be89062 +AUX qpsmtpd-0.83-accept-empty-email.patch 1599 SHA256 036d280a67da1b737b16cb56ab4acb5fa03b2ade2d38399262c63583ee6874a7 SHA512 859235361dd238a2d1b1fc5d34e951ae184b4c66031b3ffee4c7e33aefc0fbcaa0987aab290b95d08e576da47f69769aa403ba4965f2a20fcaf431412e2a6428 WHIRLPOOL de0599c97f89ea7501ae871b968723c04d8bc7a433f5942b1b28a442e50b1221e2800de5ec716141fe54ec9a1bce0bbecd0e913290f3620cd12410dc53c3b37c +AUX qpsmtpd-0.83-clamd_conf.patch 706 SHA256 ead4226d7037bbeac5ca66b162a8858da520ef6be73604cfe0e86c9aa51aa6f3 SHA512 644daac5c73a0997707a4195bd70faff436205b274fc2d89043ba2d07b76a2b97462a5bcbbd7146f3a6914f6243e973a0a168740dc97068dfda28eecd3ce2366 WHIRLPOOL eb5a1ed14d73d9d24c967cd79093f4a1f8bbb36b84149dae1488fb5bd448b651e842cf3f5f2526a7ee753e795429a48a7db610b7c0360686ade37ded64c00f7b +AUX qpsmtpd-0.84-Net-DNS-id.patch 1069 SHA256 e5967b9d43bebd8e7491e40458b83cac0d9e8994d8d9c23d97db6554b134d627 SHA512 daf8e3c03c80f926cd0e94519945941dcd5b376ab5a1e99c3d83d26f800f0d1b69d4bb5c739483916f038fd7c1190746a2114f72416550f01d9a05c62e63d9bb WHIRLPOOL 04b52894701f8253e40f3f8cb6376908f9f19842240d6ad2f4263a4b749828a215b9c4fb5c7268c440ae9bb7eabce91eaef6d28e4c5b72ce910e6990e0d8824b +AUX qpsmtpd.confd 617 SHA256 7748b525d9c3a3e8cbeec66b8b5df48510a44a1d624168278ce71720e7de8bc0 SHA512 d6dae42a493de7ac7c00e5b1aa2ccb7e1f3b3a2f23011ce854252d1e988d029adcb46407f2aff78cf8c4b832ef38e25a6fa2ddac4512acf7a455ab5f031201a2 WHIRLPOOL 7290cf8d7220e34208250a456b4dc244c9dd2eaf2e4041e201c078a396657c59724653be5a98cf206b7335c6b8378b3e7b0efd0d85cdf39a7276f178d526b089 +AUX qpsmtpd.envd 74 SHA256 bbf8f40198e8a87ff6103b5dc98cae561f0dc9738a6cda3492b00468fbfdfd8e SHA512 2fe8e49d55df9216249fda126cf632c82b19740878f3f8aa3044b4f98d435ebd37933fa786dd89e9f538486251239f87f42942f3e12673d096aca9f5b9cb3ea8 WHIRLPOOL 1d4944de0731b4a2b00da1a9092fa0f995fad80df95a3852307f5eeba19345cf0e2456c436011e1363d7ce91df736ae8e742a4146ee8d93e1687e97cfe195764 +AUX qpsmtpd.initd 2058 SHA256 8bcde362c743ac7400c745e57d732b884943544571ca502bd4f2d4032926215e SHA512 ee3477b3de6f7e7bd5c6460f78d04b3c61fa7448805f53067e4c0c7437d896a47ed3beb2c0bce403b7541a06561f8698aaa4f12e1e4a885412472b8f06d1dbd3 WHIRLPOOL a81a282def0e32ff71959b497f04b6143fa89fe7e7e7a42857bac4503fa1baaa3dd63e3e7da194b566dc57b5b92f5c204a91c853254b5e1a9eb6f51167137e07 +AUX qpsmtpd.initd-r1 2054 SHA256 f3187b68f31e105edea0af7034adea8ee18456029913d32a43b8950e1a6679f3 SHA512 5c62c18b249fe0566b958f1a43f4d31f376005ec393d493fd419b89f0a08a23a41d6b8b24c30d4e5cb7b672a545ebeafc9b5645e3b1e2aa8c7bfcfaca20f07ff WHIRLPOOL 3b2c33e619bd28af7515bb8c98d9cb89951e1ca01bb46f4d8f55dff48c83d477f1dd937b8a4489c93caf70003201326e57bcd967ec8dd17b59bf0ed9dacdc263 +AUX qpsmtpd.xinetd 526 SHA256 45729911251be13007d95bb9e25b6c9c951a6419b8badae4e4097dfc603edcdd SHA512 b02331ea352573ea6bb1a46b1df343d2819ebe39dc4a42ec750c9a59f49a653f01bc933d7a2ee32e86fd386395137309de8202970465a2a2d8668fa35ae03994 WHIRLPOOL 1d483d3053cc72de09b6ea70cc6ed458caf92c6b9cb051f82454f1cb238cfbf1a8163e9161ffcafb002333a681c62f11aa947b635d2d1aeedce555ddbc8815b6 +DIST qpsmtpd-0.84.tar.gz 178260 SHA256 a09865816322531edd59d6fecd4bda35a9d583610b69d69a86e44038da841c98 SHA512 a12491c123d21b4e3965105bbe88ad7e7e61551a3ff4e96eee78c83dcb2afae62239fa24d710092a7ccf60097699901c42d70df8183de6454bef4fb26843358d WHIRLPOOL dfc0049faebbbe203949b24fc6d49213c606f5fbe24b4df35b2be8c8cc77d2350719f304a9c7f16782a67d64a5101debb03baa204d91f97adeaa072bf942a3fb +DIST qpsmtpd-0.95.tar.gz 367400 SHA256 ec5a7d202f4a90ef1df5581c669440082cd5a4c24f5cf4b86f23b323835c7fdb SHA512 4265606ecde68eda92091e2c3c27645baa131db4197f3d135932dc2ad8d76c1fb6c25ce267ab421cab3a4a9902aa682e4be87a1228e41b226705a64e440ffe87 WHIRLPOOL ea927d322d5b5bb82eb80e279e5ca9f461afd42bbb0922470cf97ca8e87578ae968116ccc263eec57676ca2fa3b4b582a11757f6eb9c15c100664451f989d3cd +EBUILD qpsmtpd-0.84-r2.ebuild 2114 SHA256 358715f0e2e7c8a895379213f52f361f7d508c0eb5e2fa75e50c010d9303cda9 SHA512 9f692226f67cf179f5c238c1a92db515605597d62a01b5ad0040960546184cb20c676b7b5efbb35cf26f0e9d875473af9ba31a00b4b50122703b1386ad206c35 WHIRLPOOL 2726997d15afe36a0b01793dfc25dead023d237f34cba1bf10f96211d6c44b8e96bbb1cd9a75910faabc9768a778673e1c82af4882fa37a5dece36a6e92e5fbe +EBUILD qpsmtpd-0.95.ebuild 2231 SHA256 326a69ba29d3e2b744b4669b5bc49cc7dfb7dd8a40d6bf4190acb438e8e7f9e8 SHA512 78676d88efb2cc4924e55e76a9f9fb1f15deb3a74a7760546953f07db1d10d6827dc5028fe6f28e544123422279318dc2b27c0f47f9bb38ce4bad89919215973 WHIRLPOOL 85f8c0867872d5c734145cad67b9a7556c5301afa3700ede965f6f81cc4b7782354eed332dc3f274f9853a52cfe63d41390bc05950dab899acd810419c3758ef +EBUILD qpsmtpd-9999.ebuild 1924 SHA256 12533b30b9c672fa8b4ec9b4977766a62528599665bf1727ee3b9616e42d775c SHA512 f91d624d6b2cdaef054e95131dcbd456ee1036aec1a83540c2c3e46bbaa22d5291cb298dd6f2d9d235aa53b5f76718b0ccfd776ec117ee034a1cbf608ffeaca9 WHIRLPOOL d81a63234cf81f619b5562aa8e1c53b24977c58fb6163a5c8ab75a82c70ff59d9b116b1a9044b0c4ee0142133462e1ad6b10c2757de2d688711c3850605b7c27 +MISC ChangeLog 3505 SHA256 784fa6bfb33dac40d91255f919617182d67315cdd0063a25551bf4a08851eabe SHA512 870f7e53eb7cef0d5fc2a67712d0ea37c89c2e1d99304cb0320363f7a57bd948c2c8038ea352c8c7eae6d993ca43fb9bd1c07a31ccfc50fba2f4b1ccc12052ee WHIRLPOOL b387ae940a69a6bf0d8fd179262d11a353439878b28cc01d20b671c74b04412f6a2e3e615ecbafa93aded85f5792ce2c2dfcacbe79840ab3637a6a36a8dc2f57 +MISC ChangeLog-2015 4947 SHA256 83b6f0f0400985bd82b26a013dd468ced10005f1c1f68341efc73b3578257e50 SHA512 5d56439de42b7e4df30abef41c4aa976c62c6c419fbfc09c9620bf986b59932c75c8cd4664fbdb56a4dc8ecb0337fe84d1fee1b8e50fce3e56729c4665d3e227 WHIRLPOOL 14b2721adbeb7314a1083fd79ab8ca5ea2a80d8dd04e836b4cd2693bfe23e44e91a2f3ec17c0be46f1a81e5e30f27d8623f120bc27a5ba06e29a2c5924693c6b +MISC metadata.xml 469 SHA256 ad2e209a10185f17a5a260336d270f07b3fbe73b35512d9121102b9ce09e9597 SHA512 d78cfa5db252e2957c22d76a779e9fd64f821d49c1eac7454c9d86ed8579ee90fba45a9d75e7d44f256f8c0bf25c357c2df9c1d870be16b54d519a47eeb692dd WHIRLPOOL 8648e5d139676d1f1982505a885f459662645c06212f3352934be478075e141cc8a4e197a664343aa2f92255fc09e925b68c36c369c3fd992711ebd1eafaf7e0 diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch new file mode 100644 index 000000000000..1f9f33f9a148 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch @@ -0,0 +1,10 @@ +--- qpsmtpd-0.40/plugins/check_badrcptto.badrcptto_allowrelay 2007-06-14 11:57:24.000000000 -0600 ++++ qpsmtpd-0.40/plugins/check_badrcptto 2007-06-14 13:26:42.000000000 -0600 +@@ -3,6 +3,7 @@ + + sub hook_rcpt { + my ($self, $transaction, $recipient, %param) = @_; ++ return (DECLINED) if $self->qp->connection->relay_client; + my @badrcptto = $self->qp->config("badrcptto") or return (DECLINED); + return (DECLINED) unless $recipient->host && $recipient->user; + my $host = lc $recipient->host; diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.83-accept-empty-email.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.83-accept-empty-email.patch new file mode 100644 index 000000000000..2e1dcacc46c3 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.83-accept-empty-email.patch @@ -0,0 +1,44 @@ +Accept messages with no body. + +If a message has no body, there is nothing in the RFC spec that says it +needs to have a trailing \n for a blank line after the headers. + +Thumderbird 10 generates some emails like this, which will always cause +plugin errors when $transaction->header is accessed otherwise, as there +is almost no checking that $transaction->header is defined before usage. + +Signed-off-by: Robin H. Johnson +Thanks-To: Jack Bates + +--- qpsmtpd-0.83.orig/lib/Qpsmtpd/SMTP.pm 2009-04-03 06:24:21.000000000 +0000 ++++ qpsmtpd-0.83/lib/Qpsmtpd/SMTP.pm 2012-02-25 05:52:14.000000000 +0000 +@@ -632,7 +632,7 @@ + + my $timeout = $self->config('timeout'); + while (defined($_ = $self->getline($timeout))) { +- $complete++, last if $_ eq ".\r\n"; ++ $complete++, $_ = '' if $_ eq ".\r\n"; + $i++; + + # should probably use \012 and \015 in these checks instead of \r and \n ... +@@ -648,7 +648,7 @@ + unless (($max_size and $size > $max_size)) { + s/\r\n$/\n/; + s/^\.\./\./; +- if ($in_header and m/^$/) { ++ if ($in_header and (m/^$/ or $complete > 0)) { + $in_header = 0; + my @headers = split /^/m, $buffer; + +@@ -691,9 +691,10 @@ + + # copy all lines into the spool file, including the headers + # we will create a new header later before sending onwards +- $self->transaction->body_write($_); ++ $self->transaction->body_write($_) unless $complete; + $size += length $_; + } ++ last if $complete > 0; + #$self->log(LOGDEBUG, "size is at $size\n") unless ($i % 300); + } + diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.83-clamd_conf.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.83-clamd_conf.patch new file mode 100644 index 000000000000..801dc477df9f --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.83-clamd_conf.patch @@ -0,0 +1,12 @@ +diff -Nuar --exclude '*.orig' --exclude '*.rej' qpsmtpd-0.83.orig/plugins/virus/clamav qpsmtpd-0.83/plugins/virus/clamav +--- qpsmtpd-0.83.orig/plugins/virus/clamav 2009-07-20 15:36:17.000000000 +0000 ++++ qpsmtpd-0.83/plugins/virus/clamav 2009-09-16 01:14:22.903329780 +0000 +@@ -151,7 +151,7 @@ + $self->{_max_size} ||= 512 * 1024; + $self->{_spool_dir} ||= $self->spool_dir(); + $self->{_back_compat} ||= ''; # make sure something is set +- $self->{_clamd_conf} ||= '/etc/clamd/conf'; # make sure something is set ++ $self->{_clamd_conf} ||= '/etc/clamd.conf'; # make sure something is set + $self->{_declined_on_fail} ||= 0; # decline the message on clamav failure + + unless ($self->{_spool_dir}) { diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.84-Net-DNS-id.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.84-Net-DNS-id.patch new file mode 100644 index 000000000000..6331e98cb48b --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.84-Net-DNS-id.patch @@ -0,0 +1,28 @@ +Net::DNS function nextid() changed to id(). + +Signed-off-by: Robin H. Johnson + +diff -Nuar qpsmtpd-0.84.orig/qpsmtpd-async qpsmtpd-0.84/qpsmtpd-async +--- qpsmtpd-0.84.orig/qpsmtpd-async 2009-04-03 05:48:34.000000000 +0000 ++++ qpsmtpd-0.84/qpsmtpd-async 2013-04-15 23:01:49.952857659 +0000 +@@ -145,7 +145,7 @@ + # print "Next DNS ID: $Net::DNS::Resolver::global{id}\n"; + }; + if ($@) { +- # print "Next DNS ID: " . Net::DNS::Header::nextid() . "\n"; ++ # print "Next DNS ID: " . Net::DNS::Header::id() . "\n"; + } + + # Fixup lost kqueue after fork +diff -Nuar qpsmtpd-0.84.orig/qpsmtpd-forkserver qpsmtpd-0.84/qpsmtpd-forkserver +--- qpsmtpd-0.84.orig/qpsmtpd-forkserver 2010-04-08 05:29:52.000000000 +0000 ++++ qpsmtpd-0.84/qpsmtpd-forkserver 2013-04-15 23:01:49.952857659 +0000 +@@ -285,7 +285,7 @@ + # all children should have different seeds, to prevent conflicts + srand(); + for (0 .. rand(65536)) { +- Net::DNS::Header::nextid(); ++ Net::DNS::Header::id(); + } + + close $_ for $select->handles; diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.confd b/mail-mta/qpsmtpd/files/qpsmtpd.confd new file mode 100644 index 000000000000..9a82c7100e21 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.confd @@ -0,0 +1,25 @@ +# Config file for /etc/init.d/qpsmtpd +# + +QPSMTPD_CONFIG="/etc/qpsmtpd" +QPSMTPD_NICELEVEL="0" + +# Select QPSMTPD server type +# - async +# Not all plugins work without problems with the async mode. +# - forkserver (default) +# - prefork +# Does not work 100%. Use at your own risk. +QPSMTPD_SERVER_TYPE="forkserver" + +# QPSMTPD options. This can be different depending on +# what QPSMTPD server you run. +# +# Typical forkserver +QPSMTPD_OPTIONS="-l 0.0.0.0 -p 25 -u smtpd" +# +# Typical prefork +# QPSMTPD_OPTIONS="--interface 0.0.0.0 --port 25 --user smtpd" +# +# Typical async +# QPSMTPD_OPTIONS="-l 0.0.0.0 -p 25 -u smtpd" diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.envd b/mail-mta/qpsmtpd/files/qpsmtpd.envd new file mode 100644 index 000000000000..3665116f34ea --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.envd @@ -0,0 +1,2 @@ +QPSMTPD_CONFIG="/etc/qpsmtpd" +CONFIG_PROTECT="/usr/share/qpsmtpd/plugins" diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.initd b/mail-mta/qpsmtpd/files/qpsmtpd.initd new file mode 100644 index 000000000000..8f4b27f85ed4 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.initd @@ -0,0 +1,62 @@ +#!/sbin/openrc-run + +pidfile=/var/run/qpsmtpd/qpsmtpd.pid + +depend() { + use logger dns ypbind amavisd mysql postgresql antivirus postfix_greylist net saslauthd + provide mta +} + +checkconfig() { + if ! [ -d "${QPSMTPD_CONFIG:-/etc/qpsmtpd}" ]; then + eerror "Configuration directory ${QPSMTPD_CONFIG:-/etc/qpsmtpd} does not exist." + return 1 + fi + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting qpsmtpd [${QPSMTPD_SERVER_TYPE}] server" + HOME="/var/spool/qpsmtpd" + local QPSMTPD_SERVER_BIN="" + local myopts="" + export QPSMTPD_CONFIG=${QPSMTPD_CONFIG} + for foo in PERL_UNICODE LANG LC_TIME LC_ALL BASH_ENV ENV CDPATH IFS + do + unset ${foo} + done + case "${QPSMTPD_SERVER_TYPE}" in + prefork) + QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-prefork" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")" + # Option --pid-file is mentioned in the help of the prefork server + # but does not work when specified. + # QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file ${pidfile}" + myopts="${myopts} --make-pidfile --pidfile ${pidfile}" + ;; + async) + QPSMTPD_SERVER_BIN="/usr/sbin/qpsmtpd-async" + myopts="${myopts} --background --make-pidfile --pidfile ${pidfile}" + ;; + forkserver|*) + QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-forkserver" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-d[\t ]\{1,99\}|[\t ]\{1,99\}\-d[\t ]\{0,99\}::gI")" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-\detach[\t ]\{1,99\}|[\t ]\{1,99\}\-\-detach[\t ]\{0,99\}::gI")" + QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file ${pidfile} --detach" + myopts="${myopts} --pidfile ${pidfile}" + ;; + esac + start-stop-daemon --start --nicelevel ${QPSMTPD_NICELEVEL:-0} \ + --quiet ${myopts} \ + --exec ${QPSMTPD_SERVER_BIN} \ + -- ${QPSMTPD_OPTIONS} + eend $? +} + +stop() { + ebegin "Stopping qpsmtpd [${QPSMTPD_SERVER_TYPE}] server" + start-stop-daemon --stop --quiet --pidfile ${pidfile} + eend $? +} diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.initd-r1 b/mail-mta/qpsmtpd/files/qpsmtpd.initd-r1 new file mode 100644 index 000000000000..a0c8f591b598 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.initd-r1 @@ -0,0 +1,62 @@ +#!/sbin/openrc-run + +pidfile=/run/qpsmtpd/qpsmtpd.pid + +depend() { + use logger dns ypbind amavisd mysql postgresql antivirus postfix_greylist net saslauthd + provide mta +} + +checkconfig() { + if ! [ -d "${QPSMTPD_CONFIG:-/etc/qpsmtpd}" ]; then + eerror "Configuration directory ${QPSMTPD_CONFIG:-/etc/qpsmtpd} does not exist." + return 1 + fi + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting qpsmtpd [${QPSMTPD_SERVER_TYPE}] server" + HOME="/var/spool/qpsmtpd" + local QPSMTPD_SERVER_BIN="" + local myopts="" + export QPSMTPD_CONFIG=${QPSMTPD_CONFIG} + for foo in PERL_UNICODE LANG LC_TIME LC_ALL BASH_ENV ENV CDPATH IFS + do + unset ${foo} + done + case "${QPSMTPD_SERVER_TYPE}" in + prefork) + QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-prefork" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")" + # Option --pid-file is mentioned in the help of the prefork server + # but does not work when specified. + # QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file ${pidfile}" + myopts="${myopts} --make-pidfile --pidfile ${pidfile}" + ;; + async) + QPSMTPD_SERVER_BIN="/usr/sbin/qpsmtpd-async" + myopts="${myopts} --background --make-pidfile --pidfile ${pidfile}" + ;; + forkserver|*) + QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-forkserver" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-d[\t ]\{1,99\}|[\t ]\{1,99\}\-d[\t ]\{0,99\}::gI")" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-\detach[\t ]\{1,99\}|[\t ]\{1,99\}\-\-detach[\t ]\{0,99\}::gI")" + QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file ${pidfile} --detach" + myopts="${myopts} --pidfile ${pidfile}" + ;; + esac + start-stop-daemon --start --nicelevel ${QPSMTPD_NICELEVEL:-0} \ + --quiet ${myopts} \ + --exec ${QPSMTPD_SERVER_BIN} \ + -- ${QPSMTPD_OPTIONS} + eend $? +} + +stop() { + ebegin "Stopping qpsmtpd [${QPSMTPD_SERVER_TYPE}] server" + start-stop-daemon --stop --quiet --pidfile ${pidfile} + eend $? +} diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.xinetd b/mail-mta/qpsmtpd/files/qpsmtpd.xinetd new file mode 100644 index 000000000000..71cb21c2b98e --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.xinetd @@ -0,0 +1,20 @@ +# default: off +# description: The telnet server serves telnet sessions; it uses \ +# unencrypted username/password pairs for authentication. + +service smtp +{ + flags = REUSE + socket_type = stream + wait = no + user = smtpd + group = smtpd + groups = yes + log_on_failure += USERID HOST + disable = yes + rlimit_as = 128M + instances = 40 + per_source = 10 + cps = 50 10 + server = /usr/bin/qpsmtpd +} diff --git a/mail-mta/qpsmtpd/metadata.xml b/mail-mta/qpsmtpd/metadata.xml new file mode 100644 index 000000000000..de132d22fea8 --- /dev/null +++ b/mail-mta/qpsmtpd/metadata.xml @@ -0,0 +1,14 @@ + + + + + net-mail@gentoo.org + Net-Mail + + + create user with permissions for proper postfix interaction + + + smtpd/qpsmtpd + + diff --git a/mail-mta/qpsmtpd/qpsmtpd-0.84-r2.ebuild b/mail-mta/qpsmtpd/qpsmtpd-0.84-r2.ebuild new file mode 100644 index 000000000000..b0dc181fd287 --- /dev/null +++ b/mail-mta/qpsmtpd/qpsmtpd-0.84-r2.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils perl-app user + +DESCRIPTION="qpsmtpd is a flexible smtpd daemon written in Perl" +HOMEPAGE="http://smtpd.develooper.com" +SRC_URI="http://smtpd.develooper.com/files/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="postfix ipv6 syslog" + +RDEPEND=">=dev-lang/perl-5.8.0 + >=dev-perl/Net-DNS-0.690.0 + virtual/perl-MIME-Base64 + dev-perl/MailTools + dev-perl/IPC-Shareable + dev-perl/Socket6 + dev-perl/Danga-Socket + dev-perl/ParaDNS + ipv6? ( dev-perl/IO-Socket-INET6 ) + syslog? ( virtual/perl-Sys-Syslog ) + virtual/inetd" + +pkg_setup() { + enewgroup smtpd + local additional_groups + if use postfix; then + additional_groups="${additional_groups},postdrop" + fi + enewuser smtpd -1 -1 /var/spool/qpsmtpd smtpd${additional_groups} +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-0.40-badrcptto_allowrelay.patch + #epatch "${FILESDIR}"/${PN}-0.83-clamd_conf.patch + epatch "${FILESDIR}"/${PN}-0.83-accept-empty-email.patch + epatch "${FILESDIR}"/${PN}-0.84-Net-DNS-id.patch +} + +src_install() { + perl-module_src_install + + insinto /etc/xinetd.d + newins "${FILESDIR}"/qpsmtpd.xinetd qpsmtpd + + dodir /usr/share/qpsmtpd + cp -Rf plugins "${D}"/usr/share/qpsmtpd/ + + insinto /etc/qpsmtpd + doins config.sample/* + + echo "/usr/share/qpsmtpd/plugins" > "${D}"/etc/qpsmtpd/plugin_dirs + echo "/var/spool/qpsmtpd" > "${D}"/etc/qpsmtpd/spool_dir + cat >"${D}"/etc/qpsmtpd/logging <<-EOF + #logging/syslog loglevel LOGINFO priority LOG_NOTICE + #logging/file loglevel LOGINFO /var/log/qpsmtpd/%Y-%m-%d + EOF + if use syslog; then + sed -i -e '/^#logging\/syslog/s,^#,,g' "${D}"/etc/qpsmtpd/logging || die + else + sed -i -e '/^#logging\/file/s,^#,,g' "${D}"/etc/qpsmtpd/logging || die + fi + + newenvd "${FILESDIR}"/qpsmtpd.envd 99qpsmtpd + + newconfd "${FILESDIR}"/qpsmtpd.confd qpsmtpd + newinitd "${FILESDIR}"/qpsmtpd.initd-r1 qpsmtpd + + dodoc CREDITS Changes README README.plugins STATUS + + diropts -m 0755 -o smtpd -g smtpd + dodir /var/spool/qpsmtpd /var/log/qpsmtpd + keepdir /var/spool/qpsmtpd /var/log/qpsmtpd + +} diff --git a/mail-mta/qpsmtpd/qpsmtpd-0.95.ebuild b/mail-mta/qpsmtpd/qpsmtpd-0.95.ebuild new file mode 100644 index 000000000000..c815be43a4db --- /dev/null +++ b/mail-mta/qpsmtpd/qpsmtpd-0.95.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +[[ ${PV} == *9999 ]] && SCM="git-2" +inherit eutils perl-app user ${SCM} + +DESCRIPTION="qpsmtpd is a flexible smtpd daemon written in Perl" +HOMEPAGE="https://smtpd.github.io/qpsmtpd/" +KEYWORDS="" +if [[ ${PV} != *9999 ]]; then + SRC_URI="https://github.com/smtpd/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +else + # This is a spotted development fork with many improvements +EGIT_REPO_URI="https://github.com/smtpd/${PN}.git" +fi + +LICENSE="MIT" +SLOT="0" +KEYWORDS="" +IUSE="postfix ipv6 syslog" + +RDEPEND=">=dev-lang/perl-5.8.0 + >=dev-perl/Net-DNS-0.690.0 + virtual/perl-MIME-Base64 + dev-perl/MailTools + dev-perl/IPC-Shareable + dev-perl/Socket6 + dev-perl/Danga-Socket + dev-perl/ParaDNS + dev-perl/UNIVERSAL-isa + ipv6? ( dev-perl/IO-Socket-INET6 ) + syslog? ( virtual/perl-Sys-Syslog ) + virtual/inetd" + +pkg_setup() { + enewgroup smtpd + local additional_groups + if use postfix; then + additional_groups="${additional_groups},postdrop" + fi + enewuser smtpd -1 -1 /var/spool/qpsmtpd smtpd${additional_groups} +} + +src_unpack() { + if [[ ${PV} != *9999 ]]; then + unpack ${A} + cd "${S}" + else + git-2_src_unpack + cd "${S}" + fi +} + +src_install() { + perl-module_src_install + + insinto /etc/xinetd.d + newins "${FILESDIR}"/qpsmtpd.xinetd qpsmtpd + + dodir /usr/share/qpsmtpd + cp -Rf plugins "${D}"/usr/share/qpsmtpd/ + + diropts -m 0755 -o smtpd -g smtpd + dodir /var/spool/qpsmtpd + keepdir /var/spool/qpsmtpd + + dodir /etc/qpsmtpd + insinto /etc/qpsmtpd + doins config.sample/* + + echo "/usr/share/qpsmtpd/plugins" > "${D}"/etc/qpsmtpd/plugin_dirs + echo "/var/spool/qpsmtpd" > "${D}"/etc/qpsmtpd/spool_dir + if use syslog; then + echo "logging/syslog loglevel LOGINFO priority LOG_NOTICE" > "${D}"/etc/qpsmtpd/logging + else + diropts -m 0755 -o smtpd -g smtpd + dodir /var/log/qpsmtpd + keepdir /var/log/qpsmtpd + echo "logging/file loglevel LOGINFO /var/log/qpsmtpd/%Y-%m-%d" > "${D}"/etc/qpsmtpd/logging + fi + + newenvd "${FILESDIR}"/qpsmtpd.envd 99qpsmtpd + + newconfd "${FILESDIR}"/qpsmtpd.confd qpsmtpd + newinitd "${FILESDIR}"/qpsmtpd.initd-r1 qpsmtpd + + dodoc CREDITS Changes README.md README.plugins.md STATUS UPGRADING.md +} diff --git a/mail-mta/qpsmtpd/qpsmtpd-9999.ebuild b/mail-mta/qpsmtpd/qpsmtpd-9999.ebuild new file mode 100644 index 000000000000..1374e821c0e6 --- /dev/null +++ b/mail-mta/qpsmtpd/qpsmtpd-9999.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils perl-app user git-2 + +DESCRIPTION="qpsmtpd is a flexible smtpd daemon written in Perl" +HOMEPAGE="https://smtpd.github.io/qpsmtpd/" +# This is a spotted development fork with many improvements +EGIT_REPO_URI="https://github.com/smtpd/${PN}.git" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="" +IUSE="postfix ipv6 syslog" + +RDEPEND=">=dev-lang/perl-5.8.0 + >=dev-perl/Net-DNS-0.690.0 + virtual/perl-MIME-Base64 + dev-perl/MailTools + dev-perl/IPC-Shareable + dev-perl/Socket6 + dev-perl/Danga-Socket + dev-perl/ParaDNS + dev-perl/UNIVERSAL-isa + ipv6? ( dev-perl/IO-Socket-INET6 ) + syslog? ( virtual/perl-Sys-Syslog ) + virtual/inetd" + +pkg_setup() { + enewgroup smtpd + local additional_groups + if use postfix; then + additional_groups="${additional_groups},postdrop" + fi + enewuser smtpd -1 -1 /var/spool/qpsmtpd smtpd${additional_groups} +} + +src_install() { + perl-module_src_install + + insinto /etc/xinetd.d + newins "${FILESDIR}"/qpsmtpd.xinetd qpsmtpd + + dodir /usr/share/qpsmtpd + cp -Rf plugins "${D}"/usr/share/qpsmtpd/ + + diropts -m 0755 -o smtpd -g smtpd + dodir /var/spool/qpsmtpd + keepdir /var/spool/qpsmtpd + + dodir /etc/qpsmtpd + insinto /etc/qpsmtpd + doins config.sample/* + + echo "/usr/share/qpsmtpd/plugins" > "${D}"/etc/qpsmtpd/plugin_dirs + echo "/var/spool/qpsmtpd" > "${D}"/etc/qpsmtpd/spool_dir + if use syslog; then + echo "logging/syslog loglevel LOGINFO priority LOG_NOTICE" > "${D}"/etc/qpsmtpd/logging + else + diropts -m 0755 -o smtpd -g smtpd + dodir /var/log/qpsmtpd + keepdir /var/log/qpsmtpd + echo "logging/file loglevel LOGINFO /var/log/qpsmtpd/%Y-%m-%d" > "${D}"/etc/qpsmtpd/logging + fi + + newenvd "${FILESDIR}"/qpsmtpd.envd 99qpsmtpd + + newconfd "${FILESDIR}"/qpsmtpd.confd qpsmtpd + newinitd "${FILESDIR}"/qpsmtpd.initd-r1 qpsmtpd + + dodoc CREDITS Changes README.md README.plugins.md STATUS UPGRADING.md +} -- cgit v1.2.3