[ 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