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]

Reply via email to