From b4bdd3818dda21a6c84a89c96557e30faf0566f7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 28 Apr 2010 11:30:44 -0400 Subject: [PATCH] Avoid uninitialized value warning when debian/rules fails to run due to alien being run in a noexec directory. Closes: #579216 * Avoid uninitialized value warning when debian/rules fails to run due to alien being run in a noexec directory. Closes: #579216 * Prevent DESTROY stomping on alien's exit code sometimes. --- Alien/Package.pm | 6 +++++- Alien/Package/Deb.pm | 8 ++++++-- debian/changelog | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Alien/Package.pm b/Alien/Package.pm index fce87af..e34b470 100644 --- a/Alien/Package.pm +++ b/Alien/Package.pm @@ -331,6 +331,8 @@ package was unpacked, it is time now to wipe out the temporary directory. sub DESTROY { my $this=shift; + my $exitcode=$?; + return if (! defined $this->unpacked_tree || $this->unpacked_tree eq ''); # This should never happen, but it pays to check. if ($this->unpacked_tree eq '/') { @@ -344,7 +346,9 @@ sub DESTROY { $this->do('rm', '-rf', $this->unpacked_tree) or die "unable to delete temporary directory '".$this->unpacked_tree."': $!"; - $this->unpacked_tree(''); + $this->unpacked_tree(''); + + $?=$exitcode; } =item AUTOLOAD diff --git a/Alien/Package/Deb.pm b/Alien/Package/Deb.pm index 0f654e4..04cd093 100644 --- a/Alien/Package/Deb.pm +++ b/Alien/Package/Deb.pm @@ -491,10 +491,14 @@ sub build { chdir $this->unpacked_tree; my $log=$this->runpipe(1, "debian/rules binary 2>&1"); - if ($?) { + chdir ".."; + my $err=$?; + if ($err) { + if (! defined $log) { + die "Package build failed; could not run generated debian/rules file.\n"; + } die "Package build failed. Here's the log:\n", $log; } - chdir ".."; return $this->name."_".$this->version."-".$this->release."_".$this->arch.".deb"; } diff --git a/debian/changelog b/debian/changelog index 08fb1da..59fffac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +alien (8.81) UNRELEASED; urgency=low + + * Avoid uninitialized value warning when debian/rules fails to run + due to alien being run in a noexec directory. Closes: #579216 + * Prevent DESTROY stomping on alien's exit code sometimes. + + -- Joey Hess Wed, 28 Apr 2010 11:29:19 -0400 + alien (8.80) unstable; urgency=low * Support querying rpm LICENSE field. (Alexey Khoroshilov)