From ecdfc1ebbe260fc7b2842b751d913580d294cb42 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Fri, 13 Jan 2012 17:01:48 +0000 Subject: 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. (Bitbake rev: 50aea9a76e40cf71cc3f1462c88298e4846a031c) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 21abb13b19..771f72e4ae 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/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 -- cgit v1.2.3-54-g00ecf