diff options
author | Markus Ullmann <jokey@gentoo.org> | 2006-07-02 11:19:28 +0000 |
---|---|---|
committer | Markus Ullmann <jokey@gentoo.org> | 2006-07-02 11:19:28 +0000 |
commit | 92ec4ef79e84826fedb05051656fa40141991e6c (patch) | |
tree | ee429123b3e98d90dbe6cfd03ed0825f1ae01475 | |
parent | games-puzzle/pythonsudoku - cosmetics (diff) | |
download | sunrise-92ec4ef79e84826fedb05051656fa40141991e6c.tar.gz sunrise-92ec4ef79e84826fedb05051656fa40141991e6c.tar.bz2 sunrise-92ec4ef79e84826fedb05051656fa40141991e6c.zip |
mail-filter/MailScanner: Initial import -- thanks to various people in bug #36060
svn path=/sunrise/; revision=419
-rw-r--r-- | mail-filter/MailScanner/ChangeLog | 7 | ||||
-rw-r--r-- | mail-filter/MailScanner/MailScanner-4.54.6.1.ebuild | 335 | ||||
-rw-r--r-- | mail-filter/MailScanner/Manifest | 24 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/confd.mailscanner | 4 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/confd.mailscanner-mta | 42 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/digest-MailScanner-4.54.6.1 | 3 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/initd.mailscanner | 54 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/initd.mailscanner-mta | 263 | ||||
-rw-r--r-- | profiles/use.local.desc | 7 |
9 files changed, 739 insertions, 0 deletions
diff --git a/mail-filter/MailScanner/ChangeLog b/mail-filter/MailScanner/ChangeLog new file mode 100644 index 000000000..a49e4b096 --- /dev/null +++ b/mail-filter/MailScanner/ChangeLog @@ -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 index 000000000..3aacffe99 --- /dev/null +++ b/mail-filter/MailScanner/MailScanner-4.54.6.1.ebuild @@ -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 index 000000000..d16e0e4ae --- /dev/null +++ b/mail-filter/MailScanner/Manifest @@ -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 index 000000000..144d0d478 --- /dev/null +++ b/mail-filter/MailScanner/files/confd.mailscanner @@ -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 index 000000000..6c8cfdb29 --- /dev/null +++ b/mail-filter/MailScanner/files/confd.mailscanner-mta @@ -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 index 000000000..d4061e02b --- /dev/null +++ b/mail-filter/MailScanner/files/digest-MailScanner-4.54.6.1 @@ -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 index 000000000..d217c8622 --- /dev/null +++ b/mail-filter/MailScanner/files/initd.mailscanner @@ -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 index 000000000..3ead2fe95 --- /dev/null +++ b/mail-filter/MailScanner/files/initd.mailscanner-mta @@ -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 +} diff --git a/profiles/use.local.desc b/profiles/use.local.desc index 898d44f20..c3c14bfe0 100644 --- a/profiles/use.local.desc +++ b/profiles/use.local.desc @@ -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 |