Package: htdig
Version: 1:3.1.6-11
Severity: important
Tags: patch
reopen 269080
thanks
Hi
Sorry to bother you again with this. But the cron.daily script is stil
_NOT_ fixed. I'm not sure for which reason this wasn't fixed in the
latest release. I will explain again why this fix is needed.
In /etc/default/htdig you can set if you want or want not to run
htnotify in the daily script. All is well if this is set to "true", but
if it's not, then rundig will not be executed.
This means, while the condition (for $RUN) is true the script runs until
all is done. While the condition (for $RUN) is false $RUNSCRIPT will not
be executed, because $RUNSCRIPT doesn't come in place when it's part of
the wrong loop. This leads to the situation that the script exits after
it has tested $RUN is false (because of there isn't any instruction
after this is done).
Here is the patch (long form) to get an overview:
#########################################################################
--- /root/htdig/htdig.dpkg-dist 2005-02-11 00:47:18.000000000 +0100
+++ /root/htdig/htdig 2004-08-30 19:25:28.000000000 +0200
@@ -1,35 +1,36 @@
#!/bin/sh
if ! lockfile-create /var/run/htdig.cron; then
# Another htdig indexing cronjob is already running
exit 0
fi
lockfile-touch /var/run/htdig.cron &
# Save the PID of the lockfile-touch process
BADGER="$!"
FILEREF="/etc/default/htdig"
RUNSCRIPT="/usr/bin/rundig"
LIBDIR="/var/lib/htdig"
REFRESH="$LIBDIR/full_refresh_needed"
if [ -x $RUNSCRIPT ]; then
if [ -r $FILEREF ]; then
RUN=$(awk '/^run_htnotify/ {print $3}' $FILEREF)
if [ "$RUN" = "true" ]; then
PARAM=""
if [ -d $LIBDIR ]; then
if [ -r $REFRESH ]; then
PARAM=" -i"
rm -f $REFRESH
fi
fi
- PARAM="$PARAM -a"
- $RUNSCRIPT $PARAM > /dev/null
- fi
+
+ fi
+ PARAM="$PARAM -a"
+ $RUNSCRIPT $PARAM > /dev/null
fi
fi
kill "${BADGER}"
lockfile-remove /var/run/htdig.cron
#########################################################################
Another problem, i'm not sure if it's a problem or not, is PARAM="" .
It's only set if $RUN is true. Maybe this needs to be set before we test
for $RUN. Because if $RUN is false we call PARAM="$PARAM -a" and this
without to set $PARAM before.
I haven't a problem, if I use bash. But i'm not sure, if this may be a
problem with other shells. For the case it's a problem or just bad we
should set PARAM="" at the begin of the script.
BTW, htnotify is run within rundig, and i'm not sure if it only runs if
we call "rundig -i". As i understand "-i", it's only to do a full
refresh. But this isn't well-defined in the documentation. And if it's
the case, then "run_htnotify" has no effect on htnotify and we can
recycle these cron scripts.
Then we should bring in place:
+ a weekly script, which touchs $REFRESH
+ a daily script, which runs rundig and does the refresh.
But run_htnotify in /etc/default/htdig is useless and should be removed.
Don't nail me down to this, i may be wrong. Upstream should shed some
light on this.
I hope everybody can understand this and sorry for this detailed report. I
didn't want to write a book.
THX
Carsten Luedtke
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.8.1
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)
Versions of packages htdig depends on:
ii debconf [debconf-2.0] 1.4.30.11 Debian configuration management sy
ii gawk 1:3.1.4-2 GNU awk, a pattern scanning and pr
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libdb2 2:2.7.7.0-9 The Berkeley database routines (ru
ii libgcc1 1:3.4.3-6 GCC support library
ii libstdc++5 1:3.3.5-8 The GNU Standard C++ Library v3
ii lockfile-progs 0.1.10 Programs for locking and unlocking
ii perl 5.8.4-6 Larry Wall's Practical Extraction
ii sed 4.1.2-8 The GNU sed stream editor
ii zlib1g 1:1.2.2-3 compression library - runtime
-- debconf information:
* htdig/keep-databases: false
* htdig/generate-databases: true
htdig/dblocation-changed:
* htdig/announce_package_split:
htdig/remove-databases: false
* htdig/run-htnotify: false
--- /root/htdig/htdig.dpkg-dist 2005-02-11 00:47:18.000000000 +0100
+++ /root/htdig/htdig 2004-08-30 19:25:28.000000000 +0200
@@ -25,9 +25,10 @@
rm -f $REFRESH
fi
fi
- PARAM="$PARAM -a"
- $RUNSCRIPT $PARAM > /dev/null
- fi
+
+ fi
+ PARAM="$PARAM -a"
+ $RUNSCRIPT $PARAM > /dev/null
fi
fi