Tue, 28 Aug 2012 18:36:35 +0200
Correct the paths of patched scripts, refine password generation,
mitigate fdatasync(2) detection problems, correct dependencies, remove
outdated autoconf components, correct conf file paths and attributes,
complete and correct log file rotation handing, and note warnings
useful for diagnosing builds.
michael@227 | 1 | #!@l_prefix@/bin/openpkg rc |
michael@227 | 2 | ## |
michael@227 | 3 | ## rc.clamav -- Run-Commands |
michael@227 | 4 | ## |
michael@227 | 5 | |
michael@227 | 6 | %config |
michael@227 | 7 | clamav_enable="$openpkg_rc_def" |
michael@227 | 8 | clamav_daemons="clamd clamav-milter" |
michael@227 | 9 | clamav_clamd_flags="" |
michael@227 | 10 | clamav_clamav_milter_flags="" |
michael@227 | 11 | clamav_update="daily" |
michael@227 | 12 | clamav_log_prolog="true" |
michael@227 | 13 | clamav_log_epilog="true" |
michael@227 | 14 | clamav_log_numfiles="10" |
michael@227 | 15 | clamav_log_minsize="1M" |
michael@227 | 16 | clamav_log_complevel="9" |
michael@227 | 17 | |
michael@227 | 18 | %common |
michael@227 | 19 | clamav_cfgfile="@l_prefix@/etc/clamav/clamd.conf" |
michael@234 | 20 | clamav_milter_cfgfile="@l_prefix@/etc/clamav/clamav-milter.conf" |
michael@227 | 21 | clamav_pidfile_clamd="@l_prefix@/var/clamav/clamd.pid" |
michael@227 | 22 | clamav_pidfile_clamav_milter="@l_prefix@/var/clamav/clamav-milter.pid" |
michael@227 | 23 | clamav_signal () { |
michael@227 | 24 | [ -f $clamav_pidfile_clamd ] \ |
michael@227 | 25 | && kill -$1 `cat $clamav_pidfile_clamd` |
michael@227 | 26 | local rc_clamav_clamd=$? |
michael@227 | 27 | [ -f $clamav_pidfile_clamav_milter ] \ |
michael@227 | 28 | && kill -$1 `cat $clamav_pidfile_clamav_milter` |
michael@227 | 29 | local rc_clamav_clamav_milter=$? |
michael@227 | 30 | [ $rc_clamav_clamd -eq 0 \ |
michael@227 | 31 | -o $rc_clamav_clamav_milter -eq 0 ] |
michael@227 | 32 | } |
michael@227 | 33 | |
michael@227 | 34 | %status -u @l_rusr@ -o |
michael@227 | 35 | clamav_usable="unknown" |
michael@227 | 36 | clamav_active="no" |
michael@227 | 37 | rcService clamav enable yes && \ |
michael@227 | 38 | clamav_signal 0 && clamav_active="yes" |
michael@227 | 39 | echo "clamav_enable=\"$clamav_enable\"" |
michael@227 | 40 | echo "clamav_usable=\"$clamav_usable\"" |
michael@227 | 41 | echo "clamav_active=\"$clamav_active\"" |
michael@227 | 42 | |
michael@227 | 43 | %start -u @l_rusr@ |
michael@227 | 44 | rcService clamav enable yes || exit 0 |
michael@227 | 45 | rcService clamav active yes && exit 0 |
michael@227 | 46 | for daemon in $clamav_daemons; do |
michael@227 | 47 | if [ ".$daemon" = ".clamd" ]; then |
michael@227 | 48 | @l_prefix@/sbin/clamd \ |
michael@227 | 49 | --config-file=$clamav_cfgfile \ |
michael@227 | 50 | $clamav_clamd_flags |
michael@227 | 51 | elif [ ".$daemon" = ".clamav-milter" -a -x @l_prefix@/sbin/clamav-milter ]; then |
michael@227 | 52 | ( umask 002 |
michael@227 | 53 | @l_prefix@/sbin/clamav-milter \ |
michael@234 | 54 | --config-file=$clamav_milter_cfgfile \ |
michael@234 | 55 | $clamav_clamav_milter_flags |
michael@227 | 56 | ) || exit $? |
michael@227 | 57 | fi |
michael@227 | 58 | done |
michael@227 | 59 | |
michael@227 | 60 | %stop -u @l_rusr@ |
michael@227 | 61 | rcService clamav enable yes || exit 0 |
michael@227 | 62 | rcService clamav active no && exit 0 |
michael@227 | 63 | clamav_signal TERM |
michael@227 | 64 | rm -f $clamav_pidfile_clamd 2>/dev/null || true |
michael@227 | 65 | rm -f $clamav_pidfile_clamav_milter 2>/dev/null || true |
michael@227 | 66 | |
michael@227 | 67 | %restart -u @l_rusr@ |
michael@227 | 68 | rcService clamav enable yes || exit 0 |
michael@227 | 69 | rcService clamav active no && exit 0 |
michael@227 | 70 | rc clamav stop |
michael@227 | 71 | sleep 2 |
michael@227 | 72 | rc clamav start |
michael@227 | 73 | |
michael@227 | 74 | %quarterly -u @l_rusr@ |
michael@227 | 75 | rcService clamav enable yes || exit 0 |
michael@227 | 76 | if [ ".$clamav_update" = .quarterly ]; then |
michael@227 | 77 | @l_prefix@/bin/freshclam |
michael@227 | 78 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 79 | fi |
michael@227 | 80 | |
michael@227 | 81 | %hourly -u @l_rusr@ |
michael@227 | 82 | rcService clamav enable yes || exit 0 |
michael@227 | 83 | if [ ".$clamav_update" = .hourly ]; then |
michael@227 | 84 | @l_prefix@/bin/freshclam |
michael@227 | 85 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 86 | fi |
michael@227 | 87 | |
michael@227 | 88 | %daily -u @l_rusr@ |
michael@227 | 89 | rcService clamav enable yes || exit 0 |
michael@227 | 90 | if [ ".$clamav_update" = .daily ]; then |
michael@227 | 91 | @l_prefix@/bin/freshclam |
michael@227 | 92 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 93 | fi |
michael@227 | 94 | logfiles="" |
michael@227 | 95 | for daemon in freshclam $clamav_daemons; do |
michael@227 | 96 | logfiles="$logfiles @l_prefix@/var/clamav/$daemon.log" |
michael@227 | 97 | done |
michael@227 | 98 | shtool rotate -f \ |
michael@227 | 99 | -n $clamav_log_numfiles -s $clamav_log_minsize -d \ |
michael@227 | 100 | -z $clamav_log_complevel -o @l_rusr@ -g @l_rgrp@ -m 644 \ |
michael@227 | 101 | -P "$clamav_log_prolog" \ |
michael@227 | 102 | -E "$clamav_log_epilog; rc clamav restart" \ |
michael@227 | 103 | $logfiles |
michael@227 | 104 | |
michael@227 | 105 | %weekly -u @l_rusr@ |
michael@227 | 106 | rcService clamav enable yes || exit 0 |
michael@227 | 107 | if [ ".$clamav_update" = .weekly ]; then |
michael@227 | 108 | @l_prefix@/bin/freshclam |
michael@227 | 109 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 110 | fi |
michael@227 | 111 |