]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installdeb
Merge branch 'master' of ssh://git.debian.org/git/debhelper/debhelper
[debhelper.git] / dh_installdeb
index 69c66ddc15fbd536705302bf3812ff1a20e91c87..fdc76e60e8c114feac1a8b85d6282d2171326724 100755 (executable)
@@ -27,16 +27,17 @@ the DEBIAN directory:
   package.prerm
   package.shlibs
   package.conffiles
   package.prerm
   package.shlibs
   package.conffiles
+  package.triggers
 
 The postinst, preinst, postrm, and prerm are handled specially: If a
 
 The postinst, preinst, postrm, and prerm are handled specially: If a
-corresponding file named debian/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
+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<dh_installmenu(1)>, and are shell script fragments.
 
 programs, such as L<dh_installmenu(1)>, and are shell script fragments.
 
-In V3 compatability mode and higher, all files in the etc/ directory in a
+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.
 
 package will automatically be flagged as conffiles by this program, so
 there is no need to list them manually in package.conffiles.
 
@@ -46,54 +47,39 @@ init();
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
-       my $ext=pkgext($package);
 
        if (! -d "$tmp/DEBIAN") {
                doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
        }
 
 
        if (! -d "$tmp/DEBIAN") {
                doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
        }
 
-       # Install debian install scripts.
-       # If any .debhelper files exist, add them into the scripts.
-       foreach my $file (qw{postinst preinst prerm postrm}) {
-               my $f=pkgfile($package,$file);
+       if (is_udeb($package)) {
+               # For udebs, only do the postinst, and no #DEBHELPER#.
+               my $f=pkgfile($package,"postinst");
                if ($f) {
                if ($f) {
-                       if (-f "debian/$ext$file.debhelper") {
-                               # Add this into the script, where it has
-                               # #DEBHELPER#
-                               # TODO: do internally, no perl fork?
-                               complex_doit("perl -pe 's~#DEBHELPER#~qx{cat debian/$ext$file.debhelper}~eg' < $f > $tmp/DEBIAN/$file");
-                       }
-                       else {
-                               # Just get rid of any #DEBHELPER# in the 
-                               # script.
-                               complex_doit("sed s/#DEBHELPER#// < $f > $tmp/DEBIAN/$file");
-                       }
-                       doit("chown","0.0","$tmp/DEBIAN/$file");
-                       doit("chmod",755,"$tmp/DEBIAN/$file");
-               }
-               else {
-                       # Auto-generate script header and add .debhelper
-                       # content to it.
-                       if (-f "debian/$ext$file.debhelper") {
-                               complex_doit("printf '#!/bin/sh\nset -e\n' > $tmp/DEBIAN/$file");
-                               complex_doit("cat debian/$ext$file.debhelper >> $tmp/DEBIAN/$file");
-                               doit("chown","0.0","$tmp/DEBIAN/$file");
-                               doit("chmod",755,"$tmp/DEBIAN/$file");
-                       }
+                       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);
        }
 
        }
 
-       # Install non-executable files
-       foreach my $file (qw{shlibs conffiles}) {
-               my $f=pkgfile($package,$file);
-               if ($f) {
-                       doit("install","-o",0,"-g",0,"-m",644,"-p",$f,"$tmp/DEBIAN/$file");
+       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.
                }
        }
 
        # Automatic conffiles registration: If it is in /etc, it is a
        # conffile.
-       if (! compat(2) && -d "$tmp/etc") {
+       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") {
                complex_doit("find $tmp/etc -type f -printf '/etc/%P\n' >> $tmp/DEBIAN/conffiles");
                # Anything found?
                if (-z "$tmp/DEBIAN/conffiles") {
@@ -107,7 +93,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 
 =head1 SEE ALSO
 
 
 =head1 SEE ALSO
 
-L<debhelper(1)>
+L<debhelper(7)>
 
 This program is a part of debhelper.
 
 
 This program is a part of debhelper.