0xV3NOMx
Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64



Your IP : 18.191.233.198


Current Path : /usr/bin/
Upload File :
Current File : //usr/bin/dh_installdebconf

#!/usr/bin/perl

=head1 NAME

dh_installdebconf - install files used by debconf in package build directories

=cut

use strict;
use warnings;
use Debian::Debhelper::Dh_Lib;

our $VERSION = DH_BUILTIN_VERSION;

=head1 SYNOPSIS

B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]

=head1 DESCRIPTION

B<dh_installdebconf> is a debhelper program that is responsible for installing
files used by debconf into package build directories.

It also automatically generates the F<postrm> commands needed to interface
with debconf. The commands are added to the maintainer scripts by
B<dh_installdeb>. See L<dh_installdeb(1)> for an explanation of how that
works.

Note that if you use debconf, your package probably needs to depend on it
(it will be added to B<${misc:Depends}> by this program).

Note that for your config script to be called by B<dpkg>, your F<postinst>
needs to source debconf's confmodule. B<dh_installdebconf> does not
install this statement into the F<postinst> automatically as it is too
hard to do it right.

=head1 FILES

=over 4

=item debian/I<package>.config

This is the debconf F<config> script, and is installed into the F<DEBIAN>
directory in the package build directory.

Inside the script, the token B<#DEBHELPER#> is replaced with
shell script snippets generated by other debhelper commands.

=item debian/I<package>.templates

This is the debconf F<templates> file, and is installed into the F<DEBIAN>
directory in the package build directory.

=item F<debian/po/>

If this directory is present, this program will automatically use
L<po2debconf(1)> to generate merged templates
files that include the translations from there.

For this to work, your package should build-depend on F<po-debconf>.

=back

=head1 OPTIONS

=over 4

=item B<-n>, B<--no-scripts>

Do not modify F<postrm> script.

=item B<--> I<params>

Pass the params to B<po2debconf>.

=back

=cut

init();

my @extraparams;
if (defined($dh{U_PARAMS})) {
	@extraparams=@{$dh{U_PARAMS}};
}

# PROMISE: DH NOOP WITHOUT config templates

foreach my $package (@{$dh{DOPACKAGES}}) {
	my $tmp=tmpdir($package);
	my $config=pkgfile($package,"config");
	my $templates=pkgfile($package,"templates");

	install_dir("$tmp/DEBIAN");

	if (! is_udeb($package)) {
		debhelper_script_subst($package, "config");
	}
	
	if ($templates ne '') {
		# Are there old-style translated templates?
		if (glob("$templates.??"), glob("$templates.??_??")) {
			warning "Ignoring debian/templates.ll files. Switch to po-debconf!";
		}

		umask(0022); # since I do a redirect below

		if (-d "debian/po") {
			complex_doit("po2debconf @extraparams $templates > $tmp/DEBIAN/templates");
		}
		else {
			install_file($templates,"$tmp/DEBIAN/templates");
		}
	}

	# I'm going with debconf 0.5 because it was the first
	# "modern" one. udebs just need cdebconf.
	my $debconfdep=is_udeb($package) ? "cdebconf-udeb" : "debconf (>= 0.5) | debconf-2.0";
	if ($config ne '' || $templates ne '') {
		addsubstvar($package, "misc:Depends", $debconfdep);
	}
	
	if (($config ne '' || $templates ne '') && ! $dh{NOSCRIPTS}) {
		autoscript($package,"postrm","postrm-debconf");
	}
}

=head1 SEE ALSO

L<debhelper(7)>

This program is a part of debhelper.

=head1 AUTHOR

Joey Hess <joeyh@debian.org>

=cut