summaryrefslogtreecommitdiff
path: root/app-antivirus/clamav
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-10-20 10:22:14 +0100
committerV3n3RiX <venerix@koprulu.sector>2021-10-20 10:22:14 +0100
commit46eedbedafdb0040c37884982d4c775ce277fb7b (patch)
treedb33a91259730be84999e13a8d8168c799f50ac0 /app-antivirus/clamav
parente23a08d0c97a0cc415aaa165da840b056f93c997 (diff)
gentoo resync : 20.10.2021
Diffstat (limited to 'app-antivirus/clamav')
-rw-r--r--app-antivirus/clamav/Manifest11
-rw-r--r--app-antivirus/clamav/clamav-0.104.0-r1.ebuild207
-rw-r--r--app-antivirus/clamav/files/clamav-0.104.0-ncurses_detection.patch27
-rwxr-xr-xapp-antivirus/clamav/files/clamav-milter.initd34
-rw-r--r--app-antivirus/clamav/files/clamav-milter.service-0.104.013
-rwxr-xr-xapp-antivirus/clamav/files/clamd.initd33
-rw-r--r--app-antivirus/clamav/files/clamd_at.service-0.104.012
-rwxr-xr-xapp-antivirus/clamav/files/clamonacc.initd18
-rwxr-xr-xapp-antivirus/clamav/files/freshclam.initd8
-rw-r--r--app-antivirus/clamav/metadata.xml44
10 files changed, 385 insertions, 22 deletions
diff --git a/app-antivirus/clamav/Manifest b/app-antivirus/clamav/Manifest
index 1c9110c9a376..716d13e996e6 100644
--- a/app-antivirus/clamav/Manifest
+++ b/app-antivirus/clamav/Manifest
@@ -2,15 +2,24 @@ AUX clamav-0.102.1-libxml2_pkgconfig.patch 4012 BLAKE2B 4c3e4fc3522d317c57bae942
AUX clamav-0.102.2-fix-curl-detection.patch 844 BLAKE2B a813b1f6003b9cff03fca8d72dbd44d6a4f700e3d60aee83f782a87893a3c6753698ca8715237155185660301dd81dc55bf6a6e3b9095f57b099607182c90bf5 SHA512 27e6aa5ad418eaa32b56ea7bbdab0b5b4cd649e55d34eb094b5f02d7e68d8913f39664ffd6bc4a07faf88f60bdbd15b0c381fbbd6d9c1c62cc36e72e34cabd19
AUX clamav-0.103.0-system-tomsfastmath.patch 3725 BLAKE2B 85640ded83600adfdcc03e8f42e3153c71a8b6c5884ca4cbd79a69121943fd171bc528aed26ded895189293008924cef6762a22001b4ee098fe5f680c7619bf0 SHA512 b67df39bc7d60f6ea9bb06d12413f0e4774185d4f020a68bdfdf8fe1ca669f70a62699b0f1100702af5ec47e460a35625dcaa09cfc6ea6d2f3957de227e87306
AUX clamav-0.103.1-upstream-openrc.patch 18249 BLAKE2B 305db3181a4a22acde5b28cef6c2d01b639be8c5b9e9c77737be1ebcb0553040b6eda117285e3e8b4bf06d2565a5d73225d7ce20ba1f115fd08bc822d779b370 SHA512 89e95057ee2f29bcdf5787f659ffe43b055b599d9bb80bf54794859113d760dad135b5b8d80c23e98f8c6b699dc839d4922c4c3b45edf97296f4eea668e62672
+AUX clamav-0.104.0-ncurses_detection.patch 906 BLAKE2B 9e1bd5814f0da5126fb9d8d34c2146c9cf9a6ca6e7ff2c574585f9df04c7f68f78ce8cc618cb346b9cdb545f78e938623adef642dd4b93961b2cf12047cdae5a SHA512 52d84cbe920e2dbdf4f6da26fe0ddc58596c0aa7e057cdd93407276847499269605e5a9db5fa61ab945b179a102c8d57930bad715cc595ebfb11ed7ba319d618
AUX clamav-milter.README.gentoo 2284 BLAKE2B 7afc18f3dad57c2d7595257b356943efb3d1af28d55ac8f09f0506430fd0dedf0820906ced666a7237e3af44a9bc1b43fff017c03faad844f96b132ca4c5dde6 SHA512 38eadf2d919a0c48345600ea5a39c90e766b62e8b1ffc7bb01969a8fd93c4545f2030058a470ac7efb75a1d6c74f9930438f58aeff5035e19e38241ed381f7b3
+AUX clamav-milter.initd 1164 BLAKE2B 190dee3476f8763dc2498e2099e6afa83c36642298618ad959940771e73c07456e30e6319d649291c82fec49e3712e500a65b167fe91b12bd2758f79f040e1c3 SHA512 d21c60e7d3ee5eee65da18831eed905858a1c7ab4ec02de1c16fa36179d9c1cf517eca8402b872f3d995fa1d59a9b2e79994655ca4570370b40dc810af5e0a3d
AUX clamav-milter.logrotate-r1 1103 BLAKE2B b506a07f6ebdf697f87060424368ce4e4085564c3fa8e8cc4780ba786f2f543ae51a6e0f9d04db9ea9eb5554c1e395592453235db5abcc243fd2523cb44adec2 SHA512 890744086dcd8d6f7eba0f49df0941c643c6d730ea27a660ecaaab50c51c931489fa25079ad1aa9e307f919ac98a4e5d6b2e952cc46dcea8322b3253c6ba07b1
+AUX clamav-milter.service-0.104.0 310 BLAKE2B 53b0ef9eb34eacbc11e71f857ac944050e0f41c58e633c04c56f28079a7aad84d7ac7625b637b1aa67f61a4e8556bee57fb19e650b19162a8160336f36e34330 SHA512 37d2654fb436935f67bea821ef76d3cd1d4fc7af997f624226180663d88808d5c479eccaad4730ff723c8f30d3d36b551eacb10195dd94547136fed8fa1451a3
AUX clamav-milter.service-r1 303 BLAKE2B 55253d9a660699411e352bc80837add840dc6740afed4fe64a86def84610cad836ea3ea620664f540f242b917aab560201cca9c33b9fbc9b1cef2c8b29bfce36 SHA512 5dc30e3c57d9bff6595155e8299336c579c713aed429ab770f10d7678dd74691a135aa2070a825ddb726fdabcb001c19caeb993c1cd9a6fcf95d1d47f7160540
+AUX clamd.initd 918 BLAKE2B 68391c381004d57d9563b503f702699d27980e4fc5e052ac5c86841e99bf37b19ecf1dbfa2a141352c584578f4873b35460376a9a99e2a6623a2d9f476e3f48d SHA512 9a1b803562d4f9c08d5d79c54677aad43898b4c6e97f22ef27d866c74ee2b611e6ae476a43d9accb0e6e8a02c2ab0d09bd779d3b1e8de36d9980e3e00affe559
AUX clamd.logrotate 603 BLAKE2B f39f5938f8fca2d2820d86c8dc144dca0216468a3cfd7dcd84c794d9402e3978da254684053eab108d71263a75266a96f2b6f5e0c635a2b5b0a1a50068920bde SHA512 e9689c99e37a1f2814497e4df19bd760dd94b6134be72341dd3b7f6e5f67505cda913367a5e80873ae601c88a9d7aa994733b8ac7017a6d0aa62d2170845df37
AUX clamd.service 202 BLAKE2B 4d02132cdb44a7155e881037b45bab28f42445808d1d3ff5821e9b179b31efd7d5f217fb968efa17e77f6e0739f0258c4c49656283177a0f5b3d572490259bcd SHA512 799d3f33ca69841882f86f6853dd0dc6d8af73db8cfa5ce6dd6c873c5e7bc07d29bfe0f85cfb77edf2b0d8c05de73988d06148b993996ce639c5d0eeac908647
AUX clamd_at.service 228 BLAKE2B 85181b02329a86495d0737308417dd873424da0bb1cd376725e7857b8b911c841df89ce63ed665a1d0ca6d30f9456c9d47c370b36a2cf8df1e2f3f520d121fe0 SHA512 69a0ca31a7288b5494d8c85ce5ff859a8f34b8a93f573eded90c270099ecac30e01d8549a07a160d74bfdc3c5401c3fd625b178080ea2c02520aab91252739e7
+AUX clamd_at.service-0.104.0 235 BLAKE2B 014d7346f45af2e42ade2a79c48fd4fd7314250aa6f6cd9e2a856fa0d7f176e90a292c56d28e8eec7b1c7628dc2701eb58f6e7ef23fd19315c8d0146114b111a SHA512 57f0292354751c0e35e7e3acff17e78ba84b2cdb4f0d64331d6e70a935d607f425ae44a22b456cc3113ae72bff4d8bd0b729693c87359e91f9b91f12856c7e0b
+AUX clamonacc.initd 437 BLAKE2B 230e8977659304cd78f280653b0e4d3fe88cb0571f98bc23b89f2394dc090f2343b33d5ecfdfec450606a0f39e97fb0516186fb367d7ba0ba3e961b96e813e36 SHA512 9713f7d5d4c1bb92e4dd456ba576fd810ddccb4352a861083d33e95692e0d76f0fcde82db6759e522f21ef37e9969cf10621ae876bd9d3f28d0d47d614308e93
+AUX freshclam.initd 202 BLAKE2B 3bc294930984b779b032d40f9dd5063fb168a096cd45ef43cbc42e1ae187c1add0c69303e616ade147633c45d2a980ad73adc25aeb04cb68ed4c41a54b88f551 SHA512 5cb65021b12756560aabb0df5a8223cd7d019471909c010096c2cf07b4b90b34622d7838c15807b0c66017177a98d056b4bab22053cb0cfd0b2071d599646fc3
AUX freshclam.logrotate 631 BLAKE2B d5100e4f80227d3cda00193eb7a065f766d6b7b0c54ef58ad646fc7692cd4c6e572e053d368ba78c62c27cd3e1db111822208d29ecad67d10be7d5957d6622f3 SHA512 43838241c66bdf167105b25967576a568e0661e5b3292d24d3028837353280b03ffd1ea6adbbcbc152e50bc25f77357af42bbf3dd70817cf2cf02258ca0fe611
AUX freshclamd.service-r1 177 BLAKE2B 8c9304e8c43e03288dcb1c6897b53e7c36b6e6116bb5c43db1e9735cc5d7b50094d33679d2b42839a09c572ad631daf572f62c57e4a7b74bfad5ce40a5916364 SHA512 5243465d30de1e64697455b3af50f62e6d7f3d0df7e2ef9b60f89dc974d8118ff67df0b44fbbddd04dd196ca17cf4306ac99f1eec42a5a0ddd42a64c4cb992c8
AUX tmpfiles.d/clamav.conf 33 BLAKE2B 447c5ad4ad79bc70fc386833fa763451d30bf30f1ae26434039a3926ca5aae9734e0152c83b5b9aa5bed87b17c1b685c4ea9f41c9cb6b3197b1e78e800b71fd9 SHA512 eabe5a94c2679b82ea3e29272eb448b47e60b271381d3e97f3970b1a9e086d61662aff2d29887950a911025294aa7cea8bfd9003d257963566b251bcaeb5f6b2
DIST clamav-0.103.3.tar.gz 13389239 BLAKE2B 1846cceed39fbd48fcf973d05a57901cf6f9ccdbb4d7eae501e712d84ab4d0a662e4477696aa6a1446116db85a89603428d7092a55e18f7acb805016d3cd5431 SHA512 c2ee24a6f63735c064140aa5baa347d51e8240b2f7eced3480d05435202aedd481fa7057fd40ecbc2e93a62fe8b0cefb574d8accdf9acede643ffbe0d396686f
+DIST clamav-0.104.0.tar.gz 11896747 BLAKE2B c3ca32c1277052301a8bff94fec66a2df8f589bc9a673a00d0f45aaf9d8fd23e8bb87dde787d4188a6318d6677c3364e377ccec16d8e44667430713ce7e2a78d SHA512 7a052e6310ef92068acc384d10a64eed6d54d2d408d203dab92defbb1a276e8a193a2096a8028c8982323ba0be83d25602f026aeffa056878ce36aa325c0046c
EBUILD clamav-0.103.3-r1.ebuild 7405 BLAKE2B 48038b8bb6c1b1f045b24ae7d955226389a121604e2e4212c6eb81ce6c9aa9eea2a4ecd7d82409d2cf01dfc4c6fedee5d7188a6dbd9f0cd88546b6a35facd51c SHA512 0f19466145c340ddf7473876443c18e10b73b607c3b8b48bda31ad0740fa0835d2f21fd546bb7e9facb03fab2f792ab2343c9965064b6a17eca9eaafcb8d6fe6
-MISC metadata.xml 1060 BLAKE2B 77fa5fa0a2d6bd96b1ec797d42f7f626decf3c98c1563e87af503268f4f09d0a01f38651174546dd835476b635ae5a6a0535acd06849f58c2bbf41993d8a7ffc SHA512 334cc919ca47d8045ab61193e39f7dbf86a58d7619a193ed31da5cd5f82c99c2af210790d75f60f9951097915fa6805f5aa79f90efb3551322c9f0e54fc68e99
+EBUILD clamav-0.104.0-r1.ebuild 6531 BLAKE2B 9923cbb70a35a4a720c2034d610806614254fdad24fcb5accced8d1b0884eaf38e074e1d090f300145ca2de22894eda1a9d6fc55099adcc987ea5d8067618512 SHA512 9f233777906a7492ec18f2cedee16dbc578bbf808a64255a71a9d9c309d1675a1f6160df536d1000513b57883b7627917c6e8e1855953ac2762c424be9e3ccd2
+MISC metadata.xml 1287 BLAKE2B 75d0e2ee639919863a0b12951c04f6338fab836812a930b5cae82adc9546f0d9115c1c12a233b08e7bcf1810b38f8d0c119ee44a7640ade191f9bdb5c2bdf759 SHA512 2ef5d16db72356b72cfe6334b5a9b6c6e4d491ab445debbf9433d44c843e27d03aade9cc49a4fcad151ecfbb3dc4d99903e5a27eac8954991822eca3bad2b6c0
diff --git a/app-antivirus/clamav/clamav-0.104.0-r1.ebuild b/app-antivirus/clamav/clamav-0.104.0-r1.ebuild
new file mode 100644
index 000000000000..ee0e19b95004
--- /dev/null
+++ b/app-antivirus/clamav/clamav-0.104.0-r1.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake flag-o-matic systemd tmpfiles
+
+DESCRIPTION="Clam Anti-Virus Scanner"
+HOMEPAGE="https://www.clamav.net/"
+SRC_URI="https://www.clamav.net/downloads/production/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc clamonacc +clamapp libclamav-only milter rar selinux systemd test"
+
+REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
+ clamonacc? ( clamapp )
+ milter? ( clamapp )
+ test? ( !libclamav-only )"
+
+RESTRICT="!test? ( test )"
+
+# Require acct-{user,group}/clamav at build time so that we can set
+# the permissions on /var/lib/clamav in src_install rather than in
+# pkg_postinst; calling "chown" on the live filesystem scares me.
+CDEPEND="acct-group/clamav
+ acct-user/clamav
+ dev-libs/libltdl
+ dev-libs/libmspack
+ dev-libs/json-c:=
+ dev-libs/libpcre2
+ >=sys-libs/zlib-1.2.2:=
+ app-arch/bzip2
+ clamapp? ( sys-libs/ncurses:= net-misc/curl )
+ elibc_musl? ( sys-libs/fts-standalone )
+ virtual/libiconv
+ !libclamav-only? ( net-misc/curl )
+ dev-libs/openssl:=
+ milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
+ dev-libs/libxml2
+ rar? ( app-arch/unrar )
+ test? ( dev-python/pytest )"
+# TODO: there is no way to use this with the new build system instead of the bundled one
+# dev-libs/tomsfastmath
+BDEPEND="virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+DEPEND="${CDEPEND}
+ test? ( dev-libs/check )"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-clamav )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.104.0-ncurses_detection.patch"
+)
+
+src_configure() {
+ use elibc_musl && append-ldflags -lfts
+ use ppc64 && append-flags -mminimal-toc
+ use elibc_uclibc && export ac_cv_type_error_t=yes
+
+ local mycmakeargs=(
+ -DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
+ -DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
+ -DENABLE_EXPERIMENTAL=OFF
+ -DENABLE_JSON_SHARED=ON
+ -DENABLE_APP=$(usex clamapp ON OFF)
+ -DENABLE_MILTER=$(usex milter ON OFF)
+ -DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
+ -DCLAMAV_USER="clamav"
+ -DCLAMAV_GROUP="clamav"
+ -DBYTECODE_RUNTIME=interpreter
+ -DOPTIMIZE=ON
+ -DENABLE_EXTERNAL_MSPACK=ON
+ -DENABLE_MAN_PAGES=ON
+ -DENABLE_DOXYGEN=$(usex doc)
+ -DENABLE_UNRAR=$(usex rar ON OFF)
+ -DENABLE_TESTS=$(usex test ON OFF)
+ -DENABLE_STATIC_LIB=OFF
+ -DENABLE_SHARED_LIB=ON
+ -DENABLE_SYSTEMD=$(usex systemd ON OFF)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # init scripts
+ newinitd "${FILESDIR}/clamd.initd" clamd
+ newinitd "${FILESDIR}/freshclam.initd" freshclam
+ use clamonacc && \
+ newinitd "${FILESDIR}/clamonacc.initd" clamonacc
+ use milter && \
+ newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
+
+ rm -rf "${ED}"/var/lib/clamav || die
+
+ if ! use libclamav-only ; then
+ if use systemd ; then
+ # The tmpfiles entry is behind USE=systemd because the
+ # upstream OpenRC service files should (and do) ensure that
+ # the directories they need exist and have the correct
+ # permissions without the help of opentmpfiles. There are
+ # years-old root exploits in opentmpfiles, the design is
+ # fundamentally flawed, and the maintainer is not up to
+ # the task of fixing it.
+ dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
+ systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
+ systemd_dounit "${FILESDIR}/clamd.service"
+ systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
+ "freshclamd.service"
+ fi
+
+ if use clamapp ; then
+ # Modify /etc/{clamd,freshclam}.conf to be usable out of the box
+ sed -e "s:^\(Example\):\# \1:" \
+ -e "s/^#\(PidFile .*\)/\1/" \
+ -e "s/^#\(LocalSocket .*\)/\1/" \
+ -e "s/^#\(User .*\)/\1/" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
+ -e "s:^\#\(LogTime\).*:\1 yes:" \
+ -e "s/^#\(DatabaseDirectory .*\)/\1/" \
+ "${ED}"/etc/clamav/clamd.conf.sample > \
+ "${ED}"/etc/clamav/clamd.conf || die
+
+ sed -e "s:^\(Example\):\# \1:" \
+ -e "s/^#\(PidFile .*\)/\1/" \
+ -e "s/^#\(DatabaseOwner .*\)/\1/" \
+ -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/^#\(DatabaseDirectory .*\)/\1/" \
+ "${ED}"/etc/clamav/freshclam.conf.sample > \
+ "${ED}"/etc/clamav/freshclam.conf || die
+
+ if use milter ; then
+ # Note: only keep the "unix" ClamdSocket and MilterSocket!
+ sed -e "s:^\(Example\):\# \1:" \
+ -e "s/^#\(PidFile .*\)/\1/" \
+ -e "s/^#\(ClamdSocket unix:.*\)/\1/" \
+ -e "s/^#\(User .*\)/\1/" \
+ -e "s/^#\(MilterSocket unix:.*\)/\1/" \
+ -e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
+ "${ED}"/etc/clamav/clamav-milter.conf.sample > \
+ "${ED}"/etc/clamav/clamav-milter.conf || die
+
+ systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
+ fi
+
+ local i
+ for i in clamd freshclam clamav-milter
+ do
+ if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
+ mv "${ED}"/etc/"${i}".conf{.sample,} || die
+ fi
+ done
+
+ # These both need to be writable by the clamav user.
+ # TODO: use syslog by default; that's what it's for.
+ diropts -o clamav -g clamav
+ keepdir /var/lib/clamav
+ keepdir /var/log/clamav
+ fi
+ fi
+
+ if use doc ; then
+ local HTML_DOCS=( docs/html/. )
+ einstalldocs
+ fi
+
+ # Don't install man pages for utilities we didn't install
+ if use libclamav-only ; then
+ rm -r "${ED}"/usr/share/man || die
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+}
+
+src_test() {
+ emake quick-check
+}
+
+pkg_postinst() {
+ if ! use libclamav-only ; then
+ if use systemd ; then
+ tmpfiles_process clamav.conf
+ fi
+ fi
+
+ 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
+
+ local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
+ if [[ ! -f "${databases}" ]] ; then
+ ewarn "You must run freshclam manually to populate the virus database"
+ ewarn "before starting clamav for the first time."
+ fi
+
+ ewarn "This version of ClamAV provides separate OpenRC services"
+ ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
+ ewarn "clamd service now starts only the clamd daemon itself. You"
+ ewarn "should add freshclam (and perhaps clamav-milter) to any"
+ ewarn "runlevels that previously contained clamd."
+}
diff --git a/app-antivirus/clamav/files/clamav-0.104.0-ncurses_detection.patch b/app-antivirus/clamav/files/clamav-0.104.0-ncurses_detection.patch
new file mode 100644
index 000000000000..aa403a90bab3
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-0.104.0-ncurses_detection.patch
@@ -0,0 +1,27 @@
+From cd99490efb82b66c75e92fab3ff97c480bfc9cf9 Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero@gentoo.org>
+Date: Sat, 16 Oct 2021 10:56:22 +0200
+Subject: [PATCH] Use all the link line from ncurses pkg-config
+
+Otherwise it would fail at link time if ncurses has a stand alone tinfo library.
+---
+ cmake/FindCURSES.cmake | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/cmake/FindCURSES.cmake b/cmake/FindCURSES.cmake
+index 35d4a570f6..528211c45c 100644
+--- a/cmake/FindCURSES.cmake
++++ b/cmake/FindCURSES.cmake
+@@ -58,11 +58,7 @@ if(NCURSES_NOT_FOUND EQUAL -1)
+ set(HAVE_LIBNCURSES 1)
+ set(CURSES_INCLUDE "<ncurses.h>")
+
+- find_library(CURSES_LIBRARY
+- NAMES ncurses
+- PATHS ${PC_NCurses_LIBRARY_DIRS}
+- )
+-
++ set(CURSES_LIBRARY ${PC_NCurses_LINK_LIBRARIES})
+ set(CURSES_VERSION ${PC_NCurses_VERSION})
+
+ include(FindPackageHandleStandardArgs)
diff --git a/app-antivirus/clamav/files/clamav-milter.initd b/app-antivirus/clamav/files/clamav-milter.initd
new file mode 100755
index 000000000000..049d908155d3
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-milter.initd
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+
+# Note: the "Foreground" option in clamav-milter.conf MUST
+# be set to "no".
+command="/usr/sbin/clamav-milter"
+
+# For now, must be manually synchronized with the PidFile
+# variable in clamav-milter.conf.
+#
+# https://bugzilla.clamav.net/show_bug.cgi?id=12595
+#
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ # The milter can successfully launch without clamd, but it's not a
+ # great user experience to have the milter start accepting requests
+ # that it can't process. The "use" dependency below will start clamd
+ # before clamav-milter, so long as clamd is also present this runlevel.
+ use clamd
+}
+
+start_pre() {
+ # This exists to support the (disabled) default MilterSocket setting
+ # within clamav-milter.conf. The "clamav" user and group agree with
+ # the (disabled) default "User" and "MilterSocketGroup" settings.
+ #
+ # Creating this directory is harmless even when a local socket is
+ # not used. In fact, the clamd service that we depend on should
+ # create it as well, to hold its own local socket (if enabled).
+ checkpath --directory \
+ --mode 0755 \
+ --owner clamav:clamav \
+ "/run/clamav"
+}
diff --git a/app-antivirus/clamav/files/clamav-milter.service-0.104.0 b/app-antivirus/clamav/files/clamav-milter.service-0.104.0
new file mode 100644
index 000000000000..68acf0695ceb
--- /dev/null
+++ b/app-antivirus/clamav/files/clamav-milter.service-0.104.0
@@ -0,0 +1,13 @@
+[Unit]
+Description=Milter module for the ClamAV scanner
+After=nss-lookup.target network.target
+Before=sendmail.service
+Before=postfix.service
+
+[Service]
+Type=forking
+PIDFile=/run/clamav/clamav-milter.pid
+ExecStart=/usr/sbin/clamav-milter -c /etc/clamav/clamav-milter.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-antivirus/clamav/files/clamd.initd b/app-antivirus/clamav/files/clamd.initd
new file mode 100755
index 000000000000..efc01efc41b0
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd.initd
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+
+# Note: the "Foreground" option in clamd.conf must be set to "no"
+command="/usr/sbin/clamd"
+extra_started_commands="reload"
+
+# For now, must be manually synchronized with the PidFile variable
+# in clamd.conf.
+#
+# https://bugzilla.clamav.net/show_bug.cgi?id=12595
+#
+pidfile="/run/${RC_SVCNAME}.pid"
+
+start_pre() {
+ # This exists to support the (disabled) default LocalSocket setting
+ # within clamd.conf. The "clamav" user and group agree with the
+ # (disabled) default "User" and "LocalSocketGroup" settings in
+ # clamd.conf. And everything here agrees with the
+ # clamav-daemon.socket systemd service.
+ #
+ # Creating this directory is harmless even when a local socket is
+ # not used.
+ checkpath --directory \
+ --mode 0755 \
+ --owner clamav:clamav \
+ "/run/clamav"
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ "/usr/bin/clamdscan" --reload
+ eend $?
+}
diff --git a/app-antivirus/clamav/files/clamd_at.service-0.104.0 b/app-antivirus/clamav/files/clamd_at.service-0.104.0
new file mode 100644
index 000000000000..5ab51e7fccf7
--- /dev/null
+++ b/app-antivirus/clamav/files/clamd_at.service-0.104.0
@@ -0,0 +1,12 @@
+[Unit]
+Description=clamd scanner (%i) daemon
+After=nss-lookup.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/clamd -c /etc/clamav/clamd%i.conf
+Restart=on-failure
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-antivirus/clamav/files/clamonacc.initd b/app-antivirus/clamav/files/clamonacc.initd
new file mode 100755
index 000000000000..f625707b171a
--- /dev/null
+++ b/app-antivirus/clamav/files/clamonacc.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+command="/usr/sbin/clamonacc"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+# clamonacc doesn't support a PID file at the moment, so we
+# run it in the foreground and let OpenRC background it.
+#
+# https://bugzilla.clamav.net/show_bug.cgi?id=12595
+#
+command_args="--foreground"
+command_background=true
+
+depend() {
+ # Unlike the milter, the on-access scanner will simply fail to start
+ # until clamd is available.
+ need clamd
+}
diff --git a/app-antivirus/clamav/files/freshclam.initd b/app-antivirus/clamav/files/freshclam.initd
new file mode 100755
index 000000000000..415d94a87668
--- /dev/null
+++ b/app-antivirus/clamav/files/freshclam.initd
@@ -0,0 +1,8 @@
+#!/sbin/openrc-run
+
+command="/usr/bin/freshclam"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+# Ignore the value of "PidFile" set in freshclam.conf.
+command_args="-p ${pidfile}"
+command_args_background="--daemon"
diff --git a/app-antivirus/clamav/metadata.xml b/app-antivirus/clamav/metadata.xml
index 799ee7cad29d..955b022bfd36 100644
--- a/app-antivirus/clamav/metadata.xml
+++ b/app-antivirus/clamav/metadata.xml
@@ -1,25 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>antivirus@gentoo.org</email>
- <name>Gentoo Antivirus Project</name>
- </maintainer>
-
- <maintainer type="person">
- <!-- for the LTS 0.103.x branch only -->
- <email>mjo@gentoo.org</email>
- </maintainer>
-
- <use>
- <flag name="clamonacc">Build the clamonacc on-access scanner</flag>
- <flag name="clamdtop">A Top like tool which shows what clamd is currently scanning amongst other things</flag>
- <flag name="clamsubmit">A tool to submit false positives / negatives</flag>
- <flag name="libclamav-only">Bypass building of libfreshclam and the ClamAV CLI applications.</flag>
- <flag name="metadata-analysis-api">Enables collection of file property metadata using ClamAV API for analysis by ClamAV bytecode programs.</flag>
- <flag name="xml">DMG and XAR support</flag>
- </use>
- <upstream>
- <remote-id type="sourceforge">clamav</remote-id>
- </upstream>
+ <maintainer type="project">
+ <email>antivirus@gentoo.org</email>
+ <name>Gentoo Antivirus Project</name>
+ </maintainer>
+ <maintainer type="person">
+ <!-- for the LTS 0.103.x branch only -->
+ <email>mjo@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="clamapp">
+ Build applications (clamscan, clamd, clamdscan, clamonacc (also has its own USE flag), sigtool, clambc, clamav-milter (also requires milter USE flag), clamdtop, clamsubmit, clamconf).
+ </flag>
+ <flag name="clamonacc">Build the clamonacc on-access scanner</flag>
+ <flag name="clamdtop">A Top like tool which shows what clamd is currently scanning amongst other things</flag>
+ <flag name="clamsubmit">A tool to submit false positives / negatives</flag>
+ <flag name="libclamav-only">Bypass building of libfreshclam and the ClamAV CLI applications.</flag>
+ <flag name="metadata-analysis-api">Enables collection of file property metadata using ClamAV API for analysis by ClamAV bytecode programs.</flag>
+ <flag name="xml">DMG and XAR support</flag>
+ <flag name="rar">RAR support</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">clamav</remote-id>
+ </upstream>
</pkgmetadata>