X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installxfonts;h=276f903c0240b4b17273f3687b9cd384c1270b69;hb=22272aacfd9a988e722ba3fcb9b93432f5a1e29a;hp=7a50c597863a26a2997777489b54eb313dbe8e1a;hpb=fc94604df8b0551ed52d78f735a65d1f3924ed71;p=debhelper.git diff --git a/dh_installxfonts b/dh_installxfonts index 7a50c59..276f903 100755 --- a/dh_installxfonts +++ b/dh_installxfonts @@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS - dh_installxfonts [debhelper options] +B [S>] =head1 DESCRIPTION @@ -19,19 +19,28 @@ 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). +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. -It automatically generates the postinst and postrm commands needed to -register X fonts. See L for an explanation of how this -works. +Your package should depend on xfonts-utils 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. These commands are inserted into the maintainer +scripts by dh_installdeb. See L for an explanation of how +this works. =head1 NOTES -See L, L, and L -for more information about X font installation. +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 @@ -39,36 +48,44 @@ 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; + # Find all font directories in the package build directory. + my @fontdirs; + foreach my $parentdir ("$tmp/usr/X11R6/lib/X11/fonts/", "$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 will need to call. - my @updatecmds=('makefontdir'); + # Figure out what commands the postinst and postrm will need + # to call. + my @cmds; 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' + # 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"; + push @cmds, "update-fonts-alias $f" + if -f "$tmp/etc/X11/fonts/$f/$package.alias"; } autoscript($package, "postinst", "postinst-xfonts", - "s:#FONTDIRS#:".join(' ', @fontdirs). - ":;s:#UPDATECMDS#:".join(' ', @updatecmds).":"); + "s:#CMDS#:".join(";", @cmds).":;"); autoscript($package, "postrm", "postrm-xfonts", - "s:#FONTDIRS#:".join(' ', @fontdirs). - ":;s:#UPDATECMDS#:".join(' ', @updatecmds).":"); + "s:#CMDS#:".join(";", @cmds).":;"); + + addsubstvar($package, "misc:Depends", "xfonts-utils"); + } + else { + # remove + addsubstvar($package, "misc:Depends", "xfonts-utils", "", 1); } } =head1 SEE ALSO -L +L This program is a part of debhelper.