tags #342644 confirmed thanks On Fri, Dec 09, 2005 at 09:14:10AM +0100, Bas Couwenberg wrote: > While upgrading clamav-data from volatile today, I got the error that > clamav-daemons database could not be reloaded. > > This is due to the fact that reload-database is not an action in the > clamav-daemon init script.
This only applies to sarge; the clamav-daemon packages in sind and etch have the reload-database action. > If you use restart it does work. ... but it will unnecessarily restart the clamav-daemon on etch and sid. Please try the attached postinst which will catch sarge's /etc/init.d/clamav-daemon's error message and then invoke the initscript again with the restart target. A different approach would be to signal the clamav-daemon manually, but that would mean replicating a good part of clamav-daemon's init script in clamav-data's postinst, and we would be using an undocumented internal interface. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 621 72739835
#!/bin/bash set -e [ $CAD_DEBUG ] && set -x INITSCRIPT="/etc/init.d/clamav-daemon" . /usr/share/debconf/confmodule if [ "$1" = "configure" ]; then db_get clamav-data/warn-on-old-databases db_stop rm -f /var/lib/clamav-data/warn-on-old-databases if [ "$RET" = "true" ]; then touch /var/lib/clamav-data/warn-on-old-databases fi if [ -x "$INITSCRIPT" ]; then RET=0 OUTPUT="$($INITSCRIPT reload-database 2>&1)" || RET=$? if echo $OUTPUT | grep -q "^Usage: /etc/init.d/clamav-daemon {start|stop|restart|force-reload}"; then # we have an old clamav that doesn't support reload-database RET=0 $INITSCRIPT restart || RET=$? else echo >&2 $OUTPUT fi # clamav-daemon init script will return 0 on "no error" and # 3 on "daemon is not running". if [ "$RET" -ne 0 ] && [ "$RET" -ne 3 ]; then echo >&2 "WARN: signaling clamav-daemon to reload database failed" fi if [ "$RET" -eq 3 ]; then echo >&2 "WARN: clamav-daemon not running, according to init script" fi fi fi