aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Shelton <stuart@shelton.me>2013-11-19 14:54:41 +0000
committerStuart Shelton <stuart@shelton.me>2013-11-19 14:54:41 +0000
commit21c30a224a0a2f312f76b57f58c5fd7fe6a76c5d (patch)
tree009f00aabe9c5ee44aec5b65cb3d660925374266 /app-antivirus
parentAdd app-admin/ulogd-2.0.2 with state files located within /var/run (diff)
downloadsrcshelton-21c30a224a0a2f312f76b57f58c5fd7fe6a76c5d.tar.gz
srcshelton-21c30a224a0a2f312f76b57f58c5fd7fe6a76c5d.tar.bz2
srcshelton-21c30a224a0a2f312f76b57f58c5fd7fe6a76c5d.zip
Add app-antivirus/clamav with state files located within /var/run
Diffstat (limited to 'app-antivirus')
-rw-r--r--app-antivirus/clamav/Manifest18
-rw-r--r--app-antivirus/clamav/clamav-0.97.8-r2.ebuild129
-rw-r--r--app-antivirus/clamav/clamav-0.97.8.ebuild120
-rw-r--r--app-antivirus/clamav/clamav-0.98.ebuild136
-rw-r--r--app-antivirus/clamav/files/clamav-0.97-nls.patch11
-rw-r--r--app-antivirus/clamav/files/clamav-milter.README.gentoo44
-rw-r--r--app-antivirus/clamav/files/clamav-milter.service12
-rw-r--r--app-antivirus/clamav/files/clamav.logrotate15
-rw-r--r--app-antivirus/clamav/files/clamd.conf9
-rw-r--r--app-antivirus/clamav/files/clamd.conf-r17
-rwxr-xr-xapp-antivirus/clamav/files/clamd.initd-r3121
-rwxr-xr-xapp-antivirus/clamav/files/clamd.initd-r5126
-rwxr-xr-xapp-antivirus/clamav/files/clamd.initd-r6129
-rw-r--r--app-antivirus/clamav/files/clamd.service7
-rw-r--r--app-antivirus/clamav/files/clamd_at.service9
-rw-r--r--app-antivirus/clamav/files/freshclamd.service10
-rw-r--r--app-antivirus/clamav/files/tmpfiles.d/clamav.conf1
17 files changed, 904 insertions, 0 deletions
diff --git a/app-antivirus/clamav/Manifest b/app-antivirus/clamav/Manifest
new file mode 100644
index 00000000..9322761e
--- /dev/null
+++ b/app-antivirus/clamav/Manifest
@@ -0,0 +1,18 @@
+AUX clamav-0.97-nls.patch 269 SHA256 088b9edcdb678ce9c072042cf51266e061ab5f5ab0e8e42bd953242138c64fd1 SHA512 a0508590353c699d62d203398e4b84ea134348567fa5530e5c9c7ce850a9eeca106544e641ce011cc0a5097313dea780490e7db6fdda1ec2ab61dd6474e31458 WHIRLPOOL 95ce0a012bbb8d0cde2c255d7f15ab8eb24d412cd7b664ce2e7dc6ea887c608252076e45f7f4a007edda455f07b62884002a6d914b25b889da2682140d31f20c
+AUX clamav-milter.README.gentoo 1124 SHA256 5e7b142b68964bc3463b077e5698fa77cace45ea9612258b1e1849cee944dd11 SHA512 1c6160e48eddd28f83ec5f24757f788781cef55789d1934dfccc12c7c5e5635a226d26b0983cab7344c142f5a2f1db172640b1d0e6c840a6fa83abed9be1211a WHIRLPOOL f85b17448fd93205e2f38d024b96410cc8d143d077201e0a1b8f4cda95ae2447a70eded4cb90968a593ad2637229300fa04bfe5dba96d3d68c2d09c105ee3f16
+AUX clamav-milter.service 284 SHA256 b371725acfd102b6b7ee15ab0059e8795b7d3716d041d0dc11d0fe8f7454d5a9 SHA512 442148ac3c42ecbb893de5c6edde337b72a745d20f6c5ffa33131f9a0b2daadcffac39b686ada986a5ab500ea7b9153c448abc1b819e15fef488da1812bb0cee WHIRLPOOL 56b4ed79e06c764df37022f0638ceddb5fe8185c54b2e460b076a46ed4f5a68b67fb7966d424dabe836bfd7d6b9d770eb60cad4633ee17083baa50ad2c0a89cd
+AUX clamav.logrotate 355 SHA256 ab91f784d5098d2162be9277e3a006bdb392d9d89975838ad4ac7dfd8b418170 SHA512 39e8027db4cb2cf1b45dac6777dbd922640b41f47deb34199d910560d56431051432b68ab387101542d8f98069253c85bb2ab39c274eb99c2db26c5967abf512 WHIRLPOOL 0d201d6909d309e22526ed0d40da588602d0b34367b9e7d54b42d6626c7b7bac1150c1671740cead5d900baa8a6a098feaeb1127251d9a45eb35203016197193
+AUX clamd.conf 234 SHA256 17bf4fe3596dc5b145e4163d85181e2edcaa214df3cf9072d852ba0e7a569891 SHA512 ec069cf7aaf10b42a701938b57e1fde1ee15afd1d4af928edfa7e5d505ba8b3edaaceac449da0f4ac6beea09a3fb73453526ba0cd3a04e13259c1a2720f42f78 WHIRLPOOL 667ad1567bb398a20785096f2c2c7c72be4853ee3b0674c4fcc20eb2c9123815c273f40938961e348252e3376c4402a3f952b2a72d3bb3f0907aadb7ab77b8ed
+AUX clamd.conf-r1 129 SHA256 28ebd47810b0568fc7692218867d6804a1df70290681462f5555e230ca817732 SHA512 b85fd99c80242fb66380dfdef34387a2eff9326a1cb726940ab4bc450308e4942e57d1eb1cad979348f8aac685b53e2fa722cef0dab1f2ea2c958f2a5f818918 WHIRLPOOL 44f1e0b678855db44123261402c4e82e0493a60869bcf0a7ebcc5c4db23072efba3f550ee115b5c49a688895b67e1d012defb36c4aa0564732a2642d78f72695
+AUX clamd.initd-r3 3118 SHA256 68bfcbd582667c719b81a7f0c396de9733bc5efefa4e7b8dd3fc0c02dfcea887 SHA512 9a173f4eef3ef173b6267a7753acd221773ad22fc2b689e8e842783ea787a18ee5990607ebd434a0ad9e45a0347ad8f7ba40935456e4f336cf2b3dcbc09c9f46 WHIRLPOOL d5cd66a07937af859307ca5b22012c33dc3a2c767d42244e9cd5b28a13c235340d604d10baf30f134a74965ba4bec552b943fc659e90952d650387a867633f18
+AUX clamd.initd-r5 3271 SHA256 f67e0b60d7f0e36e4819027c49cd0d7874bbf7c3c93de477feaa0d6366df77ff SHA512 00e95ffda8703f85997279eb1163bf2edbdbf62335b18c7b42a1216a4b389738fa5ed0c9465a5311e432243c158147b326a7a0f1b943f2f031c42d24933f3e6f WHIRLPOOL 8d68a66a703c519b15ae25fa27e074acc2730c5fbd0db98d91e19364ee986f3ad0abf9dbff9d1cca225da41fc44c7e814d245cee8279ddb0426d5d9ad7116622
+AUX clamd.initd-r6 3370 SHA256 1ad5ad8900d209c846064c4ad28f590e504d608fab4bc0720eb63d0c5dcb6fe8 SHA512 75be060389d37fd7a18d649fb439037546879eb5f81cc9db43f9ae3c479f48b113860541700fed3ec930f1bf7d33c1197c9024b3d3ba26053b95ca0c2c5c93b2 WHIRLPOOL 665317949697d7dd2b7b117df4f8d5cc11af359d48bccc1326cf099ebf09a0999a93116ec001d4650559a2439e42fc5ec3dbf2b9d346624ffff5e2adc94a50c0
+AUX clamd.service 136 SHA256 d50b2d7b291e1d03f142e0b113a90c600cf5a0f73f1a4847d8cf0528902728dd SHA512 2080e96e84d15d1ef4c670579ddca5bc9608c8e8564cd43fcd9d464d97c253eb89ca3ebbf3a6a799b31a6c6321ea8beeb386cbefbccbe5f097dbc492900dc2aa WHIRLPOOL 612ff77805a2ede8c526c798f3b5658ea5be5006d526eb7735750a1b86186c2214c34ba4658e3567845c503a0575cc15519ff5c9294be939cd200bf2c691a2f6
+AUX clamd_at.service 190 SHA256 7fb3eb55fbb0bff9884aa943ffc6439e328bc0e4a607c1615c924be9c3711c30 SHA512 b5121bfe761d21152356c8b1e0f0974a9c0bb9002b3d5b1af1c7940d94314250a4890388876b150b0f071c24b7261b93bbc9a6b94b896294c549fe6b572ee70a WHIRLPOOL d58f1d19de54183224ecccc78f9968473c8b891c6ce1f5a9045c1a1db962c152a4b22f58dc55ae54a3b21df20a422e173143e6b893a8913e7f038904e991cce6
+AUX freshclamd.service 199 SHA256 c087225faf61ecab402506371c77c83891e9796784393141056c26cb0bc8f8ea SHA512 efa42393206fce7110f63aa541ff4ee969e46c5533ffdb37290952efb486ce9197b1751ab1265d071c40cba082c5acd98864cf0001423d1257defcff5c8d657d WHIRLPOOL 0797698d47aec61a9e0bdc7a027202a1f1497f9071048c89e10abfd3c9b98ed6d810ebb38652eb9bc63ed34a28f57a824697337737276213f1a15f2e7928184f
+AUX tmpfiles.d/clamav.conf 37 SHA256 2cef5ca92467f7e6953c4a00ce955f84f3de8b92fd0d8577f7d9b66df154b8db SHA512 89e66701261bf8aca40bcdcd8fad4ffbac5b2645d4930adaa35a1ce77ce8070124264e95863112e5b20b757434cbc5a79c9fc222a31b6c54caf5ab2b101d8cd9 WHIRLPOOL 0120c61b8ab818398936a710e03be36857e0f1f246ba6d676220e1b67faaa6ad983ce1a2dbaa77acc622bd72bdb3f9c6aeadb6b65f60e52a32ff7f2e4729871f
+DIST clamav-0.97.8.tar.gz 14609966 SHA256 d872bdfd692d440bc2ade2f4e5a7befc37feb8885cd81adfb6346a8214aafc12 SHA512 e3a80bbfc90922f7f49521d1ab53ec63fb948a42d448ecaa933023cbb256f35e5b695305bd2d56480ee1f94ac93703d10aa4193566c521a1fa62f2c0e1019fda WHIRLPOOL b0ddc29edd096007abc0183400f2b3ee54cf87f13bb2eab2388c444f038fab33eb25b6b5d678449d49da2258017a630ff2e6b36c27028557038a033b415b026c
+DIST clamav-0.98.tar.gz 37075245 SHA256 113450537f46ed47f010a179be333a0dcd79eac13f264dce26db7aac8d52b3b6 SHA512 532f9fa2616065879b3ecace2672fad26cf3863943e0ecb8835fbed7e5907600ef50b8df820a08a6586bf77c9bf7c6e50af671f31b7c3ee372c31745a173099f WHIRLPOOL a4ee9efd09193aee7fd740dbb60acabdd4a1f6d5171a4e0fa220441457e3431bf99b27c7300ca0e3e124bb5406f65acf106fa51bfc34d87335ca83ccbc942979
+EBUILD clamav-0.97.8-r2.ebuild 4141 SHA256 0b540084125a8878bf60617df7e0505b7ecc3f2682f76f19250774afa42dfe5c SHA512 9a3155486f78cf127c0f1d7717e3828d8615626b2db4d528f81a0f68215d6ac15bb544912bb6252fae44cf9d202dedce9fb13f7ad50ac5fc6a04144912ca7258 WHIRLPOOL 1f16211a091255e97ea0b6760001c19ba67ca863771d80953f6c4c9a44a8cb34a843ab50803e8b2b162f90ccfb97a6495aa53eddc49f4bb616dfd763a997a820
+EBUILD clamav-0.97.8.ebuild 3808 SHA256 b11d8491c38d0a1c0452f5c24916a763712b9c0f83013eaf75c77641158a476f SHA512 5dc3019b7bbb38128fcf7e11b3ea811eaa2f395f6fef77787183cd86e1b16ef913dca20be4bebaeaac719944ae3b6bac668242f30205ca4f268f69106e46838c WHIRLPOOL 24b1c13938cc6a26c11bbdfc3f280e56e4fca5aef4b1c64989193270ad0270f1c8c2ae31f55cd44a57a8a30cbe4151fa29a645298fe199ce2941fec30b98da21
+EBUILD clamav-0.98.ebuild 4507 SHA256 b365cd29d0671a48bc0c4a1d80e196ef408381acbac27f3d3c97bace53832539 SHA512 11992a2fff56ccfcd9c406ce22876343f424f696fbd73e93e3406927965a20c92433da9c1b19762262d37a807ac02be72827533b29fdb647344868345ecbb4d1 WHIRLPOOL 2753fb676bbcf20476c60bcf9221b7373df905700e70c74c3e22c4d17fa36f876f16c51117f80f36a6451f0c182ab6a88102f6e2363ac86ad74cc143bf478261
diff --git a/app-antivirus/clamav/clamav-0.97.8-r2.ebuild b/app-antivirus/clamav/clamav-0.97.8-r2.ebuild
new file mode 100644
index 00000000..68aa107c
--- /dev/null
+++ b/app-antivirus/clamav/clamav-0.97.8-r2.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/clamav-0.97.8-r2.ebuild,v 1.4 2013/10/09 11:28:32 xarthisius Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic user systemd
+
+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 ~arm hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="bzip2 clamdtop iconv ipv6 milter selinux static-libs systemd uclibc"
+
+CDEPEND="bzip2? ( app-arch/bzip2 )
+ clamdtop? ( sys-libs/ncurses )
+ iconv? ( virtual/libiconv )
+ milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
+ dev-libs/libtommath
+ >=sys-libs/zlib-1.2.2
+ sys-devel/libtool"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-clamav )"
+
+RESTRICT="test"
+
+DOCS=( AUTHORS BUGS ChangeLog FAQ INSTALL NEWS README UPGRADE )
+
+pkg_setup() {
+ enewgroup clamav
+ enewuser clamav -1 -1 /dev/null clamav
+}
+
+src_prepare() {
+ use ppc64 && append-flags -mminimal-toc
+ use uclibc && export ac_cv_type_error_t=yes
+ epatch "${FILESDIR}"/${PN}-0.97-nls.patch
+}
+
+src_configure() {
+ econf \
+ --disable-experimental \
+ --enable-id-check \
+ --with-dbdir="${EPREFIX}"/var/lib/clamav \
+ --with-system-tommath \
+ --with-zlib="${EPREFIX}"/usr \
+ $(use_enable bzip2) \
+ $(use_enable clamdtop) \
+ $(use_enable ipv6) \
+ $(use_enable milter) \
+ $(use_enable static-libs static) \
+ $(use_with iconv)
+}
+
+src_install() {
+ default
+
+ rm -rf "${ED}"/var/lib/clamav
+ newinitd "${FILESDIR}"/clamd.initd-r5 clamd
+ newconfd "${FILESDIR}"/clamd.conf clamd
+
+ if use systemd; then
+ systemd_dotmpfilesd "${FILESDIR}/tmpfiles.d/clamav.conf"
+ systemd_newunit "${FILESDIR}/clamd_at.service" "clamd@.service"
+ systemd_dounit "${FILESDIR}/clamd.service"
+ systemd_dounit "${FILESDIR}/freshclamd.service"
+ fi
+
+ keepdir /var/lib/clamav
+ fowners clamav:clamav /var/lib/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 ${EPREFIX}/var/run/clamav/clamd.pid:" \
+ -e "s:.*\(LocalSocket\) .*:\1 ${EPREFIX}/var/run/clamav/clamd.sock:" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/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 ${EPREFIX}/var/run/clamav/freshclam.pid:" \
+ -e "s:.*\(DatabaseOwner\) .*:\1 clamav:" \
+ -e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
+ -e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/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 ${EPREFIX}/var/run/clamav/clamav-milter.pid:" \
+ -e "s+^\#\(ClamdSocket\) .*+\1 unix:${EPREFIX}/var/run/clamav/clamd.sock+" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s+^\#\(MilterSocket\) /.*+\1 unix:${EPREFIX}/var/run/clamav/clamav-milter.sock+" \
+ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
+ "${ED}"/etc/clamav-milter.conf
+ cat > "${ED}"/etc/conf.d/clamd <<-EOF
+ MILTER_NICELEVEL=19
+ START_MILTER=no
+ EOF
+
+ use systemd && systemd_dounit "${FILESDIR}/clamav-milter.service"
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ 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
+}
diff --git a/app-antivirus/clamav/clamav-0.97.8.ebuild b/app-antivirus/clamav/clamav-0.97.8.ebuild
new file mode 100644
index 00000000..0c4350f9
--- /dev/null
+++ b/app-antivirus/clamav/clamav-0.97.8.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/clamav-0.97.8.ebuild,v 1.3 2013/10/09 11:28:32 xarthisius Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic user
+
+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 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="bzip2 clamdtop iconv ipv6 milter selinux static-libs uclibc"
+
+CDEPEND="bzip2? ( app-arch/bzip2 )
+ clamdtop? ( sys-libs/ncurses )
+ iconv? ( virtual/libiconv )
+ milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
+ dev-libs/libtommath
+ >=sys-libs/zlib-1.2.2
+ sys-devel/libtool"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-clamav )"
+
+RESTRICT="test"
+
+DOCS=( AUTHORS BUGS ChangeLog FAQ INSTALL NEWS README UPGRADE )
+
+pkg_setup() {
+ enewgroup clamav
+ enewuser clamav -1 -1 /dev/null clamav
+}
+
+src_prepare() {
+ use ppc64 && append-flags -mminimal-toc
+ use uclibc && export ac_cv_type_error_t=yes
+ epatch "${FILESDIR}"/${PN}-0.97-nls.patch
+}
+
+src_configure() {
+ econf \
+ --disable-experimental \
+ --enable-id-check \
+ --with-dbdir="${EPREFIX}"/var/lib/clamav \
+ --with-system-tommath \
+ --with-zlib="${EPREFIX}"/usr \
+ $(use_enable bzip2) \
+ $(use_enable clamdtop) \
+ $(use_enable ipv6) \
+ $(use_enable milter) \
+ $(use_enable static-libs static) \
+ $(use_with iconv)
+}
+
+src_install() {
+ default
+
+ rm -rf "${ED}"/var/lib/clamav
+ newinitd "${FILESDIR}"/clamd.initd-r5 clamd
+ newconfd "${FILESDIR}"/clamd.conf clamd
+
+ keepdir /var/lib/clamav
+ fowners clamav:clamav /var/lib/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 ${EPREFIX}/var/run/clamav/clamd.pid:" \
+ -e "s:.*\(LocalSocket\) .*:\1 ${EPREFIX}/var/run/clamav/clamd.sock:" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/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 ${EPREFIX}/var/run/clamav/freshclam.pid:" \
+ -e "s:.*\(DatabaseOwner\) .*:\1 clamav:" \
+ -e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
+ -e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/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 ${EPREFIX}/var/run/clamav/clamav-milter.pid:" \
+ -e "s+^\#\(ClamdSocket\) .*+\1 unix:${EPREFIX}/var/run/clamav/clamd.sock+" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s+^\#\(MilterSocket\) /.*+\1 unix:${EPREFIX}/var/run/clamav/clamav-milter.sock+" \
+ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
+ "${ED}"/etc/clamav-milter.conf
+ cat > "${ED}"/etc/conf.d/clamd <<-EOF
+ MILTER_NICELEVEL=19
+ START_MILTER=no
+ EOF
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ 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
+}
diff --git a/app-antivirus/clamav/clamav-0.98.ebuild b/app-antivirus/clamav/clamav-0.98.ebuild
new file mode 100644
index 00000000..7ce5a785
--- /dev/null
+++ b/app-antivirus/clamav/clamav-0.98.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/clamav-0.98.ebuild,v 1.5 2013/10/09 11:28:32 xarthisius Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic user systemd
+
+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 ~arm hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="bzip2 clamdtop iconv ipv6 milter selinux static-libs systemd uclibc"
+
+CDEPEND="bzip2? ( app-arch/bzip2 )
+ clamdtop? ( sys-libs/ncurses )
+ iconv? ( virtual/libiconv )
+ milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
+ dev-libs/libtommath
+ >=sys-libs/zlib-1.2.2
+ sys-devel/libtool"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-clamav )"
+
+DOCS=( AUTHORS BUGS ChangeLog FAQ INSTALL NEWS README UPGRADE )
+
+pkg_setup() {
+ enewgroup clamav
+ enewuser clamav -1 -1 /dev/null clamav
+}
+
+src_prepare() {
+ use ppc64 && append-flags -mminimal-toc
+ use uclibc && export ac_cv_type_error_t=yes
+}
+
+src_configure() {
+ econf \
+ --disable-experimental \
+ --disable-fanotify \
+ --enable-id-check \
+ --with-dbdir="${EPREFIX}"/var/lib/clamav \
+ --with-system-tommath \
+ --with-zlib="${EPREFIX}"/usr \
+ $(use_enable bzip2) \
+ $(use_enable clamdtop) \
+ $(use_enable ipv6) \
+ $(use_enable milter) \
+ $(use_enable static-libs static) \
+ $(use_with iconv)
+}
+
+src_install() {
+ default
+
+ rm -rf "${ED}"/var/lib/clamav
+ newinitd "${FILESDIR}"/clamd.initd-r6 clamd
+ newconfd "${FILESDIR}"/clamd.conf-r1 clamd
+
+ if use systemd; then
+ systemd_dotmpfilesd "${FILESDIR}/tmpfiles.d/clamav.conf"
+ systemd_newunit "${FILESDIR}/clamd_at.service" "clamd@.service"
+ systemd_dounit "${FILESDIR}/clamd.service"
+ systemd_dounit "${FILESDIR}/freshclamd.service"
+ fi
+
+ keepdir /var/lib/clamav
+ fowners clamav:clamav /var/lib/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 ${EPREFIX}/var/run/clamav/clamd.pid:" \
+ -e "s:.*\(LocalSocket\) .*:\1 ${EPREFIX}/var/run/clamav/clamd.sock:" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
+ -e "s:^\#\(LogTime\).*:\1 yes:" \
+ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \
+ "${ED}"/etc/clamd.conf.sample || die
+ sed -i -e "s:^\(Example\):\# \1:" \
+ -e "s:.*\(PidFile\) .*:\1 ${EPREFIX}/var/run/clamav/freshclam.pid:" \
+ -e "s:.*\(DatabaseOwner\) .*:\1 clamav:" \
+ -e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
+ -e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamd.conf:" \
+ -e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
+ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \
+ "${ED}"/etc/freshclam.conf.sample || die
+
+ 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 ${EPREFIX}/var/run/clamav/clamav-milter.pid:" \
+ -e "s+^\#\(ClamdSocket\) .*+\1 unix:${EPREFIX}/var/run/clamav/clamd.sock+" \
+ -e "s:.*\(User\) .*:\1 clamav:" \
+ -e "s+^\#\(MilterSocket\) /.*+\1 unix:${EPREFIX}/var/run/clamav/clamav-milter.sock+" \
+ -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
+ "${ED}"/etc/clamav-milter.conf.sample || die
+ cat >> "${ED}"/etc/conf.d/clamd <<-EOF
+ MILTER_NICELEVEL=19
+ START_MILTER=no
+ EOF
+
+ use systemd && systemd_dounit "${FILESDIR}/clamav-milter.service"
+ fi
+
+ for i in clamd freshclam clamav-milter
+ do
+ [[ -f "${D}"/etc/"${i}".conf.sample ]] && mv "${D}"/etc/"${i}".conf{.sample,}
+ done
+
+ prune_libtool_files --all
+}
+
+pkg_postinst() {
+ 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
+ if test -z $(find "${ROOT}"var/lib/clamav -maxdepth 1 -name 'main.c*' -print -quit) ; then
+ ewarn "You must run freshclam manually to populate the virus database files"
+ ewarn "before starting clamav for the first time.\n"
+ fi
+}
diff --git a/app-antivirus/clamav/files/clamav-0.97-nls.patch b/app-antivirus/clamav/files/clamav-0.97-nls.patch
new file mode 100644
index 00000000..6ca0c0e9
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-0.97-nls.patch
@@ -0,0 +1,11 @@
+--- clamav-0.97/shared/output.c.orig
++++ clamav-0.97/shared/output.c
+@@ -63,7 +63,7 @@
+ pthread_mutex_t mdprintf_mutex = PTHREAD_MUTEX_INITIALIZER;
+ #endif
+
+-#ifdef C_LINUX
++#if defined(C_LINUX) && defined(HAVE_LIBINTL_H)
+ #include <libintl.h>
+ #include <locale.h>
+
diff --git a/app-antivirus/clamav/files/clamav-milter.README.gentoo b/app-antivirus/clamav/files/clamav-milter.README.gentoo
new file mode 100644
index 00000000..17e9ba62
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-milter.README.gentoo
@@ -0,0 +1,44 @@
+Nick Hadaway <raker@gentoo.org>
+Updated by Andrea Barisani <lcars@gentoo.org>
+18/05/2004
+
+Setting up clamav-milter on Gentoo Linux
+
+Step 1 - Configure clamd
+
+Check /etc/clamd.conf, default values should work out of the box but
+read and understand all the options especially if you are going to
+use it on production boxes.
+
+Step 2 - Tell the init script to start clamd as well as freshclam and the
+ milter itself.
+
+ nano -w /etc/conf.d/clamd
+
+ START_CLAMD=yes
+ START_FRESHCLAM=yes
+ START_MILTER=yes
+
+Step 3 - Edit sendmail.mc
+
+ Add these lines to sendmail.mc before any any other
+ INPUT_MAIL_FILTER lines and before MAILER(local)
+ NOTE: ANY INPUT_MAIL_FILTER definitions put before these lines
+ will be discarded due to the use of confINPUT_MAIL_FILTERS
+ Make this your first mail filter. :)
+
+ INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
+ define(`confINPUT_MAIL_FILTERS', `clmilter')dnl
+
+Step 4 - Rebuild sendmail.cf
+
+ cd /etc/mail
+ m4 sendmail.mc > sendmail.cf
+
+Step 5 - Start clamad
+
+ /etc/init.d/clamd start
+
+Step 6 - Restart sendmail
+
+ /etc/init.d/sendmail restart
diff --git a/app-antivirus/clamav/files/clamav-milter.service b/app-antivirus/clamav/files/clamav-milter.service
new file mode 100644
index 00000000..5a1a24fa
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-milter.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Milter module for the ClamAV scanner
+After=nss-lookup.target network.target
+Before=sendmail.service
+Before=postfix.service
+
+[Service]
+ExecStart=/usr/sbin/clamav-milter -c /etc/clamav-milter.conf --nofork=yes
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-antivirus/clamav/files/clamav.logrotate b/app-antivirus/clamav/files/clamav.logrotate
new file mode 100644
index 00000000..12c77e02
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav.logrotate
@@ -0,0 +1,15 @@
+/var/log/clamav/clamd.log {
+ missingok
+ postrotate
+ /etc/init.d/clamd logfix
+ /bin/kill -HUP `cat /var/run/clamav/clamd.pid 2> /dev/null` 2>/dev/null || true
+ endscript
+}
+
+/var/log/clamav/freshclam.log {
+ missingok
+ postrotate
+ /etc/init.d/clamd logfix
+ /bin/kill -HUP `cat /var/run/clamav/freshclam.pid 2> /dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/app-antivirus/clamav/files/clamd.conf b/app-antivirus/clamav/files/clamd.conf
new file mode 100644
index 00000000..ee055138
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.conf
@@ -0,0 +1,9 @@
+# Config file for /etc/init.d/clamd
+
+# NOTICE: Since clamav-0.85-r1, only START_CLAMD and START_FRESHCLAM settings
+# are used, other are silently ignored
+
+START_CLAMD=yes
+START_FRESHCLAM=yes
+CLAMD_NICELEVEL=3
+FRESHCLAM_NICELEVEL=19
diff --git a/app-antivirus/clamav/files/clamd.conf-r1 b/app-antivirus/clamav/files/clamd.conf-r1
new file mode 100644
index 00000000..de95554e
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.conf-r1
@@ -0,0 +1,7 @@
+# Config file for /etc/init.d/clamd
+
+START_CLAMD=yes
+START_FRESHCLAM=yes
+CLAMD_NICELEVEL=3
+FRESHCLAM_NICELEVEL=19
+IONICE_LEVEL=2
diff --git a/app-antivirus/clamav/files/clamd.initd-r3 b/app-antivirus/clamav/files/clamd.initd-r3
new file mode 100755
index 00000000..d1ad2e2a
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.initd-r3
@@ -0,0 +1,121 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/files/clamd.initd-r3,v 1.1 2013/03/01 08:18:17 eras Exp $
+
+daemon_clamd="/usr/sbin/clamd"
+daemon_freshclam="/usr/bin/freshclam"
+daemon_milter="/usr/sbin/clamav-milter"
+
+extra_commands="logfix"
+
+depend() {
+ use net
+ provide antivirus
+}
+
+get_config() {
+ clamconf | sed 's/["=]//g' | \
+ awk "{
+ if(\$0==\"Config file: $1.conf\") S=1
+ if(S==1&&\$0==\"\") {
+ print \"$3\"
+ exit
+ }
+ if(S==1&&\$1~\"^$2\$\") {
+ print \$2!=\"disabled\"?\$2:\"$3\"
+ exit
+ }
+ }"
+}
+
+start() {
+ local clamd_socket=$(get_config clamd LocalSocket /var/run/clamav/clamd.sock)
+ local clamd_user=$(get_config clamd User clamav)
+ local freshclam_user=$(get_config freshclam DatabaseOwner clamav)
+ logfix
+
+ if [ "${START_CLAMD}" = "yes" ]; then
+ checkpath --quiet --mode 755 \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --directory `dirname ${clamd_socket}`
+ if [ -S "${clamd_socket}" ]; then
+ rm -f ${clamd_socket}
+ fi
+ ebegin "Starting clamd"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${CLAMD_NICELEVEL:-0} \
+ --exec ${daemon_clamd}
+ eend $? "Failed to start clamd"
+ fi
+
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ ebegin "Starting freshclam"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${FRESHCLAM_NICELEVEL:-0} \
+ --exec ${daemon_freshclam} -- -d
+ retcode=$?
+ if [ ${retcode} = 1 ]; then
+ eend 0
+ einfo "Virus databases are already up to date."
+ else
+ eend ${retcode} "Failed to start freshclam"
+ fi
+ fi
+
+ if [ "${START_MILTER}" = "yes" ]; then
+ if [ -z "${MILTER_CONF_FILE}" ]; then
+ MILTER_CONF_FILE="/etc/clamav-milter.conf"
+ fi
+
+ ebegin "Starting clamav-milter"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${MILTER_NICELEVEL:-0} \
+ --exec ${daemon_milter} -- -c ${MILTER_CONF_FILE}
+ eend $? "Failed to start clamav-milter"
+ fi
+}
+
+stop() {
+ if [ "${START_CLAMD}" = "yes" ]; then
+ ebegin "Stopping clamd"
+ start-stop-daemon --stop --quiet --name clamd
+ eend $? "Failed to stop clamd"
+ fi
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ ebegin "Stopping freshclam"
+ start-stop-daemon --stop --quiet --name freshclam
+ eend $? "Failed to stop freshclam"
+ fi
+ if [ "${START_MILTER}" = "yes" ]; then
+ ebegin "Stopping clamav-milter"
+ start-stop-daemon --stop --quiet --name clamav-milter
+ eend $? "Failed to stop clamav-milter"
+ fi
+}
+
+logfix() {
+ if [ "${START_CLAMD}" = "yes" ]; then
+ # fix clamd log permissions
+ # (might be clobbered by logrotate or something)
+ local logfile=$(get_config clamd LogFile)
+ if [ -n "${logfile}" ]; then
+ checkpath --quiet \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --mode 640 \
+ --file ${logfile}
+ fi
+ fi
+
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ # fix freshclam log permissions
+ # (might be clobbered by logrotate or something)
+ local logfile=$(get_config freshclam UpdateLogFile)
+ if [ -n "${logfile}" ]; then
+ checkpath --quiet \
+ --owner "${freshclam_user}":"${freshclam_user}" \
+ --mode 640 \
+ --file ${logfile}
+ fi
+ fi
+}
diff --git a/app-antivirus/clamav/files/clamd.initd-r5 b/app-antivirus/clamav/files/clamd.initd-r5
new file mode 100755
index 00000000..71d3a546
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.initd-r5
@@ -0,0 +1,126 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/files/clamd.initd-r5,v 1.2 2013/04/16 05:52:39 eras Exp $
+
+daemon_clamd="/usr/sbin/clamd"
+daemon_freshclam="/usr/bin/freshclam"
+daemon_milter="/usr/sbin/clamav-milter"
+
+extra_commands="logfix"
+
+depend() {
+ use net
+ provide antivirus
+}
+
+get_config() {
+ clamconf | sed 's/["=]//g' | \
+ awk "{
+ if(\$0==\"Config file: $1.conf\") S=1
+ if(S==1&&\$0==\"\") {
+ print \"$3\"
+ exit
+ }
+ if(S==1&&\$1~\"^$2\$\") {
+ print \$2!=\"disabled\"?\$2:\"$3\"
+ exit
+ }
+ }"
+}
+
+start() {
+ # populate variables and fix log file permissions
+ logfix
+
+ if [ "${START_CLAMD}" = "yes" ]; then
+ checkpath --quiet --mode 755 \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --directory `dirname ${clamd_socket}`
+ if [ -S "${clamd_socket}" ]; then
+ rm -f ${clamd_socket}
+ fi
+ ebegin "Starting clamd"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${CLAMD_NICELEVEL:-0} \
+ --exec ${daemon_clamd}
+ eend $? "Failed to start clamd"
+ fi
+
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ checkpath --quiet --mode 755 \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --directory `dirname ${clamd_socket}`
+ ebegin "Starting freshclam"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${FRESHCLAM_NICELEVEL:-0} \
+ --exec ${daemon_freshclam} -- -d
+ retcode=$?
+ if [ ${retcode} = 1 ]; then
+ eend 0
+ einfo "Virus databases are already up to date."
+ else
+ eend ${retcode} "Failed to start freshclam"
+ fi
+ fi
+
+ if [ "${START_MILTER}" = "yes" ]; then
+ if [ -z "${MILTER_CONF_FILE}" ]; then
+ MILTER_CONF_FILE="/etc/clamav-milter.conf"
+ fi
+
+ ebegin "Starting clamav-milter"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${MILTER_NICELEVEL:-0} \
+ --exec ${daemon_milter} -- -c ${MILTER_CONF_FILE}
+ eend $? "Failed to start clamav-milter"
+ fi
+}
+
+stop() {
+ if [ "${START_CLAMD}" = "yes" ]; then
+ ebegin "Stopping clamd"
+ start-stop-daemon --stop --quiet --name clamd
+ eend $? "Failed to stop clamd"
+ fi
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ ebegin "Stopping freshclam"
+ start-stop-daemon --stop --quiet --name freshclam
+ eend $? "Failed to stop freshclam"
+ fi
+ if [ "${START_MILTER}" = "yes" ]; then
+ ebegin "Stopping clamav-milter"
+ start-stop-daemon --stop --quiet --name clamav-milter
+ eend $? "Failed to stop clamav-milter"
+ fi
+}
+
+logfix() {
+ clamd_socket=$(get_config clamd LocalSocket /var/run/clamav/clamd.sock)
+ clamd_user=$(get_config clamd User clamav)
+ freshclam_user=$(get_config freshclam DatabaseOwner clamav)
+
+ if [ "${START_CLAMD}" = "yes" ]; then
+ # fix clamd log permissions
+ # (might be clobbered by logrotate or something)
+ local logfile=$(get_config clamd LogFile)
+ if [ -n "${logfile}" ]; then
+ checkpath --quiet \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --mode 640 \
+ --file ${logfile}
+ fi
+ fi
+
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ # fix freshclam log permissions
+ # (might be clobbered by logrotate or something)
+ local logfile=$(get_config freshclam UpdateLogFile)
+ if [ -n "${logfile}" ]; then
+ checkpath --quiet \
+ --owner "${freshclam_user}":"${freshclam_user}" \
+ --mode 640 \
+ --file ${logfile}
+ fi
+ fi
+}
diff --git a/app-antivirus/clamav/files/clamd.initd-r6 b/app-antivirus/clamav/files/clamd.initd-r6
new file mode 100755
index 00000000..27462dc5
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.initd-r6
@@ -0,0 +1,129 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/files/clamd.initd-r6,v 1.1 2013/09/27 16:04:14 eras Exp $
+
+daemon_clamd="/usr/sbin/clamd"
+daemon_freshclam="/usr/bin/freshclam"
+daemon_milter="/usr/sbin/clamav-milter"
+
+extra_commands="logfix"
+
+depend() {
+ use net
+ provide antivirus
+}
+
+get_config() {
+ clamconf | sed 's/["=]//g' | \
+ awk "{
+ if(\$0==\"Config file: $1.conf\") S=1
+ if(S==1&&\$0==\"\") {
+ print \"$3\"
+ exit
+ }
+ if(S==1&&\$1~\"^$2\$\") {
+ print \$2!=\"disabled\"?\$2:\"$3\"
+ exit
+ }
+ }"
+}
+
+start() {
+ # populate variables and fix log file permissions
+ logfix
+
+ if [ "${START_CLAMD}" = "yes" ]; then
+ checkpath --quiet --mode 755 \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --directory `dirname ${clamd_socket}`
+ if [ -S "${clamd_socket}" ]; then
+ rm -f ${clamd_socket}
+ fi
+ ebegin "Starting clamd"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${CLAMD_NICELEVEL:-0} \
+ --ionice ${IONICE_LEVEL:-0} \
+ --exec ${daemon_clamd}
+ eend $? "Failed to start clamd"
+ fi
+
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ checkpath --quiet --mode 755 \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --directory `dirname ${clamd_socket}`
+ ebegin "Starting freshclam"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${FRESHCLAM_NICELEVEL:-0} \
+ --ionice ${IONICE_LEVEL:-0} \
+ --exec ${daemon_freshclam} -- -d
+ retcode=$?
+ if [ ${retcode} = 1 ]; then
+ eend 0
+ einfo "Virus databases are already up to date."
+ else
+ eend ${retcode} "Failed to start freshclam"
+ fi
+ fi
+
+ if [ "${START_MILTER}" = "yes" ]; then
+ if [ -z "${MILTER_CONF_FILE}" ]; then
+ MILTER_CONF_FILE="/etc/clamav-milter.conf"
+ fi
+
+ ebegin "Starting clamav-milter"
+ start-stop-daemon --start --quiet \
+ --nicelevel ${MILTER_NICELEVEL:-0} \
+ --ionice ${IONICE_LEVEL:-0} \
+ --exec ${daemon_milter} -- -c ${MILTER_CONF_FILE}
+ eend $? "Failed to start clamav-milter"
+ fi
+}
+
+stop() {
+ if [ "${START_CLAMD}" = "yes" ]; then
+ ebegin "Stopping clamd"
+ start-stop-daemon --stop --quiet --name clamd
+ eend $? "Failed to stop clamd"
+ fi
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ ebegin "Stopping freshclam"
+ start-stop-daemon --stop --quiet --name freshclam
+ eend $? "Failed to stop freshclam"
+ fi
+ if [ "${START_MILTER}" = "yes" ]; then
+ ebegin "Stopping clamav-milter"
+ start-stop-daemon --stop --quiet --name clamav-milter
+ eend $? "Failed to stop clamav-milter"
+ fi
+}
+
+logfix() {
+ clamd_socket=$(get_config clamd LocalSocket /var/run/clamav/clamd.sock)
+ clamd_user=$(get_config clamd User clamav)
+ freshclam_user=$(get_config freshclam DatabaseOwner clamav)
+
+ if [ "${START_CLAMD}" = "yes" ]; then
+ # fix clamd log permissions
+ # (might be clobbered by logrotate or something)
+ local logfile=$(get_config clamd LogFile)
+ if [ -n "${logfile}" ]; then
+ checkpath --quiet \
+ --owner "${clamd_user}":"${clamd_user}" \
+ --mode 640 \
+ --file ${logfile}
+ fi
+ fi
+
+ if [ "${START_FRESHCLAM}" = "yes" ]; then
+ # fix freshclam log permissions
+ # (might be clobbered by logrotate or something)
+ local logfile=$(get_config freshclam UpdateLogFile)
+ if [ -n "${logfile}" ]; then
+ checkpath --quiet \
+ --owner "${freshclam_user}":"${freshclam_user}" \
+ --mode 640 \
+ --file ${logfile}
+ fi
+ fi
+}
diff --git a/app-antivirus/clamav/files/clamd.service b/app-antivirus/clamav/files/clamd.service
new file mode 100644
index 00000000..efdab431
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.service
@@ -0,0 +1,7 @@
+.include /usr/lib/systemd/system/clamd@.service
+
+[Unit]
+Description=Generic ClamAV scanner daemon
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-antivirus/clamav/files/clamd_at.service b/app-antivirus/clamav/files/clamd_at.service
new file mode 100644
index 00000000..c5ad8dfa
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd_at.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=clamd scanner (%i) daemon
+After=nss-lookup.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/clamd -c /etc/clamd%i.conf
+Restart=on-failure
+PrivateTmp=true
diff --git a/app-antivirus/clamav/files/freshclamd.service b/app-antivirus/clamav/files/freshclamd.service
new file mode 100644
index 00000000..ebf7b1ad
--- /dev/null
+++ b/app-antivirus/clamav/files/freshclamd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=clamav updater
+
+[Service]
+Type=forking
+PIDFile=/var/run/clamav/freshclam.pid
+ExecStart=/usr/bin/freshclam -d -p /var/run/clamav/freshclam.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-antivirus/clamav/files/tmpfiles.d/clamav.conf b/app-antivirus/clamav/files/tmpfiles.d/clamav.conf
new file mode 100644
index 00000000..146df715
--- /dev/null
+++ b/app-antivirus/clamav/files/tmpfiles.d/clamav.conf
@@ -0,0 +1 @@
+d /var/run/clamav 0710 clamav clamav