#!/usr/bin/perl =head1 NAME dh_installinfo - install info files =cut use strict; use warnings; use Debian::Debhelper::Dh_Lib; our $VERSION = DH_BUILTIN_VERSION; =head1 SYNOPSIS B [S>] [B<-A>] [S ...>] =head1 DESCRIPTION B is a debhelper program that is responsible for installing info files into F in the package build directory. From debhelper compatibility level 11 on, B will fall back to looking in F for files, if it does not find them in the current directory (or wherever you've told it to look using B<--sourcedir>). =head1 FILES =over 4 =item debian/I.info List info files to be installed. =back =head1 OPTIONS =over 4 =item B<-A>, B<--all> Install all files specified by command line parameters in ALL packages acted on. =item B<--sourcedir=>I Look in the specified directory for files to be installed. This option requires compat 11 or later (it is silently ignored in compat 10 or earlier). Note that this is not the same as the B<--sourcedirectory> option used by the BI<*> commands. You rarely need to use this option, since B automatically looks for files in F in debhelper compatibility level 11 and above. =item I ... Install these info files into the first package acted on. (Or in all packages if B<-A> is specified). =back =cut init(options => { "sourcedir=s" => \$dh{SOURCEDIR}, }); # PROMISE: DH NOOP WITHOUT info my $default_error_handler = compat(10) ? \&glob_expand_error_handler_reject_nomagic_warn_discard : \&glob_expand_error_handler_reject; my $nodocs = is_build_profile_active('nodoc') || get_buildoption('nodoc') ? 1 : 0; # We cannot assume documentation is built under nodoc, but if it is we must flag it as handled # or dh_missing might make noise. $default_error_handler = \&glob_expand_error_handler_silently_ignore if $nodocs; foreach my $package (getpackages()) { my $tmp=tmpdir($package); my $file=pkgfile($package,"info"); my @search_dirs = ('.'); my $skip_install = process_pkg($package) ? 0 : 1; my $error_handler = $skip_install ? \&glob_expand_error_handler_silently_ignore : $default_error_handler; @search_dirs = ($dh{SOURCEDIR} // '.', default_sourcedir($package)) if not compat(10); my @info; if ($file) { @info = filearray($file, \@search_dirs, $error_handler) if $file; } if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { push @info, @ARGV; } log_installed_files($package, @info); next if $skip_install or $nodocs; if (@info) { install_dir("$tmp/usr/share/info"); xargs(\@info, "cp", '--reflink=auto', XARGS_INSERT_PARAMS_HERE, "$tmp/usr/share/info"); doit("chmod","-R", "u+rw,go=rX","$tmp/usr/share/info/"); } } =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut