=head1 SYNOPSIS
- dh_installman [debhelper options] [manpage ...]
+B<dh_installman> [S<I<debhelper options>>] [S<I<manpage ...>>]
=head1 DESCRIPTION
-dh_installman is a debhelper program that is responsible for installing
+dh_installman is a debhelper program that handles installing
man pages into the correct locations in package build directories. You tell
-it what man pages go in your package(s), and it figures out where to
+it what man pages go in your packages, and it figures out where to
install them based on the section field in their .TH line and their filename
-extention.
+extension. It also supports translated man pages, by looking for extensions
+like .ll.8 and .ll_LL.8
+
+If dh_installman seems to install a man page into the wrong section or with
+the wrong extension, this is because the man page has the wrong section
+listed in its .TH line. Edit the man page and correct the section, and
+dh_installman will follow suit. See to L<man(7)> for details about the .TH
+section.
Any man page filenames specified as parameters will be installed into the
first package dh_installman is told to act on. By default, this is the
}
foreach my $page (@manpages) {
- my $basename=Debian::Debhelper::Dh_Lib::basename($page);
+ my $basename=basename($page);
# Support compressed pages.
my $gz='';
error("Could not determine section for $page");
}
+ # Get the man page's name -- everything up to the last dot.
+ my ($instname)=$basename=~m/^(.*)\./;
+
my $destdir="$tmp/usr/share/man/man$realsection/";
# Translated man pages are typically specified by adding the
# language code to the filename, so detect that and
- # redirect to appropriate directory.
+ # redirect to appropriate directory, stripping the code.
my ($langcode)=$basename=~m/.*\.([a-z][a-z](?:_[A-Z][A-Z])?)\.(?:[1-9]|man)/;
if (defined $langcode && $langcode ne '') {
$destdir="$tmp/usr/share/man/$langcode/man$section/";
+ # Strip the language code from the instname.
+ $instname=~s/\.$langcode$//;
}
$destdir=~tr:/:/:s; # just for looks
- # Get the man page's name -- everything up to the last dot.
- my ($instname)=$basename=~m/^(.*)\./;
-
if (! -e "$destdir/$instname.$section" &&
! -l "$destdir/$instname.$section") {
if (! -d $destdir) {
}
# Test first line of file for the .so thing.
- open (SOTEST,$_);
+ open (SOTEST,$_) || die "$_: $!";
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 (Debian::Debhelper::Dh_Lib::basename($File::Find::dir) eq
- Debian::Debhelper::Dh_Lib::dirname($solink)) {
- $solink=Debian::Debhelper::Dh_Lib::basename($solink);
+ if (basename($File::Find::dir) eq
+ dirname($solink)) {
+ $solink=basename($solink);
}
else {
$solink="../$solink";