summaryrefslogtreecommitdiff
path: root/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/command.py58
-rw-r--r--bitbake/lib/bb/cooker.py4
-rw-r--r--bitbake/lib/bb/fetch/__init__.py2
-rw-r--r--bitbake/lib/bb/ui/depexp.py10
-rw-r--r--bitbake/lib/bb/ui/knotty.py10
-rw-r--r--bitbake/lib/bb/ui/ncurses.py6
6 files changed, 41 insertions, 49 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
index 30c7240cf2..b88089298c 100644
--- a/bitbake/lib/bb/command.py
+++ b/bitbake/lib/bb/command.py
@@ -35,12 +35,25 @@ import bb.data
async_cmds = {}
sync_cmds = {}
+
+class CommandCompleted(bb.event.Event):
+ pass
+
+class CommandExit(bb.event.Event):
+ def __init__(self, exitcode):
+ bb.event.Event.__init__(self)
+ self.exitcode = int(exitcode)
+
+class CommandFailed(CommandExit):
+ def __init__(self, message):
+ self.error = message
+ CommandExit.__init__(self, 1)
+
class Command:
"""
A queue of asynchronous commands for bitbake
"""
def __init__(self, cooker):
-
self.cooker = cooker
self.cmds_sync = CommandsSync()
self.cmds_async = CommandsAsync()
@@ -105,11 +118,13 @@ class Command:
self.finishAsyncCommand(traceback.format_exc())
return False
- def finishAsyncCommand(self, error = None):
- if error:
- bb.event.fire(CookerCommandFailed(error), self.cooker.configuration.event_data)
+ def finishAsyncCommand(self, msg=None, code=None):
+ if msg:
+ bb.event.fire(CommandFailed(msg), self.cooker.configuration.event_data)
+ elif code:
+ bb.event.fire(CommandExit(code), self.cooker.configuration.event_data)
else:
- bb.event.fire(CookerCommandCompleted(), self.cooker.configuration.event_data)
+ bb.event.fire(CommandCompleted(), self.cooker.configuration.event_data)
self.currentAsyncCommand = None
@@ -249,33 +264,8 @@ class CommandsAsync:
"""
Parse the .bb files
"""
- command.cooker.compareRevisions()
- command.finishAsyncCommand()
+ if bb.fetch.fetcher_compare_revisions(command.cooker.configuration.data):
+ command.finishAsyncCommand(code=1)
+ else:
+ command.finishAsyncCommand()
compareRevisions.needcache = True
-
-#
-# Events
-#
-class CookerCommandCompleted(bb.event.Event):
- """
- Cooker command completed
- """
- def __init__(self):
- bb.event.Event.__init__(self)
-
-
-class CookerCommandFailed(bb.event.Event):
- """
- Cooker command completed
- """
- def __init__(self, error):
- bb.event.Event.__init__(self)
- self.error = error
-
-class CookerCommandSetExitCode(bb.event.Event):
- """
- Set the exit code for a cooker command
- """
- def __init__(self, exitcode):
- bb.event.Event.__init__(self)
- self.exitcode = int(exitcode)
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 3b4eae8c4c..8ac88b99a4 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -191,10 +191,6 @@ class BBCooker:
logger.plain("%-35s %25s %25s", p, lateststr, prefstr)
- def compareRevisions(self):
- ret = bb.fetch.fetcher_compare_revisons(self.configuration.data)
- bb.event.fire(bb.command.CookerCommandSetExitCode(ret), self.configuration.event_data)
-
def showEnvironment(self, buildfile = None, pkgs_to_build = []):
"""
Show the outer or per-package environment
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py
index 0562d72a23..668b788698 100644
--- a/bitbake/lib/bb/fetch/__init__.py
+++ b/bitbake/lib/bb/fetch/__init__.py
@@ -174,7 +174,7 @@ def fetcher_init(d):
pd.addDomain("BB_URI_HEADREVS")
pd.addDomain("BB_URI_LOCALCOUNT")
-def fetcher_compare_revisons(d):
+def fetcher_compare_revisions(d):
"""
Compare the revisions in the persistant cache with current values and
return true/false on whether they've changed.
diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/depexp.py
index 31004db44a..a6039ec57d 100644
--- a/bitbake/lib/bb/ui/depexp.py
+++ b/bitbake/lib/bb/ui/depexp.py
@@ -21,6 +21,8 @@ import gobject
import gtk
import threading
import xmlrpclib
+import bb
+import bb.event
from bb.ui.crumbs.progress import ProgressBar
# Package Model
@@ -236,11 +238,13 @@ def main(server, eventHandler):
parse(event._depgraph, dep.pkg_model, dep.depends_model)
gtk.gdk.threads_leave()
- if isinstance(event, bb.command.CookerCommandCompleted):
+ if isinstance(event, bb.command.CommandCompleted):
continue
- if isinstance(event, bb.command.CookerCommandFailed):
+ if isinstance(event, bb.command.CommandFailed):
print("Command execution failed: %s" % event.error)
- break
+ return event.exitcode
+ if isinstance(event, bb.command.CommandExit):
+ return event.exitcode
if isinstance(event, bb.cooker.CookerExit):
break
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
index e0f08ecb6e..d3534a0f5b 100644
--- a/bitbake/lib/bb/ui/knotty.py
+++ b/bitbake/lib/bb/ui/knotty.py
@@ -163,15 +163,15 @@ def main(server, eventHandler):
% ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))
continue
- if isinstance(event, bb.command.CookerCommandCompleted):
+ if isinstance(event, bb.command.CommandCompleted):
break
- if isinstance(event, bb.command.CookerCommandSetExitCode):
+ if isinstance(event, bb.command.CommandFailed):
return_value = event.exitcode
- continue
- if isinstance(event, bb.command.CookerCommandFailed):
- return_value = 1
logger.error("Command execution failed: %s" % event.error)
break
+ if isinstance(event, bb.command.CommandExit):
+ return_value = event.exitcode
+ continue
if isinstance(event, bb.cooker.CookerExit):
break
if isinstance(event, bb.event.MultipleProviders):
diff --git a/bitbake/lib/bb/ui/ncurses.py b/bitbake/lib/bb/ui/ncurses.py
index 3bc8373964..1db4ec173b 100644
--- a/bitbake/lib/bb/ui/ncurses.py
+++ b/bitbake/lib/bb/ui/ncurses.py
@@ -288,12 +288,14 @@ class NCursesUI:
# else:
# bb.msg.error(bb.msg.domain.Build, "see log in %s" % logfile)
- if isinstance(event, bb.command.CookerCommandCompleted):
+ if isinstance(event, bb.command.CommandCompleted):
exitflag = True
- if isinstance(event, bb.command.CookerCommandFailed):
+ if isinstance(event, bb.command.CommandFailed):
mw.appendText("Command execution failed: %s" % event.error)
time.sleep(2)
exitflag = True
+ if isinstance(event, bb.command.CommandExit):
+ exitflag = True
if isinstance(event, bb.cooker.CookerExit):
exitflag = True