any of the man pages in the temporary directories of any of the packages it
is acting on contain ".so" links. If so, it changes them to symlinks.
+Also, dh_installman will use man to guess the character encoding of each
+manual page and convert it to UTF-8. If the guesswork fails for some
+reason, you can override it using an encoding declaration. See
+L<manconv(1)> for details.
+
=head1 OPTIONS
=over 4
my $file=pkgfile($package,"manpages");
my @manpages;
- if ($file) {
- @manpages=filearray($file, ".");
- }
+ @manpages=filearray($file, ".") if $file;
if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
push @manpages, @ARGV;
# Now get the numeric component of the section.
my ($realsection)=$section=~m/^(\d)/ if defined $section;
-
- # If there is no numeric section, bail.
if (! $realsection) {
error("Could not determine section for $page");
}
$destdir="$tmp/usr/share/man/$langcode/man$realsection/";
}
$destdir=~tr:/:/:s; # just for looks
+ my $instpage="$destdir/$instname.$section";
- next if -l "$destdir/$instname.$section";
- next if compat(5) && -e "$destdir/$instname.$section";
+ next if -l $instpage;
+ next if compat(5) && -e $instpage;
if (! -d $destdir) {
doit "install","-d",$destdir;
}
- doit "install","-p","-m644",$page,
- "$destdir$instname.$section$gz";
-
+ if ($gz) {
+ complex_doit "zcat \Q$page\E > \Q$instpage\E";
+ }
+ else {
+ doit "install","-p","-m644",$page,$instpage;
+ }
}
# Now the .so conversion.
doit "rm","-f",$sofile;
doit "ln","-sf",$sodest,$sofile;
}
+
+ # Now utf-8 conversion.
+ foreach my $dir (qw{usr/share/man usr/X11R6/man}) {
+ if (-e "$tmp/$dir") {
+ find(sub {
+ return if ! -f $_ || -l $_;
+ my ($tmp, $orig)=($_.".new", $_);
+ complex_doit "man --recode UTF-8 ./\Q$orig\E > \Q$tmp\E";
+ # recode uncompresses compressed pages
+ doit "rm", "-f", $orig if s/\.(gz|Z)$//;
+ doit "chmod", 644, $tmp;
+ doit "mv", "-f", $tmp, $_;
+ }, "$tmp/$dir");
+ }
+ }
}
# Check if a file is a .so man page, for use by File::Find.