summaryrefslogtreecommitdiff
path: root/staging/clamav
diff options
context:
space:
mode:
Diffstat (limited to 'staging/clamav')
-rw-r--r--staging/clamav/PKGBUILD70
-rw-r--r--staging/clamav/conf.d8
-rw-r--r--staging/clamav/config.patch30
-rw-r--r--staging/clamav/gcc47.patch51
-rw-r--r--staging/clamav/install14
-rw-r--r--staging/clamav/logrotate8
-rw-r--r--staging/clamav/rc.d66
-rw-r--r--staging/clamav/service10
-rw-r--r--staging/clamav/service.fresh10
-rw-r--r--staging/clamav/tmpfiles.d1
10 files changed, 268 insertions, 0 deletions
diff --git a/staging/clamav/PKGBUILD b/staging/clamav/PKGBUILD
new file mode 100644
index 000000000..a1585a011
--- /dev/null
+++ b/staging/clamav/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 161310 2012-06-09 06:06:31Z bisson $
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=clamav
+pkgver=0.97.4
+pkgrel=3
+pkgdesc='Anti-virus toolkit for Unix'
+url='http://www.clamav.net/'
+license=('GPL')
+options=('!libtool')
+arch=('i686' 'x86_64')
+depends=('bzip2' 'libltdl')
+backup=('etc/clamav/clamd.conf' 'etc/clamav/freshclam.conf' 'etc/conf.d/clamav')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'rc.d'
+ 'conf.d'
+ 'service'
+ 'service.fresh'
+ 'logrotate'
+ 'tmpfiles.d'
+ 'gcc47.patch'
+ 'config.patch')
+sha1sums=('56f90cf8a73acba8f97beca86b42c65c3923935d'
+ 'c9d508c1e5972f0f849d8694c1872455fa9e74de'
+ 'cb116cdab49a810381a515cbcfb6a6c148547f07'
+ 'df522b0488f3901e491f148c9300f6bae348c605'
+ 'cda9a087e5593992150cb456e34c5f6f589aca82'
+ '7cace58743a36dae3e63e5e0c6cc73ea5ef9a6ee'
+ 'a224ea9b4d0f4f196827347d54bed51e11c197ea'
+ 'db6e090d540fe96fda71bd421aa9b699f0cc497b'
+ '1c8ef193919b041135115170acd6313f008de808')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../config.patch
+ patch -p1 -i ../gcc47.patch
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc/clamav \
+ --with-dbdir=/var/lib/clamav \
+ --disable-clamav \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # Make sure conf files get installed, because make install
+ # doesn't do that if clamav is already installed upon building.
+ install -Dm644 etc/clamd.conf "${pkgdir}"/etc/clamav/clamd.conf
+ install -Dm644 etc/freshclam.conf "${pkgdir}"/etc/clamav/freshclam.conf
+
+ install -Dm644 ../service.fresh "${pkgdir}"/usr/lib/systemd/system/freshclamd.service
+ install -Dm644 ../service "${pkgdir}"/usr/lib/systemd/system/clamd.service
+ install -Dm644 ../tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/clamav.conf
+ install -Dm644 ../logrotate "${pkgdir}"/etc/logrotate.d/clamav
+ install -Dm644 ../conf.d "${pkgdir}"/etc/conf.d/clamav
+ install -Dm755 ../rc.d "${pkgdir}"/etc/rc.d/clamav
+
+ # Un-distribute databases to require freshclam.
+ rm "${pkgdir}"/var/lib/clamav/*.cvd
+}
diff --git a/staging/clamav/conf.d b/staging/clamav/conf.d
new file mode 100644
index 000000000..9cd44d9f8
--- /dev/null
+++ b/staging/clamav/conf.d
@@ -0,0 +1,8 @@
+# clamav startup script config options
+
+# change these to "yes" to start
+START_FRESHCLAM="no"
+START_CLAMD="no"
+
+# Options to pass to freshclam (man freshclam for more info).
+FRESHCLAM_OPTS="-c 12"
diff --git a/staging/clamav/config.patch b/staging/clamav/config.patch
new file mode 100644
index 000000000..0640df2c3
--- /dev/null
+++ b/staging/clamav/config.patch
@@ -0,0 +1,30 @@
+diff -arU 0 old/etc/clamd.conf new/etc/clamd.conf
+--- old/etc/clamd.conf 2010-12-02 19:31:21.773357389 +0100
++++ new/etc/clamd.conf 2010-12-02 19:31:45.873357389 +0100
+@@ -14 +14 @@
+-#LogFile /tmp/clamd.log
++LogFile /var/log/clamav/clamd.log
+@@ -34 +34 @@
+-#LogTime yes
++LogTime yes
+@@ -61 +61 @@
+-#PidFile /var/run/clamd.pid
++PidFile /run/clamav/clamd.pid
+@@ -65 +65 @@
+-#TemporaryDirectory /var/tmp
++TemporaryDirectory /tmp
+@@ -80 +80 @@
+-#LocalSocket /tmp/clamd.socket
++LocalSocket /var/lib/clamav/clamd.sock
+@@ -190 +190 @@
+-#User clamav
++User clamav
+diff -arU 0 old/etc/freshclam.conf new/etc/freshclam.conf
+--- old/etc/freshclam.conf 2010-12-02 19:31:21.773357389 +0100
++++ new/etc/freshclam.conf 2010-12-02 19:31:51.190024057 +0100
+@@ -17 +17 @@
+-#UpdateLogFile /var/log/freshclam.log
++UpdateLogFile /var/log/clamav/freshclam.log
+@@ -121 +121 @@
+-#NotifyClamd /path/to/clamd.conf
++NotifyClamd /etc/clamav/clamd.conf
diff --git a/staging/clamav/gcc47.patch b/staging/clamav/gcc47.patch
new file mode 100644
index 000000000..17fc924d9
--- /dev/null
+++ b/staging/clamav/gcc47.patch
@@ -0,0 +1,51 @@
+From 8b6757e866d1480c997d5ae497e0512000d82b35 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?T=C3=B6r=C3=B6k=20Edvin?= <edwin@clamav.net>
+Date: Mon, 14 May 2012 20:13:21 +0300
+Subject: [PATCH 1/2] Fix build with gcc-4.7
+
+---
+ .../c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp b/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp
+index 274f816..a4e7eee 100644
+--- a/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp
++++ b/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp
+@@ -19,6 +19,7 @@
+ #include "llvm/Support/ErrorHandling.h"
+ #include "llvm/System/DynamicLibrary.h"
+ #include "llvm/Config/config.h"
++#include <unistd.h>
+ using namespace llvm;
+
+ // AtExitHandlers - List of functions to call when the program exits,
+--
+1.7.2.3
+
+
+From c609c8ea0409b2882aa3e6ef4dc48c210cf2d292 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?T=C3=B6r=C3=B6k=20Edvin?= <edwin@clamav.net>
+Date: Tue, 15 May 2012 23:36:29 +0300
+Subject: [PATCH 2/2] wrap unistd in ifdef
+
+---
+ .../c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp b/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp
+index a4e7eee..c1cd5e8 100644
+--- a/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp
++++ b/libclamav/c++/llvm/lib/ExecutionEngine/JIT/Intercept.cpp
+@@ -19,7 +19,9 @@
+ #include "llvm/Support/ErrorHandling.h"
+ #include "llvm/System/DynamicLibrary.h"
+ #include "llvm/Config/config.h"
++#ifdef HAVE_UNISTD_H
+ #include <unistd.h>
++#endif
+ using namespace llvm;
+
+ // AtExitHandlers - List of functions to call when the program exits,
+--
+1.7.2.3
+
diff --git a/staging/clamav/install b/staging/clamav/install
new file mode 100644
index 000000000..a2092e815
--- /dev/null
+++ b/staging/clamav/install
@@ -0,0 +1,14 @@
+post_install() {
+ getent group clamav &>/dev/null || groupadd -r -g 64 clamav >/dev/null
+ getent passwd clamav &>/dev/null || useradd -r -u 64 -g clamav -d /dev/null -s /bin/false -c "Clam AntiVirus" clamav >/dev/null
+
+ chown -R clamav:clamav /var/lib/clamav
+ install -o clamav -g clamav -d /run/clamav
+ install -o clamav -g clamav -d /var/log/clamav
+}
+
+post_remove() {
+ getent passwd clamav &>/dev/null && userdel clamav >/dev/null
+ getent group clamav &>/dev/null && groupdel clamav >/dev/null
+ return 0
+}
diff --git a/staging/clamav/logrotate b/staging/clamav/logrotate
new file mode 100644
index 000000000..6a9051bed
--- /dev/null
+++ b/staging/clamav/logrotate
@@ -0,0 +1,8 @@
+/var/log/clamav/clamd.log /var/log/clamav/freshclam.log {
+ create 644 clamav clamav
+ sharedscripts
+ postrotate
+ /bin/kill -HUP `cat /run/clamav/clamd.pid 2>/dev/null` 2> /dev/null || true
+ /bin/kill -HUP `cat /run/clamav/freshclam.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/staging/clamav/rc.d b/staging/clamav/rc.d
new file mode 100644
index 000000000..127c86c0f
--- /dev/null
+++ b/staging/clamav/rc.d
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[[ -f /etc/conf.d/clamav ]] && source /etc/conf.d/clamav
+
+PID_FC=$(pidof -o %PPID /usr/bin/freshclam)
+PID_CD=$(pidof -o %PPID /usr/sbin/clamd)
+
+case "$1" in
+ start)
+ if [[ $START_CLAMD = yes ]]; then
+ stat_busy "Starting ClamD"
+ [[ -z $PID_CD ]] && /usr/sbin/clamd
+ if [[ $? -gt 0 ]]; then
+ stat_fail
+ else
+ add_daemon clamav
+ stat_done
+ fi
+ fi
+ sleep 1
+ if [[ $START_FRESHCLAM = yes ]]; then
+ stat_busy "Starting FreshClam"
+ [[ -z $PID_FC ]] && /usr/bin/freshclam -p /run/clamav/freshclam.pid -d $FRESHCLAM_OPTS
+ if [[ $? -gt 0 ]]; then
+ stat_fail
+ else
+ add_daemon clamav
+ stat_done
+ fi
+ fi
+ ;;
+ stop)
+ if [[ $START_CLAMD = yes ]]; then
+ stat_busy "Stopping ClamD"
+ [[ -n $PID_CD ]] && kill $PID_CD &> /dev/null
+ if [[ $? -gt 0 ]]; then
+ stat_fail
+ else
+ rm_daemon clamav
+ stat_done
+ fi
+ fi
+
+ if [[ $START_FRESHCLAM = yes ]]; then
+ stat_busy "Stopping FreshClam"
+ [[ -n $PID_FC ]] && kill $PID_FC &> /dev/null
+ if [[ $? -gt 0 ]]; then
+ stat_fail
+ else
+ rm_daemon clamav
+ stat_done
+ fi
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/staging/clamav/service b/staging/clamav/service
new file mode 100644
index 000000000..5bf9eb14e
--- /dev/null
+++ b/staging/clamav/service
@@ -0,0 +1,10 @@
+[Unit]
+Description=clamav daemon
+
+[Service]
+Type=forking
+PIDFile=/run/clamav/clamd.pid
+ExecStart=/usr/sbin/clamd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/staging/clamav/service.fresh b/staging/clamav/service.fresh
new file mode 100644
index 000000000..a0a72c2e6
--- /dev/null
+++ b/staging/clamav/service.fresh
@@ -0,0 +1,10 @@
+[Unit]
+Description=clamav updater
+
+[Service]
+Type=forking
+PIDFile=/run/clamav/freshclam.pid
+ExecStart=/usr/bin/freshclam -d -p /run/clamav/freshclam.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/staging/clamav/tmpfiles.d b/staging/clamav/tmpfiles.d
new file mode 100644
index 000000000..22d29941e
--- /dev/null
+++ b/staging/clamav/tmpfiles.d
@@ -0,0 +1 @@
+d /run/clamav 0755 clamav clamav