diff options
-rw-r--r-- | mail/amavisd-new/DESCR | 11 | ||||
-rw-r--r-- | mail/amavisd-new/MESSAGE | 21 | ||||
-rw-r--r-- | mail/amavisd-new/MESSAGE.milter | 24 | ||||
-rw-r--r-- | mail/amavisd-new/Makefile | 138 | ||||
-rw-r--r-- | mail/amavisd-new/PLIST | 45 | ||||
-rw-r--r-- | mail/amavisd-new/distinfo | 6 | ||||
-rw-r--r-- | mail/amavisd-new/files/amavisd.sh | 77 | ||||
-rw-r--r-- | mail/amavisd-new/files/amavismilter.sh | 57 | ||||
-rw-r--r-- | mail/amavisd-new/patches/patch-aa | 33 |
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; |