summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
authorjoeyh <joeyh>2007-04-09 19:31:44 +0000
committerjoeyh <joeyh>2007-04-09 19:31:44 +0000
commita155491c23c692bb7cd38d7df19c1e41c701236b (patch)
treefd7e4e6b5a2466b69e9eca183d7de275899ee224 /Debian
parent96c6a5c2200ce8571a319f18f31a25ef3d3bf948 (diff)
downloaddebhelper-a155491c23c692bb7cd38d7df19c1e41c701236b.tar.gz
r1980: * prerm and postrm scripts are now generated in a reverse order than
preinst and postinst scripts. For example, if a package uses dh_pysupport before dh_installinit, the prerm will first stop the init script and then remove the python files. * Introducing beginning of v6 mode. * dh_installwm: In v6 mode, install a slave manpage link for x-window-manager.1.gz. Done in v6 mode because some window managers probably work around this longstanding debhelper bug by registering the slave on their own. This bug was only fixable once programs moved out of /usr/X11R6. Closes: #85963 * dh_builddeb: In v6 mode, fix bug in DH_ALWAYS_EXCLUDE handling, to work the same as all the other code in debhelper. This could only be fixed in v6 mode because packages may potentially legitimately rely on the old buggy behavior. Closes: #242834 * dh_installman: In v6 mode, overwrite exsiting man pages. Closes: #288250
Diffstat (limited to 'Debian')
-rw-r--r--Debian/Debhelper/Dh_Lib.pm20
1 files changed, 15 insertions, 5 deletions
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
index 64b8b797..97679590 100644
--- a/Debian/Debhelper/Dh_Lib.pm
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -16,7 +16,7 @@ use vars qw(@ISA @EXPORT %dh);
&compat &addsubstvar &delsubstvar &excludefile &package_arch
&is_udeb &udeb_filename &debhelper_script_subst &escape_shell);
-my $max_compat=5;
+my $max_compat=6;
sub init {
# If DH_OPTIONS is set, prepend it @ARGV.
@@ -405,7 +405,7 @@ sub autoscript {
my $filename=shift;
my $sed=shift || "";
- # This is the file we will append to.
+ # This is the file we will modify.
my $outfile="debian/".pkgext($package)."$script.debhelper";
# Figure out what shell script snippet to use.
@@ -423,9 +423,19 @@ sub autoscript {
}
}
- complex_doit("echo \"# Automatically added by ".basename($0)."\">> $outfile");
- complex_doit("sed \"$sed\" $infile >> $outfile");
- complex_doit("echo '# End automatically added section' >> $outfile");
+ if (-e $outfile && ($script eq 'postrm' || $script eq 'prerm')) {
+ # Add fragments to top so they run in reverse order when removing.
+ complex_doit("echo \"# Automatically added by ".basename($0)."\"> $outfile.new");
+ complex_doit("sed \"$sed\" $infile >> $outfile.new");
+ complex_doit("echo '# End automatically added section' >> $outfile.new");
+ complex_doit("cat $outfile >> $outfile.new");
+ complex_doit("mv $outfile.new $outfile");
+ }
+ else {
+ complex_doit("echo \"# Automatically added by ".basename($0)."\">> $outfile");
+ complex_doit("sed \"$sed\" $infile >> $outfile");
+ complex_doit("echo '# End automatically added section' >> $outfile");
+ }
}
# Removes a whole substvar line.