# Copyright 2003 Martin Hierling # Distributed under the terms of the GNU General Public License v2 # $Header: /cvsroot/gentoo-deutsch/ebuilds/net-mail/MailScanner/MailScanner-4.24.5.ebuild,v 1.1 2003/10/09 07:41:56 mad Exp $ IUSE="postfix sendmail exim clamav vlnx spamassassin f-prot portage-mimetools" MAILSCANNER_PV=4.30.1-1 S=${WORKDIR}/MailScanner-${PV} DESCRIPTION="MailScanner / A Free Anti-Virus and Anti-Spam Filter " HOMEPAGE="http://www.mailscanner.info/" SRC_URI="http://www.sng.ecs.soton.ac.uk/mailscanner/files/4/tar/MailScanner-${MAILSCANNER_PV}.tar.gz" #Add patched MIME-tools SRC_URI="${SRC_URI} http://www.sng.ecs.soton.ac.uk/mailscanner/files/modules/MIME-tools-5.411-patched.tar.gz" MIMEWORKDIR=${WORKDIR}/MIME-tools-5.411/ BASE="/usr" KEYWORDS="~x86 ~sparc ~amd64" SLOT="0" LICENSE="GPL-2" DEPEND="dev-lang/perl " RDEPEND="dev-lang/perl dev-perl/Convert-TNEF dev-perl/File-Temp dev-perl/HTML-Parser dev-perl/HTML-Tagset dev-perl/File-Spec dev-perl/MailTools dev-perl/MIME-Base64 dev-perl/IO-stringy dev-perl/Archive-Zip dev-perl/Compress-Zlib dev-perl/Net-CIDR dev-perl/Convert-BinHex || ( sendmail? net-mail/sendmail postfix? net-mail/postfix exim? net-mail/exim net-mail/sendmail ) clamav? net-mail/clamav f-prot? net-mail/f-prot vlnx? net-mail/vlnx spamassassin? dev-perl/Mail-SpamAssassin portage-mimetools? dev-perl/MIME-tools " src_unpack() { unpack ${A} } src_compile() { if [ ! "`use portage-mimetools`" ]; then cd "${MIMEWORKDIR}" perl Makefile.PL LIB=/usr/lib/MailScanner make fi cd "${S}" # setup MTA if [ "`use postfix`" ]; then RUNASUSER='postfix' RUNASGROUP='postfix' INQUEUE='\/var\/spool\/postfix.in\/deferred' OUTQUEUE='\/var\/spool\/postfix\/incoming' MTA='postfix' SENDMAIL='\/usr\/lib\/sendmail' SENDMAIL2='\/usr\/lib\/sendmail' elif [ "`use exim`" ]; then RUNASUSER='mail' RUNASGROUP='mail' INQUEUE='\/var\/spool\/exim.in\/input' OUTQUEUE='\/var\/spool\/exim\/input' MTA='exim' SENDMAIL='\/usr\/sbin\/exim -oMr MailScanner' SENDMAIL2='\/usr\/sbin\/exim -C \/etc\/exim\/exim_out.conf' else # use sendmail as default, but we should add more as needed # RUNASUSER='mail' # RUNASGROUP='mail' INQUEUE='\/var\/spool\/mqueue.in' OUTQUEUE='\/var\/spool\/mqueue' MTA='sendmail' SENDMAIL='\/usr\/lib\/sendmail' SENDMAIL2='\/usr\/lib\/sendmail' fi # setup virus scanner(s) if [ "`use clamav`" -o "`use vlnx`" -o "`use f-prot`" ]; then if [ "`use clamav`" ]; then VIRUS_SCANNERS="clamav ${VIRUS_SCANNERS}" fi if [ "`use vlnx`" ]; then VIRUS_SCANNERS="mcafee ${VIRUS_SCANNERS}" fi if [ "`use f-prot`" ]; then VIRUS_SCANNERS="f-prot ${VIRUS_SCANNERS}" fi else VIRUS_SCANNERS="none" fi sed -i \ -e "s/^Virus Scanning.*/Virus Scanning = yes/" \ -e "s/^Virus Scanners.*/Virus Scanners = ${VIRUS_SCANNERS}/" \ ${S}/etc/MailScanner.conf # else # sed -i \ # -e "s/^Virus Scanning = yes$/Virus Scanning = no/" \ # ${S}/etc/MailScanner.conf # fi # setup spamassassin if [ "`use spamassassin`" ]; then sed -i \ -e "s/^Use SpamAssassin = no$/Use SpamAssassin = yes/" \ ${S}/etc/MailScanner.conf fi # update bin files # sed -i \ # -e "s/process=MailScanner/process=MailScanner/g" \ # -e "s/config=\/etc\/MailScanner\/MailScanner.conf/config=\/etc\/mailscanner\/MailScanner.conf/g" \ # -e "s/\/usr\/lib\/MailScanner/\/usr\/lib\/mailscanner/g" \ # ${S}/bin/check_mailscanner.linux sed -i \ -e "s/msbindir=\/opt\/MailScanner\/bin/msbindir=\/usr\/sbin/g" \ -e "s/config=\/opt\/MailScanner\/etc\/MailScanner.conf/config=\/etc\/MailScanner\/MailScanner.conf/g" \ ${S}/bin/check_mailscanner sed -i -e "s/\/opt\/MailScanner\/etc/\/etc\/MailScanner/g" ${S}/bin/update_virus_scanners sed -i \ -e "s/\/opt\/MailScanner\/etc/\/etc\/MailScanner/g" \ -e "s/\/opt\/MailScanner\/lib/\/usr\/lib\/MailScanner/g" \ ${S}/bin/MailScanner # update cron files sed -i \ -e "s/\/opt\/MailScanner\/bin\/check_MailScanner/\/usr\/sbin\/check_MailScanner/g" \ ${S}/bin/cron/check_MailScanner.cron sed -i \ -e "s/\/etc\/sysconfig\/MailScanner/\/etc\/conf.d\/mailscanner/g" \ -e "s/\/opt\/MailScanner\/bin\/update_virus_scanners/\/usr\/sbin\/update_virus_scanners/g" \ ${S}/bin/cron/update_virus_scanners.cron # Determine some things that may need to be changed in conf file # (need to arrive at sensible replacement for yoursite) YOURSITE=`dnsdomainname | sed -e "s/\./-/g"` BASEBIN="\\${BASE}\\/sbin" # ClamAV requires some specific changes to MailScanner.conf # when mailscanner is running as root (i.e. sendmail) if [ "`use clamav`" -a ${MTA} = "sendmail" ]; then WORKGRP="clamav" WORKPERM="0640" else WORKGRP="" WORKPERM="0600" fi # update conf files sed -i \ -e "s/\/opt\/MailScanner\/etc/\/etc\/MailScanner/g" \ -e "s/\/opt\/MailScanner\/bin/$BASEBIN/g" \ -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \ -e "s/^\(Run As User = \?\).*/\1 $RUNASUSER/" \ -e "s/^\(Run As Group = \?\).*/\1 $RUNASGROUP/" \ -e "s/^\(Incoming Queue Dir = \?\).*/\1 $INQUEUE/" \ -e "s/^\(Outgoing Queue Dir = \?\).*/\1 $OUTQUEUE/" \ -e "s/^\(MTA =\).*/\1 $MTA/" \ -e "s/^#\(TNEF.*internal\)$/\1/" \ -e "s/^\(TNEF.*0000\)$/#\1/" \ -e "s/^PID file.*/PID file = \/var\/run\/mailscanner.pid/" \ -e "s/^%org-name% =.*/%org-name% = ${YOURSITE}/" \ -e "s/^Sendmail =.*/Sendmail = ${SENDMAIL}/" \ -e "s/^Sendmail2 =.*/Sendmail2 = ${SENDMAIL2}/" \ -e "s/^\(Incoming Work Group = \?\).*/\1 ${WORKGRP}/" \ -e "s/^\(Incoming Work Permissions = \?\).*/\1 ${WORKPERM}/" \ ${S}/etc/MailScanner.conf if [ -e '/etc/MailScanner/MailScanner.conf' ]; then ${S}/bin/upgrade_MailScanner_conf \ /etc/MailScanner/MailScanner.conf \ ${S}/etc/MailScanner.conf \ > ${S}/etc/MailScanner.conf.new 2> /dev/null mv ${S}/etc/MailScanner.conf.new ${S}/etc/MailScanner.conf fi # net-mail/vlnx net-mail/clamav net-mail/f-prot package compatibility sed -i -e "s/PREFIX=\/usr\/local\/uvscan/PREFIX=\/opt\/vlnx/" ${S}/lib/mcafee-autoupdate sed -i \ -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#" \ -e 's#^\(mcafee.*\)/usr/local/uvscan$#\1/opt/vlnx#' \ -e 's#^\(clamav\t.*/usr\)/local$#\1#' \ -e 's#^\(f-prot.*\)/usr/local/f-prot$#\1/opt/f-prot#' \ ${S}/etc/virus.scanners.conf # update lib files sed -i \ -e "s/\/opt\/MailScanner\/bin/$BASEBIN/g" \ -e "s/\/opt\/MailScanner\/etc/etc\/MailScanner/g" \ ${S}/lib/MailScanner/ConfigDefs.pl sed -i -e "s/\/etc\/MailScanner/\/etc\/MailScanner/g" ${S}/lib/MailScanner/CustomConfig.pm } src_install() { if [ ! "`use portage-mimetools`" ]; then # cd "${WORKDIR}/MIME-tools-5.411/blib/lib" # insinto ${BASE}/lib/mailscanner/MIME # doins MIME/*.pm # for i in $(ls MIME) # do # if [ -d "MIME/${i}" ]; then # insinto ${BASE}/lib/mailscanner/MIME/${i} # doins MIME/${i}/*.pm # fi # done cd "${MIMEWORKDIR}" make DESTDIR=${D} install #else # rm -rf ${BASE}/lib/mailscanner/MIME fi cd ${S} exeinto ${BASE}/sbin #newexe bin/check_mailscanner.linux check_MailScanner newexe bin/check_mailscanner check_MailScanner doexe bin/df2mbox doexe bin/MailScanner doexe bin/update_virus_scanners insinto /etc/MailScanner doins etc/*.conf insinto /etc/MailScanner/rules doins etc/rules/* for i in $(ls etc/reports/) do insinto /etc/MailScanner/reports/$i doins etc/reports/$i/* done insinto ${BASE}/lib/MailScanner doins lib/* exeinto ${BASE}/lib/MailScanner doexe lib/*-wrapper doexe lib/*-autoupdate insinto ${BASE}/lib/MailScanner/MailScanner doins lib/MailScanner/* insinto ${BASE}/lib/MailScanner/MailScanner/CustomFunctions doins lib/MailScanner/CustomFunctions/MyExample.pm exeinto /etc/init.d newexe ${FILESDIR}/initd.mailscanner mailscanner newexe ${FILESDIR}/initd.mailscanner-mta mailscanner-mta # if [ "`use postfix`" ]; then # newexe ${FILESDIR}/postfix.in postfix.in # elif [ "`use sendmail`" ]; then # newexe ${FILESDIR}/sendmail.in sendmail.in # newexe ${FILESDIR}/initd.sendmail sendmail # newexe ${FILESDIR}/initd.sendmail.in sendmail.in # fi insinto /etc/conf.d newins ${FILESDIR}/confd.mailscanner mailscanner newins ${FILESDIR}/confd.mailscanner-mta mailscanner-mta # if [ "`use sendmail`" ]; then # newins ${FILESDIR}/confd.sendmail sendmail # newins ${FILESDIR}/confd.sendmail.in sendmail.in # fi #Set up cron jobs exeinto /etc/cron.hourly newexe ${S}/bin/cron/check_MailScanner.cron check_MailScanner newexe ${S}/bin/cron/update_virus_scanners.cron update_virus_scanners exeinto /etc/cron.daily newexe ${S}/bin/cron/clean.quarantine.cron clean.quarantine mkdir -p ${D}usr/share/doc/${PF}/html cp -a docs/* ${D}usr/share/doc/${PF}/html dodoc COPYING INSTALL notes.txt README docs/QuickInstall.txt docs/README.sql-logging dodir /var/spool/MailScanner/incoming touch ${D}/var/spool/MailScanner/incoming/.keep dodir /var/spool/MailScanner/quarantine touch ${D}/var/spool/MailScanner/quarantine/.keep dodir /var/spool/MailScanner/spamassassin touch ${D}/var/spool/MailScanner/spamassassin/.keep dodir /var/spool/MailScanner/archiv touch ${D}/var/spool/MailScanner/archiv/.keep dodir ${BASE}/var touch ${D}${BASE}/var/.keep if [ "`use postfix`" ]; then chown -R postfix:postfix ${D}/var/spool/MailScanner/ # elif [ "`use sendmail`" ]; then # chown -R mail:mail ${D}/var/spool/MailScanner/ fi }