aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/Makefile1
-rw-r--r--mail/p5-qpsmtpd/Makefile76
-rw-r--r--mail/p5-qpsmtpd/distinfo3
-rw-r--r--mail/p5-qpsmtpd/files/qpsmtpd.sh.in78
-rw-r--r--mail/p5-qpsmtpd/pkg-descr14
-rw-r--r--mail/p5-qpsmtpd/pkg-plist92
6 files changed, 264 insertions, 0 deletions
diff --git a/mail/Makefile b/mail/Makefile
index 4ece946f3079..e611ab2d1b91 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -382,6 +382,7 @@
SUBDIR += p5-URI-imaps
SUBDIR += p5-WWW-GMail
SUBDIR += p5-WWW-Hotmail
+ SUBDIR += p5-qpsmtpd
SUBDIR += p5-vpopmail
SUBDIR += pantomime
SUBDIR += pathalias
diff --git a/mail/p5-qpsmtpd/Makefile b/mail/p5-qpsmtpd/Makefile
new file mode 100644
index 000000000000..ecfdec6f2f2a
--- /dev/null
+++ b/mail/p5-qpsmtpd/Makefile
@@ -0,0 +1,76 @@
+# New ports collection makefile for: qpsmtpd
+# Date created: 1 January 2007
+# Whom: Zane C. Bowers
+#
+# $FreeBSD$
+#
+
+PORTNAME= qpsmtpd
+PORTVERSION= 0.32
+CATEGORIES= mail
+DISTNAME= qpsmtpd-${PORTVERSION}
+
+MAINTAINER= vvelox@vvelox.net
+COMMENT= A flexible SMTP daemon written in Perl and featuring a plugin API
+
+#none for Net::Milter yet... meaning the milter plugin does not work and thus deleted when installed
+#none for Clamd yet... meaning the plugins/virus/clamd does not work and thus deleted when installed
+RUN_DEPENDS= ${SITE_PERL}/${PERL_ARCH}/Net/DNS.pm:${PORTSDIR}/dns/p5-Net-DNS \
+ ${SITE_PERL}/${PERL_ARCH}/MIME/Base64.pm:${PORTSDIR}/converters/p5-MIME-Base64 \
+ ${SITE_PERL}/Mail/Header.pm:${PORTSDIR}/mail/p5-Mail-Tools \
+ ${SITE_PERL}/IO/Socket/SSL.pm:${PORTSDIR}/security/p5-IO-Socket-SSL \
+ spamd:${PORTSDIR}/mail/p5-Mail-SpamAssassin \
+ ${SITE_PERL}/${PERL_ARCH}/Net/DNS/Resolver.pm:${PORTSDIR}/dns/p5-Net-DNS \
+ ${SITE_PERL}/Date/Parse.pm:${PORTSDIR}/devel/p5-TimeDate \
+ ${SITE_PERL}/File/Temp.pm:${PORTSDIR}/devel/p5-File-Temp \
+ ${SITE_PERL}/${PERL_ARCH}/Geo/IP.pm:${PORTSDIR}/net/p5-Geo-IP \
+ ${SITE_PERL}/Net/LDAP.pm:${PORTSDIR}/net/p5-perl-ldap \
+ ${SITE_PERL}/Digest/HMAC_MD5.pm:${PORTSDIR}/security/p5-Digest-HMAC
+
+MASTER_SITES= http://smtpd.develooper.com/files/
+
+PKGNAMEPREFIX= p5-
+
+WRKSRC= ${WRKDIR}/${DISTNAME}
+
+PERL_CONFIGURE= yes
+
+MAN3= Qpsmtpd::Constants.3 \
+ Qpsmtpd::DSN.3 \
+ Qpsmtpd::Auth.3 \
+ Qpsmtpd::Transaction.3 \
+ Qpsmtpd::Address.3 \
+ Qpsmtpd.3 \
+ Qpsmtpd::Connection.3 \
+ Qpsmtpd::Postfix.3 \
+ Apache::Qpsmtpd.3
+
+USE_RC_SUBR= qpsmtpd.sh
+
+pre-configure:
+ @${RM} -v ${WRKSRC}/plugins/milter
+ @${RM} -v ${WRKSRC}/plugins/virus/clamdscan
+
+post-install:
+ @${MKDIR} -v ${PREFIX}/share/examples/${PORTNAME}
+ @${CP} -v ${WRKSRC}/config.sample/* ${PREFIX}/share/examples/${PORTNAME}
+ @${MKDIR} -v ${PREFIX}/share/${PORTNAME}
+ @${MKDIR} -v ${PREFIX}/share/${PORTNAME}/plugins
+ @${CP} -vr ${WRKSRC}/plugins/ ${PREFIX}/share/${PORTNAME}/plugins
+ @${ECHO_MSG}
+ @${ECHO_MSG}
+ @${ECHO_MSG} '*****************************************************************'
+ @${ECHO_MSG}
+ @${ECHO_MSG} "Please read http://wiki.qpsmtpd.org/ for more info about"
+ @${ECHO_MSG} "installation."
+ @${ECHO_MSG}
+ @${ECHO_MSG} "The example config can be found in "${PREFIX}"/share/examples/"${PORTNAME}"/"
+ @${ECHO_MSG}
+ @${ECHO_MSG} "The plugins can be found in "${PREFIX}"/share/"${PORTNAME}"/plugins/"
+ @${ECHO_MSG}
+ @${ECHO_MSG} "This port does also not make any assumptions about what user you"
+ @${ECHO_MSG} "wish to use or install location."
+ @${ECHO_MSG}
+ @${ECHO_MSG} '*****************************************************************'
+
+.include <bsd.port.mk>
diff --git a/mail/p5-qpsmtpd/distinfo b/mail/p5-qpsmtpd/distinfo
new file mode 100644
index 000000000000..d967bcb282e1
--- /dev/null
+++ b/mail/p5-qpsmtpd/distinfo
@@ -0,0 +1,3 @@
+MD5 (qpsmtpd-0.32.tar.gz) = ec4622643b7fd504676dadd3b238bcf5
+SHA256 (qpsmtpd-0.32.tar.gz) = 21ff3cd3a929dbcfe694fdfd6cb7f581e8e4dfcd3e56f0449c90a218200d1e0e
+SIZE (qpsmtpd-0.32.tar.gz) = 108080
diff --git a/mail/p5-qpsmtpd/files/qpsmtpd.sh.in b/mail/p5-qpsmtpd/files/qpsmtpd.sh.in
new file mode 100644
index 000000000000..52124aada89a
--- /dev/null
+++ b/mail/p5-qpsmtpd/files/qpsmtpd.sh.in
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+# PROVIDE: qpsmtpd
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: securelevel
+
+#variables
+#qpsmtpd_user = the user to run qpsmtpd-forkserver under
+#qpsmtpd_group = the group the pid dir will be chowned to
+#qpsmtpd_port = the port it should listen on
+#qpsmtpd_max_per_ip = max connections per IP
+#qpsmtpd_max_connections = maximum total connections
+#qpsmtpd_listen_on = IP to listen on
+
+. "/etc/rc.subr"
+
+name="qpsmtpd"
+rcvar=`set_rcvar`
+
+command="%%PREFIX%%/bin/qpsmtpd-forkserver"
+pidfile="/var/run/qpsmtpd/qpsmtpd.pid"
+
+start_precmd="start_precmd"
+start_cmd="start_cmd"
+stop_cmd="stop_cmd"
+
+start_precmd()
+{
+ #exits if no user is specified
+ if [ -z $qpsmtpd_user ]; then
+ echo "qpsmtpd_user not set"
+ exit 1
+ fi
+
+ #exits if no group is specified
+ if [ -z $qpsmtpd_group ]; then
+ echo "qpsmtpd_group not set"
+ exit 1
+ fi
+
+ #sets it to the default if the port is not specified
+ if [ -z $qpsmtpd_port ]; then
+ qpsmtpd_port="2525"
+ fi
+
+ #set it to the default max per ip
+ if [ -z $qpsmtpd_max_per_ip ]; then
+ qpsmtpd_max_per_ip="5"
+ fi
+
+ #set it do the max number of connections total
+ if [ -z $qpsmtpd_max_connections ]; then
+ qpsmtpd_max_connections="15"
+ fi
+
+ #set the default listen on to everything
+ if [ -z $qpsmtpd_listen_on ]; then
+ qpsmtpd_listen_on="0.0.0.0"
+ fi
+
+ if [ ! -d /var/run/qpsmtpd/ ] ; then
+ mkdir /var/run/qpsmtpd
+ fi
+
+ chown $qpsmtpd_user:$qpsmtpd_group /var/run/qpsmtpd
+}
+
+start_cmd()
+{
+ eval $command -p $qpsmtpd_port -c $qpsmtpd_max_connections -u $qpsmtpd_users -m $qpsmtpd_max_per_ip -l $qpsmtpd_listen_on --pid-file $pidfile
+}
+
+stop_cmd()
+{
+ kill `cat $pidfile`
+}
+
+run_rc_command "$1"
diff --git a/mail/p5-qpsmtpd/pkg-descr b/mail/p5-qpsmtpd/pkg-descr
new file mode 100644
index 000000000000..5b68995d900f
--- /dev/null
+++ b/mail/p5-qpsmtpd/pkg-descr
@@ -0,0 +1,14 @@
+Qpsmtpd started as a replacement daemon for the SMTP receiver (qmail-smtpd)
+from the qmail mail transport agent (MTA). qmail-smtpd has a number of
+shortcomings (e.g. being unable to check the validity of a recipient mail
+address) and is written in C which makes it burdensome to modify and extend.
+Qpsmtpd, on the other hand, is written in pure perl and can be customized
+easily. It consists of a core that implements a complete SMTP server, and a
+number of plugins/modules which control the operations. Such plugins
+include plugins to check the recipient and sender as well as plugins for
+virus scanning, spam checking, blocking lists (dns and rhs), AUTH and TLS.
+Qpsmtpd can not only be used with qmail but also with e.g. postfix and
+exim. It can also write messages to a Maildir or forward it to a remote
+host without buffering.
+
+WWW: http://smtpd.develooper.com/
diff --git a/mail/p5-qpsmtpd/pkg-plist b/mail/p5-qpsmtpd/pkg-plist
new file mode 100644
index 000000000000..0e74f2e9e572
--- /dev/null
+++ b/mail/p5-qpsmtpd/pkg-plist
@@ -0,0 +1,92 @@
+bin/qpsmtpd-forkserver
+bin/qpsmtpd
+%%SITE_PERL%%/Qpsmtpd.pm
+%%SITE_PERL%%/Qpsmtpd/SelectServer.pm
+%%SITE_PERL%%/Qpsmtpd/Utils.pm
+%%SITE_PERL%%/Qpsmtpd/TcpServer.pm
+%%SITE_PERL%%/Qpsmtpd/Constants.pm
+%%SITE_PERL%%/Qpsmtpd/Auth.pm
+%%SITE_PERL%%/Qpsmtpd/DSN.pm
+%%SITE_PERL%%/Qpsmtpd/Transaction.pm
+%%SITE_PERL%%/Qpsmtpd/Address.pm
+%%SITE_PERL%%/Qpsmtpd/Plugin.pm
+%%SITE_PERL%%/Qpsmtpd/SMTP.pm
+%%SITE_PERL%%/Qpsmtpd/Postfix.pm
+%%SITE_PERL%%/Qpsmtpd/Connection.pm
+%%SITE_PERL%%/Apache/Qpsmtpd.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/qpsmtpd/.packlist
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/qpsmtpd
+@dirrm %%SITE_PERL%%/Qpsmtpd/
+@dirrm %%SITE_PERL%%/Apache/
+%%EXAMPLESDIR%%/IP
+%%EXAMPLESDIR%%/badhelo
+%%EXAMPLESDIR%%/badrcptto_patterns
+%%EXAMPLESDIR%%/dnsbl_zones
+%%EXAMPLESDIR%%/invalid_resolvable_fromhost
+%%EXAMPLESDIR%%/logging
+%%EXAMPLESDIR%%/loglevel
+%%EXAMPLESDIR%%/plugins
+%%EXAMPLESDIR%%/relayclients
+%%EXAMPLESDIR%%/require_resolvable_fromhost
+%%EXAMPLESDIR%%/rhsbl_zones
+%%EXAMPLESDIR%%/size_threshold
+@dirrm %%EXAMPLESDIR%%
+%%DATADIR%%/plugins/ident/geoip
+%%DATADIR%%/plugins/ident/p0f
+@dirrm %%DATADIR%%/plugins/ident
+%%DATADIR%%/plugins/auth/auth_cvm_unix_local
+%%DATADIR%%/plugins/auth/auth_flat_file
+%%DATADIR%%/plugins/auth/auth_ldap_bind
+%%DATADIR%%/plugins/auth/auth_vpopmail_sql
+%%DATADIR%%/plugins/auth/authdeny
+%%DATADIR%%/plugins/auth/authnull
+@dirrm %%DATADIR%%/plugins/auth
+%%DATADIR%%/plugins/queue/exim-bsmtp
+%%DATADIR%%/plugins/queue/maildir
+%%DATADIR%%/plugins/queue/postfix-queue
+%%DATADIR%%/plugins/queue/qmail-queue
+%%DATADIR%%/plugins/queue/smtp-forward
+@dirrm %%DATADIR%%/plugins/queue
+%%DATADIR%%/plugins/logging/adaptive
+%%DATADIR%%/plugins/logging/devnull
+%%DATADIR%%/plugins/logging/file
+%%DATADIR%%/plugins/logging/syslog
+%%DATADIR%%/plugins/logging/warn
+@dirrm %%DATADIR%%/plugins/logging
+%%DATADIR%%/plugins/virus/uvscan
+%%DATADIR%%/plugins/virus/bitdefender
+%%DATADIR%%/plugins/virus/check_for_hi_virus
+%%DATADIR%%/plugins/virus/clamav
+%%DATADIR%%/plugins/virus/hbedv
+%%DATADIR%%/plugins/virus/kavscanner
+%%DATADIR%%/plugins/virus/klez_filter
+%%DATADIR%%/plugins/virus/sophie
+%%DATADIR%%/plugins/virus/aveclient
+@dirrm %%DATADIR%%/plugins/virus
+%%DATADIR%%/plugins/check_earlytalker
+%%DATADIR%%/plugins/check_loop
+%%DATADIR%%/plugins/check_norelay
+%%DATADIR%%/plugins/check_relay
+%%DATADIR%%/plugins/check_spamhelo
+%%DATADIR%%/plugins/content_log
+%%DATADIR%%/plugins/count_unrecognized_commands
+%%DATADIR%%/plugins/dns_whitelist_soft
+%%DATADIR%%/plugins/dnsbl
+%%DATADIR%%/plugins/greylisting
+%%DATADIR%%/plugins/hosts_allow
+%%DATADIR%%/plugins/http_config
+%%DATADIR%%/plugins/check_badrcptto_patterns
+%%DATADIR%%/plugins/check_badrcptto
+%%DATADIR%%/plugins/check_badmailfromto
+%%DATADIR%%/plugins/quit_fortune
+%%DATADIR%%/plugins/rcpt_ok
+%%DATADIR%%/plugins/require_resolvable_fromhost
+%%DATADIR%%/plugins/rhsbl
+%%DATADIR%%/plugins/sender_permitted_from
+%%DATADIR%%/plugins/spamassassin
+%%DATADIR%%/plugins/tls
+%%DATADIR%%/plugins/tls_cert
+%%DATADIR%%/plugins/check_basicheaders
+%%DATADIR%%/plugins/check_badmailfrom
+@dirrm %%DATADIR%%/plugins/
+@dirrm %%DATADIR%%