[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ A ] [ next ]
This section contains sample code that implements the recommodations of this document.
Sample postinst script:
#
# postinst-texfonts
#
# postinst snippet for installing Type 1 fonts for TeX
#
# Author: Florent Rougon <f.rougon@free.fr>
#
update_fontmaps()
{
update-updmap --quiet
# All of the following needs an installed and configured
# basic TeX system, so check this.
if kpsewhich --version >/dev/null 2>&1; then
# mktexlsr is recommended now because updmap-sys relies
# heavily on Kpathsea to locate updmap.cfg and the map files.
# Also, it is slightly better not to specify a particular
# directory to refresh because updmap.cfg is typically found
# in TEXMFSYSVAR while the map files are in TEXMFMAIN or
# TEXMFDIST.
if which mktexlsr >/dev/null; then mktexlsr; fi
if which updmap-sys >/dev/null; then
printf "Running updmap-sys... "
updmap-sys --quiet
echo "done."
fi
fi
return 0
}
case "$1" in
configure|abort-upgrade|abort-remove|abort-deconfigure)
update_fontmaps
;;
*)
echo "postinst called with unknown argument '$1'" >&2
exit 1
;;
esac
Sample postrm script:
#
# postrm-texfonts
#
# postrm snippet for installing Type 1 fonts for TeX
#
# Author: Florent Rougon <f.rougon@free.fr>
#
tell_that_errors_are_ok()
{
# Cheap option handling...
if [ "$1" = -n ]; then
prog="$2"
endwith=' '
else
prog="$1"
endwith='\n'
fi
printf "\
Trying to run '$prog' (error messages can be ignored if tex-common
is not configured)...$endwith"
return 0
}
# The function name is *try_to*_update_fontmaps because the following
# scenario might happen:
# 1. this package is deconfigured
# 2. tex-common and tetex-bin are removed
# 3. this package is removed or purged
#
# (cf. Policy § 6.5, step 2, about a conflicting package being removed due
# to the installation of the package being discussed).
#
# In this case, update-updmap, mktexlsr and updmap-sys would all be gone once
# tex-common and tetex-bin are removed, so we must append "|| true" to their
# calls.
try_to_update_fontmaps()
{
# Don't print alarming error messages if the programs aren't even
# available.
if which update-updmap >/dev/null; then
tell_that_errors_are_ok -n update-updmap
update-updmap --quiet || true
echo "done."
fi
# All of the following needs an installed and configured basic TeX system.
# If there is one, register the fonts. Otherwise, that will be done later
# when the basic TeX system is configured, so we can exit without
# worrying.
kpsewhich --version >/dev/null 2>&1 || return 0
# mktexlsr is recommended now because updmap-sys relies heavily on
# Kpathsea to locate updmap.cfg and the map files. Also, it is slightly
# better not to specify a particular directory to refresh because
# updmap.cfg is typically found in TEXMFSYSVAR while the map files are in
# TEXMFMAIN.
if which mktexlsr >/dev/null; then
tell_that_errors_are_ok mktexlsr
mktexlsr || true
echo "done."
fi
if which updmap-sys >/dev/null; then
tell_that_errors_are_ok -n updmap-sys
updmap-sys --quiet || true
echo "done."
fi
return 0
}
case "$1" in
remove|disappear)
try_to_update_fontmaps
;;
purge)
# Supposing updmap.cfg & Co are clean (which I think is a reasonable
# assumption), we don't need to call try_to_update_fontmaps().
# Calling it on remove _and_ on purge just for hypothetical users
# who would break their config before purging this package seems to
# be more annoying than useful (it takes a lot of time).
;;
upgrade|failed-upgrade|abort-upgrade|abort-install)
;;
*)
echo "postrm called with unknown argument '$1'" >&2
exit 1
;;
esac
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ A ] [ next ]
The Debian TeX sub-policy
generated from $Id: Debian-TeX-Policy.sgml 1987 2006-12-06 16:13:15Z frank $debian-tex-maint@lists.debian.org