/usr/bin/dh_installdebconf is in debhelper 9.20150101+deb8u2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | #!/usr/bin/perl -w
=head1 NAME
dh_installdebconf - install files used by debconf in package build directories
=cut
use strict;
use Debian::Debhelper::Dh_Lib;
=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<--noscripts>
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");
if (! -d "$tmp/DEBIAN") {
doit("install","-o",0,"-g",0,"-d","$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 {
doit("install", "-o", 0, "-g", 0, "-m", 644, "-p",
$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
|