summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Lenehan <lenehan@twibble.org>2006-10-05 08:00:52 +0000
committerJamie Lenehan <lenehan@twibble.org>2006-10-05 08:00:52 +0000
commit1565969c4c85900f05c337b31bd9f27cc4b3aece (patch)
treecdd77635d12e9b10143efb25dd305af32dec0024
parent3e09934ece121e26e90b59e7397b126b937debec (diff)
clamav 0.84: Simplify the init scripts. assume that the volatiles
processing takes care of the required directories and permissions in /var, don't try and create the home directories when adding the clamav user.
-rw-r--r--packages/clamav/clamav_0.88.4.bb17
-rw-r--r--packages/clamav/files/clamav-daemon.init53
-rw-r--r--packages/clamav/files/clamav-freshclam.init118
3 files changed, 48 insertions, 140 deletions
diff --git a/packages/clamav/clamav_0.88.4.bb b/packages/clamav/clamav_0.88.4.bb
index fa426b6889..40804a9a2c 100644
--- a/packages/clamav/clamav_0.88.4.bb
+++ b/packages/clamav/clamav_0.88.4.bb
@@ -16,7 +16,7 @@ RDEPENDS_${PN} = "${PN}-data"
RDEPENDS_${PN}-daemon = "${PN}-data"
RRECOMMENDS_${PN} = "${PN}-freshclam"
RRECOMMENDS_${PN}-daemon = "${PN}-freshclam"
-PR = "r3"
+PR = "r4"
SRC_URI = "${SOURCEFORGE_MIRROR}/clamav/clamav-${PV}.tar.gz \
file://cross-compile-fix.patch;patch=1 \
@@ -91,20 +91,23 @@ FILES_${PN}-dev += "${bindir}/clamav-config"
# Add clamav's user and groups
pkg_postinst_${PN}-freshclam () {
grep -q clamav: /etc/group || addgroup clamav
- grep -q clamav: /etc/passwd || adduser --disabled-password --home=/var/lib/clamav/ \
- --ingroup clamav -g "ClamAV" clamav
+ grep -q clamav: /etc/passwd || \
+ adduser --disabled-password --home=/var/lib/clamav/ --system \
+ --ingroup clamav --no-create-home -g "ClamAV" clamav
/etc/init.d/populate-volatile.sh
}
pkg_postinst_${PN}-daemon () {
grep -q clamav: /etc/group || addgroup clamav
- grep -q clamav: /etc/passwd || adduser --disabled-password --home=/var/lib/clamav/ \
- --ingroup clamav -g "ClamAV" clamav
+ grep -q clamav: /etc/passwd || \
+ adduser --disabled-password --home=/var/lib/clamav/ --system \
+ --ingroup clamav --no-create-home -g "ClamAV" clamav
/etc/init.d/populate-volatile.sh
}
pkg_postinst_${PN}-data () {
grep -q clamav: /etc/group || addgroup clamav
- grep -q clamav: /etc/passwd || adduser --disabled-password --home=/var/lib/clamav/ \
- --ingroup clamav --no-create-home -g "ClamAV" clamav
+ grep -q clamav: /etc/passwd || \
+ adduser --disabled-password --home=/var/lib/clamav/ --system \
+ --ingroup clamav --no-create-home -g "ClamAV" clamav
/etc/init.d/populate-volatile.sh
}
diff --git a/packages/clamav/files/clamav-daemon.init b/packages/clamav/files/clamav-daemon.init
index a70e14f3f4..bab7a184d7 100644
--- a/packages/clamav/files/clamav-daemon.init
+++ b/packages/clamav/files/clamav-daemon.init
@@ -1,64 +1,31 @@
#! /bin/sh
-# This is a modified version of the debian clamav-daemon init script
-set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/clamd
NAME="clamd"
DESC="ClamAV daemon"
CLAMAVCONF=/etc/clamd.conf
-[ -x "$DAEMON" ] || exit 0
-[ -r /etc/default/clamav-daemon ] && . /etc/default/clamav-daemon
+set -e
-if [ ! -f "$CLAMAVCONF" ]; then
- echo "There is no configuration file for $DESC."
- exit 0;
-fi
-if grep -q "^Example" $CLAMAVCONF; then
- echo "$DESC is not configured. Please edit $CLAMAVCONF"
- exit 0
+test -r /etc/default/clamav-daemon && . /etc/default/clamav-daemon
+test -x "$DAEMON" || exit 0
+test ! -r "$CLAMAVCONF" && exit 0
+if [ `grep -q "^Example" $CLAMAVCONF` ]; then
+ echo "$DESC is not configured."
+ exit 0
fi
-
-THEPIDFILE="`grep ^PidFile $CLAMAVCONF | awk '{print $2}'`"
-[ -e "$THEPIDFILE" ] && PID=`cat $THEPIDFILE`
-[ "$PID" = '1' ] && unset PID
-
-# Make sure dirs exist and are correct
-for i in /var/run/clamav /var/log/clamav /var/lib/clamav
-do
- [ ! -d $i ] && mkdir -p $i && chown clamav:clamav $i
-done
+pidfile="`grep ^PidFile $CLAMAVCONF | awk '{print $2}'`"
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --oknodo -S -x $DAEMON
- echo "$NAME"
+ echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
- if [ -n "$PID" ]; then
- kill -15 -"$PID"
- sleep 1
- if kill -0 "$PID" 2>/dev/null; then
- echo -n "Waiting . "
- cnt=0
- while kill -0 "$PID" 2>/dev/null; do
- cnt=`expr "$cnt" + 1`
- if [ "$cnt" -gt 60 ]; then
- echo -n " Failed.. "
- kill -9 -"$PID"
- break
- fi
- sleep 2
- echo -n ". "
- done
- fi
- else
- start-stop-daemon -o -K -q -p $THEPIDFILE
- fi
- echo "$NAME"
+ start-stop-daemon -K -p $pidfile
;;
restart|force-reload)
diff --git a/packages/clamav/files/clamav-freshclam.init b/packages/clamav/files/clamav-freshclam.init
index 47491a2a54..490a41e31f 100644
--- a/packages/clamav/files/clamav-freshclam.init
+++ b/packages/clamav/files/clamav-freshclam.init
@@ -1,15 +1,17 @@
#!/bin/sh
-# This is a modified version of the debian clamav-freshclam init script
-set -e
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/freshclam
NAME=freshclam
DESC="ClamAV virus database updater"
-
-[ -x $DAEMON ] || exit 0
-
CLAMAV_CONF_FILE=/etc/clamd.conf
FRESHCLAM_CONF_FILE=/etc/freshclam.conf
-PIDFILE=/var/run/clamav/freshclam.pid
+pidfile=/var/run/clamav/freshclam.pid
+
+set -e
+
+test -r /etc/default/clamav-freshclam && . /etc/default/clamav-freshclam
+test -x "$DAEMON" || exit 0
+test ! -r "$CLAMAV_CONF_FILE" && exit 0
slurp_config()
{
@@ -40,51 +42,8 @@ slurp_config()
fi
}
-
slurp_config "$FRESHCLAM_CONF_FILE"
-for inet in $INTERFACE; do
- if route | grep -q "$inet"; then
- IS_UP=true
- break
- else
- IS_UP=false
- fi
-done
-for inet in $INTERFACE; do
- if [ "$inet" = "$IFACE" ]; then
- match=true
- break
- else
- match=false
- fi
-done
-
-# We don't want to always start/stop if running from if-up/down.d
-if ! [ "$1" = "start" -o "$1" = "stop" ]; then # Exempt restart/reload/etc from checks
- if [ -n "$INTERFACE" ]; then # Want it only run from if-up.d
- if [ -z "$IFACE" ]; then # Is not called by if-up.d
- if [ "$IS_UP" = false ]; then # And route isn't up (e.g., upgrade)
- echo "Interface not up. Exiting."
- exit 0
- fi
- elif [ "$match" != 'true' ]; then # IFACE coming up is not the one selected
- echo "Interface not up. Exiting."
- exit 0
- fi
- fi
-fi
-
-# If user wants it run from cron, we only accept no-daemon and stop
-if [ -f /etc/cron.d/clamav-freshclam ]; then
- if ! [ "$1" = "no-daemon" -o "$1" = "stop" ]; then
- echo "Cron option has been selected for running freshclam"
- echo "Please either run freshclam directly, or run the init"
- echo "script with the 'no-daemon' option"
- exit 0
- fi
-fi
-
[ -z "$UpdateLogFile" ] && UpdateLogFile=/var/log/clamav/freshclam.log
if [ -z "$DatabaseDirectory" ]; then
@@ -92,54 +51,33 @@ if [ -z "$DatabaseDirectory" ]; then
[ -z "$DatabaseDirectory" ] && DatabaseDirectory=/var/lib/clamav/
fi
-[ -e "$PIDFILE" ] && PID=`cat $PIDFILE`
-[ "$PID" = '1' ] && unset PID
-
-# Make sure dirs exist and are correct
-for i in /var/run/clamav /var/log/clamav $DatabaseDirectory
-do
- [ ! -d $i ] && mkdir -p $i && chown clamav:clamav $i
-done
case "$1" in
no-daemon)
- echo "It takes freshclam ~3min to timeout and try the next mirror in the list"
- freshclam -l "$UpdateLogFile" --datadir "$DatabaseDirectory"
- ;;
+ echo "It takes freshclam ~3min to timeout and try the next mirror in the list"
+ freshclam -l "$UpdateLogFile" --datadir "$DatabaseDirectory"
+ ;;
+
start)
- echo -n "Starting $DESC: "
- start-stop-daemon -S -x $DAEMON -- -d --quiet -p $PIDFILE
- echo "$NAME"
- ;;
+ echo -n "Starting $DESC: "
+ start-stop-daemon -S -x $DAEMON -- -d --quiet -p $pidfile
+ echo "$NAME."
+ ;;
+
stop)
- echo -n "Stopping $DESC: "
- start-stop-daemon -o -K -q -p $PIDFILE $DAEMON
- if [ -n "$PID" ]; then
- sleep 1
- if kill -0 "$PID" 2>/dev/null; then
- echo -n "Waiting . "
- cnt=0
- while kill -0 "$PID" 2>/dev/null; do
- cnt=`expr "$cnt" + 1`
- if [ "$cnt" -gt 60 ]; then
- echo -n " Failed.. "
- break
- fi
- sleep 2
- echo -n ". "
- done
- fi
- fi
- echo "$NAME"
- ;;
+ echo -n "Stopping $DESC: "
+ start-stop-daemon -K -p $pidfile
+ ;;
+
restart|force-reload)
- $0 stop
- $0 start
- ;;
+ $0 stop
+ $0 start
+ ;;
+
*)
- echo "Usage: $0 {no-daemon|start|stop|restart|force-reload}" >&2
- exit 1
- ;;
+ echo "Usage: $0 {no-daemon|start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
esac
exit 0