diff options
author | will <will@FreeBSD.org> | 2001-01-07 15:38:32 +0800 |
---|---|---|
committer | will <will@FreeBSD.org> | 2001-01-07 15:38:32 +0800 |
commit | 42097d2a3693fb048fd93c7d4cfa8593d0ba1903 (patch) | |
tree | 5bf990ec5a40473e8d085a79a9a5d716e1fb04ef /security/amavis-perl | |
parent | c0edefdc398efa3e0b6c94161ee3fe7bcb5cf254 (diff) | |
download | freebsd-ports-gnome-42097d2a3693fb048fd93c7d4cfa8593d0ba1903.tar.gz freebsd-ports-gnome-42097d2a3693fb048fd93c7d4cfa8593d0ba1903.tar.zst freebsd-ports-gnome-42097d2a3693fb048fd93c7d4cfa8593d0ba1903.zip |
Add amavis-perl 10, a mail virus scanner (uses external antivirus).
PR: 23978
Submitted by: Roman Shterenzon <roman@xpert.com>
Diffstat (limited to 'security/amavis-perl')
-rw-r--r-- | security/amavis-perl/Makefile | 56 | ||||
-rw-r--r-- | security/amavis-perl/distinfo | 1 | ||||
-rw-r--r-- | security/amavis-perl/files/patch-aa | 38 | ||||
-rw-r--r-- | security/amavis-perl/files/patch-ab | 20 | ||||
-rw-r--r-- | security/amavis-perl/pkg-comment | 1 | ||||
-rw-r--r-- | security/amavis-perl/pkg-deinstall | 28 | ||||
-rw-r--r-- | security/amavis-perl/pkg-descr | 15 | ||||
-rw-r--r-- | security/amavis-perl/pkg-install | 99 | ||||
-rw-r--r-- | security/amavis-perl/pkg-message | 3 | ||||
-rw-r--r-- | security/amavis-perl/pkg-plist | 8 |
10 files changed, 269 insertions, 0 deletions
diff --git a/security/amavis-perl/Makefile b/security/amavis-perl/Makefile new file mode 100644 index 000000000000..004dd6bd08d0 --- /dev/null +++ b/security/amavis-perl/Makefile @@ -0,0 +1,56 @@ +# New ports collection makefile for: amavis +# Date Created: 13 Nov 2000 +# Whom: Roman Shterenzon <roman@xpert.com> +# +# $FreeBSD$ +# + +PORTNAME= amavis-perl +PORTVERSION= 10 +CATEGORIES= security +MASTER_SITES= http://www.amavis.org/dist/perl/ + +MAINTAINER= roman@xpert.com + +BUILD_DEPENDS= ${LOCALBASE}/bin/uvscan:${PORTSDIR}/security/vscan \ + ${LOCALBASE}/bin/bunzip2:${PORTSDIR}/archivers/bzip2 \ + ${LOCALBASE}/bin/lha:${PORTSDIR}/archivers/lha \ + ${LOCALBASE}/bin/unarj:${PORTSDIR}/archivers/unarj \ + ${LOCALBASE}/bin/unrar:${PORTSDIR}/archivers/unrar \ + ${LOCALBASE}/bin/unzip:${PORTSDIR}/archivers/unzip \ + ${LOCALBASE}/bin/zoo:${PORTSDIR}/archivers/zoo \ + ${LOCALBASE}/bin/arc:${PORTSDIR}/archivers/arc \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/IO/AtomicFile.pm:${PORTSDIR}/devel/p5-IO-stringy \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH}/MIME/Base64.pm:${PORTSDIR}/converters/p5-MIME-Base64 \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/MIME/Body.pm:${PORTSDIR}/mail/p5-MIME-Tools \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/Mail/Address.pm:${PORTSDIR}/mail/p5-Mail-Tools \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH}/Compress/Zlib.pm:${PORTSDIR}/archivers/p5-Compress-Zlib \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH}/Convert/UUlib.pm:${PORTSDIR}/converters/p5-Convert-UUlib \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/Convert/TNEF.pm:${PORTSDIR}/converters/p5-Convert-TNEF \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/Archive/Tar.pm:${PORTSDIR}/archivers/p5-Archive-Tar \ + ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH}/Unix/Syslog.pm:${PORTSDIR}/sysutils/p5-Unix-Syslog +RUN_DEPENDS= ${BUILD_DEPENDS} + +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --disable-qmail --disable-postfix --disable-exim --with-virusdir=/var/spool/quarantine --enable-relay + +.if defined(NOPORTDOCS) +PLIST_SUB+= NOPORTDOCS="@comment " +.else +PLIST_SUB+= NOPORTDOCS="" +.endif + +do-install: + ${INSTALL_SCRIPT} ${WRKSRC}/amavis/amavis ${PREFIX}/sbin +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/doc/amavis +.for i in README README.exim README.postfix README.sendmail README.scanners doc/amavis.txt + ${INSTALL_DATA} ${WRKSRC}/${i} ${PREFIX}/share/doc/amavis +.endfor +.endif + +post-install: + @PKG_PREFIX=${PREFIX} ${PERL5} ${PKGINSTALL} _ POST-INSTALL + @${CAT} ${PKGMESSAGE} + +.include <bsd.port.mk> diff --git a/security/amavis-perl/distinfo b/security/amavis-perl/distinfo new file mode 100644 index 000000000000..e5ca58aa523d --- /dev/null +++ b/security/amavis-perl/distinfo @@ -0,0 +1 @@ +MD5 (amavis-perl-10.tar.gz) = 48acf27fa6d418863b4094dac8bdafe8 diff --git a/security/amavis-perl/files/patch-aa b/security/amavis-perl/files/patch-aa new file mode 100644 index 000000000000..ccd5ec38dc72 --- /dev/null +++ b/security/amavis-perl/files/patch-aa @@ -0,0 +1,38 @@ +--- configure.orig Thu Dec 7 19:04:06 2000 ++++ configure Sun Dec 31 15:22:09 2000 +@@ -1109,16 +1109,16 @@ + { echo "configure: error: Sorry, you need the "file" command" 1>&2; exit 1; } + fi + +-echo $ac_n "checking if file can be brief""... $ac_c" 1>&6 +-echo "configure:1114: checking if file can be brief" >&5 +-$file -b /bin/sh > /dev/null 2>&1 +-if test $? -ne 0 ; then +- { echo "configure: error: +-You need a "file" command that supports -b +-Check ftp://ftp.astron.com/pub/file/" 1>&2; exit 1; } +-else +- echo "$ac_t""yes" 1>&6 +-fi ++#echo $ac_n "checking if file can be brief""... $ac_c" 1>&6 ++#echo "configure:1114: checking if file can be brief" >&5 ++#$file -b /bin/sh > /dev/null 2>&1 ++#if test $? -ne 0 ; then ++# { echo "configure: error: ++#You need a "file" command that supports -b ++#Check ftp://ftp.astron.com/pub/file/" 1>&2; exit 1; } ++#else ++# echo "$ac_t""yes" 1>&6 ++#fi + + for ac_prog in grep + do +@@ -1775,7 +1775,7 @@ + if test ! -f "$sendmail_cf_orig" ; then + if test -f /etc/sendmail.cf ; then + sendmail_cf_orig=/etc/sendmail.orig.cf +- elif test -f /etc/mail/sendmail.orig.cf ; then ++ elif test -f /etc/mail/sendmail.cf ; then + sendmail_cf_orig=/etc/mail/sendmail.orig.cf + else + { echo "configure: error: diff --git a/security/amavis-perl/files/patch-ab b/security/amavis-perl/files/patch-ab new file mode 100644 index 000000000000..f803e1b9f04e --- /dev/null +++ b/security/amavis-perl/files/patch-ab @@ -0,0 +1,20 @@ +--- amavis/amavis.in.orig Sun Dec 31 15:16:34 2000 ++++ amavis/amavis.in Sun Dec 31 15:24:31 2000 +@@ -414,7 +414,7 @@ + do_exit($REGERR, __LINE__); + } + +- my $filetype = `$file -b $TEMPDIR/parts/$part`; ++ my $filetype = `$file $TEMPDIR/parts/$part`; + chop $filetype; + do_debug("File-type of $part: $filetype\n"); + +@@ -609,7 +609,7 @@ + } + + # older versions of file report tnef files as data +- if ($filetype =~ /^data$/) { ++ if ($filetype =~ /:\sdata$/) { + # may be tnef + + # checked already? diff --git a/security/amavis-perl/pkg-comment b/security/amavis-perl/pkg-comment new file mode 100644 index 000000000000..654c05266037 --- /dev/null +++ b/security/amavis-perl/pkg-comment @@ -0,0 +1 @@ +Mail Virus Scanner (uses external antivirus) diff --git a/security/amavis-perl/pkg-deinstall b/security/amavis-perl/pkg-deinstall new file mode 100644 index 000000000000..53b1ffa0118a --- /dev/null +++ b/security/amavis-perl/pkg-deinstall @@ -0,0 +1,28 @@ +#!/bin/sh +# $FreeBSD$ + +prefix=/usr/local +PATH="/bin:/usr/bin" + +if [ "$2" != "POST-DEINSTALL" ]; then + exit 0 +fi + +if [ -f /etc/sendmail.cf.pre-amavis ]; then + CFG=/etc +elif [ -f /etc/mail/sendmail.cf.pre-amavis ]; then + CFG=/etc/mail +else + echo "No sendmail.cf.pre-amavis found, are you sure that amavis was installed?" + exit 1 +fi + +rm -f ${CFG}/sendmail.cf +rm -f ${CFG}/sendmail.orig.cf +mv ${CFG}/sendmail.cf.pre-amavis ${CFG}/sendmail.cf +sed /^virusalert/d ${CFG}/aliases > ${CFG}/aliases.tmp +mv ${CFG}/aliases.tmp ${CFG}/aliases +newaliases +rmdir /var/spool/mqamavis 2>/dev/null || echo "You may wish to inspect /var/spool/mqamavis directory by yourself and remove it" +rmdir /var/spool/quarantine 2>/dev/null || echo "You may wish to inspect /var/spool/quarantine directory by yourself and remove it" +exit 0 diff --git a/security/amavis-perl/pkg-descr b/security/amavis-perl/pkg-descr new file mode 100644 index 000000000000..dfbfa2e2fe36 --- /dev/null +++ b/security/amavis-perl/pkg-descr @@ -0,0 +1,15 @@ +Imagine a heterogene network environment with both UN*X and DOS / Windows/ +Macintosh workstations. Now think of an UN*X server that serves Windows +and/or Macintosh workstations via a POP3 service. Would it not be nice to +ensure attachments coming via email are scanned for viruses before they reach +a system they are able to infect? Well - that is what this package is for. +It resides on the server that handles your incoming mails. When a mail +arrives, instead of being delivered via procmail directly, is parsed through +a script that extracts all attachments from the mail, unpacks (if needed) +and scans them using a professional virus scanner program. + +This is a perl implementation of the mailscan. + +WWW: http://www.amavis.org/ + +Roman Shterenzon <roman@xpert.com> diff --git a/security/amavis-perl/pkg-install b/security/amavis-perl/pkg-install new file mode 100644 index 000000000000..e146b10bf550 --- /dev/null +++ b/security/amavis-perl/pkg-install @@ -0,0 +1,99 @@ +#!/usr/bin/perl +# Roman Shterenzon <roman@xpert.com> 27/12/2000 +# $FreeBSD$ + +use strict; + +$ENV{'PATH'}='/bin:/usr/bin'; + +my $cfg; +my $result; + +exit 0 if $ARGV[1] ne "POST-INSTALL"; + +if ( -f '/etc/mail/sendmail.cf' ) { + $cfg='/etc/mail'; +} +elsif ( -f '/etc/sendmail.cf' ) { + $cfg='/etc'; +} +my $cf="$cfg/sendmail.cf"; +my $new="$cfg/amavis.cf"; + +print "===> Adding neccessary hooks to sendmail.cf file\n"; + +open(IN, $cf) || die "Cannot open $cf"; +open(OUT, ">$new") || die "Cannot create $new"; + +my $replace=0; + +while(<IN>) { + if ( /^O QueueDirectory/ ) { + $_="O QueueDirectory=/var/spool/mqamavis\n"; + $replace++; + } + elsif ( /O StatusFile/ ) { + $_="O StatusFile=/var/log/amavis.st\n"; + $replace++; + } + elsif ( /^Mlocal/ ) { + print OUT <<'EOF'; +Mamavis, P=/usr/local/sbin/amavis, F=mlsACDFMS5:/|@qhP, S=0, R=0 + T=DNS/RFC822/X-Unix, + A=amavis $f $u + +EOF + $replace++; + } + elsif ( /\s+final\s+parsing$/ ) { + print OUT "R\$*\t\t\t\$#amavis \$:\$1\n"; + $replace++; + } + s/^(DZ.*)/$1av/; + print OUT; +} +close(OUT); +close(IN); +die "I couldn't patch the sendmail.cf file, its format is unknown to me\n" + unless ( $replace == 4 ); + +print "===> Adding alias for virusalert to the aliases file\n"; +if ( ! -f "$cfg/aliases" ) { + print "Can't find aliases file, you have to add an alias for virusalert by yourself\n"; +} +else { + open (IN, "$cfg/aliases") || die "Cannot open aliases file for reading\n"; + my $found; + while(<IN>) { + $found=1, last if /^virusalert/; + } + close(IN); + unless ($found) { + open(OUT, ">>$cfg/aliases") || die "Cannot open aliases file for writing\n"; + print OUT "virusalert:\troot\n"; + close(OUT); + $result=system("newaliases"); + die "Failed to run newaliases command\n" if $result; + } +} + +print "===> Creating /var/spool/mqamavis directory\n"; +if ( ! -d "/var/spool/mqamavis" ) { + mkdir "/var/spool/mqamavis",0755 || die "Can't create /var/spool/mqamavis\n"; +} +my $gid=getgrnam('daemon'); +chown 0, $gid, "/var/spool/mqamavis"; + +print "===> Creating /var/spool/quarantine directory\n"; +if ( ! -d "/var/spool/quarantine" ) { + mkdir "/var/spool/quarantine",0755 || die "Can't create /var/spool/quarantine\n"; +} +chown 0, $gid, "/var/spool/quarantine"; + +die "There's already a $cf.pre-amavis, is amavis already installed?\n" + if -f "$cf.pre-amavis"; +$result=system("cp $cf $cf.pre-amavis"); +die "Failed to copy $cf to $cf.pre-amavis\n" if $result; +rename "$cf", "${cfg}/sendmail.orig.cf" || + die "Unable to rename $cf to ${cfg}/sendmail.orig.cf\n"; +rename "$new", "$cf" || die "Unable to rename $new to $cf\n"; diff --git a/security/amavis-perl/pkg-message b/security/amavis-perl/pkg-message new file mode 100644 index 000000000000..1a4ab678cdc6 --- /dev/null +++ b/security/amavis-perl/pkg-message @@ -0,0 +1,3 @@ + +Please read documentation on http://www.amavis.org/ before you start using it. + diff --git a/security/amavis-perl/pkg-plist b/security/amavis-perl/pkg-plist new file mode 100644 index 000000000000..33cfc646c3cc --- /dev/null +++ b/security/amavis-perl/pkg-plist @@ -0,0 +1,8 @@ +sbin/amavis +%%NOPORTDOCS%%share/doc/amavis/amavis.txt +%%NOPORTDOCS%%share/doc/amavis/README +%%NOPORTDOCS%%share/doc/amavis/README.exim +%%NOPORTDOCS%%share/doc/amavis/README.postfix +%%NOPORTDOCS%%share/doc/amavis/README.sendmail +%%NOPORTDOCS%%share/doc/amavis/README.scanners +%%NOPORTDOCS%%@dirrm share/doc/amavis |