# 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 clamav vlnx spamassassin f-prot portage-mimetools" MAILSCANNER_PV=4.29.7-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" #BASE="/opt/MailScanner" BASE="/usr" KEYWORDS="~x86 ~sparc ~amd64" SLOT="0" LICENSE="GPL-2" DEPEND="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 clamav? net-mail/clamav spamassassin? dev-perl/Mail-SpamAssassin f-prot? net-mail/f-prot portage-mimetools? dev-perl/MIME-tools " src_unpack() { unpack ${A} } src_compile() { if [ ! "`use portage-mimetools`" ]; then cd "${WORKDIR}/MIME-tools-5.411/" perl "Makefile.PL" 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' elif [ "`use sendmail`" ]; then #RUNASUSER='mail' #RUNASGROUP='mail' INQUEUE='\/var\/spool\/mqueue.in' OUTQUEUE='\/var\/spool\/mqueue' MTA='sendmail' 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' 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 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/\/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 conf files BASEBIN="\\${BASE}\\/bin" 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/" \ ${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 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 #else # rm -rf ${BASE}/lib/mailscanner/MIME fi cd ${S} exeinto ${BASE}/sbin newexe bin/check_mailscanner.linux 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 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 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 ${FILESDIR}/cron.check_MailScanner check_MailScanner newexe ${FILESDIR}/cron.update_virus_scanners update_virus_scanners 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 }