# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=4 inherit eutils flag-o-matic DESCRIPTION="Clam Anti-Virus Scanner" HOMEPAGE="http://www.clamav.net/" SRC_URI="mirror://sourceforge/${PN}/${P/_/}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" IUSE="bzip2 clamdtop iconv ipv6 milter selinux" CDEPEND="bzip2? ( app-arch/bzip2 ) clamdtop? ( sys-libs/ncurses ) iconv? ( virtual/libiconv ) milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) ) >=sys-libs/zlib-1.2.2" DEPEND="${CDEPEND} >=dev-util/pkgconfig-0.20" RDEPEND="${CDEPEND} selinux? ( sec-policy/selinux-clamav )" PROVIDE="virtual/antivirus" RESTRICT="test" S="${WORKDIR}/${P/_/}" pkg_setup() { enewgroup clamav enewuser clamav -1 -1 /dev/null clamav } src_prepare() { epatch "${FILESDIR}"/clamav-0.97-nls.patch } src_configure() { has_version =sys-libs/glibc-2.2* && filter-lfs-flags econf --disable-experimental --enable-id-check --with-dbdir=/var/lib/clamav \ $(use_enable bzip2) \ $(use_enable clamdtop) \ $(use_enable ipv6) \ $(use_enable milter) \ $(use_with iconv) } src_install() { emake DESTDIR="${ED}" install rm -rf "${ED}"/var/lib/clamav dodoc AUTHORS BUGS ChangeLog FAQ INSTALL NEWS README UPGRADE newinitd "${FILESDIR}"/clamd.rc clamd newconfd "${FILESDIR}"/clamd.conf clamd keepdir /var/lib/clamav fowners clamav:clamav /var/lib/clamav keepdir /var/run/clamav fowners clamav:clamav /var/run/clamav keepdir /var/log/clamav fowners clamav:clamav /var/log/clamav dodir /etc/logrotate.d insinto /etc/logrotate.d newins "${FILESDIR}"/clamav.logrotate clamav # Modify /etc/{clamd,freshclam}.conf to be usable out of the box sed -i -e "s:^\(Example\):\# \1:" \ -e "s:.*\(PidFile\) .*:\1 /var/run/clamav/clamd.pid:" \ -e "s:.*\(LocalSocket\) .*:\1 /var/run/clamav/clamd.sock:" \ -e "s:.*\(User\) .*:\1 clamav:" \ -e "s:^\#\(LogFile\) .*:\1 /var/log/clamav/clamd.log:" \ -e "s:^\#\(LogTime\).*:\1 yes:" \ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \ "${ED}"/etc/clamd.conf sed -i -e "s:^\(Example\):\# \1:" \ -e "s:.*\(PidFile\) .*:\1 /var/run/clamav/freshclam.pid:" \ -e "s:.*\(DatabaseOwner\) .*:\1 clamav:" \ -e "s:^\#\(UpdateLogFile\) .*:\1 /var/log/clamav/freshclam.log:" \ -e "s:^\#\(NotifyClamd\).*:\1 /etc/clamd.conf:" \ -e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \ "${ED}"/etc/freshclam.conf if use milter ; then # MilterSocket one to include ' /' because there is a 2nd line for # inet: which we want to leave dodoc "${FILESDIR}"/clamav-milter.README.gentoo sed -i -e "s:^\(Example\):\# \1:" \ -e "s:.*\(PidFile\) .*:\1 /var/run/clamav/clamav-milter.pid:" \ -e "s+^\#\(ClamdSocket\) .*+\1 unix:/var/run/clamav/clamd.sock+" \ -e "s:.*\(User\) .*:\1 clamav:" \ -e "s+^\#\(MilterSocket\) /.*+\1 unix:/var/run/clamav/clamav-milter.sock+" \ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \ -e "s:^\#\(LogFile\) .*:\1 /var/log/clamav/clamav-milter.log:" \ "${ED}"/etc/clamav-milter.conf cat << EOF >> "${ED}"/etc/conf.d/clamd MILTER_NICELEVEL=19 START_MILTER=no EOF fi } pkg_postinst() { ewarn ewarn "Since ClamAV 0.97 the package does not install signatures anymore. When you" ewarn "are installing ClamAV for the first time or upgrading from an older version" ewarn "than ClamAV 0.97 you have to download the newest signatures by executing:" ewarn " /usr/bin/freshclam" ewarn if use milter ; then elog "For simple instructions how to setup the clamav-milter read the" elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}" fi }