#!/usr/bin/perl -w =head1 NAME dh_installxfonts - register X fonts =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS dh_installxfonts [debhelper options] =head1 DESCRIPTION dh_installxfonts is a debhelper program that is responsible for registering X fonts, so their corresponding fonts.dir, fonts.alias, and fonts.scale be rebuilt properly at install time. Before calling this program, you should have installed any X fonts provided by your package into the appropriate location in the package build directory. Also, your package should depend on xbase-clients (>= 3.3.3.1-5). It automatically generates the postinst and postrm commands needed to register X fonts. See L for an explanation of how this works. =head1 NOTES See L, L, and L for more information about X font installation. =cut init(); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $XFONTDIR="$tmp/usr/X11R6/lib/X11/fonts/"; # Find all fint directories in the package build directory. opendir DIR, $XFONTDIR || next; my @fontdirs = grep { -d "$XFONTDIR/$_" && !/^\./ } (readdir DIR); closedir DIR; if (@fontdirs) { # Figure out what commands the postinst will need to call. my @updatecmds=('makefontdir'); foreach my $f (@fontdirs) { push @updatecmds, '/usr/sbin/update-fonts-alias' if -f "$tmp/etc/X11/fonts/$f/$package.alias"; # This must come _before_ mkfontdir, thus the unshift. unshift @updatecmds, '/usr/sbin/update-fonts-scale' if -f "$tmp/etc/X11/fonts/$f/$package.scale"; } autoscript($package, "postinst", "postinst-xfonts", "s:#FONTDIRS#:".join(' ', @fontdirs). ":;s:#UPDATECMDS#:".join(' ', @updatecmds).":"); autoscript($package, "postrm", "postrm-xfonts", "s:#FONTDIRS#:".join(' ', @fontdirs). ":;s:#UPDATECMDS#:".join(' ', @updatecmds).":"); } } =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut