#!/usr/bin/perl =head1 NAME dh_installxfonts - register X fonts =cut use strict; use warnings; use Debian::Debhelper::Dh_Lib; our $VERSION = DH_BUILTIN_VERSION; =head1 SYNOPSIS B [S>] =head1 DESCRIPTION B is a debhelper program that is responsible for registering X fonts, so their corresponding F, F, and F 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 F or F files, you should install them into the correct location under F in your package build directory. Your package should depend on B so that the BI<*> commands are available. (This program adds that dependency to B<${misc:Depends}>.) This program automatically generates the F and F commands needed to register X fonts. These commands are inserted into the maintainer scripts by B. 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 11.8.5. for details about doing fonts the Debian way. =cut init(); # PROMISE: DH NOOP WITHOUT tmp(usr/share/fonts/X11) foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); # Find all font directories in the package build directory. my @fontdirs; foreach my $parentdir ("$tmp/usr/share/fonts/X11/") { opendir(DIR, $parentdir) || next; @fontdirs = grep { -d "$parentdir/$_" && !/^\./ } (readdir DIR); closedir DIR; } if (@fontdirs) { # Figure out what commands the postinst and postrm will need # to call. my @cmds; my @cmds_postinst; my @cmds_postrm; # Sort items for reproducible binary package contents. foreach my $f (sort @fontdirs) { # This must come before update-fonts-dir. push @cmds, "update-fonts-scale $f" if -f "$tmp/etc/X11/fonts/$f/$package.scale"; push @cmds, "update-fonts-dir --x11r7-layout $f"; if (-f "$tmp/etc/X11/fonts/$f/$package.alias") { push @cmds_postinst, "update-fonts-alias --include /etc/X11/fonts/$f/$package.alias $f"; push @cmds_postrm, "update-fonts-alias --exclude /etc/X11/fonts/$f/$package.alias $f"; } } autoscript($package, "postinst", "postinst-xfonts", { 'CMDS' => join(";", @cmds, @cmds_postinst) }); autoscript($package, "postrm", "postrm-xfonts", { 'CMDS' => join(";", @cmds, @cmds_postrm) }); if (@cmds_postrm) { addsubstvar($package, "misc:Depends", "xfonts-utils", ">= 1:7.5+2"); } else { addsubstvar($package, "misc:Depends", "xfonts-utils"); } } } =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut