diff options
Diffstat (limited to 'mail-filter/MailScanner/MailScanner-4.55.10.3.ebuild')
-rw-r--r-- | mail-filter/MailScanner/MailScanner-4.55.10.3.ebuild | 338 |
1 files changed, 338 insertions, 0 deletions
diff --git a/mail-filter/MailScanner/MailScanner-4.55.10.3.ebuild b/mail-filter/MailScanner/MailScanner-4.55.10.3.ebuild new file mode 100644 index 000000000..219a697c3 --- /dev/null +++ b/mail-filter/MailScanner/MailScanner-4.55.10.3.ebuild @@ -0,0 +1,338 @@ +# 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="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 + dev-perl/Sys-Hostname-Long + >=net-mail/tnef-1.4.3 + perl-core/File-Spec + perl-core/File-Temp + perl-core/Getopt-Long + >=perl-core/Sys-Syslog-0.18 + >=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-0.88.4 ) + f-prot? ( app-antivirus/f-prot ) + vlnx? ( app-antivirus/vlnx ) + bitdefender? ( app-antivirus/bitdefender-console ) + spamassassin? ( >=mail-filter/spamassassin-3.1.5 ) + virtual/cron" + +IUSE="postfix sendmail exim clamav vlnx spamassassin f-prot bitdefender doc" + +S="${WORKDIR}/MailScanner-${MY_PV}" +BASE="/usr" + +src_unpack() { + unpack ${A} + unpack ./MailScanner-install-${MY_PV}/perl-tar/MailScanner-${MY_PVR}.tar.gz +} + +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 + + newinitd "${FILESDIR}"/initd.mailscanner MailScanner + newinitd "${FILESDIR}"/initd.mailscanner-mta MailScanner-mta + newconfd "${FILESDIR}"/confd.mailscanner MailScanner + newconfd ${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 + dodir /usr/share/doc/${PF}/html + cp -r 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 + ewarn "The Installation is *NOT* Completed Yet, You still need Filesystem::Df" + ewarn "Please use emerge g-cpan and run the following command" + ewarn + ewarn " # g-cpan -i Filesys::Df " + ewarn + + echo + fi + elog "Remove the line containing 'provide mta' from your MTA's init script" + elog "and take care that using etc-update will not insert this line after" + elog "re-emerging / updating your mta!" + elog "The related bug in bugs.gentoo.org is #46897" + echo + + if [ -f "/etc/MailScanner/MailScanner.conf" ]; then + einfo "Upgrading the MailScanner.conf file" + cp /etc/MailScanner/MailScanner.conf /etc/MailScanner/MailScanner.conf.pre_upgrade.${MY_PV} + /usr/sbin/upgrade_MailScanner_conf \ + /etc/MailScanner/MailScanner.conf.pre_upgrade.${MY_PV} \ + /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 +} + |