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.
This commit is contained in:
Joey Hess
2010-04-28 11:30:44 -04:00
parent 7e84fd2a26
commit b4bdd3818d
3 changed files with 19 additions and 3 deletions

View File

@@ -331,6 +331,8 @@ package was unpacked, it is time now to wipe out the temporary directory.
sub DESTROY { sub DESTROY {
my $this=shift; my $this=shift;
my $exitcode=$?;
return if (! defined $this->unpacked_tree || $this->unpacked_tree eq ''); return if (! defined $this->unpacked_tree || $this->unpacked_tree eq '');
# This should never happen, but it pays to check. # This should never happen, but it pays to check.
if ($this->unpacked_tree eq '/') { if ($this->unpacked_tree eq '/') {
@@ -344,7 +346,9 @@ sub DESTROY {
$this->do('rm', '-rf', $this->unpacked_tree) $this->do('rm', '-rf', $this->unpacked_tree)
or die "unable to delete temporary directory '".$this->unpacked_tree."': $!"; or die "unable to delete temporary directory '".$this->unpacked_tree."': $!";
$this->unpacked_tree(''); $this->unpacked_tree('');
$?=$exitcode;
} }
=item AUTOLOAD =item AUTOLOAD

View File

@@ -491,10 +491,14 @@ sub build {
chdir $this->unpacked_tree; chdir $this->unpacked_tree;
my $log=$this->runpipe(1, "debian/rules binary 2>&1"); 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; die "Package build failed. Here's the log:\n", $log;
} }
chdir "..";
return $this->name."_".$this->version."-".$this->release."_".$this->arch.".deb"; return $this->name."_".$this->version."-".$this->release."_".$this->arch.".deb";
} }

8
debian/changelog vendored
View File

@@ -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 <joeyh@debian.org> Wed, 28 Apr 2010 11:29:19 -0400
alien (8.80) unstable; urgency=low alien (8.80) unstable; urgency=low
* Support querying rpm LICENSE field. (Alexey Khoroshilov) * Support querying rpm LICENSE field. (Alexey Khoroshilov)