diff options
Diffstat (limited to 'dh_installmanpages')
-rwxr-xr-x | dh_installmanpages | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/dh_installmanpages b/dh_installmanpages deleted file mode 100755 index 39946f6a..00000000 --- a/dh_installmanpages +++ /dev/null @@ -1,206 +0,0 @@ -#!/usr/bin/perl -w - -=head1 NAME - -dh_installmanpages - old-style man page installer - -=cut - -use strict; -use File::Find; -use Debian::Debhelper::Dh_Lib; - -=head1 SYNOPSIS - -B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file ...>>] - -=head1 DESCRIPTION - -dh_installmanpages is a debhelper program that is responsible for -automatically installing man pages into usr/share/man/ and usr/X11R6/man/ -in package build directories. - -This is a DWIM-style program, with an interface unlike the rest of -debhelper. You are encouraged to use L<dh_installman(1)> instead. - -dh_installmanpages scans the current directory and all subdirectories for -filenames that look like man pages. (Note that only real files are looked -at; symlinks are ignored.) It uses L<file(1)> to verify that the files are -in the correct format. Then, based on the files' extensions, it installs -them into the correct man directory. - -All filenames specified as parameters will be skipped by dh_installmanpages. -This is useful if by default it installs some man pages that you do not -want to be installed. - -After the man page installation step, dh_installmanpages will check to see -if any of the man pages are ".so" links. If so, it changes them to symlinks. - -=head1 OPTIONS - -=over 4 - -=item I<file ...> - -Do not install these files as man pages, even if they look like valid man -pages. - -=back - -=head1 BUGS - -dh_installmanpages will install the man pages it finds into B<all> packages -you tell it to act on, since it can't tell what package the man -pages belong in. This is almost never what you really want (use -p to work -around this, or use the much better L<dh_installman(1)> program instead). - -Files ending in I<.man> will be ignored. - -Files specified as parameters that contain spaces in their filenames will -not be processed properly. - -=cut - -init(); - -# Check if a file is a man page, for use by File::Find. -my @manpages; -my @allpackages; -sub find_man { - # Does its filename look like a man page? - # .ex files are examples installed by deb-make, - # we don't want those, or .in files, which are - # from configure, nor do we want CVS .#* files. - if (! (-f $_ && /^.*\.[1-9].*$/ && ! /\.(ex|in)$/ && ! /^\.#/)) { - return; - } - - # It's not in a tmp directory is it? - if ($File::Find::dir=~m:debian/.*tmp.*:) { - return; - } - foreach my $dir (@allpackages) { - if ($File::Find::dir=~m:debian/\Q$dir\E:) { - return; - } - } - - # And file does think it's a real man page? - my $type=`file -z $_`; - if ($type !~ m/:.*roff/) { - return; - } - - # Good enough. - push @manpages,"$File::Find::dir/$_"; -} - -# Check if a file is a .so man page, for use by File::Find. -my @sofiles; -my @sodests; -sub find_so_man { - # The -s test is becuase a .so file tends to be small. We don't want - # to open every man page. 1024 is arbitrary. - if (! -f $_ || -s $_ > 1024) { - return; - } - - # Test first line of file for the .so thing. - open (SOTEST,$_); - my $l=<SOTEST>; - close SOTEST; - if ($l=~m/\.so\s+(.*)/) { - my $solink=$1; - # This test is here to prevent links like ... man8/../man8/foo.8 - if (basename($File::Find::dir) eq - dirname($solink)) { - $solink=basename($solink); - } - else { - $solink="../$solink"; - } - - push @sofiles,"$File::Find::dir/$_"; - push @sodests,$solink; - } -} - -foreach my $package (@{$dh{DOPACKAGES}}) { - my $tmp=tmpdir($package); - - # Find all filenames that look like man pages. - @manpages=(); - @allpackages=GetPackages(''); - find(\&find_man,'.'); # populates @manpages - - foreach my $page (@manpages) { - $page=~s:^\./::; # just for looks - - my $basename=basename($page); - - # Skip all files listed on command line. - my $install=1; - foreach my $skip (@ARGV) { - # Look at basename of what's on connect line - # for backwards compatibility. - if ($basename eq basename($skip)) { - $install=undef; - last; - } - } - - if ($install) { - my $extdir="share"; - # Handle X man pages specially. - if ($basename=~/x$/) { - $extdir="X11R6"; - } - - my ($section)=$basename=~m/.*\.([1-9])/; - - my $destdir="$tmp/usr/$extdir/man/man$section/"; - - # Handle translated man pages. - my $instname=$basename; - my ($langcode)=$basename=~m/.*\.([a-z][a-z])\.([1-9])/; - if (defined $langcode && $langcode ne '') { - $destdir="$tmp/usr/$extdir/man/$langcode/man$section/"; - $instname=~s/\.$langcode\./\./; - } - - $destdir=~tr:/:/:s; # just for looks - - if (! -e "$destdir/$basename" && !-l "$destdir/$basename") { - if (! -d $destdir) { - doit "install","-d",$destdir; - } - doit "install","-p","-m644",$page,$destdir.$instname; - } - } - } - - # Now the .so conversion. - @sofiles=@sodests=(); - foreach my $dir (qw{usr/share/man usr/X11R6/man}) { - if (-e "$tmp/$dir") { - find(\&find_so_man, "$tmp/$dir"); - } - } - foreach my $sofile (@sofiles) { - my $sodest=shift(@sodests); - doit "rm","-f",$sofile; - doit "ln","-sf",$sodest,$sofile; - } -} - -=head1 SEE ALSO - -L<debhelper(7)> - -This program is a part of debhelper. - -=head1 AUTHOR - -Joey Hess <joeyh@debian.org> - -=cut |