diff options
author | Joey Hess <joey@kitenet.net> | 2010-11-02 22:48:01 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-11-02 22:51:33 -0400 |
commit | 76ef1cbd64829ee4a5156a5fc4b887bcba6b974f (patch) | |
tree | cbc302f73adbb037838d9c3923db194494a61d07 | |
parent | e336ac5559c74e6b7b6282a9825963346dbd414b (diff) |
dh: Inhibit logging for commands run inside override targets
Note that only the overridden command is inhibited. I wanted to avoid a
behavior change if a rules file runs other debhelper commands inside the
target, and relies on the logging preventing them being run later on in
the sequence.
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 2 | ||||
-rw-r--r-- | debian/changelog | 3 | ||||
-rwxr-xr-x | dh | 9 |
3 files changed, 11 insertions, 3 deletions
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index 3c23e092..fb83480b 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -125,6 +125,8 @@ sub write_log { my $cmd=shift; my @packages=@_; + return if defined $ENV{DH_INHIBIT_LOG} && $cmd eq $ENV{DH_INHIBIT_LOG}; + foreach my $package (@packages) { my $ext=pkgext($package); my $log="debian/${ext}debhelper.log"; diff --git a/debian/changelog b/debian/changelog index a9518657..a0ae5e1f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,9 @@ debhelper (8.1.0) UNRELEASED; urgency=low * Massive man page typography patch. Closes: #600883 (Thanks, David Prévot) * Explicitly build-depend on a new enough perl-base. Closes: #601188 + * dh: Inhibit logging when an override target runs the overridden command, + to avoid unexpected behavior if the command succeeded but the overall + target fails. Closes: #601037 -- Joey Hess <joeyh@debian.org> Sat, 07 Aug 2010 11:27:24 -0400 @@ -635,6 +635,9 @@ sub run { # This passes the options through to commands called # inside the target. $ENV{DH_INTERNAL_OPTIONS}=join("\x1e", @options); + # Prevent commands called inside the target from + # logging. + $ENV{DH_INHIBIT_LOG}=$command; $command="debian/rules"; @options="override_".$override_command; } @@ -669,9 +672,9 @@ sub run { if (defined $override_command) { delete $ENV{DH_INTERNAL_OPTIONS}; - # Need to handle logging for overriden commands here, - # because the actual debhelper command may not have - # been run by the rules file target. + delete $ENV{DH_INHIBIT_LOG}; + # Update log for overridden command now that it has + # finished successfully. # (But avoid logging for dh_clean since it removes # the log earlier.) if ($override_command ne 'dh_clean') { |