#!/usr/bin/perl -w =head1 NAME dh_installdeb - install files into the DEBIAN directory =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] =head1 DESCRIPTION dh_installdeb is a debhelper program that is responsible for installing files into the DEBIAN directories in package build directories with the correct permissions. dh_installdeb automatically installs the following files from debian/ into the DEBIAN directory: package.postinst package.preinst package.postrm package.prerm package.shlibs package.conffiles package.triggers The postinst, preinst, postrm, and prerm are handled specially: If a corresponding file named debian/package.script.debhelper exists, the contents of that file are merged into the script as follows: If the script exists, then anywhere in it that "#DEBHELPER#" appears, the text of the .debhelper file is inserted. If the script does not exist, then a script is generated from the .debhelper file. The .debhelper files are created by other debhelper programs, such as L, and are shell script fragments. In V3 compatibility mode and higher, all files in the etc/ directory in a package will automatically be flagged as conffiles by this program, so there is no need to list them manually in package.conffiles. =cut init(); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); if (! -d "$tmp/DEBIAN") { doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN"); } if (is_udeb($package)) { # For udebs, only do the postinst, and no #DEBHELPER#. my $f=pkgfile($package,"postinst"); if ($f) { doit("install", "-o", 0, "-g", 0, "-m", 755, $f, "$tmp/DEBIAN/postinst"); } next; } # Install debian scripts. foreach my $script (qw{postinst preinst prerm postrm}) { debhelper_script_subst($package, $script); } if (! is_udeb($package)) { # Install non-executable files foreach my $file (qw{shlibs conffiles triggers}) { my $f=pkgfile($package,$file); if ($f) { doit("install","-o",0,"-g",0,"-m",644,"-p",$f,"$tmp/DEBIAN/$file"); } } } # Automatic conffiles registration: If it is in /etc, it is a # conffile. if (! compat(2) && -d "$tmp/etc" && ! is_udeb($package)) { complex_doit("find $tmp/etc -type f -printf '/etc/%P\n' >> $tmp/DEBIAN/conffiles"); # Anything found? if (-z "$tmp/DEBIAN/conffiles") { doit("rm", "-f", "$tmp/DEBIAN/conffiles"); } else { doit("chmod", 644, "$tmp/DEBIAN/conffiles"); } } } =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut