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="Free Anti-Virus and Anti-Spam Filter"
11 HOMEPAGE="http://www.mailscanner.info/"
12 SRC_URI="http://www.mailscanner.info/files/4/tar/${PN}-install-${MY_PVR}.tar.gz"
17 IUSE="bitdefender clamav doc exim f-prot postfix sendmail spamassassin vlnx"
19 DEPEND="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
35 dev-perl/Sys-Hostname-Long
40 >=perl-core/Sys-Syslog-0.18
41 >=perl-core/MIME-Base64-3.05
44 sendmail? ( mail-mta/sendmail )
45 postfix? ( mail-mta/postfix )
46 exim? ( mail-mta/exim )
49 bitdefender? ( app-antivirus/bitdefender-console )
50 clamav? ( >=app-antivirus/clamav-0.88.4 )
51 f-prot? ( app-antivirus/f-prot )
52 spamassassin? ( >=mail-filter/spamassassin-3.1.5 )
53 vlnx? ( app-antivirus/vlnx )"
55 S="${WORKDIR}/${PN}-${MY_PV}"
60 unpack ./${PN}-install-${MY_PV}/perl-tar/${PN}-${MY_PVR}.tar.gz
69 INQUEUE='/var/spool/postfix.in/deferred'
70 OUTQUEUE='/var/spool/postfix/incoming'
72 SENDMAIL='/usr/lib/sendmail'
73 SENDMAIL2='/usr/lib/sendmail'
77 INQUEUE='/var/spool/exim.in/input'
78 OUTQUEUE='/var/spool/exim/input'
80 SENDMAIL='/usr/sbin/exim -oMr MailScanner'
81 SENDMAIL2='/usr/sbin/exim -C /etc/exim/exim_out.conf -oMr MailScanner'
83 # use sendmail as default, but we should add more as needed
86 INQUEUE='/var/spool/mqueue.in'
87 OUTQUEUE='/var/spool/mqueue'
89 SENDMAIL='/usr/lib/sendmail'
90 SENDMAIL2='/usr/lib/sendmail'
93 # update init script parameters for selected MTA
95 -e "s|^\(MTA=\).*|\1${MTA}|g" \
96 "${FILESDIR}/confd.mailscanner-mta" > "${S}/confd.mailscanner-mta"
98 # setup virus scanner(s)
100 use bitdefender && VIRUS_SCANNERS="bitdefender ${VIRUS_SCANNERS}"
101 use clamav && VIRUS_SCANNERS="clamav ${VIRUS_SCANNERS}"
102 use f-prot && VIRUS_SCANNERS="f-prot ${VIRUS_SCANNERS}"
103 use vlnx && VIRUS_SCANNERS="mcafee ${VIRUS_SCANNERS}"
105 if [ "$VIRUS_SCANNERS" == "" ]; then
106 VIRUS_SCANNERS="none"
113 -e "s/^\(Virus Scanning[ \t]*=\).*/\1 ${VIRUS_SCANNING}/" \
114 -e "s/^\(Virus Scanners[ \t]*=\).*/\1 ${VIRUS_SCANNERS}/" \
115 "${S}/etc/MailScanner.conf"
118 if use spamassassin ; then
120 -e "s/^\(Use SpamAssassin[ \t]*=\).*$/\1 yes/" \
121 "${S}/etc/MailScanner.conf"
124 -e "s/^\(Use SpamAssassin[ \t]*=\).*$/\1 no/" \
125 "${S}/etc/MailScanner.conf"
130 -e "s#msbindir=/opt/MailScanner/bin#msbindir=/usr/sbin#g" \
131 -e "s#config=/opt/MailScanner/etc/MailScanner.conf#config=/etc/MailScanner/MailScanner.conf#g" \
132 "${S}/bin/check_mailscanner"
134 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
135 "${S}/bin/update_virus_scanners"
137 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
138 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
139 "${S}/bin/MailScanner"
143 -e "s#/opt/MailScanner/bin/check_mailscanner#/usr/sbin/check_MailScanner#g" \
144 "${S}/bin/cron/check_MailScanner.cron"
146 -e "s#/etc/sysconfig/MailScanner#/etc/conf.d/mailscanner#g" \
147 -e "s#/opt/MailScanner/bin/update_virus_scanners#/usr/sbin/update_virus_scanners#g" \
148 "${S}/bin/cron/update_virus_scanners.cron"
150 # Determine some things that may need to be changed in conf file
151 # (need to arrive at sensible replacement for yoursite)
152 YOURSITE=`dnsdomainname | sed -e "s/\./-/g"`
153 BASEBIN="${BASE}/sbin"
155 # ClamAV requires some specific changes to MailScanner.conf
156 # when mailscanner is running as root (i.e. sendmail)
158 if [ "$MTA" == "sendmail" ] ; then
172 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
173 -e "s#/opt/MailScanner/bin#$BASEBIN#g" \
174 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
175 -e "s#^\(Run As User[ \t]*=\).*#\1 $RUNASUSER#" \
176 -e "s#^\(Run As Group[ \t]*=\).*#\1 $RUNASGROUP#" \
177 -e "s#^\(Incoming Queue Dir[ \t]*=\).*#\1 $INQUEUE#" \
178 -e "s#^\(Outgoing Queue Dir[ \t]*=\).*#\1 $OUTQUEUE#" \
179 -e "s#^\(MTA[ \t]*=\).*#\1 $MTA#" \
180 -e "s/^#\(TNEF.*internal\)$/\1/" \
181 -e "s/^\(TNEF.*0000\)$/#\1/" \
182 -e "s#^\(PID file[ \t]=\).*#\1 /var/run/mailscanner.pid#" \
183 -e "s#^\(%org-name%\)[ \t]*=.*#\1 = ${YOURSITE}#" \
184 -e "s#^\(Sendmail[ \t]*=\).*#\1 ${SENDMAIL}#" \
185 -e "s#^\(Sendmail2[ \t]*=\).*#\1 ${SENDMAIL2}#" \
186 -e "s#^\(Incoming Work Group[ \t]*=\).*#\1 ${WORKGRP}#" \
187 -e "s#^\(Incoming Work Permissions[ \t]*=\).*#\1 ${WORKPERM}#" \
188 "${S}/etc/MailScanner.conf"
190 # net-mail/vlnx net-mail/clamav net-mail/f-prot package compatibility
192 -e "s#PREFIX=/usr/local/uvscan#PREFIX=/opt/vlnx#" \
193 "${S}/lib/mcafee-autoupdate"
195 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#" \
196 -e 's#^\(mcafee.*\)/usr/local/uvscan$#\1/opt/vlnx#' \
197 -e 's#^\(clamav\t.*/usr\)/local$#\1#' \
198 -e 's#^\(f-prot.*\)/usr/local/f-prot$#\1/opt/f-prot#' \
199 "${S}/etc/virus.scanners.conf"
203 -e "s#/opt/MailScanner/bin#$BASEBIN#g" \
204 -e "s#/opt/MailScanner/etc#/etc/MailScanner#g" \
205 -e "s#/opt/MailScanner/lib#/usr/lib/MailScanner#g" \
206 "${S}/lib/MailScanner/ConfigDefs.pl"
208 -e "s#/etc/MailScanner#/etc/MailScanner#g" \
209 "${S}/lib/MailScanner/CustomConfig.pm"
211 # finally, change MailScanner.conf into MailScanner.conf.sample
212 cp "${S}/etc/MailScanner.conf" "${S}/etc/MailScanner.conf.${MY_PV}"
213 mv "${S}/etc/MailScanner.conf" "${S}/etc/MailScanner.conf.sample"
220 #newexe bin/check_mailscanner.linux check_MailScanner
221 newexe bin/check_mailscanner check_MailScanner
223 doexe bin/MailScanner
224 doexe bin/update_virus_scanners
225 doexe bin/upgrade_MailScanner_conf
226 newexe bin/Sophos.install.linux Sophos.install
228 insinto /etc/MailScanner
230 doins etc/mailscanner.conf.with.mcp
231 doins etc/MailScanner.conf.${MY_PV}
232 doins etc/MailScanner.conf.sample
234 insinto /etc/MailScanner/rules
236 insinto /etc/MailScanner/mcp
239 for i in $(ls etc/reports/)
243 insinto /etc/MailScanner/reports/$i
244 doins etc/reports/$i/*
248 insinto ${BASE}/lib/MailScanner
251 exeinto ${BASE}/lib/MailScanner
253 doexe lib/*-autoupdate
254 doexe lib/*-autoupdate.old
257 exeinto ${BASE}/lib/MailScanner/MailScanner
258 doexe lib/MailScanner/*.pm
259 doexe lib/MailScanner/*.pl
261 insinto ${BASE}/lib/MailScanner/MailScanner
262 doins lib/MailScanner/*.txt
264 exeinto ${BASE}/lib/MailScanner/MailScanner/CustomFunctions
265 doexe lib/MailScanner/CustomFunctions/MyExample.pm
267 newinitd "${FILESDIR}"/initd.mailscanner MailScanner
268 newinitd "${FILESDIR}"/initd.mailscanner-mta MailScanner-mta
269 newconfd "${FILESDIR}"/confd.mailscanner MailScanner
270 newconfd "${S}/confd.mailscanner-mta" MailScanner-mta
273 exeinto /etc/cron.hourly
274 newexe "${S}/bin/cron/check_MailScanner.cron" check_MailScanner
275 newexe "${S}/bin/cron/update_virus_scanners.cron" update_virus_scanners
277 exeinto /etc/cron.daily
278 newexe "${S}/bin/cron/clean.quarantine.cron" clean.quarantine
281 dodir /usr/share/doc/${PF}/html
282 cp -r docs/* "${D}usr/share/doc/${PF}/html"
285 dodoc notes.txt docs/QuickInstall.txt docs/README.sql-logging
287 keepdir /var/spool/MailScanner/incoming
288 keepdir /var/spool/MailScanner/quarantine
289 keepdir /var/spool/MailScanner/spamassassin
290 keepdir /var/spool/MailScanner/archive
293 if use postfix ; then
294 chown -R postfix:postfix "${D}/var/spool/MailScanner/"
296 chown -R mail:mail "${D}/var/spool/MailScanner/"
298 keepdir /var/spool/mqueue.in
303 if [ -n "`grep -xE "[[:space:]]*provide[[:space:]]+(.*[[:space:]]+)*mta([[:space:]]+.*)*" /etc/init.d/${MTA}`" ]; then
305 ewarn "Warning: your mta service startup script /etc/init.d/${MTA}"
306 ewarn "seems to provide 'mta', this may give problems with /etc/init.d/MailScanner-mta."
308 ewarn "The Installation is *NOT* Completed Yet, You still need Filesystem::Df"
309 ewarn "Please use emerge g-cpan and run the following command"
311 ewarn " # g-cpan -i Filesys::Df "
316 elog "Remove the line containing 'provide mta' from your MTA's init script"
317 elog "and take care that using etc-update will not insert this line after"
318 elog "re-emerging / updating your mta!"
319 elog "The related bug in bugs.gentoo.org is #46897"
322 if [ -f "/etc/MailScanner/MailScanner.conf" ]; then
323 einfo "Upgrading the MailScanner.conf file"
324 cp /etc/MailScanner/MailScanner.conf /etc/MailScanner/MailScanner.conf.pre_upgrade.${MY_PV}
325 /usr/sbin/upgrade_MailScanner_conf \
326 /etc/MailScanner/MailScanner.conf.pre_upgrade.${MY_PV} \
327 /etc/MailScanner/MailScanner.conf.${MY_PV} \
328 > /etc/MailScanner/MailScanner.conf 2> /dev/null
330 cp /etc/MailScanner/MailScanner.conf.sample /etc/MailScanner/MailScanner.conf