# HG changeset patch # User Binki # Date 2009-07-13 16:19:05 # Node ID 32434a92d02adf70983d7db6354d72c5da7ff5d9 # Parent 643e26faadac2b4fbc93eb6a8331bff0d85fd45d Fixed clamav-0.95.2.ebuild from Portage. Made initscripts modular. Also added userflag clamdtop to metadata.xml, made misc. improvements IMO ;-) diff --git a/app-antivirus/clamav/ChangeLog b/app-antivirus/clamav/ChangeLog --- a/app-antivirus/clamav/ChangeLog +++ b/app-antivirus/clamav/ChangeLog @@ -2,6 +2,12 @@ # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 # $Header: /var/cvsroot/gentoo-x86/app-antivirus/clamav/ChangeLog,v 1.308 2008/09/13 22:48:04 dertobi123 Exp $ + 13 Jul 2009; Nathan Phillip Brink (ohnobinki) + clamav-0.95.2.ebuild, + +files/clamav-milter.conf, +files/clamav-milter.rc, files/clamd.conf, + files/clamd.rc, +files/freshclam.conf, +files/freshclam.rc, metadata.xml: + Fixed clamav-0.95.2.ebuild from Portage. Made initscripts modular. + 03 Jul 2009; Nathan Phillip Brink (ohnobinki) +files/clamav-0.95.1-nls.patch, +clamav-0.95.2.ebuild: diff --git a/app-antivirus/clamav/Manifest b/app-antivirus/clamav/Manifest --- a/app-antivirus/clamav/Manifest +++ b/app-antivirus/clamav/Manifest @@ -2,14 +2,18 @@ AUX clamav-0.94.2-buildfix.patch 845 RMD AUX clamav-0.94.2-nls.patch 2429 RMD160 0b1b54ade225791b3fada186dd60546fb4ebf1b9 SHA1 6368b108ea7932c5f0b75069f89ad861c8285e3b SHA256 0fd8c2a11d56685f88c8fddef446294df5e2c3f123682ebd652a0e948a1a8158 AUX clamav-0.95.1-nls.patch 319 RMD160 403558e6e71e620da2092f80d1d5b450281cb468 SHA1 2ae10843856aa6d7fd9a42e92b8685a6e9e14fbf SHA256 7bba0e938ae577b2b338f1b48f0173a8ec7e3b6785893319fd044d77847d03ba AUX clamav-milter.README.gentoo 1124 RMD160 4fb1e2d9b444874838bcea1071969ca6862fb15b SHA1 0b9b86a0e7732eaaf7f880859265754f7a4efd3a SHA256 5e7b142b68964bc3463b077e5698fa77cace45ea9612258b1e1849cee944dd11 +AUX clamav-milter.conf 166 RMD160 f14a4f94686862e5f92c2855c4f14e783609fbf9 SHA1 4c9d72f21b9ea2a804ded9bab41a3c9c49ff4bbd SHA256 7271da5d23d8b9cfbb0990c926a9a410988f6b15b6b966d992bb2f43a2350b43 +AUX clamav-milter.rc 2162 RMD160 f9c67517dd916653a85baa34ced0ed917190c2d2 SHA1 6bd00082bda0195e4b22b1e30c2d666bda67caf1 SHA256 e7a206184d3eba81b3669aa6ed372b0140cfa78a64e34a68389eeed2b7496c2c AUX clamav.logrotate 355 RMD160 f59cd8ce96da8210aa858ee59ee3b6940e3253a6 SHA1 5fbd9364997400681d5a93cb50cac8a0f188e56f SHA256 ab91f784d5098d2162be9277e3a006bdb392d9d89975838ad4ac7dfd8b418170 -AUX clamd.conf 234 RMD160 b517b05e587637cbdd443f7ca3625d582e32722f SHA1 564b1e2f6cf85567f69f2e20cbc942967fa6304b SHA256 17bf4fe3596dc5b145e4163d85181e2edcaa214df3cf9072d852ba0e7a569891 -AUX clamd.rc 3825 RMD160 09da23ab2c5ebc7eac4f6f8feaff722e0658ac73 SHA1 073d4535a446d2a309d1503d2cb16ec97d572a02 SHA256 8253fb1a236b3346c1035b4fdc03597dbc44a170d4f871fab1ad2d17c1f355ce +AUX clamd.conf 55 RMD160 2ffd4914654469ee0178ebd33b6c8753b691f90a SHA1 4e7df38ed3fb0a76ca3dc49d65d5d4846a759a94 SHA256 3e6d26f3cc0b8b33b990de47bdb856e0651e69150ef803d4b0bb60fdb2506fd8 +AUX clamd.rc 1746 RMD160 0158e536289796660479e0aed28ff002b4054923 SHA1 3edad93b30164d7eaa5021daa699f65c7a99dc48 SHA256 d897b1425f21af30ccc6c2f3e0720dabd90271ba66cec483d1aecde4c779c4e0 +AUX freshclam.conf 64 RMD160 39f5a64cadb0f766605b62a2019303b0ef6b0a36 SHA1 8d112cd09865174b7fc96ff4f415c881eab902e1 SHA256 95b8c1aed21f8eafe911d3c8f21a57b1212f7abeb8de32d29aa3cb9248c17c3b +AUX freshclam.rc 1070 RMD160 cdd42aa9b9999e3c53e3f28443fb0bdf024c426f SHA1 9fc65761d9d9dbb8565d9abb5e634d73304ceede SHA256 436ddaf181cfb3bc84ad6f7a1858fbb5353ad079405016094b4fc0008b7ce28c AUX lib-ld.m4 3417 RMD160 7b412510e7ef9966f70ed29937e3556283128a9b SHA1 8b72b8f5f76e41e4ca0f2521c06c568490894a84 SHA256 18c4c458009da32c9daf0ea332a539e5edc82ba009b6c2faac004626313f00e5 DIST clamav-0.94.2.tar.gz 22107637 RMD160 ae75e5f546f96b7fd0f76dcf9f4977ec95ba4dba SHA1 82373d25db8b836fd88b2414df43bb0c7192cced SHA256 1aec7fecff375958d067aceeb9782d3ff0be7c13bed0eecf6240fb089f8d268c DIST clamav-0.95.2.tar.gz 25137010 RMD160 83cab51c224251316288e4c3189ba91f640e9f82 SHA1 7544b39d84f2233b984a9c2ce3ef74d407add483 SHA256 f5f2a5a9984fd1ade69a7c2cc78da2f5dc0c505f94ab58fb2aa6613399ab1c56 EBUILD clamav-0.94.2-r1.ebuild 5231 RMD160 4939f79b9dc95fa5cab9f5fac5b8761b508c1e43 SHA1 51f5c97a1474eac6f047148f2a6186ce033d1587 SHA256 8486b04ae3e7fe955a3c1da76d33e7db1c56b13025235b86947f0909a58192bd EBUILD clamav-0.94.2.ebuild 5231 RMD160 4939f79b9dc95fa5cab9f5fac5b8761b508c1e43 SHA1 51f5c97a1474eac6f047148f2a6186ce033d1587 SHA256 8486b04ae3e7fe955a3c1da76d33e7db1c56b13025235b86947f0909a58192bd -EBUILD clamav-0.95.2.ebuild 4111 RMD160 1c962a178dc749569835f56b948468153a7b26b8 SHA1 cf0bb9c093d6c6aff0b0f0aefa8fc84e4a0ffca7 SHA256 25ef28025a0b05baa0422386df8cf236d9c9d6eea3c6647f26d575d58f0c198a -MISC ChangeLog 48135 RMD160 47d22809de95395fef0c49e6e784c923d76d3186 SHA1 5fd4b9df58eb5eb54862aa573b9152957bacc30b SHA256 f971d458143b2424f1ae31473b14fa11077e31bd0c4f8955b8aaf1596b503b1a -MISC metadata.xml 184 RMD160 c37bff1fc1cd7139c91dae9b0fa5082e1d81f153 SHA1 cc0a188d9ad2411e78747326c62dd046bd5413c8 SHA256 d51011aa837db802ef539a1321a4af0a4a00879d475b92fd58f3c01df7320b58 +EBUILD clamav-0.95.2.ebuild 4363 RMD160 e4d089f72a56fd09022bbd794b380def005bab0a SHA1 8a75afedb78cd01fcf3c4598d1ff18e85abd61e7 SHA256 3604c4464785ae13c33e71e41873ba24218de724c89c92c0c0991b669934a345 +MISC ChangeLog 48642 RMD160 99b8db68505b988dbc293ecc387097cd7c2cbb35 SHA1 d136107934968e3a37119ab5bc2b19be4a8395ca SHA256 eb09dc8763074169b3dd6c6221938deb168a5d3fe2e962e910186583a39a0b71 +MISC metadata.xml 320 RMD160 3546393e30d87f0b0a2fb17e2f15f57dd8c19661 SHA1 b959e38933418e6fc818ed40cd9a4921b8c66102 SHA256 e2a8c4c8bedbffe50a126c1c7395a4d92652c2d95347b9496d54aea1f230a22d diff --git a/app-antivirus/clamav/clamav-0.95.2.ebuild b/app-antivirus/clamav/clamav-0.95.2.ebuild --- a/app-antivirus/clamav/clamav-0.95.2.ebuild +++ b/app-antivirus/clamav/clamav-0.95.2.ebuild @@ -17,18 +17,20 @@ SRC_URI="mirror://sourceforge/${PN}/${MY LICENSE="GPL-2" SLOT="0" -KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd" -IUSE="bzip2 clamdtop iconv milter selinux ipv6" +KEYWORDS="~amd64" +IUSE="bzip2 clamdtop iconv milter selinux ipv6 test" COMMON_DEPEND="bzip2? ( app-arch/bzip2 ) milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) ) iconv? ( virtual/libiconv ) clamdtop? ( sys-libs/ncurses ) >=sys-libs/zlib-1.2.1-r3 - >=sys-apps/sed-4" + >=sys-apps/sed-4 + dev-libs/libtommath" DEPEND="${COMMON_DEPEND} - >=dev-util/pkgconfig-0.20" + >=dev-util/pkgconfig-0.20 + test? ( dev-libs/check )" RDEPEND="${COMMON_DEPEND} selinux? ( sec-policy/selinux-clamav ) @@ -36,8 +38,6 @@ RDEPEND="${COMMON_DEPEND} PROVIDE="virtual/antivirus" -RESTRICT="test" - pkg_setup() { enewgroup clamav enewuser clamav -1 -1 /dev/null clamav @@ -57,6 +57,7 @@ src_configure() { $(use_enable clamdtop) \ $(use_enable milter) \ $(use_with iconv) \ + --with-system-tommath \ --disable-experimental \ --enable-id-check \ --disable-zlib-vcheck \ @@ -66,8 +67,15 @@ src_configure() { src_install() { emake DESTDIR="${D}" install || die dodoc AUTHORS BUGS NEWS README ChangeLog FAQ + newconfd "${FILESDIR}/clamd.conf" clamd newinitd "${FILESDIR}/clamd.rc" clamd + newconfd "${FILESDIR}/freshclam.conf" freshclam + newinitd "${FILESDIR}/freshclam.rc" freshclam + if use milter; then + newconfd "${FILESDIR}/clamav-milter.conf" clamav-milter + newinitd "${FILESDIR}/clamav-milter.rc" clamav-milter + fi dodir /var/run/clamav keepdir /var/run/clamav diff --git a/app-antivirus/clamav/files/clamav-milter.conf b/app-antivirus/clamav/files/clamav-milter.conf new file mode 100644 --- /dev/null +++ b/app-antivirus/clamav/files/clamav-milter.conf @@ -0,0 +1,6 @@ +# Config file for /etc/init.d/clamav-milter + +MILTER_NICELEVEL=3 + +# Set if you have a nonstandard path to clamav-milter.conf +#MILTER_CONF_FILE=/etc/clamav-milter.conf diff --git a/app-antivirus/clamav/files/clamav-milter.rc b/app-antivirus/clamav/files/clamav-milter.rc new file mode 100755 --- /dev/null +++ b/app-antivirus/clamav/files/clamav-milter.rc @@ -0,0 +1,78 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +depend() { + need clamd +} + +start() { + if [ -z "${MILTER_CONF_FILE}" ]; then + MILTER_CONF_FILE="/etc/clamav-milter.conf" + fi + + logfix + + local milter_socket=`awk '$1 == "MilterSocket" { print $2 }' /etc/clamav-milter.conf | grep unix: | sed -e 's/unix://'` + if [ -S "${milter_socket}" ]; then + rm -f ${milter_socket} + fi + + ebegin "Starting clamav-milter" + start-stop-daemon --start --quiet \ + --nicelevel ${MILTER_NICELEVEL:-0} \ + --exec /usr/sbin/clamav-milter -- -c "${MILTER_CONF_FILE}" + + retcode=$? + if [ ${retcode} != 0 ]; then + eend ${retcode} + #necessary to tell openrc that freshclam actually _isn't_ running + return ${retcode} + fi + + if [ x$milter_socket != x ]; then + local milter_socket_wait_count=0 + local milter_socket_wait_max=10 + local milter_socket_wait_result=-1 + ebegin "Waiting for clamav-milter to create ${milter_socket}" + while (( milter_socket_wait < milter_socket_wait_max )); do + if [ -S "${milter_socket:-/tmp/clamd}" ]; then + milter_socket_wait_result=0 + break + else + echo -n " ." + let milter_socket_wait++ + sleep 1 + fi + done + echo + eend $milter_socket_wait_result "Timeout waiting for ${milter_socket}" + + if [ $milter_socket_wait_result = 0 ]; then + chown "${SOCKET_USER:-clamav}:${SOCKET_GROUP:-milter}" "${milter_socket}" + chmod 770 "${milter_socket}" + fi + fi + eend ${retcode} +} + +stop() { + ebegin "Stopping clamav-milter" + start-stop-daemon --stop --quiet --exec /usr/sbin/clamav-milter + eend $? +} + +logfix() { + # fix freshclam log permissions + # (might be clobbered by logrotate or something) + logfile=`awk '$1 == "LogFile" { print $2 }' "${MILTER_CONF_FILE}"` + local freshclam_user=`awk '$1 == "User" { print $2 }' "${MILTER_CONF_FILE}"` + if [ -n "${logfile}" -a -n "${clamav_user}" ]; then + if [ ! -f "${logfile}" ]; then + touch ${logfile} + fi + chown ${freshclam_user} ${logfile} + chmod 640 ${logfile} + fi +} diff --git a/app-antivirus/clamav/files/clamd.conf b/app-antivirus/clamav/files/clamd.conf --- a/app-antivirus/clamav/files/clamd.conf +++ b/app-antivirus/clamav/files/clamd.conf @@ -1,9 +1,3 @@ # 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.rc b/app-antivirus/clamav/files/clamd.rc --- a/app-antivirus/clamav/files/clamd.rc +++ b/app-antivirus/clamav/files/clamd.rc @@ -7,11 +7,7 @@ opts="logfix" depend() { use net - MYPROVIDE="antivirus" - if [ "${START_FRESHCLAM}" = "yes" ]; then - MYPROVIDE="${MYPROVIDE} milter" - fi - provide ${MYPROVIDE} + provide antivirus } start() { @@ -19,128 +15,54 @@ start() { logfix - if [ "${START_CLAMD}" = "yes" ]; then - if [ -S "${clamd_socket:-/tmp/clamd}" ]; then - rm -f ${clamd_socket:-/tmp/clamd} - fi - ebegin "Starting clamd" - start-stop-daemon --start --quiet \ - --nicelevel ${CLAMD_NICELEVEL:-0} \ - --exec /usr/sbin/clamd - eend $? "Failed to start clamd" + if [ -S "${clamd_socket:-/tmp/clamd}" ]; then + rm -f ${clamd_socket:-/tmp/clamd} fi - - if [ "${START_FRESHCLAM}" = "yes" ]; then - ebegin "Starting freshclam" - start-stop-daemon --start --quiet \ - --nicelevel ${FRESHCLAM_NICELEVEL:-0} \ - --exec /usr/bin/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 [ -S "${MILTER_SOCKET}" ]; then - rm -f ${MILTER_SOCKET} - fi - - - local milter_ext=no - local milter_svr=no - args=`getopt -q --options "es" --longoptions "external,server" -- $MILTER_OPTS` - for arg in $args; do - - case "$arg" in + ebegin "Starting clamd" + start-stop-daemon --start --quiet \ + --nicelevel ${CLAMD_NICELEVEL:-0} \ + --exec /usr/sbin/clamd - -e | --external) - milter_ext=yes; - shift;; - - -s | --server) - milter_svr=yes; - shift;; - - --) - shift; - break;; - esac - done - - if [[ $milter_ext == yes && $milter_svr == no ]]; then - local clamd_socket_wait_count=0 - local clamd_socket_wait_max=10 - local clamd_socket_wait_result=-1 - ebegin "Waiting for clamd to create ${clamd_socket}" - while (( clamd_socket_wait < clamd_socket_wait_max )); do - if [ -S "${clamd_socket:-/tmp/clamd}" ]; then - clamd_socket_wait_result=0 - break - else - echo -n " ." - let clamd_socket_wait++ - sleep 1 - fi - done - echo - eend $clamd_socket_wait_result "Timeout waiting for ${clamd_socket}" - fi - - ebegin "Starting clamav-milter" - start-stop-daemon --start --quiet \ - --nicelevel ${MILTER_NICELEVEL:-0} \ - --exec /usr/sbin/clamav-milter -- ${MILTER_OPTS} ${MILTER_SOCKET} - eend $? "Failed to start clamav-milter" + local retcode=$? + if [ ${retcode} != 0 ]; then + eend ${retcode} "Failed to start clamd" + return ${retcode}; fi + + local clamd_socket_wait_count=0 + local clamd_socket_wait_max=10 + local clamd_socket_wait_result=-1 + ebegin "Waiting for clamd to create ${clamd_socket}" + while (( clamd_socket_wait < clamd_socket_wait_max )); do + if [ -S "${clamd_socket:-/tmp/clamd}" ]; then + clamd_socket_wait_result=0 + break + else + echo -n " ." + let clamd_socket_wait++ + sleep 1 + fi + done + echo + eend $clamd_socket_wait_result "Timeout waiting for ${clamd_socket}" } stop() { - if [ "${START_CLAMD}" = "yes" ]; then - ebegin "Stopping clamd" - start-stop-daemon --stop --quiet --exec /usr/sbin/clamd - eend $? "Failed to stop clamd" - fi - if [ "${START_FRESHCLAM}" = "yes" ]; then - ebegin "Stopping freshclam" - start-stop-daemon --stop --quiet --exec /usr/bin/freshclam - eend $? "Failed to stop freshclam" - fi - if [ "${START_MILTER}" = "yes" ]; then - ebegin "Stopping clamav-milter" - start-stop-daemon --stop --quiet --exec /usr/sbin/clamav-milter - eend $? "Failed to stop clamav-milter" - fi + ebegin "Stopping clamd" + start-stop-daemon --stop --quiet --exec /usr/sbin/clamd + eend $? "Failed to stop clamd" } logfix() { - if [ "${START_CLAMD}" = "yes" ]; then - # fix clamd log permissions - # (might be clobbered by logrotate or something) - local logfile=`awk '$1 == "LogFile" { print $2 }' /etc/clamd.conf` - local clamav_user=`awk '$1 == "User" { print $2 }' /etc/clamd.conf` - if [ -n "${logfile}" ] && [ -n "${clamav_user}" ]; then - if [ ! -f "${logfile}" ]; then - touch ${logfile} - fi - chown ${clamav_user} ${logfile} - chmod 640 ${logfile} - fi + # fix clamd log permissions + # (might be clobbered by logrotate or something) + local logfile=`awk '$1 == "LogFile" { print $2 }' /etc/clamd.conf` + local clamav_user=`awk '$1 == "User" { print $2 }' /etc/clamd.conf` + if [ -n "${logfile}" ] && [ -n "${clamav_user}" ]; then + if [ ! -f "${logfile}" ]; then + touch ${logfile} fi - - if [ "${START_FRESHCLAM}" = "yes" ]; then - # fix freshclam log permissions - # (might be clobbered by logrotate or something) - logfile=`awk '$1 == "UpdateLogFile" { print $2 }' /etc/freshclam.conf` - local freshclam_user=`awk '$1 == "DatabaseOwner" { print $2 }' /etc/freshclam.conf` - if [ -n "${logfile}" -a -n "${clamav_user}" ]; then - if [ ! -f "${logfile}" ]; then - touch ${logfile} - fi - chown ${freshclam_user} ${logfile} - chmod 640 ${logfile} - fi - fi + chown ${clamav_user} ${logfile} + chmod 640 ${logfile} + fi } diff --git a/app-antivirus/clamav/files/freshclam.conf b/app-antivirus/clamav/files/freshclam.conf new file mode 100644 --- /dev/null +++ b/app-antivirus/clamav/files/freshclam.conf @@ -0,0 +1,3 @@ +# Config file for /etc/init.d/freshclam + +FRESHCLAM_NICELEVEL=19 diff --git a/app-antivirus/clamav/files/freshclam.rc b/app-antivirus/clamav/files/freshclam.rc new file mode 100755 --- /dev/null +++ b/app-antivirus/clamav/files/freshclam.rc @@ -0,0 +1,44 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +depend() { + use net +} + +start() { + logfix + + ebegin "Starting freshclam" + start-stop-daemon --start --quiet \ + --nicelevel ${FRESHCLAM_NICELEVEL:-0} \ + --exec /usr/bin/freshclam -- -d + retcode=$? + if [ ${retcode} = 1 ]; then + eend 0 + einfo "Virus database already up to date." + else + eend ${retcode} + fi +} + +stop() { + ebegin "Stopping freshclam" + start-stop-daemon --stop --quiet --exec /usr/bin/freshclam + eend $? +} + +logfix() { + # fix freshclam log permissions + # (might be clobbered by logrotate or something) + logfile=`awk '$1 == "UpdateLogFile" { print $2 }' /etc/freshclam.conf` + local freshclam_user=`awk '$1 == "DatabaseOwner" { print $2 }' /etc/freshclam.conf` + if [ -n "${logfile}" -a -n "${clamav_user}" ]; then + if [ ! -f "${logfile}" ]; then + touch ${logfile} + fi + chown ${freshclam_user} ${logfile} + chmod 640 ${logfile} + fi +} diff --git a/app-antivirus/clamav/metadata.xml b/app-antivirus/clamav/metadata.xml --- a/app-antivirus/clamav/metadata.xml +++ b/app-antivirus/clamav/metadata.xml @@ -1,6 +1,9 @@ -net-mail -antivirus + net-mail + antivirus + + A Top like tool which shows what clamd is currently scanning amongst other things +