[subversion-commit] SVN tetex commit + diffs: r228 - in
tex-common/trunk: . debhelper
Norbert Preining
preining-guest at costa.debian.org
Sat Oct 15 18:37:02 UTC 2005
Author: preining-guest
Date: 2005-10-15 18:37:01 +0000 (Sat, 15 Oct 2005)
New Revision: 228
Added:
tex-common/trunk/debhelper/
tex-common/trunk/debhelper/dh_installtexfonts
tex-common/trunk/debhelper/postinst-texfonts
tex-common/trunk/debhelper/postrm-texfonts
Log:
First hack on dh_installtexfonts
Added: tex-common/trunk/debhelper/dh_installtexfonts
===================================================================
--- tex-common/trunk/debhelper/dh_installtexfonts 2005-10-15 17:47:08 UTC (rev 227)
+++ tex-common/trunk/debhelper/dh_installtexfonts 2005-10-15 18:37:01 UTC (rev 228)
@@ -0,0 +1,89 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installtexfonts - register TeX type1 fonts
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installtexfonts> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+dh_installtexfonts is a debhelper program that is responsible for
+registering type1 fonts for TeX.
+
+Your package should depend on tex-common (>= 0.7) so that the
+update-* commands are available. (This program adds that dependency to
+${misc:Depends}.)
+
+This program automatically generates the postinst and postrm commands needed
+to register TeX fonts. See L<dh_installdeb(1)> for an explanation of how this
+works.
+
+=head1 NOTES
+
+See Debian policy, section 11.8.5. for details about doing fonts the Debian
+way.
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"maps");
+
+ my @maps;
+ if ($file) {
+ open(FOO, "<$file") || error("$file cannot be opened.");
+ @maps = <FOO>;
+ close(FOO);
+ chomp @maps;
+ }
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @maps, @ARGV;
+ }
+
+ open(CFGFILE, ">$tmp/etc/texmf/updmap.d/50$package.cfg") || \
+ error("Cannot open $tmp/etc/texmf/updmap.d/10$package.cfg for writing!);
+ print CFGFILE <<EOF;
+# 50$package.cfg
+# You can change/add entries to this file and changes will be preserved
+# over upgrades, even if you have removed the main package prior
+# (not if you purged it). YOu should leave the following pseudo comment
+# present in the file!
+# -_- DebPkgProvidedMaps -_-
+#
+EOF
+ while (@maps) {
+ print CFGFILE "Map $_\n";
+ }
+ close(CFGFILE);
+ open(LISTFILE, ">$tmp/var/lib/tex-common/fmtutil-cnf/$package.list")||\
+ error("Cannot open $tmp/var/lib/tex-common/fmtutil-cnf/$package.list for writing!);
+ print LISTFILE "50$package";
+ close(LISTFILE);
+
+ autoscript($package, "postinst", "postinst-texfonts", "");
+ autoscript($package, "postrm", "postrm-texfonts", "");
+
+ addsubstvar($package, "misc:Depends", "tex-common", ">= 0.7");
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is till now not a part of debhelper.
+
+=head1 AUTHOR
+
+Norbert Preining <preining at logic.at>
+
+=cut
Property changes on: tex-common/trunk/debhelper/dh_installtexfonts
___________________________________________________________________
Name: svn:executable
+ *
Added: tex-common/trunk/debhelper/postinst-texfonts
===================================================================
--- tex-common/trunk/debhelper/postinst-texfonts 2005-10-15 17:47:08 UTC (rev 227)
+++ tex-common/trunk/debhelper/postinst-texfonts 2005-10-15 18:37:01 UTC (rev 228)
@@ -0,0 +1,38 @@
+
+update_fontmaps()
+{
+ update-updmap --quiet
+ # 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.
+ # According to the Debian TeX policy, running mktexlsr and updmap-sys
+ # should work as long as tex-common is configured and these files are
+ # available (general Debian policy wouldn't assure that without this
+ # override from the Debian TeX policy).
+ 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
+
+ return 0
+}
+
+case "$1" in
+ configure)
+ update_fontmaps
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ update_fontmaps
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
Added: tex-common/trunk/debhelper/postrm-texfonts
===================================================================
--- tex-common/trunk/debhelper/postrm-texfonts 2005-10-15 17:47:08 UTC (rev 227)
+++ tex-common/trunk/debhelper/postrm-texfonts 2005-10-15 18:37:01 UTC (rev 228)
@@ -0,0 +1,87 @@
+
+tell_that_errors_are_ok()
+{
+ # Cheap option handling...
+ if [ "$1" = -n ]; then
+ prog="$2"
+ endwith=' '
+ else
+ prog="$1"
+ endwith='\n'
+ fi
+
+ # According to the Debian TeX policy, running mktexlsr and updmap-sys
+ # should work as long as tex-common is configured and these files are
+ # available (general Debian policy wouldn't assure that without this
+ # override from the Debian TeX policy).
+ 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
+ # 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
+
+
More information about the Pkg-tetex-commits
mailing list