From d827c6cf1631209f5042a9d1d8a7ecc24223c8a0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 23:06:40 +0200 Subject: Adding upstream version 13.11.4. Signed-off-by: Daniel Baumann --- dh_installinfo | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100755 dh_installinfo (limited to 'dh_installinfo') diff --git a/dh_installinfo b/dh_installinfo new file mode 100755 index 0000000..3a25542 --- /dev/null +++ b/dh_installinfo @@ -0,0 +1,133 @@ +#!/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. + +Supports substitution variables in compat 13 and later as +documented in L. + +=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 pkgfile-logged(info) cli-options() tmp(usr/share/info/dir) + +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 @ignored_files; + 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; + } + + # Pretend that we handled usr/share/info/dir. We do not want to install it as it causes + # file conflicts between packages and we also do not want dh_missing to drop a bomb on + # the user for it. + # + # See #971036 + for my $path (@search_dirs) { + if ( -e "${path}/usr/share/info/dir" ) { + push(@ignored_files, 'usr/share/info/dir'); + last; + } + } + + log_installed_files($package, @info, @ignored_files); + + 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 -- cgit v1.2.3