diff options
Diffstat (limited to 'mail/qscan')
-rw-r--r-- | mail/qscan/Makefile | 55 | ||||
-rw-r--r-- | mail/qscan/distinfo | 2 | ||||
-rw-r--r-- | mail/qscan/files/patch-src::qscan.c | 34 | ||||
-rw-r--r-- | mail/qscan/files/patch-src::qscan.h | 13 | ||||
-rw-r--r-- | mail/qscan/pkg-descr | 15 | ||||
-rw-r--r-- | mail/qscan/pkg-plist | 9 |
6 files changed, 128 insertions, 0 deletions
diff --git a/mail/qscan/Makefile b/mail/qscan/Makefile new file mode 100644 index 000000000000..0cbcabf95c0b --- /dev/null +++ b/mail/qscan/Makefile @@ -0,0 +1,55 @@ +# New ports collection makefile for: qscan +# Date created: 8 Apr 2004 +# Whom: Alex Dupre <ale@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME= qscan +PORTVERSION= 1.5 +CATEGORIES= mail security +MASTER_SITES= ftp://ftp.c9x.org/qscan/ + +MAINTAINER= ale@FreeBSD.org +COMMENT= A mail filter for Qmail that scans messages with ClamAV + +RUN_DEPENDS= ${QMAIL_QUEUE}:${PORTSDIR}/mail/qmail \ + clamdscan:${PORTSDIR}/security/clamav \ + ripmime:${PORTSDIR}/mail/ripmime + +GNU_CONFIGURE= yes +USE_REINPLACE= yes + +.include <bsd.port.pre.mk> + +.if exists(${LOCALBASE}/qmail/bin/qmail-queue) +QMAIL_DIR?= ${LOCALBASE}/qmail +.else +QMAIL_DIR?= /var/qmail +.endif +QMAIL_QUEUE= ${QMAIL_DIR}/bin/qmail-queue +QSCAN_VAR?= ${QMAIL_DIR}/${PORTNAME} +PLIST_SUB+= QSCAN_VAR="${QSCAN_VAR}" \ + QMAIL_QUEUE="${QMAIL_QUEUE}" + +# default 10 +.if defined(WITH_CONCURRENCY) +CONFIGURE_ARGS+=--with-concurrency=${WITH_CONCURRENCY} +.endif + +CONFIGURE_ENV+= SWEEP="${LOCALBASE}/bin/clamdscan" \ + RIPMIME="${LOCALBASE}/bin/ripmime" \ + QMAIL_QUEUE="${QMAIL_QUEUE}-old" + +post-patch: + @${REINPLACE_CMD} -e "s|/var/qmail/qscan|${QSCAN_VAR}|" ${WRKSRC}/src/qscan.h + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/src/${PORTNAME} ${PREFIX}/bin + ${MKDIR} ${QSCAN_VAR} + ${CHMOD} 750 ${QSCAN_VAR} + ${CHOWN} qmaild:clamav ${QSCAN_VAR} + ${LN} -f ${QMAIL_QUEUE} ${QMAIL_QUEUE}-old + ${LN} -sf ${PREFIX}/bin/${PORTNAME} ${QMAIL_QUEUE} + +.include <bsd.port.post.mk> diff --git a/mail/qscan/distinfo b/mail/qscan/distinfo new file mode 100644 index 000000000000..9b5d13bd7fa4 --- /dev/null +++ b/mail/qscan/distinfo @@ -0,0 +1,2 @@ +MD5 (qscan-1.5.tar.gz) = 8750d629143a525a6f09f9a93024f799 +SIZE (qscan-1.5.tar.gz) = 87783 diff --git a/mail/qscan/files/patch-src::qscan.c b/mail/qscan/files/patch-src::qscan.c new file mode 100644 index 000000000000..081a7bdff6eb --- /dev/null +++ b/mail/qscan/files/patch-src::qscan.c @@ -0,0 +1,34 @@ +--- src/qscan.c.orig Fri Oct 4 20:44:37 2002 ++++ src/qscan.c Thu Apr 8 16:47:28 2004 +@@ -326,8 +326,8 @@ + wait_everybody_and_die(99); + } + while (fgets(line, (int) sizeof line, avfp) != NULL) { +- if (strncmp(SWEEP_VIRUS_PREFIX, line, +- sizeof SWEEP_VIRUS_PREFIX - (size_t) 1U) == 0) { ++ register char *virus; ++ if ((virus = strstr(line, SWEEP_VIRUS_PREFIX)) != NULL) { + register char *crlf; + + if (ret < INT_MAX) { +@@ -340,8 +340,9 @@ + (crlf = strrchr(line, '\r')) != NULL) { + *crlf = 0; + } +- *foundvirus = strdup(line + +- sizeof SWEEP_VIRUS_PREFIX - (size_t) 1U); ++ *virus = 0; ++ virus = strrchr(line, ' '); ++ *foundvirus = strdup(++virus); + } + } + if (fclose(avfp) != 0) { +@@ -479,7 +480,7 @@ + perror_log("unable to create the destdir name"); + return -1; + } +- if (mkdir(ripmime_destdir, (mode_t) 0700) != 0) { ++ if (mkdir(ripmime_destdir, (mode_t) 0750) != 0) { + if (chdir(ripmime_destdir) != 0) { + perror_log("unable to create/access ripmime_destdir"); + return -1; diff --git a/mail/qscan/files/patch-src::qscan.h b/mail/qscan/files/patch-src::qscan.h new file mode 100644 index 000000000000..e2ff1b78cb83 --- /dev/null +++ b/mail/qscan/files/patch-src::qscan.h @@ -0,0 +1,13 @@ +--- src/qscan.h.orig Thu Apr 8 14:31:31 2004 ++++ src/qscan.h Thu Apr 8 14:32:18 2004 +@@ -178,8 +178,8 @@ + #define QSCAN_TIMEOUT 3000 + #define RIPMIME_DESTDIR_BASE "/var/qmail/qscan" + #define RIPMIME_ARGS "-i", "-", "-d" +-#define SWEEP_ARGS "-all", "-rec", "-ss", "-zip", "-arj", "-rar", "-cab", "-tnef" +-#define SWEEP_VIRUS_PREFIX ">>> " ++#define SWEEP_ARGS "--disable-summary", "--stdout" ++#define SWEEP_VIRUS_PREFIX " FOUND" + #define SWEEP_TIMEOUT 250 + #define SWEEP_NICE 15 + #define MSG_BUFSIZE 8192 diff --git a/mail/qscan/pkg-descr b/mail/qscan/pkg-descr new file mode 100644 index 000000000000..003fd01424ac --- /dev/null +++ b/mail/qscan/pkg-descr @@ -0,0 +1,15 @@ +The Qmail virus scanner (QScan) is a mail filter for Qmail that scans +incoming messages using the Clam Antivirus engine, immediately rejecting +infected content. + +It is designed to be minimalistic, yet extremely fast and secure, and uses +multiple pipes instead of the traditional temporary files and privilege +separation. + +Originally developed for the Sophos Antivirus, this port is patched to +work in conjunction with the ClamAV daemon. + +WWW: http://www.jedi.claranet.fr/ + +- Alex Dupre +ale@FreeBSD.org diff --git a/mail/qscan/pkg-plist b/mail/qscan/pkg-plist new file mode 100644 index 000000000000..ce06f8077711 --- /dev/null +++ b/mail/qscan/pkg-plist @@ -0,0 +1,9 @@ +bin/qscan +@exec mkdir -p %%QSCAN_VAR%% +@exec chmod 750 %%QSCAN_VAR%% +@exec chown qmaild:clamav %%QSCAN_VAR%% +@exec ln -f %%QMAIL_QUEUE%% %%QMAIL_QUEUE%%-old +@exec ln -sf %D/bin/qscan %%QMAIL_QUEUE%% +@unexec ln -f %%QMAIL_QUEUE%%-old %%QMAIL_QUEUE%% +@unexec rm -f %%QMAIL_QUEUE%%-old +@unexec echo "You may safely remove %%QSCAN_VAR%% if you don't want to use qscan anymore." |