Package: john
Version: 1.7-2
Severity: serious
john.postinst moves some conffiles from /etc/ to /etc/john; I think
this should be in preinst instead (if the md5sum matches the value in
dpkg status, remove, causing dpkg to add the new file, and the old one
doesn't exist as cruft; otherwise move, which causes a dpkg prompt, as
intended).
It also removes/replaces the conffile /etc/cron.daily/john:
if [ "$RET" = "true" ]; then
if [ -f /etc/cron.daily/john ] && [ ! -L /etc/cron.daily/john
]; then
rm /etc/cron.daily/john
fi
fi
[...]
And /etc/cron.d/john:
cronfile=/etc/cron.d/john
tmp=`tempfile`
if [ "$INSTCRON" = "true" ] && [ -f $cronfile ]; then
cat $cronfile | sed -e 's/^#00/00/' >$tmp
mv $tmp $cronfile
else
[...]
if [ -f $cronfile ] ; then
cat $cronfile | sed -e 's/^00/#00/' >$tmp
mv $tmp $cronfile
else
rm $tmp
fi
fi
And modifies the conffile /etc/john/john.conf:
CONFFILE='/etc/john/john.conf'
[...]
TEMPFILE=`tempfile -d /etc/ -m 644`
# Warn: Wordlist contains / so we use ',' instead, if the
# user uses ',' the script will break (he shouldnt do that)
sed -e "s,^Wordfile = .*,Wordfile = $WORDLIST," $CONFFILE >$TEMPFILE
mv $TEMPFILE $CONFFILE
john.preinst moves all the old conffiles out of the way, which seems
to violate "preserves local configurations".
john.prerm modifies the cronjob conffile; the accepted way to do this
(eg. in initscripts) is to test for the existence of the daemon
executable at the top of the script, and exist if it doesn't exist
(which is supposed to mean "the package has been removed but not
purged):
cronfile=/etc/cron.d/john
tmp=`tempfile`
# If the user enabled the cronjob through debconf remove it, otherwise
# keep it as it is since it is a local change.
if [ "$INSTCRON" = "true" ]; then
cat $cronfile | sed -e 's/^00/#00/' >$tmp
mv $tmp $cronfile
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]