summaryrefslogtreecommitdiff
path: root/poky/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'poky/bitbake/lib')
-rw-r--r--poky/bitbake/lib/bb/__init__.py2
-rw-r--r--poky/bitbake/lib/bb/cookerdata.py2
-rw-r--r--poky/bitbake/lib/bb/event.py26
-rw-r--r--poky/bitbake/lib/bb/parse/ast.py2
-rw-r--r--poky/bitbake/lib/bb/runqueue.py5
5 files changed, 30 insertions, 7 deletions
diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py
index e3f40a329..84a9051c1 100644
--- a/poky/bitbake/lib/bb/__init__.py
+++ b/poky/bitbake/lib/bb/__init__.py
@@ -9,7 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-__version__ = "1.49.1"
+__version__ = "1.49.2"
import sys
if sys.version_info < (3, 5, 0):
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index c39b56813..1c1e008c6 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -429,7 +429,7 @@ class CookerDataBuilder(object):
parselog.critical("Undefined event handler function '%s'" % var)
raise bb.BBHandledException()
handlerln = int(data.getVarFlag(var, "lineno", False))
- bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln)
+ bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln, data)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index 694b47052..ff8995946 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -118,6 +118,8 @@ def fire_class_handlers(event, d):
if _eventfilter:
if not _eventfilter(name, handler, event, d):
continue
+ if d and not name in (d.getVar("__BBHANDLERS_MC") or []):
+ continue
execute_handler(name, handler, event, d)
ui_queue = []
@@ -227,9 +229,13 @@ def fire_from_worker(event, d):
fire_ui_handlers(event, d)
noop = lambda _: None
-def register(name, handler, mask=None, filename=None, lineno=None):
+def register(name, handler, mask=None, filename=None, lineno=None, data=None):
"""Register an Event handler"""
+ if data and data.getVar("BB_CURRENT_MC"):
+ mc = data.getVar("BB_CURRENT_MC")
+ name = '%s%s' % (mc, name)
+
# already registered
if name in _handlers:
return AlreadyRegistered
@@ -268,10 +274,20 @@ def register(name, handler, mask=None, filename=None, lineno=None):
_event_handler_map[m] = {}
_event_handler_map[m][name] = True
+ if data:
+ bbhands_mc = (data.getVar("__BBHANDLERS_MC") or [])
+ bbhands_mc.append(name)
+ data.setVar("__BBHANDLERS_MC", bbhands_mc)
+
return Registered
-def remove(name, handler):
+def remove(name, handler, data=None):
"""Remove an Event handler"""
+ if data:
+ if data.getVar("BB_CURRENT_MC"):
+ mc = data.getVar("BB_CURRENT_MC")
+ name = '%s%s' % (mc, name)
+
_handlers.pop(name)
if name in _catchall_handlers:
_catchall_handlers.pop(name)
@@ -279,6 +295,12 @@ def remove(name, handler):
if name in _event_handler_map[event]:
_event_handler_map[event].pop(name)
+ if data:
+ bbhands_mc = (data.getVar("__BBHANDLERS_MC") or [])
+ if name in bbhands_mc:
+ bbhands_mc.remove(name)
+ data.setVar("__BBHANDLERS_MC", bbhands_mc)
+
def get_handlers():
return _handlers
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index 0596993d0..50a88f7da 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -335,7 +335,7 @@ def finalize(fn, d, variant = None):
if not handlerfn:
bb.fatal("Undefined event handler function '%s'" % var)
handlerln = int(d.getVarFlag(var, "lineno", False))
- bb.event.register(var, d.getVar(var, False), (d.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln)
+ bb.event.register(var, d.getVar(var, False), (d.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln, data=d)
bb.event.fire(bb.event.RecipePreFinalise(fn), d)
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 2f521e5a1..54ef245a6 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -1271,6 +1271,7 @@ class RunQueue:
"date" : self.cfgData.getVar("DATE"),
"time" : self.cfgData.getVar("TIME"),
"hashservaddr" : self.cooker.hashservaddr,
+ "umask" : self.cfgData.getVar("BB_DEFAULT_UMASK"),
}
worker.stdin.write(b"<cookerconfig>" + pickle.dumps(self.cooker.configuration) + b"</cookerconfig>")
@@ -1466,7 +1467,7 @@ class RunQueue:
if not self.dm_event_handler_registered:
res = bb.event.register(self.dm_event_handler_name,
lambda x: self.dm.check(self) if self.state in [runQueueRunning, runQueueCleanUp] else False,
- ('bb.event.HeartbeatEvent',))
+ ('bb.event.HeartbeatEvent',), data=self.cfgData)
self.dm_event_handler_registered = True
dump = self.cooker.configuration.dump_signatures
@@ -1505,7 +1506,7 @@ class RunQueue:
build_done = self.state is runQueueComplete or self.state is runQueueFailed
if build_done and self.dm_event_handler_registered:
- bb.event.remove(self.dm_event_handler_name, None)
+ bb.event.remove(self.dm_event_handler_name, None, data=self.cfgData)
self.dm_event_handler_registered = False
if build_done and self.rqexe: