[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