summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2012-01-13 17:01:48 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-15 10:05:09 +0000
commit50aea9a76e40cf71cc3f1462c88298e4846a031c (patch)
tree3c4dc4ccefd2722162a1ec033268887cece0012d
parentb6f067af12d4661758a78788f1db472684b9aba8 (diff)
downloadbitbake-50aea9a76e40cf71cc3f1462c88298e4846a031c.tar.gz
bitbake/fetch2: correctly decode exit signal/status
The termination signal and exit code of the fetch process were not being decoded correctly, resulting in bitbake reporting that the process terminated with a signal of the exit code (if it was under 255). There are functions in the Python os module to do this decoding correctly (for Unix at least), so let's use them. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/__init__.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 21abb13b1..771f72e4a 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -422,8 +422,11 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []):
output += line
status = stdout_handle.close() or 0
- signal = status >> 8
- exitstatus = status & 0xff
+ signal = os.WTERMSIG(status)
+ if os.WIFEXITED(status):
+ exitstatus = os.WEXITSTATUS(status)
+ else:
+ exitstatus = 0
if (signal or status != 0):
for f in cleanup:
@@ -434,8 +437,8 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []):
if signal:
raise FetchError("Fetch command %s failed with signal %s, output:\n%s" % (cmd, signal, output))
- elif status != 0:
- raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (cmd, status, output))
+ elif exitstatus:
+ raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (cmd, exitstatus, output))
return output