]> Pileus Git - ~andy/sunrise/commitdiff
mail-filter/MailScanner: Initial import -- thanks to various people in bug #36060
authorMarkus Ullmann <jokey@gentoo.org>
Sun, 2 Jul 2006 11:19:28 +0000 (11:19 +0000)
committerMarkus Ullmann <jokey@gentoo.org>
Sun, 2 Jul 2006 11:19:28 +0000 (11:19 +0000)
svn path=/sunrise/; revision=419

mail-filter/MailScanner/ChangeLog [new file with mode: 0644]
mail-filter/MailScanner/MailScanner-4.54.6.1.ebuild [new file with mode: 0644]
mail-filter/MailScanner/Manifest [new file with mode: 0644]
mail-filter/MailScanner/files/confd.mailscanner [new file with mode: 0644]
mail-filter/MailScanner/files/confd.mailscanner-mta [new file with mode: 0644]
mail-filter/MailScanner/files/digest-MailScanner-4.54.6.1 [new file with mode: 0644]
mail-filter/MailScanner/files/initd.mailscanner [new file with mode: 0644]
mail-filter/MailScanner/files/initd.mailscanner-mta [new file with mode: 0644]
profiles/use.local.desc

diff --git a/mail-filter/MailScanner/ChangeLog b/mail-filter/MailScanner/ChangeLog
new file mode 100644 (file)
index 0000000..a49e4b0
--- /dev/null
@@ -0,0 +1,7 @@
+# ChangeLog for mail-filter/MailScanner
+# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+  02 Jul 2006; Markus Ullmann <jokey@gentoo.org> ChangeLog:
+  Initial import -- thanks to various people in bug #36060
+
diff --git a/mail-filter/MailScanner/MailScanner-4.54.6.1.ebuild b/mail-filter/MailScanner/MailScanner-4.54.6.1.ebuild
new file mode 100644 (file)
index 0000000..3aacffe
--- /dev/null
@@ -0,0 +1,335 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit eutils versionator
+
+MY_PV=$(get_version_component_range 1-3 )
+MY_PVR=$(replace_version_separator 3 '-' )
+
+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/${PN}-install-${MY_PVR}.tar.gz"
+
+KEYWORDS="~x86"
+SLOT="0"
+LICENSE="GPL-2"
+
+DEPEND="dev-lang/perl"
+
+RDEPEND="dev-lang/perl
+       dev-perl/Archive-Zip
+       dev-perl/Compress-Zlib
+       dev-perl/Convert-BinHex
+       dev-perl/Convert-TNEF
+       dev-perl/DBD-SQLite
+       dev-perl/DBI
+       >=dev-perl/HTML-Parser-3.45
+       dev-perl/HTML-Tagset
+       dev-perl/IO-stringy
+       >=dev-perl/MIME-tools-5.417
+       dev-perl/MailTools
+       dev-perl/Net-CIDR
+       dev-perl/Net-DNS
+       dev-perl/TimeDate
+       net-mail/tnef
+       perl-core/File-Spec
+       perl-core/File-Temp
+       >=perl-core/MIME-Base64-3.05
+       || (
+               sendmail? ( mail-mta/sendmail )
+               postfix? ( mail-mta/postfix )
+               exim? ( mail-mta/exim )
+               mail-mta/sendmail
+       )
+       clamav? ( app-antivirus/clamav )
+       f-prot? ( app-antivirus/f-prot )
+       vlnx? ( app-antivirus/vlnx )
+       bitdefender? ( app-antivirus/bitdefender-console )
+       spamassassin? ( mail-filter/spamassassin )
+       "
+
+IUSE="postfix sendmail exim clamav vlnx spamassassin f-prot bitdefender doc"
+
+S="${WORKDIR}/MailScanner-${MY_PV}"
+MAILSCANNER_REAL_ARCHIVE="${WORKDIR}/MailScanner-install-${MY_PV}/perl-tar/MailScanner-${MY_PVR}.tar.gz"
+BASE="/usr"
+
+src_unpack() {
+       unpack ${A}
+       echo ">>> Unpacking ${MAILSCANNER_REAL_ARCHIVE}"
+       tar -zxf "${MAILSCANNER_REAL_ARCHIVE}"
+       echo "Done unpacking"
+       cd ${S}
+}
+
+src_compile() {
+       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 -oMr MailScanner'
+       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
+
+       # update init script parameters for selected MTA
+       sed \
+               -e "s|^\(MTA=\).*|\1${MTA}|g" \
+               ${FILESDIR}/confd.mailscanner-mta > ${S}/confd.mailscanner-mta
+
+       # setup virus scanner(s)
+               VIRUS_SCANNERS=""
+               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
+               if use bitdefender ; then
+                       VIRUS_SCANNERS="bitdefender ${VIRUS_SCANNERS}"
+               fi
+               if [ "$VIRUS_SCANNERS" == "" ]; then
+                       VIRUS_SCANNERS="none"
+                       VIRUS_SCANNING="no"
+               else
+                       VIRUS_SCANNING="yes"
+               fi
+
+       sed -i \
+               -e "s/^\(Virus Scanning[ \t]*=\).*/\1 ${VIRUS_SCANNING}/" \
+               -e "s/^\(Virus Scanners[ \t]*=\).*/\1 ${VIRUS_SCANNERS}/" \
+               ${S}/etc/MailScanner.conf
+
+       # setup spamassassin
+       if use spamassassin ; then
+               sed -i \
+                       -e "s/^\(Use SpamAssassin[ \t]*=\).*$/\1 yes/" \
+                       ${S}/etc/MailScanner.conf
+       else
+               sed -i \
+                       -e "s/^\(Use SpamAssassin[ \t]*=\).*$/\1 no/" \
+                       ${S}/etc/MailScanner.conf
+       fi
+
+       # update bin files
+       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 ; then
+               if [ "$MTA" == "sendmail" ] ; then
+                       WORKGRP="clamav"
+                       WORKPERM="0640"
+               else
+                       WORKGRP=""
+                       WORKPERM="0600"
+               fi
+       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[ \t]*=\).*#\1 $RUNASUSER#" \
+               -e "s#^\(Run As Group[ \t]*=\).*#\1 $RUNASGROUP#" \
+               -e "s#^\(Incoming Queue Dir[ \t]*=\).*#\1 $INQUEUE#" \
+               -e "s#^\(Outgoing Queue Dir[ \t]*=\).*#\1 $OUTQUEUE#" \
+               -e "s#^\(MTA[ \t]*=\).*#\1 $MTA#" \
+               -e "s/^#\(TNEF.*internal\)$/\1/" \
+               -e "s/^\(TNEF.*0000\)$/#\1/" \
+               -e "s#^\(PID file[ \t]=\).*#\1 /var/run/mailscanner.pid#" \
+               -e "s#^\(%org-name%\)[ \t]*=.*#\1 = ${YOURSITE}#" \
+               -e "s#^\(Sendmail[ \t]*=\).*#\1 ${SENDMAIL}#" \
+               -e "s#^\(Sendmail2[ \t]*=\).*#\1 ${SENDMAIL2}#" \
+               -e "s#^\(Incoming Work Group[ \t]*=\).*#\1 ${WORKGRP}#" \
+               -e "s#^\(Incoming Work Permissions[ \t]*=\).*#\1 ${WORKPERM}#" \
+               ${S}/etc/MailScanner.conf
+
+       # 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" \
+               -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
+               ${S}/lib/MailScanner/ConfigDefs.pl
+       sed -i -e "s#/etc/MailScanner#/etc/MailScanner#g" ${S}/lib/MailScanner/CustomConfig.pm
+
+       # finally, change MailScanner.conf into MailScanner.conf.sample
+       cp ${S}/etc/MailScanner.conf ${S}/etc/MailScanner.conf.${MY_PV}
+       mv ${S}/etc/MailScanner.conf ${S}/etc/MailScanner.conf.sample
+
+}
+
+src_install() {
+       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
+       doexe   bin/upgrade_MailScanner_conf
+       newexe  bin/Sophos.install.linux Sophos.install
+
+       insinto /etc/MailScanner
+       doins   etc/*.conf
+       doins   etc/mailscanner.conf.with.mcp
+       doins   etc/MailScanner.conf.${MY_PV}
+       doins   etc/MailScanner.conf.sample
+
+       insinto /etc/MailScanner/rules
+       doins   etc/rules/*
+       insinto /etc/MailScanner/mcp
+       doins   etc/mcp/*
+
+       for i in $(ls etc/reports/)
+       do
+               if [ $i != "cat" ]
+               then
+                       insinto /etc/MailScanner/reports/$i
+                       doins etc/reports/$i/*
+               fi
+       done
+
+       insinto ${BASE}/lib/MailScanner
+       doins   lib/*.prf
+
+       exeinto ${BASE}/lib/MailScanner
+       doexe   lib/*-wrapper
+       doexe   lib/*-autoupdate
+       doexe   lib/*-autoupdate.old
+       doexe   lib/*.pm
+
+       exeinto ${BASE}/lib/MailScanner/MailScanner
+       doexe   lib/MailScanner/*.pm
+       doexe   lib/MailScanner/*.pl
+
+       insinto ${BASE}/lib/MailScanner/MailScanner
+       doins   lib/MailScanner/*.txt
+
+       exeinto ${BASE}/lib/MailScanner/MailScanner/CustomFunctions
+       doexe   lib/MailScanner/CustomFunctions/MyExample.pm
+
+       exeinto /etc/init.d
+       newexe ${FILESDIR}/initd.mailscanner MailScanner
+       newexe ${FILESDIR}/initd.mailscanner-mta MailScanner-mta
+       insinto /etc/conf.d
+       newins ${FILESDIR}/confd.mailscanner MailScanner
+       newins ${S}/confd.mailscanner-mta MailScanner-mta
+
+       #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
+
+       if use doc ; then
+               mkdir -p ${D}usr/share/doc/${PF}/html
+               cp -a docs/* ${D}usr/share/doc/${PF}/html
+       fi
+
+       dodoc notes.txt docs/QuickInstall.txt docs/README.sql-logging
+
+       keepdir /var/spool/MailScanner/incoming
+       keepdir /var/spool/MailScanner/quarantine
+       keepdir /var/spool/MailScanner/spamassassin
+       keepdir /var/spool/MailScanner/archive
+       keepdir ${BASE}/var
+
+       if use postfix ; then
+               chown -R postfix:postfix ${D}/var/spool/MailScanner/
+       elif use exim ; then
+               chown -R mail:mail ${D}/var/spool/MailScanner/
+       else
+               keepdir /var/spool/mqueue.in
+       fi
+}
+
+pkg_postinst() {
+       if [ -n "`grep -xE "[[:space:]]*provide[[:space:]]+(.*[[:space:]]+)*mta([[:space:]]+.*)*" /etc/init.d/${MTA}`" ]; then
+               ewarn
+               ewarn "Warning: your mta service startup script /etc/init.d/${MTA}"
+               ewarn "seems to provide 'mta', this may give problems with /etc/init.d/MailScanner-mta."
+               ewarn
+               echo
+       fi
+       einfo "Remove the line containing 'provide mta' from your MTA's init script"
+       einfo "and take care that using etc-update will not insert this line after"
+       einfo "re-emerging / updating your mta!"
+       einfo "The related bug in bugs.gentoo.org is #46897"
+       echo
+
+       if [ -f "/etc/MailScanner/MailScanner.conf" ]; then
+               einfo "Upgrading the MailScanner.conf file"
+               mv /etc/MailScanner/MailScanner.conf /etc/MailScanner/MailScanner.conf.pre_upgrade
+           /usr/sbin/upgrade_MailScanner_conf \
+               /etc/MailScanner/MailScanner.conf.pre_upgrade \
+               /etc/MailScanner/MailScanner.conf.${MY_PV} \
+               > /etc/MailScanner/MailScanner.conf  2> /dev/null
+       else
+               cp /etc/MailScanner/MailScanner.conf.sample /etc/MailScanner/MailScanner.conf
+       fi
+}
+
diff --git a/mail-filter/MailScanner/Manifest b/mail-filter/MailScanner/Manifest
new file mode 100644 (file)
index 0000000..d16e0e4
--- /dev/null
@@ -0,0 +1,24 @@
+AUX confd.mailscanner 147 RMD160 2472095d115d136498f93a6dca3ce540e335222f SHA1 377447317cf1354b4e377912d18a459b12f7a8d6 SHA256 d0ef32a53c83a2c2938d970f30b3765676fe4669b2ec98407c39ca070cd24bbb
+MD5 431e68024733f6547feb1e4617f226e8 files/confd.mailscanner 147
+RMD160 2472095d115d136498f93a6dca3ce540e335222f files/confd.mailscanner 147
+SHA256 d0ef32a53c83a2c2938d970f30b3765676fe4669b2ec98407c39ca070cd24bbb files/confd.mailscanner 147
+AUX confd.mailscanner-mta 967 RMD160 f904b49b7ab3c8b988365f16e7629a14d044cb25 SHA1 4e89cf82d0ee76d37f1dd33e8f94c4ee768a86a7 SHA256 e94062c47a7c6f584809223ba3ee760beace1fda878154a6def06dc08a9ab878
+MD5 6806ece4e83f94ec208d1d9f67120ef9 files/confd.mailscanner-mta 967
+RMD160 f904b49b7ab3c8b988365f16e7629a14d044cb25 files/confd.mailscanner-mta 967
+SHA256 e94062c47a7c6f584809223ba3ee760beace1fda878154a6def06dc08a9ab878 files/confd.mailscanner-mta 967
+AUX initd.mailscanner 1265 RMD160 a71c44ecb6b68ce41f82b415c0f31d629f65e8c7 SHA1 a53d9051d6ce84219056e6686f6ef195f3e3fa9d SHA256 69279705a4213b025235a8154e14d462ef8374fdf0aad22dbbe8f70881fc8682
+MD5 0d7842a508d6862fc866c2fa04342f37 files/initd.mailscanner 1265
+RMD160 a71c44ecb6b68ce41f82b415c0f31d629f65e8c7 files/initd.mailscanner 1265
+SHA256 69279705a4213b025235a8154e14d462ef8374fdf0aad22dbbe8f70881fc8682 files/initd.mailscanner 1265
+AUX initd.mailscanner-mta 5768 RMD160 f1135b2a2d20bdf5c71117b65a721519c7bd1cfb SHA1 99a559c81dc24da63ad1be6f05c8506976a36877 SHA256 c14193071b0f1343f666a09adaff4b67ee6ee4afb223650bf63d6052bed386ec
+MD5 8b4e53105f4fabeaafc7a0a4ec06a666 files/initd.mailscanner-mta 5768
+RMD160 f1135b2a2d20bdf5c71117b65a721519c7bd1cfb files/initd.mailscanner-mta 5768
+SHA256 c14193071b0f1343f666a09adaff4b67ee6ee4afb223650bf63d6052bed386ec files/initd.mailscanner-mta 5768
+DIST MailScanner-install-4.54.6-1.tar.gz 8841175 RMD160 fb86266ae46d5d2dd266bc196c48d8e652189bc3 SHA1 12a8784a27387bda7e2947c7d647e124301eccfe SHA256 34c65d72a766ce1687963ab91239ecd4024a3f2b156a6c634b30cae4edca035b
+EBUILD MailScanner-4.54.6.1.ebuild 9846 RMD160 d746872fef13ef2ad6abb0c9234593dcf5cebfcd SHA1 951f46b9b9e08faa1d8a8f8ee672367d9d17ceaa SHA256 db1d0a31f14ae3ce08667ac4afd800c92064c16002295361ebaf6762daac2168
+MD5 cf427b98fef3836c7c2e44dc4b2dd49b MailScanner-4.54.6.1.ebuild 9846
+RMD160 d746872fef13ef2ad6abb0c9234593dcf5cebfcd MailScanner-4.54.6.1.ebuild 9846
+SHA256 db1d0a31f14ae3ce08667ac4afd800c92064c16002295361ebaf6762daac2168 MailScanner-4.54.6.1.ebuild 9846
+MD5 c91ba57a5ace5df4e601bbe4b27faad9 files/digest-MailScanner-4.54.6.1 289
+RMD160 dc7f937c14fdc80c152590cd24f96c608cbc073e files/digest-MailScanner-4.54.6.1 289
+SHA256 211c31173ac13376084ae553705a0173e75a08a8136040fab70eee22d4596b5c files/digest-MailScanner-4.54.6.1 289
diff --git a/mail-filter/MailScanner/files/confd.mailscanner b/mail-filter/MailScanner/files/confd.mailscanner
new file mode 100644 (file)
index 0000000..144d0d4
--- /dev/null
@@ -0,0 +1,4 @@
+# 
+
+UPDATEMAXDELAY=600 # Maximum delay before running cron job to avoid server peaks
+RESTART_DELAY=10 # time to wait before restarting mailscanner
diff --git a/mail-filter/MailScanner/files/confd.mailscanner-mta b/mail-filter/MailScanner/files/confd.mailscanner-mta
new file mode 100644 (file)
index 0000000..6c8cfdb
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# Put in here all the settings for your particular mail system so that
+# MailScanner's init.d script can run it all for you.
+#
+
+#
+# Are you running Postfix, Sendmail or Exim?
+#
+MTA=sendmail
+#MTA=sendmail
+#MTA=postfix
+#MTA=exim
+
+KILL_OPTS="" # add -9/-15/your favorite evil SIG level here
+
+#
+# Sendmail Settings
+#
+SENDMAIL=/usr/sbin/sendmail
+QUEUETIME=15m
+INQDIR=/var/spool/mqueue.in
+INPID=/var/run/sendmail.in.pid
+OUTPID=/var/run/sendmail.out.pid
+SMPID=/var/run/sm-client.pid
+MSPUSER=smmsp  # User for mail submission queue runner
+MSPGROUP=smmsp # Group for mail submission queue runner
+
+#
+# Postfix settings
+#
+POSTFIX=/usr/sbin/postfix
+POSTFIXINCF=/etc/postfix.in   # Directory containing incoming configuration
+POSTFIXOUTCF=/etc/postfix     # Directory containing outgoing configuration
+
+#
+# Exim settings
+#
+EXIM=/usr/sbin/exim
+EXIMINCF=/etc/exim/exim.conf         # Incoming configuration file
+EXIMSENDCF=/etc/exim/exim_out.conf  # Outgoing configuration file
+
+
diff --git a/mail-filter/MailScanner/files/digest-MailScanner-4.54.6.1 b/mail-filter/MailScanner/files/digest-MailScanner-4.54.6.1
new file mode 100644 (file)
index 0000000..d4061e0
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 417189551d855e260f044943d9317abb MailScanner-install-4.54.6-1.tar.gz 8841175
+RMD160 fb86266ae46d5d2dd266bc196c48d8e652189bc3 MailScanner-install-4.54.6-1.tar.gz 8841175
+SHA256 34c65d72a766ce1687963ab91239ecd4024a3f2b156a6c634b30cae4edca035b MailScanner-install-4.54.6-1.tar.gz 8841175
diff --git a/mail-filter/MailScanner/files/initd.mailscanner b/mail-filter/MailScanner/files/initd.mailscanner
new file mode 100644 (file)
index 0000000..d217c86
--- /dev/null
@@ -0,0 +1,54 @@
+#!/sbin/runscript
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /home/cvsroot/gentoo-x86/net-www/apache/files/2.0.40/apache2.initd,v 1.13 2003/10/31 07:17:45 rajiv Exp $
+
+opts="${opts} reload"
+
+depend() {
+       need net MailScanner-mta
+       use logger dns
+}
+
+start() {
+       ebegin "Starting MailScanner"
+#      /sbin/start-stop-daemon --quiet \
+#              --start --startas /usr/sbin/check_MailScanner \
+#              --pidfile /var/run/mailscanner.pid
+       /usr/sbin/check_MailScanner >/dev/null
+       RETVAL=$?
+       [ ${RETVAL} -eq 0 ] && touch /var/lock/subsys/MailScanner
+       [ ${RETVAL} -eq 0 ] && rm -f /var/lock/subsys/MailScanner.off
+       eend ${RETVAL}
+}
+
+stop() {
+       ebegin "Stopping MailScanner"
+#      start-stop-daemon -o --quiet --stop --pidfile /var/run/mailscanner.pid
+       killall -15 MailScanner
+       RETVAL=$?
+#      [ -f /var/run/mailscanner.pid ] && rm /var/run/mailscanner.pid
+       [ ${RETVAL} -eq 0 ] && rm -f /var/lock/subsys/MailScanner
+       [ ${RETVAL} -eq 0 ] && touch /var/lock/subsys/MailScanner.off
+       eend ${RETVAL}
+}
+
+reload() {
+       ebegin "Reloading MailScanner workers:"
+       pid=`pidof -x MailScanner`
+       if [ -n "$pid" ] ;
+       then
+               /bin/kill -HUP $pid
+               eend $?
+       else 
+               eend 1
+       fi
+}
+
+restart() {
+       svc_stop
+       sleep ${RESTART_DELAY}
+       svc_start
+}
+
+
diff --git a/mail-filter/MailScanner/files/initd.mailscanner-mta b/mail-filter/MailScanner/files/initd.mailscanner-mta
new file mode 100644 (file)
index 0000000..3ead2fe
--- /dev/null
@@ -0,0 +1,263 @@
+#!/sbin/runscript
+# Tis init script takes care of starting the MTA processes for use 
+# with MailScanner.
+
+opts="${opts} status reload startin startout stopin stopout restartin restartout"
+
+checkmta() {
+       ebegin "checking MTA availability for MailScanner"
+       if [ ${MTA} = 'sendmail' ]; then
+               if [ -f ${SENDMAIL} ]; then
+                       eend 0
+                       return
+               else
+                       echo "Cannot find sendmail, check /etc/conf.d/MailScanner-mta"
+                       eend 1
+                       exit
+               fi
+       elif [ ${MTA} = "postfix" ]; then
+               if test -x ${POSTFIX} -a -f ${POSTFIXINCF}/main.cf \
+                  -a -f ${POSTFIXOUTCF}/main.cf ; then
+                       eend 0
+                       return
+               else
+                       echo "Cannot find postfix and/or postfix configuration files,"
+                       echo "Check /etc/conf.d/MailScanner-mta"
+                       eend 1
+                       exit
+               fi
+       elif [ ${MTA} = "exim" ]; then
+               if test -x ${EXIM} -a -f ${EXIMINCF} -a -f ${EXIMSENDCF}; then
+                       eend 0
+                       return
+               else
+                       echo "Cannot find exim and/or exim configuration files,"
+                       echo "Check /etc/conf.d/MailScanner-mta"
+                       eend 1
+                       exit
+               fi
+       else
+               echo "Invalid MTA in /etc/conf.d/MailScanner-mta"
+               eend 1
+               exit
+       fi
+}
+aliasesetc() {
+       /usr/bin/newaliases > /dev/null 2>&1
+       retval=$?
+       if test -x /usr/bin/make -a -f /etc/mail/Makefile ; then
+               make -C /etc/mail -s
+               let retval+=$?
+       else
+               for i in virtusertable access domaintable mailertable ; do
+                       if [ -f /etc/mail/$i ] ; then
+                               makemap hash /etc/mail/$i < /etc/mail/$i
+                               let retval+=$?
+                       fi
+               done
+       fi
+       return ${retval}
+}
+
+startinreal () {
+       if [ ${MTA} = "sendmail" ]; then
+               ( cd /var/spool/mqueue.in; rm -f xf*)
+               aliasesetc
+               ${SENDMAIL} -bd -OPrivacyOptions=noetrn \
+                                               -ODeliveryMode=queueonly \
+                                               -OQueueDirectory=${INQDIR} \
+                                               -OPidFile=${INPID}
+               retval=$?
+               touch ${SMPID}
+               chown ${MSPUSER}:${MSPGROUP} ${SMPID} 2> /dev/null
+               ${SENDMAIL} -L sm-msp-queue -Ac -q15m -OPidFile=${SMPID} 2> /dev/null
+               let retval+=$?
+               return ${retval}
+       elif [ ${MTA} = "postfix" ]; then
+               ${POSTFIX} -c ${POSTFIXINCF} start 2> /dev/null
+               return $?
+       elif [ ${MTA} = "exim" ]; then
+               ${EXIM} -c ${EXIMINCF} start 2> /dev/null
+               return $?
+       fi
+}
+
+startoutreal() {
+       if [ ${MTA} = "sendmail" ]; then
+               ${SENDMAIL} $([ -n "${QUEUETIME}" ] && echo -q${QUEUETIME}) \
+                               -OPidFile=${OUTPID}
+               return $?
+       elif [ ${MTA} = "postfix" ]; then
+               ${POSTFIX} -c ${POSTFIXOUTCF} start 2> /dev/null
+               return $?
+       elif [ ${MTA} = "exim" ]; then
+               ${EXIM} -c ${EXIMSENDCF} -q15m 2> /dev/null
+               return $?
+       fi
+}
+
+stopinreal() {
+       if [ ${MTA} = "sendmail" ]; then
+               kill ${KILL_OPTS} `head -n 1 ${INPID}` 2> /dev/null
+               retval=$?
+               kill ${KILL_OPTS} `head -n 1 ${SMPID}` 2> /dev/null
+               let retval+=$?
+               return ${retval}
+       elif [ ${MTA} = "postfix" ]; then
+               ${POSTFIX} -c ${POSTFIXINCF} stop 2> /dev/null
+               return $?
+       fi
+}
+
+stopoutreal() {
+       if [ ${MTA} = "sendmail" ]; then
+               kill ${KILL_OPTS} `head -n 1 ${OUTPID}` 2> /dev/null
+               return $?
+       elif [ ${MTA} = "postfix" ]; then
+               ${POSTFIX} -c ${POSTFIXOUTCF} stop 2> /dev/null
+               return $?
+       fi
+}
+
+
+
+
+depend() {
+       need net
+       use logger dns
+       provide mta
+}
+
+start() {
+       checkmta
+       ebegin "Starting incoming ${MTA}"
+       startinreal
+       retval=$?
+       eend ${retval}
+       if [ ${retval} -gt 0 ]; then
+               exit
+       fi
+       ebegin "Starting outgoing ${MTA}"
+       startoutreal
+       retval=$?
+       eend ${retval}
+       if [ ${retval} -gt 0 ]; then
+               echo "Will attempt to stop incoming ${MTA}"
+               stopinreal
+       fi
+}
+
+stop() {
+       checkmta
+       if [ ${MTA} = "exim" ]; then
+               ebegin "Stopping exim"
+               killall ${KILL_OPTS} exim
+               eend $?
+       else
+               ebegin "Stopping incoming ${MTA}"
+               stopinreal
+               eend $?
+               ebegin "Stopping outgoing ${MTA}"
+               stopoutreal
+               eend $?
+       fi
+}
+
+startin() {
+       checkmta
+       ebegin "Starting incoming ${MTA}"
+       startinreal
+       eend $?
+}
+
+startout() {
+       checkmta
+       ebegin "Starting outgoing ${MTA}"
+       startoutreal
+       eend $?
+}
+
+stopin() {
+       checkmta
+       if [ ${MTA} = "exim" ]; then
+               ebegin "Stopping incoming exim"
+               echo "It is not possible to stop only the incoming exim.";
+               echo "Please use the stop option, then use startin or startout to restart"
+               echo "the incoming or outgoing process."
+               eend 1
+       else
+               ebegin "Stopping incoming ${MTA}"
+               stopinreal
+               eend $?
+       fi
+}
+
+stopout() {
+       checkmta
+       if [ ${MTA} = "exim" ]; then
+               ebegin "Stopping outgoing exim"
+               echo "It is not possible to stop only the outgoing exim.";
+               echo "Please use the stop option, then use startin or startout to restart"
+               echo "the incoming or outgoing process."
+               eend 1
+       else
+               ebegin "Stopping outgoing ${MTA}"
+               stopoutreal
+               eend $?
+       fi
+}
+
+restartin() {
+       stopin
+       startin
+}
+
+restartout() {
+       stopout
+       startout
+}
+
+status() {
+       if [ ${MTA} = 'sendmail' ]; then
+               ebegin "Incoming Sendmail status"
+               pid=`head -n 1 ${INPID}`
+               alive=`ps ax | awk '{ print $1 }' | grep '^'$pid'$'`
+               if [ -z "${alive}" ]; then eend 1; else eend 0; fi
+               ebegin "Client submission Sendmail status"
+               pid=`head -n 1 ${SMPID}`
+               alive=`ps ax | awk '{ print $1 }' | grep '^'$pid'$'`
+               if [ -z "${alive}" ]; then eend 1; else eend 0; fi
+               ebegin "Outgoing Sendmail status"
+               pid=`head -n 1 ${OUTPID}`
+               alive=`ps ax | awk '{ print $1 }' | grep '^'$pid'$'`
+               if [ -z "${alive}" ]; then eend 1; else eend 0; fi
+       elif [ ${MTA} = 'postfix' ]; then
+               echo "Sorry: status is not supported for postfix"
+       elif [ ${MTA} = 'exim' ]; then
+               echo "Sorry: status is not supported for exim"
+       else 
+               echo "Invalid MTA in /etc/conf.d/MailScanner-mta"
+               exit
+       fi
+
+}
+
+reload() {
+       if [ ${MTA} = 'sendmail' ]; then
+               ebegin "Reloading Sendmail configuration"
+               aliasesetc
+               eend $?
+       elif [ ${MTA} = 'postfix' ]; then
+               ebegin "Reloading Incoming Postfix"
+               ${POSTFIX} -c ${POSTFIXINCF} reload > /dev/null
+               eend $?
+               ebegin "Reloading Outgoing Postfix"
+               ${POSTFIX} -c ${POSTFIXOUTCF} reload > /dev/null
+               eend $?
+       elif [ ${MTA} = 'exim' ]; then
+               echo "Sorry: reload is not supported for exim"
+       else 
+               echo "Invalid MTA in /etc/conf.d/MailScanner-mta"
+               exit
+       fi
+}
index 898d44f202ce77234e8a58a2ce5eb19cd961606a..c3c14bfe0b9c8c33efac7d81356f01691d1a1b32 100644 (file)
@@ -7,6 +7,13 @@ app-dicts/ktranslator:ocr - Enable GOCR support
 app-misc/mc-mp:7zip - Add support for 7zip archives
 dev-util/mockpp:boost - Use boost.test instead of cxxtest as framework
 dev-util/mockpp:cppunit - Use cppunit instead of cxxtest as framework
+mail-filter/MailScanner: bitdefender - Enable usage of bitdefender virus scanner
+mail-filter/MailScanner: exim - Set exim to used MTA
+mail-filter/MailScanner: fprot - Enable usage of fprot virus scanner
+mail-filter/MailScanner: postfix - Set postfix to used MTA
+mail-filter/MailScanner: sendmail - Set sendmail to used MTA
+mail-filter/MailScanner: spamassassin - Enable usage of spamassassin for spam detection
+mail-filter/MailScanner: vlnx - Enable usage of vnlx virus scanner
 media-sound/om:dssi - Enables support for DSSI plugins
 media-sound/om:patch-loader - Installs a command line patch loading client
 media-sound/om:ladspa - Enables support for LADSPA plugins