diff options
Diffstat (limited to 'dh_installxfonts')
-rwxr-xr-x | dh_installxfonts | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/dh_installxfonts b/dh_installxfonts new file mode 100755 index 00000000..984144b4 --- /dev/null +++ b/dh_installxfonts @@ -0,0 +1,93 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_installxfonts - register X fonts + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B<dh_installxfonts> [S<I<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, 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 program adds that dependency to +${misc:Depends}.) + +This program automatically generates the postinst and postrm commands needed +to register X fonts. See L<dh_installdeb(1)> for an explanation of how this +works. + +=head1 NOTES + +See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and +L<update-fonts-dir(8)> 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) { + # 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 $f"; + push @cmds, "update-fonts-alias $f" + if -f "$tmp/etc/X11/fonts/$f/$package.alias"; + } + + autoscript($package, "postinst", "postinst-xfonts", + "s:#CMDS#:".join(";", @cmds).":;"); + autoscript($package, "postrm", "postrm-xfonts", + "s:#CMDS#:".join(";", @cmds).":;"); + + addsubstvar($package, "misc:Depends", "xutils", ">= 4.0.3"); + } + else { + # remove + addsubstvar($package, "misc:Depends", "xutils", ">= 4.0.3", 1); + } +} + +=head1 SEE ALSO + +L<debhelper(7)> + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess <joeyh@debian.org> + +=cut |