aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsahil <sahil@FreeBSD.org>2010-04-27 10:31:59 +0800
committersahil <sahil@FreeBSD.org>2010-04-27 10:31:59 +0800
commit1769a89ea838ae0f04410ff924a2e9029a5b7424 (patch)
tree216c0dfcd40ab4cb58c808c4a034faa25f3773f2
parent1404b46945fd54754003335caeeb536101b92c18 (diff)
downloadfreebsd-ports-gnome-1769a89ea838ae0f04410ff924a2e9029a5b7424.tar.gz
freebsd-ports-gnome-1769a89ea838ae0f04410ff924a2e9029a5b7424.tar.zst
freebsd-ports-gnome-1769a89ea838ae0f04410ff924a2e9029a5b7424.zip
spmfilter is a high-performance mail filtering framework, written in C.
It attempts to be a general filtering framework for any purposes. Filtering mechanisms are provided by plugins, the API enables spmfilter plugins to access messages as they are being processed by the MTA. This allows them to examine and modify message content and meta-information during the SMTP transaction. Plugins are loaded at runtime and can be processed in any sequence, the processing chain can also be altered by a single plugin WWW: http://www.spmfilter.org/ PR: ports/145673 Submitted by: Frank Wall <fw at moov.de> Reworked by: sahil@ (myself) Approved by: wxs@ (mentor)
-rw-r--r--mail/Makefile1
-rw-r--r--mail/spmfilter/Makefile102
-rw-r--r--mail/spmfilter/distinfo3
-rw-r--r--mail/spmfilter/files/spmfilter.in31
-rw-r--r--mail/spmfilter/pkg-descr11
-rw-r--r--mail/spmfilter/pkg-plist23
6 files changed, 171 insertions, 0 deletions
diff --git a/mail/Makefile b/mail/Makefile
index c137ea1067af..97a0af719efa 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -645,6 +645,7 @@
SUBDIR += spamprobe
SUBDIR += spamstats
SUBDIR += spfval
+ SUBDIR += spmfilter
SUBDIR += spruce
SUBDIR += sqlgrey
SUBDIR += squirrelmail
diff --git a/mail/spmfilter/Makefile b/mail/spmfilter/Makefile
new file mode 100644
index 000000000000..d9ffa6efb3ef
--- /dev/null
+++ b/mail/spmfilter/Makefile
@@ -0,0 +1,102 @@
+# New ports collection makefile for: spmfilter
+# Date created: 2010-04-12
+# Whom: Frank Wall <fw@moov.de>
+#
+# $FreeBSD$
+#
+
+PORTNAME= spmfilter
+PORTVERSION= 0.4.0
+CATEGORIES= mail
+MASTER_SITES= http://www.${PORTNAME}.org/attachments/download/51/
+
+MAINTAINER= fw@moov.de
+COMMENT= Spmfilter is a high-performance mail filtering framework, written in C
+
+BUILD_DEPENDS= gmime>=2.2:${PORTSDIR}/mail/gmime2 \
+ libesmtp>=1.0:${PORTSDIR}/mail/libesmtp \
+ glib>=2.04:${PORTSDIR}/devel/glib20 \
+ pcre>=6.0:${PORTSDIR}/devel/pcre
+
+RUN_DEPENDS= gmime>=2.2:${PORTSDIR}/mail/gmime2 \
+ libesmtp>=1.0:${PORTSDIR}/mail/libesmtp \
+ glib>=2.04:${PORTSDIR}/devel/glib20 \
+ pcre>=6.0:${PORTSDIR}/devel/pcre
+
+USE_CMAKE= yes
+CMAKE_ARGS+= -DCMAKE_INCLUDE_PATH="${LOCALBASE}/include" \
+ -DCMAKE_LIBRARY_PATH="${LOCALBASE}/lib"
+
+USE_LDCONFIG= ${PREFIX}/lib/${PORTNAME}
+USE_RC_SUBR= ${PORTNAME}
+
+OPTIONS= DB4 "Enable DB4 backend" on \
+ DEBUG "Enable Debugging" off \
+ LDAP "Enable LDAP backend" off \
+ MYSQL "Enable MYSQL backend" off \
+ PGSQL "Enable PGSQL backend" off
+
+# Default requirement for spmfilter rc script
+_REQUIRE= LOGIN
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITH_DB4) || defined(WITHOUT_DB4)
+CMAKE_ARGS+= -DWITHOUT_DB4=TRUE
+.else
+USE_BDB= yes
+CMAKE_ARGS+= -DDB4_INCLUDE_DIR="${BDB_INCLUDE_DIR}"
+.endif
+
+.if defined(WITH_DEBUG)
+CMAKE_ARGS+= -DENABLE_DEBUG=TRUE
+.endif
+
+.if !defined(WITH_LDAP) || defined(WITHOUT_LDAP)
+CMAKE_ARGS+= -DWITHOUT_LDAP=TRUE
+.else
+USE_OPENLDAP= yes
+.if defined(WITH_OPENLDAP_VER)
+WANT_OPENLDAP_VER= ${WITH_OPENLDAP_VER}
+.endif
+_REQUIRE+= slapd
+.endif
+
+.if !defined(WITH_MYSQL) && !defined(WITH_PGSQL)
+CMAKE_ARGS+= -DWITHOUT_ZDB=TRUE
+.else
+LIB_DEPENDS+= zdb:${PORTSDIR}/databases/libzdb
+.endif
+
+.if defined(WITH_MYSQL)
+USE_MYSQL= yes
+_REQUIRE+= mysql
+.endif
+
+.if defined(WITH_PGSQL)
+USE_PGSQL= yes
+_REQUIRE+= postgresql
+.endif
+
+MAN1= ${PORTNAME}.1
+MAN5= ${PORTNAME}.conf.5
+MANCOMPRESSED= yes
+
+SUB_LIST+= REQUIRE="${_REQUIRE}"
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|share/man|man|' \
+ ${WRKSRC}/cmake/Modules/SMFMacros.cmake
+ @${REINPLACE_CMD} -E -e 's|(HAVE_DB4 )db|\1${BDB_LIB_NAME}|' \
+ ${WRKSRC}/cmake/Modules/FindDB4.cmake
+ @${REINPLACE_CMD} -E -e 's|\$${LIBDIR}(/pkgconfig)|$${CMAKE_INSTALL_PREFIX}/libdata\1|' \
+ -e 's|(COMMON_LIBS )db|\1${BDB_LIB_NAME}|' \
+ ${WRKSRC}/src/CMakeLists.txt
+
+post-install:
+ @${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.conf.sample ${PREFIX}/etc/
+ @if [ ! -f ${PREFIX}/etc/${PORTNAME}.conf ]; then \
+ ${CP} -p ${PREFIX}/etc/${PORTNAME}.conf.sample ${PREFIX}/etc/${PORTNAME}.conf ; \
+ fi
+
+.include <bsd.port.post.mk>
diff --git a/mail/spmfilter/distinfo b/mail/spmfilter/distinfo
new file mode 100644
index 000000000000..98ba7011c659
--- /dev/null
+++ b/mail/spmfilter/distinfo
@@ -0,0 +1,3 @@
+MD5 (spmfilter-0.4.0.tar.gz) = ae8adfc86820da98b45758fdd7688907
+SHA256 (spmfilter-0.4.0.tar.gz) = c566c199bd1e4b59dff8f9a186ccaa3b951bc2f2837f838723c8dbdfcc4a3eeb
+SIZE (spmfilter-0.4.0.tar.gz) = 52689
diff --git a/mail/spmfilter/files/spmfilter.in b/mail/spmfilter/files/spmfilter.in
new file mode 100644
index 000000000000..2c2322981e92
--- /dev/null
+++ b/mail/spmfilter/files/spmfilter.in
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: spmfilter
+# REQUIRE: %%REQUIRE%%
+# BEFORE: mail
+# KEYWORD: shutdown
+#
+#
+# Add the following lines to /etc/rc.conf to enable spmfilter:
+#
+# spmfilter_enable="YES"
+#
+# See spmfilter(1) for flags or the config file.
+#
+
+. /etc/rc.subr
+
+name=spmfilter
+rcvar=`set_rcvar`
+
+command=%%PREFIX%%/sbin/spmfilter
+
+load_rc_config $name
+
+: ${spmfilter_enable="NO"}
+: ${spmfilter_config="%%PREFIX%%/etc/spmfilter.conf"}
+: ${spmfilter_flags="-f ${spmfilter_config}"}
+
+run_rc_command "$1"
diff --git a/mail/spmfilter/pkg-descr b/mail/spmfilter/pkg-descr
new file mode 100644
index 000000000000..a33c2f625cbf
--- /dev/null
+++ b/mail/spmfilter/pkg-descr
@@ -0,0 +1,11 @@
+spmfilter is a high-performance mail filtering framework, written in C.
+
+It attempts to be a general filtering framework for any purposes.
+Filtering mechanisms are provided by plugins, the API enables spmfilter
+plugins to access messages as they are being processed by the MTA.
+This allows them to examine and modify message content and
+meta-information during the SMTP transaction. Plugins are loaded at
+runtime and can be processed in any sequence, the processing chain
+can also be altered by a single plugin
+
+WWW: http://www.spmfilter.org/
diff --git a/mail/spmfilter/pkg-plist b/mail/spmfilter/pkg-plist
new file mode 100644
index 000000000000..db84b94a8394
--- /dev/null
+++ b/mail/spmfilter/pkg-plist
@@ -0,0 +1,23 @@
+include/spmfilter/smf/smf_core.h
+include/spmfilter/smf/smf_lookup.h
+include/spmfilter/smf/smf_message.h
+include/spmfilter/smf/smf_mime.h
+include/spmfilter/smf/smf_session.h
+include/spmfilter/smf/smf_settings.h
+include/spmfilter/smf/smf_trace.h
+include/spmfilter/spmfilter.h
+include/spmfilter/spmfilter_config.h
+libdata/pkgconfig/spmfilter.pc
+lib/spmfilter/libpipe.so
+lib/spmfilter/libpipe.so.0.4.0
+lib/spmfilter/libsmf.so
+lib/spmfilter/libsmf.so.0.4.0
+lib/spmfilter/libsmtpd.so
+lib/spmfilter/libsmtpd.so.0.4.0
+sbin/spmfilter
+@unexec if cmp -s %D/etc/spmfilter.conf.sample %D/etc/spmfilter.conf; then rm -f %D/etc/spmfilter.conf; fi
+etc/spmfilter.conf.sample
+@dirrmtry libdata/pkgconfig
+@dirrm include/spmfilter/smf
+@dirrm include/spmfilter
+@dirrm lib/spmfilter