# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/mail-filter/qmail-scanner/qmail-scanner-2.01-r1.ebuild,v 1.1 2008/01/04 22:45:16 tupone Exp $ inherit fixheadtails toolchain-funcs eutils Q_S_DATE=20070204 DESCRIPTION="E-Mail virus scanner for qmail." HOMEPAGE="http://qmail-scanner.sourceforge.net/" SRC_URI="mirror://sourceforge/qmail-scanner/${P}.tgz http://toribio.apollinare.org/qmail-scanner/download/q-s-${PV}st-${Q_S_DATE}.patch.gz" IUSE="spamassassin" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" RESTRICT="userpriv" DEPEND=">=dev-lang/perl-5.6.1-r1 >=virtual/perl-Time-HiRes-01.20-r2 >=net-mail/tnef-1.1.1 >=virtual/perl-DB_File-1.803-r2 net-mail/ripmime virtual/qmail >=app-arch/unzip-5.42-r1 virtual/antivirus spamassassin? ( >=mail-filter/spamassassin-2.64 )" pkg_setup() { enewgroup qscand 210 enewuser qscand 210 -1 /var/spool/qscan qscand } pkg_preinst() { local oldname="/var/qmail/bin/qmail-scanner-queue.pl" if [ -f ${oldname} ]; then newname=${oldname}.`date +%Y%m%d%H%M%S` elog "Backing up old qmail-scanner as $newname in case of modifications." cp ${oldname} ${newname} chmod 600 ${newname} fi } src_unpack() { unpack ${A} cd "${S}" rm index.php && cp README.html index.php epatch ${DISTDIR}/q-s-${PV}st-${Q_S_DATE}.patch.gz ht_fix_file autoupdaters/* configure sed -i \ -e "s:/var/spool/qscand:/var/spool/qscan:g" \ README-st-patch.html \ README-st-patch.txt || die "Fixing doc with sed failed" EXTRA_VIRII="bagle,beagle,mydoom,sco,maldal,mimail,novarg,shimg,bugler,cissi,cissy,dloade,netsky,qizy" elog "Adding items to the SILENT_VIRUSES list (${EXTRA_VIRII})" sed -e "/^SILENT_VIRUSES/s/\"$/,${EXTRA_VIRII}\"/g" -i configure } src_compile () { local myconf addpredict /var/log/kav/kavscan.log addpredict /opt/bdc/plugins.htm use spamassassin && myconf="--virus-to-delete yes --sa-quarantine 2.1 --sa-delete 4.2 --sa-reject no --sa-subject SPAM: --sa-delta 0.5 --sa-alt yes" PATH=${PATH}:/opt/f-prot:/opt/vlnx ./configure \ --domain localhost \ --batch \ --log-details yes \ --mime-unpacker "ripmime" \ --skip-setuid-test \ ${myconf} \ || die "./configure failed!" # build for qmail-scanner-queue wrapper, so we don't need suidperl cd contrib $(tc-getCC) ${CFLAGS} -o qmail-scanner-queue qmail-scanner-queue.c || die } src_install () { # Create Directory Structure diropts -m 755 -o qscand -g qscand dodir /var/spool/qscan keepdir /var/spool/qscan diropts -m 750 -o qscand -g qscand dodir /var/spool/qscan/quarantine for i in quarantine/{viruses,policy,spam} working archives; do for j in tmp new cur; do dodir /var/spool/qscan/${i}/${j} keepdir /var/spool/qscan/${i}/${j} done done dodir /var/spool/qscan/tmp keepdir /var/spool/qscan/tmp # Install standard quarantine events file insinto /var/spool/qscan insopts -m 644 -o qscand -g qscand doins quarantine-events.txt # create quarantine.log and viruses.log touch quarantine.log insinto /var/spool/qscan insopts -m 644 -o qscand -g qscand doins quarantine.log dosym quarantine.log ${DESTDIR}/var/spool/qscan/viruses.log # Install qmail-scanner wrapper insinto /var/qmail/bin insopts -m 4755 -o qscand -g qscand doins contrib/qmail-scanner-queue # Install qmail-scanner script insinto /var/qmail/bin insopts -m 0755 -o qscand -g qscand doins qmail-scanner-queue.pl insinto /etc/logrotate.d/ insopts -m 644 -o root -g root newins "${FILESDIR}"/${P}.logrotate qmail-scanner exeinto /etc/cron.daily/ newexe "${FILESDIR}"/qmailscanner.cronjob qmail-scanner # Install documentation dodoc README CHANGES dohtml README.html FAQ.php TODO.php configure-options.php manual-install.php perlscanner.php docinto contrib cd "${S}"/contrib dodoc spamc-nice.eml dodoc test-trophie.pl dodoc logrotate.qmailscanner dodoc sub-avpdaemon.pl dodoc logging_first_80_chars.eml dodoc spamc-nasty.eml dodoc avpdeamon.init dodoc test_installation.sh dodoc test-sophie.pl dodoc reformime-test.eml dodoc sub-sender-cache.pl dodoc rbl_scanner.txt dodoc test-clamd.pl dodoc qs2mrtg.pl dodoc mrtg-qmail-scanner.cfg } pkg_postinst () { einfo "Fixing ownerships" chown -R qscand:qscand /var/spool/qscan touch /var/qmail/bin/qmail-scanner-queue.pl # Setup perlscanner + Version Info chmod -s "${ROOT}"/var/qmail/bin/qmail-scanner-queue.pl "${ROOT}"/var/qmail/bin/qmail-scanner-queue -z "${ROOT}"/var/qmail/bin/qmail-scanner-queue -g elog "To activate qmail-scanner, please edit your" elog "/var/qmail/control/conf-common file and set:" elog "export QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue" elog "Or place it in your tcprules file." ewarn "Please note that it was a call to qmail-scanner-queue.pl before," ewarn "but this is now changed to use a wrapper to improve security!" ewarn "Once you have changed to the wrapper, you can remove the setuid " ewarn "bit on qmail-scanner-queue.pl" ewarn "If this is an upgrade from <=2.0.1 the home directory of the qscand" ewarn "user is changed. Please update it manually to /var/spool/qscan" ewarn "or remove the user and emerge again this package" ewarn "For an integration with clamav, clamav user should have access" ewarn "to files in the qscand group." ewarn "To allow that, add clamav user to the qscand group and" ewarn "comment-out in /etc/clamd.conf AllowSupplementaryGroups putting yes." ewarn "After that, restart clamd with" ewarn "/etc/init.d/clamd restart" }