diff options
Diffstat (limited to 'main/clamav')
-rw-r--r-- | main/clamav/APKBUILD | 72 | ||||
-rw-r--r-- | main/clamav/clamav-0.95.1-nls.patch | 11 | ||||
-rw-r--r-- | main/clamav/clamav.logrotate | 15 | ||||
-rw-r--r-- | main/clamav/clamav.post-install | 3 | ||||
-rw-r--r-- | main/clamav/clamav.pre-install | 4 | ||||
-rw-r--r-- | main/clamav/clamav.pre-upgrade | 16 | ||||
-rw-r--r-- | main/clamav/clamd.confd | 6 | ||||
-rw-r--r-- | main/clamav/clamd.initd | 56 | ||||
-rw-r--r-- | main/clamav/freshclam.confd | 3 | ||||
-rw-r--r-- | main/clamav/freshclam.initd | 58 |
10 files changed, 244 insertions, 0 deletions
diff --git a/main/clamav/APKBUILD b/main/clamav/APKBUILD new file mode 100644 index 000000000..a4daebc2f --- /dev/null +++ b/main/clamav/APKBUILD @@ -0,0 +1,72 @@ +# Contributor: Carlo Landmeter <clandmeter at gmail> +# Maintainer: Carlo Landmeter <clandmeter at gmail> +pkgname=clamav +pkgver=0.95.2 +pkgrel=0 +pkgdesc="An anti-virus toolkit for UNIX" +url="http://www.clamav.net/" +license="GPL" +depends="logrotate" +install="$pkgname.pre-install $pkgname.post-install $pkgname.pre-upgrade" +makedepends="ncurses-dev zlib-dev" +subpackages="$pkgname-doc $pkgname-dev" +source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz + clamd.initd + clamd.confd + freshclam.initd + freshclam.confd + clamav-0.95.1-nls.patch + clamav.logrotate + $install" + +build() { + cd "$srcdir/$pkgname-$pkgver" + + patch -p0 -i "$srcdir/clamav-0.95.1-nls.patch" || return 1 + + ./configure --prefix=/usr \ + --sysconfdir=/etc/clamav \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --without-iconv + make || return 1 + make DESTDIR="$pkgdir" install + + # Change /etc/clamd.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:" \ + "$pkgdir"/etc/clamav/clamd.conf + + # Do the same for /etc/freshclam.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/clamav/clamd.conf:" \ + -e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \ + -e "s:^\#\(AllowSupplementaryGroups\).*:\1 yes:" \ + "$pkgdir"/etc/clamav/freshclam.conf + + install -m755 -D "$srcdir"/clamd.initd "$pkgdir"/etc/init.d/clamd + install -m644 -D "$srcdir"/clamd.confd "$pkgdir"/etc/conf.d/clamd + install -m755 -D "$srcdir"/freshclam.initd "$pkgdir"/etc/init.d/freshclam + install -m644 -D "$srcdir"/freshclam.confd "$pkgdir"/etc/conf.d/freshclam + install -m644 -D "$srcdir"/clamav.logrotate "$pkgdir"/etc/logrotate.d/clamav + mkdir -p "$pkgdir"/var/run/clamav "$pkgdir"/var/log/clamav +} + +md5sums="930362397d30e01ba81b5f24c1046d48 clamav-0.95.2.tar.gz +adbbfa835f9dea213289719d983f1600 clamd.initd +567bc32b657dd7031b9b7beaa946203a clamd.confd +f43b987a0c37e6576face04a830263ac freshclam.initd +e48466ddfb56f66c623b83e58777b778 freshclam.confd +0d08fd29656bd4b018ecf8ce9706ac55 clamav-0.95.1-nls.patch +dffa5af2e7a563fc00fcd52ec4c02347 clamav.logrotate +275e05587e2da782781829a1862d57b1 clamav.pre-install +ec4d600097a15e64dfb714e7739a1804 clamav.post-install +c9e80578c6e82d6154bc91f18dfd23ea clamav.pre-upgrade" diff --git a/main/clamav/clamav-0.95.1-nls.patch b/main/clamav/clamav-0.95.1-nls.patch new file mode 100644 index 000000000..82ae88f57 --- /dev/null +++ b/main/clamav/clamav-0.95.1-nls.patch @@ -0,0 +1,11 @@ +--- shared/output.c-orig 2009-04-04 10:17:42 +0000 ++++ shared/output.c 2009-04-04 10:18:30 +0000 +@@ -67,7 +67,7 @@ + pthread_mutex_t logg_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/main/clamav/clamav.logrotate b/main/clamav/clamav.logrotate new file mode 100644 index 000000000..757442841 --- /dev/null +++ b/main/clamav/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/freshclam logfix + /bin/kill -HUP `cat /var/run/clamav/freshclam.pid 2> /dev/null` 2>/dev/null || true + endscript +} diff --git a/main/clamav/clamav.post-install b/main/clamav/clamav.post-install new file mode 100644 index 000000000..493020610 --- /dev/null +++ b/main/clamav/clamav.post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +chown -R clamav:clamav /usr/share/clamav /var/run/clamav /var/log/clamav diff --git a/main/clamav/clamav.pre-install b/main/clamav/clamav.pre-install new file mode 100644 index 000000000..59ac60a44 --- /dev/null +++ b/main/clamav/clamav.pre-install @@ -0,0 +1,4 @@ +#!/bin/sh + +adduser -H -s /bin/false -D clamav 2>/dev/null +exit 0 diff --git a/main/clamav/clamav.pre-upgrade b/main/clamav/clamav.pre-upgrade new file mode 100644 index 000000000..9956f95d6 --- /dev/null +++ b/main/clamav/clamav.pre-upgrade @@ -0,0 +1,16 @@ +#!/bin/sh + +# make sure we don't lose our config +mkdir -p /etc/clamav +if [ -f /etc/clamav.conf ]; then + mv /etc/clamav.conf /etc/clamav/ + ln -s clamav/clamav.conf /etc/clamav.conf +fi + +if [ -f /etc/freshclam.conf ]; then + mv /etc/freshclam.conf /etc/clamav/ + ln -s clamav/freshclam.conf /etc/freshclam.conf +fi + +exit 0 + diff --git a/main/clamav/clamd.confd b/main/clamav/clamd.confd new file mode 100644 index 000000000..bc8072aea --- /dev/null +++ b/main/clamav/clamd.confd @@ -0,0 +1,6 @@ + +CLAMD_NICELEVEL=0 + +# make sure we also start freshclam +# comment out if you dont want start freshclam +rc_need="freshclam" diff --git a/main/clamav/clamd.initd b/main/clamav/clamd.initd new file mode 100644 index 000000000..d3b915557 --- /dev/null +++ b/main/clamav/clamd.initd @@ -0,0 +1,56 @@ +#!/sbin/runscript + +opts="logfix reload" +NAME=clamd +CONF=/etc/clamav/clamd.conf + +depend() { + need net + provide antivirus +} + +start() { + local clamd_socket=$(awk '$1 == "LocalSocket" { print $2 }' $CONF) + + logfix + + if [ -S "${clamd_socket:=/tmp/clamd}" ]; then + rm -f ${clamd_socket} + fi + ebegin "Starting ${NAME}" + start-stop-daemon --start --quiet \ + --nicelevel ${CLAMD_NICELEVEL:-0} \ + --exec /usr/sbin/clamd + eend $? "Failed to start ${NAME}" +} + +stop() { + ebegin "Stopping ${NAME}" + start-stop-daemon --stop --quiet --exec /usr/sbin/clamd + eend $? +} + +reload() { + ebegin "Reloading ${NAME}" + if ! service_started "${NAME}" ; then + eend 1 "${NAME} is not started" + return 1 + fi + start-stop-daemon --stop --oknodo --signal HUP \ + --exec /usr/sbin/clamd + eend $? +} + +logfix() { + # fix clamd log permissions + # (might be clobbered by logrotate or something) + local logfile=`awk '$1 == "LogFile" { print $2 }' $CONF` + local clamav_user=`awk '$1 == "User" { print $2 }' $CONF` + if [ -n "${logfile}" ] && [ -n "${clamav_user}" ]; then + if [ ! -f "${logfile}" ]; then + touch ${logfile} + fi + chown ${clamav_user} ${logfile} + chmod 640 ${logfile} + fi +} diff --git a/main/clamav/freshclam.confd b/main/clamav/freshclam.confd new file mode 100644 index 000000000..17559037d --- /dev/null +++ b/main/clamav/freshclam.confd @@ -0,0 +1,3 @@ + +FRESHCLAM_NICELEVEL=0 + diff --git a/main/clamav/freshclam.initd b/main/clamav/freshclam.initd new file mode 100644 index 000000000..7961c7f80 --- /dev/null +++ b/main/clamav/freshclam.initd @@ -0,0 +1,58 @@ +#!/sbin/runscript + +opts="logfix reload" + +NAME=freshclam +DAEMON=/usr/bin/$NAME +CONF=/etc/clamav/freshclam.conf + +depend() { + need net +} + +start() { + 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 +} + +stop() { + ebegin "Stopping ${NAME}" + start-stop-daemon --stop --quiet --name ${NAME} + eend $? +} + +reload() { + ebegin "Reloading ${NAME}" + if ! service_started "${NAME}" ; then + eend 1 "${NAME} is not started" + return 1 + fi + start-stop-daemon --stop --oknodo --signal HUP \ + --exec ${DAEMON} --name $NAME + eend $? +} + + +logfix() { + # fix freshclam log permissions + # (might be clobbered by logrotate or something) + logfile=$(awk '$1 == "UpdateLogFile" { print $2 }' $CONF) + local freshclam_user=$(awk '$1 == "DatabaseOwner" { print $2 }' $CONF) + if [ -n "${logfile}" -a -n "${clamav_user}" ]; then + if [ ! -f "${logfile}" ]; then + touch ${logfile} + fi + chown ${freshclam_user} ${logfile} + chmod 640 ${logfile} + fi +} + |