X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installwm;h=e07b7299a4a212b41f59b9d4f5d1563738bc0cd1;hb=2105efbab7b64359550354fe0215b2bd025dd5cb;hp=8bbee699a02317aa9c23e280beb8f9b9d0b5466a;hpb=053f6f8b4e7431d32511aef209188a084e8c7e79;p=debhelper.git diff --git a/dh_installwm b/dh_installwm index 8bbee69..e07b729 100755 --- a/dh_installwm +++ b/dh_installwm @@ -1,9 +1,63 @@ #!/usr/bin/perl -w -# -# Add to postinst and prerm to register a window manager. + +=head1 NAME + +dh_installwm - register a window manager + +=cut use strict; use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-n>] [B<--priority=>I] [S>] + +=head1 DESCRIPTION + +dh_installwm is a debhelper program that is responsible for +generating the postinst and postrm commands that register a window manager +with L. The window manager's man page is also +registered as a slave symlink (in v6 mode and up), if it is found in +usr/share/man/man1/ in the package build directory. + +Any window manager programs specified as parameters will be registered in +the first package dh_installwm is told to act on. By default, this is the +first binary package in debian/control, but if you use -p, -i, or -a flags, +it will be the first package specified by those flags. + +Files named debian/package.wm can list other window manager programs to +register. + +=head1 OPTIONS + +=over 4 + +=item B<--priority=>I + +Set the priority of the window manager. Default is 20, which is too low for +most window managers; see the Debian Policy document for instructions on +calculating the correct value. + +=item B<-n>, B<--noscripts> + +Do not modify postinst/postrm scripts. Turns this command into a no-op. + +=item I + +The commands used to run the window manager or window managers you want to +register. + +=back + +=head1 NOTES + +Note that this command is not idempotent. L should be called +between invocations of this command. Otherwise, it may cause multiple +instances of the same text to be added to maintainer scripts. + +=cut + init(); if (! defined $dh{PRIORITY}) { @@ -11,15 +65,15 @@ if (! defined $dh{PRIORITY}) { } if (@ARGV) { - # This is here for backwards compatability. If the filename doesn't - # include a path, assume it's in /usr/X11R6/bin. + # This is here for backwards compatibility. If the filename doesn't + # include a path, assume it's in /usr/bin. if ($ARGV[0] !~ m:/:) { - $ARGV[0]="/usr/X11R6/bin/$ARGV[0]"; + $ARGV[0]="/usr/bin/$ARGV[0]"; } } foreach my $package (@{$dh{DOPACKAGES}}) { -# my $tmp=tmpdir($package); + my $tmp=tmpdir($package); my $file=pkgfile($package,"wm"); my @wm; @@ -31,11 +85,33 @@ foreach my $package (@{$dh{DOPACKAGES}}) { push @wm, @ARGV; } - if (@wm && ! $dh{NOSCRIPTS}) { - foreach (@wm) { - autoscript($package,"postinst","postinst-wm","s:#WM#:$_:;s/#PRIORITY#/$dh{PRIORITY}/",); - autoscript($package,"prerm","prerm-wm","s:#WM#:$_:"); + if (! $dh{NOSCRIPTS}) { +WM: foreach my $wm (@wm) { + autoscript($package,"prerm","prerm-wm","s:#WM#:$wm:"); + + my $wmman; + if (! compat(5)) { + foreach my $ext (".1", ".1x") { + $wmman="/usr/share/man/man1/".basename($wm).$ext; + if (-e "$tmp$wmman" || -e "$tmp$wmman.gz") { + autoscript($package,"postinst","postinst-wm","s:#WM#:$wm:;s:#WMMAN#:$wmman.gz:;s/#PRIORITY#/$dh{PRIORITY}/",); + next WM; + } + } + } + autoscript($package,"postinst","postinst-wm-noman","s:#WM#:$wm:;s/#PRIORITY#/$dh{PRIORITY}/",); } } } +=head1 SEE ALSO + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut