Hi folks,
I noticed the other day that there are quite a few packages like
ttf-bitstream-vera which do the following in
/var/lib/dpkg/info/ttf-bitstream-vera.postinst:
if [ "$1" = configure -a -x /usr/bin/fc-cache ]
then
echo -n "Regenerating fonts cache... "
HOME=/root fc-cache -f -v 1>/var/log/fontconfig.log 2>&1 || \
(echo "failed; see /var/log/fontconfig.log for more information."; \
exit 1)
echo "done."
fi
This is wrong. Using ()'s creates a subshell, and exit then only
exits the subshell, not the postinst (which I believe it's supposed
to do). The code either needs an "|| exit $?" appended, or {}'s
should be used. Compare
sh -c '( echo foo; exit 1; ); echo bar'
sh -c '{ echo foo; exit 1; }; echo bar'
The reason seems to be brainless cut-n-pasting.
I think this calls for a mass-bug filing on fc-cache-using packages,
severity minor. But instead of having everyone fix this, I wonder
why debhelper isn't taking care of this. Thoughts?
--
.''`. martin f. krafft <madduck@debian.org>
: :' : proud Debian developer, author, administrator, and user
`. `'` http://people.debian.org/~madduck - http://debiansystem.info
`- Debian - when you have better things to do than fixing systems
"even a stopped clock gives the right time twice a day."
-- orbital
Attachment:
digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)