diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /mail-filter/MailScanner |
reinit the tree, so we can have metadata
Diffstat (limited to 'mail-filter/MailScanner')
-rw-r--r-- | mail-filter/MailScanner/MailScanner-4.84.5.2.ebuild | 320 | ||||
-rw-r--r-- | mail-filter/MailScanner/Manifest | 7 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/confd.mailscanner | 4 | ||||
-rw-r--r-- | mail-filter/MailScanner/files/initd.mailscanner | 48 | ||||
-rw-r--r-- | mail-filter/MailScanner/metadata.xml | 14 |
5 files changed, 393 insertions, 0 deletions
diff --git a/mail-filter/MailScanner/MailScanner-4.84.5.2.ebuild b/mail-filter/MailScanner/MailScanner-4.84.5.2.ebuild new file mode 100644 index 000000000000..2cac1b8f9525 --- /dev/null +++ b/mail-filter/MailScanner/MailScanner-4.84.5.2.ebuild @@ -0,0 +1,320 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +inherit eutils versionator multilib + +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.mailscanner.info/files/4/tar/${PN}-install-${MY_PVR}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="clamav doc exim postfix spamassassin" + +DEPEND="dev-lang/perl" +RDEPEND="${DEPEND} + dev-perl/Archive-Zip + virtual/perl-IO-Compress + dev-perl/Convert-BinHex + dev-perl/Convert-TNEF + dev-perl/DBD-SQLite + dev-perl/DBI + dev-perl/Filesys-Df + dev-perl/HTML-Parser + dev-perl/HTML-Tagset + dev-perl/IO-stringy + dev-perl/MIME-tools + dev-perl/MailTools + dev-perl/Net-CIDR + dev-perl/Net-DNS + dev-perl/OLE-StorageLite + dev-perl/Sys-Hostname-Long + dev-perl/TimeDate + net-mail/tnef + dev-perl/Sys-SigAction + virtual/perl-File-Spec + virtual/perl-File-Temp + virtual/perl-Getopt-Long + virtual/perl-Sys-Syslog + virtual/perl-MIME-Base64 + postfix? ( mail-mta/postfix ) + exim? ( !postfix? ( mail-mta/exim ) ) + !postfix? ( !exim? ( mail-mta/sendmail ) ) + clamav? ( app-antivirus/clamav ) + spamassassin? ( mail-filter/spamassassin )" + +S="${WORKDIR}/${PN}-${MY_PVR}" +BASE="/usr" + +src_unpack() { + unpack ${A} + unpack ./${PN}-install-${MY_PV}/perl-tar/${PN}-${MY_PVR}.tar.gz + + # 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 + + # setup virus scanner(s) + VIRUS_SCANNERS="" + use clamav && VIRUS_SCANNERS="clamav ${VIRUS_SCANNERS}" + + 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" + for each in update_virus_scanners update_phishing_sites update_bad_phishing_sites ; do + sed -i \ + -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \ + "${S}"/bin/${each} + done + sed -i \ + -e "s#/etc/sysconfig/MailScanner#/etc/conf.d/MailScanner#g" \ + "${S}"/bin/update_spamassassin + 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 + for cronfile in update_virus_scanners.cron update_{,bad_}phishing_sites.cron; do + sed -i \ + -e "s#/etc/sysconfig/MailScanner#/etc/conf.d/mailscanner#g" \ + -e "s#/opt/MailScanner/bin#/usr/sbin#g" \ + "${S}"/bin/cron/${cronfile} + done + + # 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" + + # update spam.assassin.prefs.conf + sed -i -e "s#YOURDOMAIN-COM#${YOURSITE}#" "${S}/etc/spam.assassin.prefs.conf" + + # net-mail/clamav net-mail/f-prot package compatibility + sed -i \ + -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#" \ + -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#/opt/MailScanner/bin#$BASEBIN#g" \ + -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \ + -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \ + "${S}/bin/MailScanner" + 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}/bin/update_virus_scanners" + 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}/bin/mailscanner_create_locks" + 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() { + exeinto ${BASE}/sbin + doexe bin/MailScanner + newexe bin/check_mailscanner check_MailScanner + doexe bin/d2mbox bin/df2mbox + doexe bin/update_virus_scanners + doexe bin/upgrade_MailScanner_conf + doexe bin/mailscanner_create_locks + doexe bin/Quick.Peek + doexe bin/update_bad_phishing_sites bin/update_phishing_sites + newexe bin/Sophos.install.linux Sophos.install + + insinto /etc/MailScanner/conf.d + doins etc/conf.d/* + + 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/* + + insinto /etc/MailScanner + doins -r etc/reports + + insinto ${BASE}/$(get_libdir)/MailScanner + doins lib/*.prf + + exeinto ${BASE}/$(get_libdir)/MailScanner + doexe lib/*-wrapper + doexe lib/*-autoupdate + doexe lib/*-autoupdate.old + doexe lib/*.pm + + exeinto ${BASE}/$(get_libdir)/MailScanner/MailScanner + doexe lib/MailScanner/*.pm + doexe lib/MailScanner/*.pl + + exeinto ${BASE}/$(get_libdir)/MailScanner/MailScanner/CustomFunctions + doexe lib/MailScanner/CustomFunctions/MyExample.pm + + newinitd "${FILESDIR}"/initd.mailscanner MailScanner + newconfd "${FILESDIR}"/confd.mailscanner MailScanner + + #Set up cron jobs + exeinto /etc/cron.hourly + newexe "${S}/bin/cron/check_MailScanner.cron" check_MailScanner + for cronfile in update_{virus_scanners,{bad_,}phishing_sites}; do + newexe "${S}/bin/cron/${cronfile}.cron" ${cronfile} + done + + exeinto /etc/cron.daily + newexe "${S}/bin/cron/clean.quarantine.cron" clean.quarantine + + dodoc README + insinto /usr/share/doc/${PF} + doins MailScanner.conf.index.html + + 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 + use spamassassin && dosym /etc/MailScanner/spam.assassin.prefs.conf /etc/mail/spamassassin/mailscanner.cf + +} + +pkg_postinst() { + if use postfix; then + elog "Note that postfix 2.4 now supports HOLD of messages" + elog "and reinjection without second postfix instance" + elog "Inbound path is now ${ROOT}var/spool/postfix/hold" + elog + elog "See http://mailscanner.info/postfix.html for details" + fi + + 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 +} diff --git a/mail-filter/MailScanner/Manifest b/mail-filter/MailScanner/Manifest new file mode 100644 index 000000000000..18ceb1b184db --- /dev/null +++ b/mail-filter/MailScanner/Manifest @@ -0,0 +1,7 @@ +AUX confd.mailscanner 147 SHA256 d0ef32a53c83a2c2938d970f30b3765676fe4669b2ec98407c39ca070cd24bbb SHA512 2fb6f96eef254fae597e23ddb80c649e5754999e542436b7172ab4fca0d3e281645a2fcf21a3bde4c6c9d7cd48de868e64e74c5caac7ff235dbbbcc6c2ebeda3 WHIRLPOOL 1402fbdef6cfbdd2937c6a172587444960fa76dcaccce643652eccd437ca8809a9019b91d1c411fa513329b1926d1a5728d43902f24f9afe9061ba2514e1cdda +AUX initd.mailscanner 982 SHA256 1c461301518595f72b6f2c6bb2291a3b73c6887aa83f4f872548f78534be51ef SHA512 88a14b02ec004b487b6aa9a8732092a18b465f8aa81e2c958b96434064a15ad5a5ce43b473679bd8b18a661f972c8df756c54691d35c4261dff8a26cd8e291ec WHIRLPOOL e269062a6b5e2f15216c9292f654a0df0cb1bafb4f5d77522c018146cdb67fd2d40dd5bf3f050ebea3c9bda13cdfc3348aa02342b668b4be596c2347aa1f8010 +DIST MailScanner-install-4.84.5-2.tar.gz 9510489 SHA256 3467a53159cc95a8b4f93a326a59e2d3acc0ad6f90f048f048742fe13ac741f1 SHA512 d9d082e29ddb6eae4f30069298507805a7674c264bf8edad3db3322fa0f2c2ad4539c0c2213c6fcbee11b7c57a36218c1d24243077358bac98e7ae07f7ee506f WHIRLPOOL a253706f33dbc3925e49d7bb0740fab39f87c690240c043eb10cf8d57ea938fd1e002fcec9d8f1c026003e07df01b724d2b696a6224a6cf52e8afc0e1d175d59 +EBUILD MailScanner-4.84.5.2.ebuild 9633 SHA256 56702ee808101f5c21f80f3d44e6a3659246051dd2da240f799d71cec88dffdb SHA512 06bbd3ad2e4afab020552b14fc125e8eedba6bba785ba641842da7cbc941929cb2385d113e34bb9a14fef07a95d02e8ce81be1d19bc1a373c65067e28bb2934c WHIRLPOOL 73d9468ae623d2422fb3b8bc9bd16d4cfc6a0241c086323ee05eb1fec12e22b6b93787eab955718c94fae51e3df6ec1f4183ab2094c93f2aeac48b7ba3fe7a82 +MISC ChangeLog 3008 SHA256 d575909f358560c05d083e535a0a6520d25978b60bb389f9550047e0afd65a4f SHA512 ac9ba7fabe20307728a59485d5eb6f7448cfa9ac071acc14cfcfbd533e534dd4cb4f9b580d517e8a9015b91120a69d0318e8be5a5a79d27763992799ab602606 WHIRLPOOL d5792ffbc2efda47915be01745515622df2f2188973e18556d7ff47602afadbcf6b6b3b086de33c9591117784bca75bc6a49a65ee284f1cab1166a7335b6dd01 +MISC ChangeLog-2015 694 SHA256 0a8e7b6d6bd8ffb059a0fb9f51759b7430ad75104e08e951ff8bbfe916b00b21 SHA512 2b92b14d25780360263a9bf90564bba9a23daae97857a0baf0b1de1c9e1f95ceaf4d9a7ae426a4655228162daf6af37d2531e73b87519ab3f6c1c15643ae1a20 WHIRLPOOL dfb29911e1e7710eff2224d66874d0ce552903e7856380e253951056e9702ccb5c926a87875cbbc39026f4b2e481409da81555396ae3d3f5821694509addd06a +MISC metadata.xml 506 SHA256 b48914db3d5fa048ccd76d8bc58202284b2a72b37c00e3957e848a25cf7a5907 SHA512 d1d9424078586446da2f03d097363e877e00b7a8129334d778f9fa302da74df338c22e106447496acbf7a81c290e63221b2c539a0cf94aced499ea883874ccba WHIRLPOOL 0ab3e68bedbdd0502de591bd86c1790c567d14a909080f0386be5357ff3ee4d037b7956433f20de52e6d106d457387116f57efa7587c36de109800ef2c430eed diff --git a/mail-filter/MailScanner/files/confd.mailscanner b/mail-filter/MailScanner/files/confd.mailscanner new file mode 100644 index 000000000000..144d0d478fc8 --- /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/initd.mailscanner b/mail-filter/MailScanner/files/initd.mailscanner new file mode 100644 index 000000000000..8d33c8ddc2d4 --- /dev/null +++ b/mail-filter/MailScanner/files/initd.mailscanner @@ -0,0 +1,48 @@ +#!/sbin/openrc-run + +opts="${opts} reload" + +depend() { + need net mta + use logger dns +} + +start() { + ebegin "Starting MailScanner" + #/usr/sbin/check_MailScanner >/dev/null + start-stop-daemon --start --pidfile /var/run/${SVCNAME}.pid \ + --exec /usr/sbin/MailScanner -- /etc/MailScanner/MailScanner.conf ${OPT} > /var/run/${SVCNAME}.pid + eend $? + + 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 --stop --quiet --pidfile /var/run/${SVCNAME}.pid + RETVAL=$? + [ ${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/metadata.xml b/mail-filter/MailScanner/metadata.xml new file mode 100644 index 000000000000..385e86109fe5 --- /dev/null +++ b/mail-filter/MailScanner/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> + <email>patrick@gentoo.org</email> + <name>Patrick Lauer</name> +</maintainer> +<use> + <flag name="exim">Set <pkg>mail-mta/exim</pkg> to used MTA</flag> + <flag name="postfix">Set <pkg>mail-mta/postfix</pkg> to used MTA</flag> + <flag name="spamassassin">Enable usage of + <pkg>mail-filter/spamassassin</pkg> for spam protection</flag> +</use> +</pkgmetadata> |