From ed73ca098e3c44c6a08604500876552ffd023b47 Mon Sep 17 00:00:00 2001 From: Jamie Lenehan Date: Fri, 13 Oct 2006 07:54:54 +0000 Subject: p3scan 2.9.05d: Add p3scan, a transparent proxy for POP3, POP3S and SMTP with virus scanning support. Default configuration uses clamav directly via libclamav. --- packages/p3scan/.mtn2git_empty | 0 packages/p3scan/files/.mtn2git_empty | 0 packages/p3scan/files/doc.configure.txt | 15 ++++ .../p3scan/files/dont-search-use-include.patch | 11 +++ packages/p3scan/files/libtool-fix.patch | 24 ++++++ packages/p3scan/files/p3scan.conf | 16 ++++ packages/p3scan/files/p3scan.init | 33 +++++++++ packages/p3scan/files/volatiles.05_p3scan | 4 + packages/p3scan/p3scan_2.9.05d.bb | 85 ++++++++++++++++++++++ 9 files changed, 188 insertions(+) create mode 100644 packages/p3scan/.mtn2git_empty create mode 100644 packages/p3scan/files/.mtn2git_empty create mode 100644 packages/p3scan/files/doc.configure.txt create mode 100644 packages/p3scan/files/dont-search-use-include.patch create mode 100644 packages/p3scan/files/libtool-fix.patch create mode 100644 packages/p3scan/files/p3scan.conf create mode 100644 packages/p3scan/files/p3scan.init create mode 100644 packages/p3scan/files/volatiles.05_p3scan create mode 100644 packages/p3scan/p3scan_2.9.05d.bb (limited to 'packages/p3scan') diff --git a/packages/p3scan/.mtn2git_empty b/packages/p3scan/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/p3scan/files/.mtn2git_empty b/packages/p3scan/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/p3scan/files/doc.configure.txt b/packages/p3scan/files/doc.configure.txt new file mode 100644 index 0000000000..2d925f8314 --- /dev/null +++ b/packages/p3scan/files/doc.configure.txt @@ -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 index 0000000000..91723ce1b6 --- /dev/null +++ b/packages/p3scan/files/dont-search-use-include.patch @@ -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 index 0000000000..4645bcc616 --- /dev/null +++ b/packages/p3scan/files/libtool-fix.patch @@ -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 index 0000000000..2d8ba07e87 --- /dev/null +++ b/packages/p3scan/files/p3scan.conf @@ -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 index 0000000000..9f3865b8b2 --- /dev/null +++ b/packages/p3scan/files/p3scan.init @@ -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 index 0000000000..2a7caeddd9 --- /dev/null +++ b/packages/p3scan/files/volatiles.05_p3scan @@ -0,0 +1,4 @@ +# +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 index 0000000000..1b77a014e1 --- /dev/null +++ b/packages/p3scan/p3scan_2.9.05d.bb @@ -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" -- cgit v1.2.3