p3scan 2.9.05d: Add p3scan, a transparent proxy for POP3, POP3S and SMTP
authorJamie Lenehan <lenehan@twibble.org>
Fri, 13 Oct 2006 07:54:54 +0000 (07:54 +0000)
committerJamie Lenehan <lenehan@twibble.org>
Fri, 13 Oct 2006 07:54:54 +0000 (07:54 +0000)
with virus scanning support. Default configuration uses clamav directly via
libclamav.

packages/p3scan/.mtn2git_empty [new file with mode: 0644]
packages/p3scan/files/.mtn2git_empty [new file with mode: 0644]
packages/p3scan/files/doc.configure.txt [new file with mode: 0644]
packages/p3scan/files/dont-search-use-include.patch [new file with mode: 0644]
packages/p3scan/files/libtool-fix.patch [new file with mode: 0644]
packages/p3scan/files/p3scan.conf [new file with mode: 0644]
packages/p3scan/files/p3scan.init [new file with mode: 0644]
packages/p3scan/files/volatiles.05_p3scan [new file with mode: 0644]
packages/p3scan/p3scan_2.9.05d.bb [new file with mode: 0644]

diff --git a/packages/p3scan/.mtn2git_empty b/packages/p3scan/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/p3scan/files/.mtn2git_empty b/packages/p3scan/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/p3scan/files/doc.configure.txt b/packages/p3scan/files/doc.configure.txt
new file mode 100644 (file)
index 0000000..2d925f8
--- /dev/null
@@ -0,0 +1,15 @@
+The following items needs to be considered when using clamsmtp:
+
+1. Transparent proxy
+
+   For transparent proxying you need an IP tables rule such as:
+
+     iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 8110
+     iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j REDIRECT --to-ports 8110
+     iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 995 -j REDIRECT --to-ports 8110
+
+   where eth0 is the incomming port, and 8110 is the port that p3scan is
+   running on. Also remember to enable transparent proxy support in the
+   configuration file.
+
+   The ports are 25 for smtp, 110 for pop3 and 995 for pop3s.
diff --git a/packages/p3scan/files/dont-search-use-include.patch b/packages/p3scan/files/dont-search-use-include.patch
new file mode 100644 (file)
index 0000000..91723ce
--- /dev/null
@@ -0,0 +1,11 @@
+--- p3scan-2.9.05d/configure.in        2006/10/12 00:49:31     1.1
++++ p3scan-2.9.05d/configure.in        2006/10/12 00:49:41
+@@ -34,8 +34,6 @@
+ # Checks for libraries.
+ AC_CHECK_LIB(pthread, pthread_create,  [], [AC_MSG_ERROR([library 'pthread' is required!])])
+-LDFLAGS="$LDFLAGS -L/usr/lib/pthread"
+-CPPFLAGS="$CPPFLAGS -I/usr/include/pthread"
+ # Checks for header files.
+ AC_HEADER_DIRENT
diff --git a/packages/p3scan/files/libtool-fix.patch b/packages/p3scan/files/libtool-fix.patch
new file mode 100644 (file)
index 0000000..4645bcc
--- /dev/null
@@ -0,0 +1,24 @@
+Use our own libtool that knows about cross compiling, not the libtool
+that is included.
+
+--- p3scan-2.9.05d/aclocal.m4  2006/10/12 04:17:35     1.1
++++ p3scan-2.9.05d/aclocal.m4  2006/10/12 04:18:28
+@@ -73,8 +73,7 @@
+ LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+-AC_SUBST(LIBTOOL)dnl
++LIBTOOL="$host_alias-libtool"
+ # Prevent multiple expansion
+ define([AC_PROG_LIBTOOL], [])
+@@ -140,7 +139,7 @@
+ rm="rm -f"
+ # Global variables:
+-default_ofile=libtool
++default_ofile==${host_alias}-libtool
+ can_build_shared=yes
+ # All known linkers require a `.a' archive for static linking (except MSVC,
diff --git a/packages/p3scan/files/p3scan.conf b/packages/p3scan/files/p3scan.conf
new file mode 100644 (file)
index 0000000..2d8ba07
--- /dev/null
@@ -0,0 +1,16 @@
+# See /usr/share/doc/p3scan/ and/or p3scan(8) for more information
+
+# Delete infected messages
+delete
+
+# Maximum # of connections we will handle at once.
+maxchilds = 10
+
+# Tcp port to listen on
+# port = 8110
+
+# Where to look for an email-template when a notification message has to be sent.
+# template = /etc/p3scan/p3scan-en.mail
+
+# The username the daemon should run as.
+user = mail
diff --git a/packages/p3scan/files/p3scan.init b/packages/p3scan/files/p3scan.init
new file mode 100644 (file)
index 0000000..9f3865b
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+DAEMON=/usr/sbin/p3scan
+P3SCAN_CONFIG=/etc/p3scan/p3scan.conf
+PIDFILE=/var/run/p3scan/p3scan.pid
+NAME="p3scan"
+DESC="P3SCAN"
+
+test -r /etc/default/p3scan && . /etc/default/p3scan
+test -x "$DAEMON" || exit 0
+test ! -r "$P3SCAN_CONFIG" && exit 0
+        
+case "$1" in
+  start)
+    echo "Starting $DESC: "
+    start-stop-daemon --oknodo -S -x $DAEMON -- -c $P3SCAN_CONFIG
+    echo "$NAME."
+    ;;
+
+  stop)
+    echo "Stopping $DESC:"
+    start-stop-daemon -K -p $PIDFILE
+    ;;
+
+  restart)
+    $0 stop >/dev/null 2>&1
+    $0 start
+    ;;
+
+  *)
+    echo "Usage: $0 {start|stop|restart}"
+    exit 0
+    ;;
+esac
diff --git a/packages/p3scan/files/volatiles.05_p3scan b/packages/p3scan/files/volatiles.05_p3scan
new file mode 100644 (file)
index 0000000..2a7caed
--- /dev/null
@@ -0,0 +1,4 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d mail mail 0755 /var/run/p3scan none
+d mail mail 0755 /var/spool/p3scan/children none
+d mail mail 0755 /var/spool/p3scan/notify none
diff --git a/packages/p3scan/p3scan_2.9.05d.bb b/packages/p3scan/p3scan_2.9.05d.bb
new file mode 100644 (file)
index 0000000..1b77a01
--- /dev/null
@@ -0,0 +1,85 @@
+DESCRIPTION = "A transparent proxy-server for email clients. It is designed \
+to enable scanning of incoming/outgoing email messages (POP3, POPSS and \
+SMTP) for Virus's, Worms, Trojans, Spam and harmfull attachments."
+HOMEPAGE = "http://p3scan.sourceforge.net/"
+SECTION = "network"
+LICENSE = "GPLv2"
+DEPENDS = "gmp bzip2 zlib clamav openssl"
+RDEPENDS_${PN} = "${PN}-templates-en"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/p3scan/p3scan-2.9.05d.tar.gz \
+           file://libtool-fix.patch;patch=1 \
+           file://dont-search-use-include.patch;patch=1 \
+           file://p3scan.init \
+           file://p3scan.conf \
+           file://doc.configure.txt \
+           file://volatiles.05_p3scan"
+
+inherit autotools update-rc.d
+
+EXTRA_OECONF = "--with-clamav=${STAGING_LIBDIR}/.. \
+                --with-openssl=${STAGING_LIBDIR}/.. \
+                --disable-ripmime"
+
+# Full manual install because the autoconf installer puts in lots of
+# stuff we don't want and in lots of odd directories.
+do_install () {
+        install -m 0755 -d ${D}${sysconfdir}/init.d \
+                           ${D}${docdir}/p3scan \
+                           ${D}${mandir}/man8 \
+                           ${D}${sysconfdir}/p3scan \
+                           ${D}${sysconfdir}/default/volatiles \
+                           ${D}${sbindir}
+        install -m 755 ${WORKDIR}/p3scan.init ${D}${sysconfdir}/init.d/p3scan
+        install -m 755 ${WORKDIR}/p3scan.conf ${D}${sysconfdir}/p3scan/p3scan.conf
+        install -m 644 ${WORKDIR}/doc.configure.txt ${D}${docdir}/p3scan/configure.txt
+        install -m 755 src/.libs/p3scan ${D}${sbindir}
+        for i in etc/p3scan-*.mail \
+                 etc/p3scan.whitelist \
+                 etc/p3scan.blacklist; do
+          install -m 644 $i ${D}${sysconfdir}/p3scan/`basename $i`
+        done
+        for i in README ChangeLog README-ripmime README-emergency \
+                 spamfaq.html etc/p3scan.conf.sample p3scan.sh \
+                 AUTHORS CONTRIBUTERS; do
+          install -m 644 $i ${D}${docdir}/p3scan/`basename $i`
+        done
+        install -m 644 man/p3scan.man ${D}${mandir}/man8/p3scan.8
+        # We need some /var directories
+        for i in 05_p3scan; do
+          install -m 0644 ${WORKDIR}/volatiles.$i ${D}${sysconfdir}/default/volatiles/$i
+        done
+}
+
+PACKAGES = "${PN}-dbg ${PN}-doc \
+            ${PN}-templates-ru ${PN}-templates-en ${PN}-templates-pt-br \
+            ${PN}-templates-sp ${PN}-templates-ge ${PN}-templates-fr \
+            ${PN}-templates-nl ${PN}-templates-pl ${PN}-templates-it \
+            ${PN}"
+
+FILES_${PN} = "${sysconfdir}/p3scan/* \
+               ${sysconfdir}/init.d ${sysconfdir}/default ${sbindir}"
+FILES_${PN}-templates-ru = "${sysconfdir}/p3scan/p3scan-ru.mail"
+FILES_${PN}-templates-en = "${sysconfdir}/p3scan/p3scan-en.mail"
+FILES_${PN}-templates-pt-br = "${sysconfdir}/p3scan/p3scan-pt-br.mail"
+FILES_${PN}-templates-sp = "${sysconfdir}/p3scan/p3scan-sp.mail"
+FILES_${PN}-templates-ge = "${sysconfdir}/p3scan/p3scan-ge.mail"
+FILES_${PN}-templates-fr = "${sysconfdir}/p3scan/p3scan-fr.mail"
+FILES_${PN}-templates-nl = "${sysconfdir}/p3scan/p3scan-nl.mail"
+FILES_${PN}-templates-pl = "${sysconfdir}/p3scan/p3scan-pl.mail"
+FILES_${PN}-templates-it = "${sysconfdir}/p3scan/p3scan-it.mail"
+
+# Add havp's user and groups
+pkg_postinst_${PN} () {
+        grep -q mail: /etc/group || addgroup --system havp
+        grep -q mail: /etc/passwd || \
+            adduser --disabled-password --home=${localstatedir}/mail --system \
+                    --ingroup mail --no-create-home -g "Mail" mail
+        /etc/init.d/populate-volatile.sh
+}
+
+CONFFILES_${PN} = "${sysconfdir}/p3scan/p3scan.conf"
+
+INITSCRIPT_NAME = "p3scan"
+INITSCRIPT_PARAMS = "defaults 65 35"