#!/usr/bin/perl -w =head1 NAME dh_installxfonts - register X fonts =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] =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, and if you have fonts.alias or fonts.scale files, you should install them into the correct location under etc/X11/fonts in your package build directory. Your package should should depend on xutils (>= 4.0.3) so that the update-fonts-* commands are available. This programt 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. See Debian policy, section 12.8.5. for details about doing fonts the Debian way. =cut init(); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $XFONTDIR="$tmp/usr/X11R6/lib/X11/fonts/"; # Find all font 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 and postrm will need # to call. my @cmds; foreach my $f (@fontdirs) { push @cmds, "update-fonts-dir $f"; push @cmds, "update-fonts-alias $f" if -f "$tmp/etc/X11/fonts/$f/$package.alias"; # This must come _before_ mkfontdir, thus the unshift. unshift @cmds, "update-fonts-scale $f" if -f "$tmp/etc/X11/fonts/$f/$package.scale"; } autoscript($package, "postinst", "postinst-xfonts", "s:#CMDS#:".join("\n", @cmds).":;"); } } =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut