]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installdeb
dh: When there's an -indep override target without -arch, or vice versa, avoid acting...
[debhelper.git] / dh_installdeb
index 386640b7ed6250ac8d0a3cfe046459423294b635..def76d16cbf1329952d3133c5cbe799c6490e51e 100755 (executable)
@@ -15,8 +15,8 @@ B<dh_installdeb> [S<I<debhelper options>>]
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
-dh_installdeb is a debhelper program that is responsible for installing
-files into the DEBIAN directories in package build directories with the
+B<dh_installdeb> is a debhelper program that is responsible for installing
+files into the F<DEBIAN> directories in package build directories with the
 correct permissions.
 
 =head1 FILES
 correct permissions.
 
 =head1 FILES
@@ -31,7 +31,7 @@ correct permissions.
 
 =item I<package>.prerm
 
 
 =item I<package>.prerm
 
-These maintainer scripts are installed into the DEBIAN directory.
+These maintainer scripts are installed into the F<DEBIAN> directory.
 
 Inside the scripts, the token B<#DEBHELPER#> is replaced with
 shell script snippets generated by other debhelper commands.
 
 Inside the scripts, the token B<#DEBHELPER#> is replaced with
 shell script snippets generated by other debhelper commands.
@@ -40,22 +40,42 @@ shell script snippets generated by other debhelper commands.
 
 =item I<package>.shlibs
 
 
 =item I<package>.shlibs
 
-These control files are installed into the DEBIAN directory.
+These control files are installed into the F<DEBIAN> directory.
 
 =item I<package>.conffiles
 
 
 =item I<package>.conffiles
 
-This control file will be installed into the DEBIAN directory.
+This control file will be installed into the F<DEBIAN> directory.
 
 
-In V3 compatibility mode and higher, all files in the etc/ directory in a
+In v3 compatibility mode and higher, all files in the F<etc/> directory in a
 package will automatically be flagged as conffiles by this program, so
 there is no need to list them manually here.
 
 package will automatically be flagged as conffiles by this program, so
 there is no need to list them manually here.
 
+=item I<package>.maintscript
+
+Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and
+parameters.  Any shell metacharacters will be escaped, so arbitrary shell
+code cannot be inserted here.  For example, a line such as C<mv_conffile
+/etc/oldconffile /etc/newconffile> will insert maintainer script snippets
+into all maintainer scripts sufficient to move that conffile.
+
+A versioned Pre-Dependency on dpkg is needed to use
+L<dpkg-maintscript-helper(1)>. An appropriate Pre-Dependency is
+set in ${misc:Pre-Depends} ; you should make sure to put that token into
+an appropriate place in your debian/control file.
+
 =back
 
 =cut
 
 init();
 
 =back
 
 =cut
 
 init();
 
+# dpkg-maintscript-helper commands with their associated dpkg pre-dependency
+# versions.
+my %maintscript_predeps = (
+       "rm_conffile" => "1.15.7.2",
+       "mv_conffile" => "1.15.7.2",
+);
+
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
 
@@ -76,6 +96,22 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                next;           
        }
        
                next;           
        }
        
+       my $maintscriptfile=pkgfile($package, "maintscript");
+       if ($maintscriptfile) {
+               foreach my $line (filedoublearray($maintscriptfile)) {
+                       my $cmd=$line->[0];
+                       error("unknown dpkg-maintscript-helper command: $cmd")
+                               unless exists $maintscript_predeps{$cmd};
+                       addsubstvar($package, "misc:Pre-Depends", "dpkg",
+                                   ">= $maintscript_predeps{$cmd}");
+                       my $params=escape_shell(@$line);
+                       foreach my $script (qw{postinst preinst prerm postrm}) {
+                               autoscript($package, $script, "maintscript-helper",
+                                          "s!#PARAMS#!$params!g");
+                       }
+               }
+       }
+
        # Install debian scripts.
        foreach my $script (qw{postinst preinst prerm postrm}) {
                debhelper_script_subst($package, $script);
        # Install debian scripts.
        foreach my $script (qw{postinst preinst prerm postrm}) {
                debhelper_script_subst($package, $script);