summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mail/amavisd-new/DESCR11
-rw-r--r--mail/amavisd-new/MESSAGE21
-rw-r--r--mail/amavisd-new/MESSAGE.milter24
-rw-r--r--mail/amavisd-new/Makefile138
-rw-r--r--mail/amavisd-new/PLIST45
-rw-r--r--mail/amavisd-new/distinfo6
-rw-r--r--mail/amavisd-new/files/amavisd.sh77
-rw-r--r--mail/amavisd-new/files/amavismilter.sh57
-rw-r--r--mail/amavisd-new/patches/patch-aa33
9 files changed, 412 insertions, 0 deletions
diff --git a/mail/amavisd-new/DESCR b/mail/amavisd-new/DESCR
new file mode 100644
index 00000000000..3180f61f143
--- /dev/null
+++ b/mail/amavisd-new/DESCR
@@ -0,0 +1,11 @@
+amavisd-new is an interface between message transfer agent (MTA) and
+one or more content checkers, e.g. virus scanners, SpamAssassin, etc.
+It is a performance-enhanced and feature-enriched version of amavisd
+(which in turn is a daemonized version of AMaViS or amavis-perl).
+
+amavisd-new is normally positioned at or near a central mailer, not
+necessarily where user's mailboxes and final delivery takes place. If
+you are looking for fully per-user configurable and/or low-message-rate
+solution to be placed at the final stage of mail delivery (e.g. called
+from procmail), there may be other solutions more appropriate for your
+needs.
diff --git a/mail/amavisd-new/MESSAGE b/mail/amavisd-new/MESSAGE
new file mode 100644
index 00000000000..fc1addb27c4
--- /dev/null
+++ b/mail/amavisd-new/MESSAGE
@@ -0,0 +1,21 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.3 2010/12/24 07:19:35 kefren Exp $
+
+To use amavisd-new, you should install at least one content checker.
+Examples of content checkers include the freely-available Clam Anti-Virus
+(mail/p5-Mail-ClamAV) and SpamAssassin (mail/spamassassin).
+
+amavisd-new will only scan inside archives if the appropriate unarchiving
+tools are available. You may choose to install the following tools to
+scan the respective archive types:
+
+ arc archivers/arc
+ freeze archivers/freeze
+ lha archivers/lha
+ lzop archivers/lzop
+ unarj archivers/unarj
+ unrar archivers/unrar
+ xbin archivers/xbin
+ zoo archivers/zoo
+
+===========================================================================
diff --git a/mail/amavisd-new/MESSAGE.milter b/mail/amavisd-new/MESSAGE.milter
new file mode 100644
index 00000000000..6c145c6de00
--- /dev/null
+++ b/mail/amavisd-new/MESSAGE.milter
@@ -0,0 +1,24 @@
+===========================================================================
+$NetBSD: MESSAGE.milter,v 1.3 2010/12/24 07:19:35 kefren Exp $
+
+Before using amavisd-new with Sendmail, you must configure Sendmail
+properly. Please refer to the following documentation:
+
+ ${PREFIX}/share/doc/amavisd-new/README.milter
+ ${PREFIX}/share/doc/amavisd-new/README.sendmail
+ ${PREFIX}/share/doc/amavisd-new/README.sendmail-dual
+
+There are several ways to configure Sendmail to pass mail through
+amavisd-new depending on your resources and whether you wish to use
+libmilter.
+
+If you choose to use libmilter, then you will need to add the following
+line to /etc/rc.conf:
+
+ amavismilter=YES
+
+Please refer to the comments at the top of the amavismilter rc.d script
+for additional rc.conf settings to modify how libmilter and amavisd-new
+communicate with each other.
+
+===========================================================================
diff --git a/mail/amavisd-new/Makefile b/mail/amavisd-new/Makefile
new file mode 100644
index 00000000000..a95da544e0c
--- /dev/null
+++ b/mail/amavisd-new/Makefile
@@ -0,0 +1,138 @@
+# $NetBSD: Makefile,v 1.3 2010/12/24 07:19:35 kefren Exp $
+
+DISTNAME= amavisd-new-${VERSION}${PATCHLEVEL}
+PKGNAME= amavisd-new-${VERSION}${PATCHLEVEL:S/-//}
+CATEGORIES= mail security
+MASTER_SITES= http://www.ijs.si/software/amavisd/ \
+ http://mirrors.catpipe.net/amavisd-new/ \
+ http://mirror.mainloop.se/amavisd/ \
+ http://mirror.cedratnet.com/amavisd-new/ \
+ http://mirror.omroep.nl/amavisd-new/
+
+MAINTAINER= jdunn@aquezada.com
+HOMEPAGE= http://www.ijs.si/software/amavisd/
+COMMENT= Daemonized interface between MTA and content checkers
+LICENSE= gnu-gpl-v2
+
+VERSION= 2.6.4
+PATCHLEVEL= # empty
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+DEPENDS+= p5-Archive-Tar-[0-9]*:../../archivers/p5-Archive-Tar
+DEPENDS+= p5-Archive-Zip>=1.14:../../archivers/p5-Archive-Zip
+DEPENDS+= p5-BerkeleyDB-[0-9]*:../../databases/p5-BerkeleyDB
+DEPENDS+= p5-IO-Compress>=2.017:../../devel/p5-IO-Compress
+DEPENDS+= p5-Convert-TNEF-[0-9]*:../../converters/p5-Convert-TNEF
+DEPENDS+= p5-Convert-UUlib>=1.05:../../converters/p5-Convert-UUlib
+DEPENDS+= p5-Digest-MD5>=2.22:../../security/p5-Digest-MD5
+DEPENDS+= p5-Mail-DKIM>=0.31:../../mail/p5-Mail-DKIM
+DEPENDS+= p5-MIME-tools>=5.417:../../mail/p5-MIME-tools
+DEPENDS+= p5-MailTools>=1.58:../../mail/p5-MailTools
+DEPENDS+= p5-IO-stringy-[0-9]*:../../devel/p5-IO-stringy
+DEPENDS+= p5-Net-Server>=0.88:../../net/p5-Net-Server
+DEPENDS+= p5-Time-HiRes>=1.49:../../time/p5-Time-HiRes
+DEPENDS+= p5-Unix-Syslog-[0-9]*:../../sysutils/p5-Unix-Syslog
+
+WRKSRC= ${WRKDIR}/amavisd-new-${VERSION}
+
+CONFLICTS+= amavis-[0-9]*
+CONFLICTS+= amavis-perl-[0-9]*
+
+.include "../../mk/bsd.prefs.mk"
+
+USE_TOOLS+= perl:run
+REPLACE_PERL+= amavisd amavisd-nanny amavisd-release amavisd-agent
+
+AMAVIS_USER?= vscan
+AMAVIS_GROUP?= vscan
+AMAVIS_DIR?= ${VARBASE}/amavis
+AMAVIS_QUARANTINE?= ${VARBASE}/virusmails
+DOCDIR= ${PREFIX}/share/doc/amavisd-new
+EGDIR= ${PREFIX}/share/examples/amavisd-new
+MESSAGE_SRC= ${PKGDIR}/MESSAGE
+
+PKG_GROUPS_VARS+= AMAVIS_GROUP
+PKG_USERS_VARS+= AMAVIS_USER
+BUILD_DEFS+= AMAVIS_DIR AMAVIS_QUARANTINE
+FILES_SUBST+= AMAVIS_USER=${AMAVIS_USER}
+FILES_SUBST+= AMAVIS_GROUP=${AMAVIS_GROUP}
+FILES_SUBST+= AMAVIS_DIR=${AMAVIS_DIR}
+FILES_SUBST+= AMAVIS_QUARANTINE=${AMAVIS_QUARANTINE:Q}
+
+PKG_GROUPS= ${AMAVIS_GROUP}
+PKG_USERS= ${AMAVIS_USER}:${AMAVIS_GROUP}
+
+PKG_GECOS.${AMAVIS_USER}= AMaViS Virus Scanning Account
+PKG_HOME.${AMAVIS_USER}= ${AMAVIS_DIR}
+PKG_SHELL.${AMAVIS_USER}= ${SH}
+
+RCD_SCRIPTS= amavisd
+CONF_FILES= ${EGDIR}/amavisd.conf-minimal ${PKG_SYSCONFDIR}/amavisd.conf
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.amavisd-new
+PKG_SUPPORTED_OPTIONS= milter
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+= milter
+.if !empty(PKG_OPTIONS:Mmilter)
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --with-runtime-dir=${AMAVIS_DIR}
+CONFIGURE_ARGS+= --with-sockname=${AMAVIS_DIR}/amavisd.sock
+CONFIGURE_ARGS+= --with-user=${AMAVIS_USER}
+CONFIGURE_ARGS+= --with-milterinc=${BUILDLINK_PREFIX.libmilter}/include
+CONFIGURE_ARGS+= --with-milterlib=${BUILDLINK_PREFIX.libmilter}/lib
+CONFIGURE_DIRS= helper-progs
+BUILD_DIRS= helper-progs
+RCD_SCRIPTS+= amavismilter
+MESSAGE_SRC+= ${PKGDIR}/MESSAGE.milter
+PLIST.milter= yes
+
+PTHREAD_OPTS+= require native # doesn't work with pth
+. include "../../mail/libmilter/buildlink3.mk"
+. include "../../mk/pthread.buildlink3.mk"
+.else
+USE_LANGUAGES= # none, not even C
+
+do-build: replace-interpreter
+.endif
+
+SUBST_CLASSES+= amavisd
+SUBST_STAGE.amavisd= pre-build
+SUBST_FILES.amavisd= amavisd amavisd.conf
+SUBST_SED.amavisd= \
+ -e "s|/etc/amavisd.conf|${PKG_SYSCONFDIR}/amavisd.conf|" \
+ -e "s|@AMAVIS_DIR@|${AMAVIS_DIR}|g" \
+ -e "s|@AMAVIS_USER@|${AMAVIS_USER}|g" \
+ -e "s|@AMAVIS_GROUP@|${AMAVIS_GROUP}|g" \
+ -e "s|@AMAVIS_QUARANTINE@|${AMAVIS_QUARANTINE}|g" \
+ -e "s|@LOCALBASE@|${LOCALBASE}|g" \
+ -e "s|@PREFIX@|${PREFIX}|g"
+
+INSTALLATION_DIRS= sbin ${DOCDIR} ${EGDIR}
+
+do-install:
+.if !empty(PKG_OPTIONS:Mmilter)
+ ${INSTALL_PROGRAM} ${WRKSRC}/helper-progs/amavis ${DESTDIR}${PREFIX}/sbin
+ ${INSTALL_PROGRAM} ${WRKSRC}/helper-progs/amavis-milter ${DESTDIR}${PREFIX}/sbin
+.endif
+ ${INSTALL_SCRIPT} ${WRKSRC}/amavisd ${DESTDIR}${PREFIX}/sbin/amavisd
+ ${INSTALL_SCRIPT} ${WRKSRC}/amavisd-nanny ${DESTDIR}${PREFIX}/sbin/amavisd-nanny
+ ${INSTALL_SCRIPT} ${WRKSRC}/amavisd-release ${DESTDIR}${PREFIX}/sbin/amavisd-release
+ ${INSTALL_SCRIPT} ${WRKSRC}/amavisd-agent ${DESTDIR}${PREFIX}/sbin/amavisd-agent
+ ${INSTALL_DATA} ${WRKSRC}/AAAREADME.first ${DESTDIR}${DOCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/INSTALL ${DESTDIR}${DOCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/LDAP.schema ${DESTDIR}${DOCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/LICENSE ${DESTDIR}${DOCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/MANIFEST ${DESTDIR}${DOCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/RELEASE_NOTES ${DESTDIR}${DOCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/README_FILES/amavisd-new-docs.html ${DESTDIR}${DOCDIR}
+ for file in README_FILES/README.*; do \
+ ${INSTALL_DATA} ${WRKSRC}/$$file ${DESTDIR}${DOCDIR}; \
+ done
+ ${INSTALL_DATA} ${WRKSRC}/amavisd.conf ${DESTDIR}${EGDIR}/amavisd.conf-minimal
+ ${INSTALL_DATA} ${WRKSRC}/amavisd.conf-default ${DESTDIR}${EGDIR}
+ ${INSTALL_DATA} ${WRKSRC}/amavisd.conf-sample ${DESTDIR}${EGDIR}
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/mail/amavisd-new/PLIST b/mail/amavisd-new/PLIST
new file mode 100644
index 00000000000..c72d235a3be
--- /dev/null
+++ b/mail/amavisd-new/PLIST
@@ -0,0 +1,45 @@
+@comment $NetBSD: PLIST,v 1.3 2010/12/24 07:19:35 kefren Exp $
+${PLIST.milter}sbin/amavis
+${PLIST.milter}sbin/amavis-milter
+sbin/amavisd
+sbin/amavisd-agent
+sbin/amavisd-nanny
+sbin/amavisd-release
+share/doc/amavisd-new/AAAREADME.first
+share/doc/amavisd-new/INSTALL
+share/doc/amavisd-new/LDAP.schema
+share/doc/amavisd-new/LICENSE
+share/doc/amavisd-new/MANIFEST
+share/doc/amavisd-new/README.banned
+share/doc/amavisd-new/README.chroot
+share/doc/amavisd-new/README.contributed
+share/doc/amavisd-new/README.courier
+share/doc/amavisd-new/README.courier-old
+share/doc/amavisd-new/README.customize
+share/doc/amavisd-new/README.exim_v3
+share/doc/amavisd-new/README.exim_v3_app
+share/doc/amavisd-new/README.exim_v4
+share/doc/amavisd-new/README.exim_v4_app
+share/doc/amavisd-new/README.exim_v4_app2
+share/doc/amavisd-new/README.ldap
+share/doc/amavisd-new/README.lookups
+share/doc/amavisd-new/README.milter
+share/doc/amavisd-new/README.old.scanners
+share/doc/amavisd-new/README.performance
+share/doc/amavisd-new/README.policy-on-notifications
+share/doc/amavisd-new/README.postfix
+share/doc/amavisd-new/README.postfix.html
+share/doc/amavisd-new/README.protocol
+share/doc/amavisd-new/README.sendmail
+share/doc/amavisd-new/README.sendmail-dual
+share/doc/amavisd-new/README.sendmail-dual.old
+share/doc/amavisd-new/README.sql
+share/doc/amavisd-new/README.sql-mysql
+share/doc/amavisd-new/README.sql-pg
+share/doc/amavisd-new/RELEASE_NOTES
+share/doc/amavisd-new/amavisd-new-docs.html
+share/examples/amavisd-new/amavisd.conf-default
+share/examples/amavisd-new/amavisd.conf-minimal
+share/examples/amavisd-new/amavisd.conf-sample
+share/examples/rc.d/amavisd
+${PLIST.milter}share/examples/rc.d/amavismilter
diff --git a/mail/amavisd-new/distinfo b/mail/amavisd-new/distinfo
new file mode 100644
index 00000000000..5aecd0f64e5
--- /dev/null
+++ b/mail/amavisd-new/distinfo
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.3 2010/12/24 07:19:35 kefren Exp $
+
+SHA1 (amavisd-new-2.6.4.tar.gz) = 993b7ca839ce038fd13f65351950f0ef03d99ff9
+RMD160 (amavisd-new-2.6.4.tar.gz) = 010dd9bf49a3c7553996c49553fd0fa84ca7bdab
+Size (amavisd-new-2.6.4.tar.gz) = 947596 bytes
+SHA1 (patch-aa) = d8bc17da9b1d3ef883331d462ee06d534f5ff5b0
diff --git a/mail/amavisd-new/files/amavisd.sh b/mail/amavisd-new/files/amavisd.sh
new file mode 100644
index 00000000000..1472264b932
--- /dev/null
+++ b/mail/amavisd-new/files/amavisd.sh
@@ -0,0 +1,77 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: amavisd.sh,v 1.3 2010/12/24 07:19:35 kefren Exp $
+#
+# PROVIDE: amavisd
+# REQUIRE: DAEMON
+# BEFORE: mail
+#
+#
+# You will need to set some variables in /etc/rc.conf to start amavisd:
+#
+# amavisd=YES
+#
+# The following variables are optional:
+#
+# amavisd_user="@AMAVIS_USER@" # user to run amavisd as
+# amavisd_group="@AMAVIS_GROUP@" # ${amavisd_user}'s group
+# amavisd_dirs="@AMAVIS_DIR@" # directories that should be created
+# # before starting amavisd
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="amavisd"
+rcvar=$name
+command="@PREFIX@/sbin/${name}"
+command_interpreter="@PERL5@"
+pidfile="@AMAVIS_DIR@/amavisd.pid"
+required_files="@PKG_SYSCONFDIR@/${name}.conf"
+: ${amavisd_user="@AMAVIS_USER@"}
+: ${amavisd_group="@AMAVIS_GROUP@"}
+: ${amavisd_dirs="@AMAVIS_DIR@ @AMAVIS_DIR@/db @AMAVIS_DIR@/tmp @AMAVIS_QUARANTINE@"}
+
+start_precmd="amavisd_prestart"
+stop_cmd="amavisd_stop"
+
+amavisd_prestart()
+{
+ @RM@ -f @AMAVIS_DIR@/amavisd.sock
+ for dir in ${amavisd_dirs}; do
+ @MKDIR@ $dir
+ @CHOWN@ ${amavisd_user}:${amavisd_group} $dir
+ @CHMOD@ 0750 $dir
+ done
+}
+
+# Net::Server breaks rc.subr's techniques for detecting whether the
+# process running at a certain PID is actually the process we wish to
+# stop. Just unconditionally send SIGTERM to the PID instead.
+#
+amavisd_stop()
+{
+ @ECHO@ "Stopping ${name}."
+ if [ -f ${pidfile} ]; then
+ pid=`@HEAD@ -1 ${pidfile}`
+ doit="@SU@ -m ${amavisd_user} -c \"kill ${pid}\""
+ if ! eval $doit && [ -z "$rc_force" ]; then
+ return 1
+ fi
+ wait_for_pids $pid
+ fi
+ @RM@ -f ${pidfile}
+ for dir in ${amavisd_dirs}; do
+ @RMDIR@ -p $dir 2>/dev/null || @TRUE@
+ done
+}
+
+if [ -f /etc/rc.subr -a -f /etc/rc.conf \
+ -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
+ load_rc_config $name
+ run_rc_command "$1"
+else
+ @ECHO@ -n " ${name}"
+ eval ${start_precmd}
+ ${command} ${amavisd_flags} ${command_args}
+fi
diff --git a/mail/amavisd-new/files/amavismilter.sh b/mail/amavisd-new/files/amavismilter.sh
new file mode 100644
index 00000000000..064ce299d48
--- /dev/null
+++ b/mail/amavisd-new/files/amavismilter.sh
@@ -0,0 +1,57 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: amavismilter.sh,v 1.3 2010/12/24 07:19:35 kefren Exp $
+#
+# PROVIDE: amavismilter
+# REQUIRE: DAEMON
+# BEFORE: mail
+#
+# To communicate with libmilter through a UNIX domain socket (the
+# socket must exist in a location that's writable by the user named
+# by ${amavismilter_user}:
+#
+# amavismilter_flags="-p local:/path/to/socket"
+#
+# To communicate with libmilter through a TCP/IP socket:
+#
+# amavismilter_flags="-p inet:port@0.0.0.0"
+#
+# To communicate with libmilter through a TCP/IP socket restricted to a
+# particular interface address:
+#
+# amavismilter_flags="-p inet:port@A.B.C.D"
+#
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="amavismilter"
+rcvar=$name
+command="@PREFIX@/sbin/amavis-milter"
+required_vars="amavisd"
+: ${amavismilter_user="@AMAVIS_USER@"}
+: ${amavismilter_flags="-p local:@AMAVIS_DIR@/amavis-milter.sock"}
+
+start_precmd="amavismilter_precmd"
+
+# Before starting amavis-milter, remove the old milter socket if it exists.
+amavismilter_precmd()
+{
+ set -- ${amavismilter_flags}
+ case $2 in
+ local:*)
+ @RM@ -f "${2#local:}"
+ ;;
+ esac
+}
+
+if [ -f /etc/rc.subr -a -f /etc/rc.conf \
+ -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
+ load_rc_config $name
+ run_rc_command "$1"
+else
+ @ECHO@ -n " ${name}"
+ eval ${start_precmd}
+ ${command} ${amavismilter_flags} ${command_args}
+fi
diff --git a/mail/amavisd-new/patches/patch-aa b/mail/amavisd-new/patches/patch-aa
new file mode 100644
index 00000000000..56ed4c3723b
--- /dev/null
+++ b/mail/amavisd-new/patches/patch-aa
@@ -0,0 +1,33 @@
+$NetBSD: patch-aa,v 1.3 2010/12/24 07:19:35 kefren Exp $
+
+--- amavisd.conf.orig 2008-06-24 22:23:05.000000000 -0400
++++ amavisd.conf 2008-06-24 22:25:53.000000000 -0400
+@@ -15,15 +15,15 @@
+ # $bypass_decode_parts = 1; # controls running of decoders&dearchivers
+
+ $max_servers = 2; # num of pre-forked children (2..30 is common), -m
+-$daemon_user = 'vscan'; # (no default; customary: vscan or amavis), -u
+-$daemon_group = 'vscan'; # (no default; customary: vscan or amavis), -g
++$daemon_user = '@AMAVIS_USER@'; # (no default; customary: vscan or amavis), -u
++$daemon_group = '@AMAVIS_GROUP@'; # (no default; customary: vscan or amavis), -g
+
+ $mydomain = 'example.com'; # a convenient default for other settings
+
+-# $MYHOME = '/var/amavis'; # a convenient default for other settings, -H
++$MYHOME = '@AMAVIS_DIR@'; # a convenient default for other settings, -H
+ $TEMPBASE = "$MYHOME/tmp"; # working directory, needs to exist, -T
+ $ENV{TMPDIR} = $TEMPBASE; # environment variable TMPDIR, used by SA, etc.
+-$QUARANTINEDIR = '/var/virusmails'; # -Q
++$QUARANTINEDIR = '@AMAVIS_QUARANTINE@'; # -Q
+ # $quarantine_subdir_levels = 1; # add level of subdirs to disperse quarantine
+ # $release_format = 'resend'; # 'attach', 'plain', 'resend'
+ # $report_format = 'arf'; # 'attach', 'plain', 'resend', 'arf'
+@@ -130,7 +130,7 @@
+ # $recipient_delimiter = '+'; # undef disables address extensions altogether
+ # when enabling addr extensions do also Postfix/main.cf: recipient_delimiter=+
+
+-$path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin';
++$path = '@PREFIX@/sbin:@PREFIX@/bin:@LOCALBASE@/sbin:@LOCALBASE@/bin:/usr/sbin:/sbin:/usr/bin:/bin';
+ # $dspam = 'dspam';
+
+ $MAXLEVELS = 14;