1 # Copyright 1999-2006 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
5 inherit eutils versionator
7 MY_PV=$(get_version_component_range 1-3 )
8 MY_PVR=$(replace_version_separator 3 '-' )
10 DESCRIPTION="MailScanner / A Free Anti-Virus and Anti-Spam Filter "
11 HOMEPAGE="http://www.mailscanner.info/"
12 SRC_URI="http://www.sng.ecs.soton.ac.uk/mailscanner/files/4/tar/${PN}-install-${MY_PVR}.tar.gz"
18 DEPEND="dev-lang/perl"
20 RDEPEND="dev-lang/perl
22 dev-perl/Compress-Zlib
23 dev-perl/Convert-BinHex
27 >=dev-perl/HTML-Parser-3.45
30 >=dev-perl/MIME-tools-5.417
38 >=perl-core/MIME-Base64-3.05
40 sendmail? ( mail-mta/sendmail )
41 postfix? ( mail-mta/postfix )
42 exim? ( mail-mta/exim )
45 clamav? ( app-antivirus/clamav )
46 f-prot? ( app-antivirus/f-prot )
47 vlnx? ( app-antivirus/vlnx )
48 bitdefender? ( app-antivirus/bitdefender-console )
49 spamassassin? ( mail-filter/spamassassin )
52 IUSE="postfix sendmail exim clamav vlnx spamassassin f-prot bitdefender doc"
54 S="${WORKDIR}/MailScanner-${MY_PV}"
55 MAILSCANNER_REAL_ARCHIVE="${WORKDIR}/MailScanner-install-${MY_PV}/perl-tar/MailScanner-${MY_PVR}.tar.gz"
60 echo ">>> Unpacking ${MAILSCANNER_REAL_ARCHIVE}"
61 tar -zxf "${MAILSCANNER_REAL_ARCHIVE}"
72 INQUEUE='/var/spool/postfix.in/deferred'
73 OUTQUEUE='/var/spool/postfix/incoming'
75 SENDMAIL='/usr/lib/sendmail'
76 SENDMAIL2='/usr/lib/sendmail'
80 INQUEUE='/var/spool/exim.in/input'
81 OUTQUEUE='/var/spool/exim/input'
83 SENDMAIL='/usr/sbin/exim -oMr MailScanner'
84 SENDMAIL2='/usr/sbin/exim -C /etc/exim/exim_out.conf -oMr MailScanner'
86 # use sendmail as default, but we should add more as needed
89 INQUEUE='/var/spool/mqueue.in'
90 OUTQUEUE='/var/spool/mqueue'
92 SENDMAIL='/usr/lib/sendmail'
93 SENDMAIL2='/usr/lib/sendmail'
96 # update init script parameters for selected MTA
98 -e "s|^\(MTA=\).*|\1${MTA}|g" \
99 ${FILESDIR}/confd.mailscanner-mta > ${S}/confd.mailscanner-mta
101 # setup virus scanner(s)
104 VIRUS_SCANNERS="clamav ${VIRUS_SCANNERS}"
107 VIRUS_SCANNERS="mcafee ${VIRUS_SCANNERS}"
110 VIRUS_SCANNERS="f-prot ${VIRUS_SCANNERS}"
112 if use bitdefender ; then
113 VIRUS_SCANNERS="bitdefender ${VIRUS_SCANNERS}"
115 if [ "$VIRUS_SCANNERS" == "" ]; then
116 VIRUS_SCANNERS="none"
123 -e "s/^\(Virus Scanning[ \t]*=\).*/\1 ${VIRUS_SCANNING}/" \
124 -e "s/^\(Virus Scanners[ \t]*=\).*/\1 ${VIRUS_SCANNERS}/" \
125 ${S}/etc/MailScanner.conf
128 if use spamassassin ; then
130 -e "s/^\(Use SpamAssassin[ \t]*=\).*$/\1 yes/" \
131 ${S}/etc/MailScanner.conf
134 -e "s/^\(Use SpamAssassin[ \t]*=\).*$/\1 no/" \
135 ${S}/etc/MailScanner.conf
140 -e "s#msbindir=/opt/MailScanner/bin#msbindir=/usr/sbin#g" \
141 -e "s#config=/opt/MailScanner/etc/MailScanner.conf#config=/etc/MailScanner/MailScanner.conf#g" \
142 ${S}/bin/check_mailscanner
144 sed -i -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" ${S}/bin/update_virus_scanners
146 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
147 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
152 -e "s#/opt/MailScanner/bin/check_mailscanner#/usr/sbin/check_MailScanner#g" \
153 ${S}/bin/cron/check_MailScanner.cron
155 -e "s#/etc/sysconfig/MailScanner#/etc/conf.d/mailscanner#g" \
156 -e "s#/opt/MailScanner/bin/update_virus_scanners#/usr/sbin/update_virus_scanners#g" \
157 ${S}/bin/cron/update_virus_scanners.cron
159 # Determine some things that may need to be changed in conf file
160 # (need to arrive at sensible replacement for yoursite)
161 YOURSITE=`dnsdomainname | sed -e "s/\./-/g"`
162 BASEBIN="${BASE}/sbin"
164 # ClamAV requires some specific changes to MailScanner.conf
165 # when mailscanner is running as root (i.e. sendmail)
167 if [ "$MTA" == "sendmail" ] ; then
181 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
182 -e "s#/opt/MailScanner/bin#$BASEBIN#g" \
183 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
184 -e "s#^\(Run As User[ \t]*=\).*#\1 $RUNASUSER#" \
185 -e "s#^\(Run As Group[ \t]*=\).*#\1 $RUNASGROUP#" \
186 -e "s#^\(Incoming Queue Dir[ \t]*=\).*#\1 $INQUEUE#" \
187 -e "s#^\(Outgoing Queue Dir[ \t]*=\).*#\1 $OUTQUEUE#" \
188 -e "s#^\(MTA[ \t]*=\).*#\1 $MTA#" \
189 -e "s/^#\(TNEF.*internal\)$/\1/" \
190 -e "s/^\(TNEF.*0000\)$/#\1/" \
191 -e "s#^\(PID file[ \t]=\).*#\1 /var/run/mailscanner.pid#" \
192 -e "s#^\(%org-name%\)[ \t]*=.*#\1 = ${YOURSITE}#" \
193 -e "s#^\(Sendmail[ \t]*=\).*#\1 ${SENDMAIL}#" \
194 -e "s#^\(Sendmail2[ \t]*=\).*#\1 ${SENDMAIL2}#" \
195 -e "s#^\(Incoming Work Group[ \t]*=\).*#\1 ${WORKGRP}#" \
196 -e "s#^\(Incoming Work Permissions[ \t]*=\).*#\1 ${WORKPERM}#" \
197 ${S}/etc/MailScanner.conf
199 # net-mail/vlnx net-mail/clamav net-mail/f-prot package compatibility
201 sed -i -e "s#PREFIX=/usr/local/uvscan#PREFIX=/opt/vlnx#" ${S}/lib/mcafee-autoupdate
203 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#" \
204 -e 's#^\(mcafee.*\)/usr/local/uvscan$#\1/opt/vlnx#' \
205 -e 's#^\(clamav\t.*/usr\)/local$#\1#' \
206 -e 's#^\(f-prot.*\)/usr/local/f-prot$#\1/opt/f-prot#' \
207 ${S}/etc/virus.scanners.conf
211 -e "s#/opt/MailScanner/bin#$BASEBIN#g" \
212 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
213 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
214 ${S}/lib/MailScanner/ConfigDefs.pl
215 sed -i -e "s#/etc/MailScanner#/etc/MailScanner#g" ${S}/lib/MailScanner/CustomConfig.pm
217 # finally, change MailScanner.conf into MailScanner.conf.sample
218 cp ${S}/etc/MailScanner.conf ${S}/etc/MailScanner.conf.${MY_PV}
219 mv ${S}/etc/MailScanner.conf ${S}/etc/MailScanner.conf.sample
226 #newexe bin/check_mailscanner.linux check_MailScanner
227 newexe bin/check_mailscanner check_MailScanner
229 doexe bin/MailScanner
230 doexe bin/update_virus_scanners
231 doexe bin/upgrade_MailScanner_conf
232 newexe bin/Sophos.install.linux Sophos.install
234 insinto /etc/MailScanner
236 doins etc/mailscanner.conf.with.mcp
237 doins etc/MailScanner.conf.${MY_PV}
238 doins etc/MailScanner.conf.sample
240 insinto /etc/MailScanner/rules
242 insinto /etc/MailScanner/mcp
245 for i in $(ls etc/reports/)
249 insinto /etc/MailScanner/reports/$i
250 doins etc/reports/$i/*
254 insinto ${BASE}/lib/MailScanner
257 exeinto ${BASE}/lib/MailScanner
259 doexe lib/*-autoupdate
260 doexe lib/*-autoupdate.old
263 exeinto ${BASE}/lib/MailScanner/MailScanner
264 doexe lib/MailScanner/*.pm
265 doexe lib/MailScanner/*.pl
267 insinto ${BASE}/lib/MailScanner/MailScanner
268 doins lib/MailScanner/*.txt
270 exeinto ${BASE}/lib/MailScanner/MailScanner/CustomFunctions
271 doexe lib/MailScanner/CustomFunctions/MyExample.pm
274 newexe ${FILESDIR}/initd.mailscanner MailScanner
275 newexe ${FILESDIR}/initd.mailscanner-mta MailScanner-mta
277 newins ${FILESDIR}/confd.mailscanner MailScanner
278 newins ${S}/confd.mailscanner-mta MailScanner-mta
281 exeinto /etc/cron.hourly
282 newexe ${S}/bin/cron/check_MailScanner.cron check_MailScanner
283 newexe ${S}/bin/cron/update_virus_scanners.cron update_virus_scanners
285 exeinto /etc/cron.daily
286 newexe ${S}/bin/cron/clean.quarantine.cron clean.quarantine
289 mkdir -p ${D}usr/share/doc/${PF}/html
290 cp -a docs/* ${D}usr/share/doc/${PF}/html
293 dodoc notes.txt docs/QuickInstall.txt docs/README.sql-logging
295 keepdir /var/spool/MailScanner/incoming
296 keepdir /var/spool/MailScanner/quarantine
297 keepdir /var/spool/MailScanner/spamassassin
298 keepdir /var/spool/MailScanner/archive
301 if use postfix ; then
302 chown -R postfix:postfix ${D}/var/spool/MailScanner/
304 chown -R mail:mail ${D}/var/spool/MailScanner/
306 keepdir /var/spool/mqueue.in
311 if [ -n "`grep -xE "[[:space:]]*provide[[:space:]]+(.*[[:space:]]+)*mta([[:space:]]+.*)*" /etc/init.d/${MTA}`" ]; then
313 ewarn "Warning: your mta service startup script /etc/init.d/${MTA}"
314 ewarn "seems to provide 'mta', this may give problems with /etc/init.d/MailScanner-mta."
318 einfo "Remove the line containing 'provide mta' from your MTA's init script"
319 einfo "and take care that using etc-update will not insert this line after"
320 einfo "re-emerging / updating your mta!"
321 einfo "The related bug in bugs.gentoo.org is #46897"
324 if [ -f "/etc/MailScanner/MailScanner.conf" ]; then
325 einfo "Upgrading the MailScanner.conf file"
326 mv /etc/MailScanner/MailScanner.conf /etc/MailScanner/MailScanner.conf.pre_upgrade
327 /usr/sbin/upgrade_MailScanner_conf \
328 /etc/MailScanner/MailScanner.conf.pre_upgrade \
329 /etc/MailScanner/MailScanner.conf.${MY_PV} \
330 > /etc/MailScanner/MailScanner.conf 2> /dev/null
332 cp /etc/MailScanner/MailScanner.conf.sample /etc/MailScanner/MailScanner.conf