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/ |
| 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
|