summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorNaveen Saini <naveen.kumar.saini@intel.com>2020-08-21 09:00:36 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-27 08:27:33 +0100
commitc7bbb98ea8ccd3568dd8bded6e404e2f781e6841 (patch)
treea35fd0446413a9a5c9a9f20d962c291ef13b94e1 /meta
parent04068ff19d2c18c3b915aab6832ad4b48affa07f (diff)
downloadopenembedded-core-contrib-c7bbb98ea8ccd3568dd8bded6e404e2f781e6841.tar.gz
lib/oe/recipeutils.py: add support for BBFILES_DYNAMIC
Instead of relying on value of BBFILES from bitbake, devtool parses the layer.conf because the layer might not be in bblayers.conf. And it currently does not consider the value of BBFILES_DYNAMIC because of which recipes, in paths defined by BBFILES_DYNAMIC, upgraded using devtool end up in wrong location. Include the code from bitbake to append values to BBFILES based on what is in BBFILES_DYNAMIC too. Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/lib/oe/recipeutils.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py
index 36427eec91..ef69ef207f 100644
--- a/meta/lib/oe/recipeutils.py
+++ b/meta/lib/oe/recipeutils.py
@@ -563,6 +563,23 @@ def get_bbfile_path(d, destdir, extrapathhint=None):
confdata = bb.cookerdata.parse_config_file(destlayerconf, confdata)
pn = d.getVar('PN')
+ # Parse BBFILES_DYNAMIC and append to BBFILES
+ bbfiles_dynamic = (confdata.getVar('BBFILES_DYNAMIC') or "").split()
+ collections = (confdata.getVar('BBFILE_COLLECTIONS') or "").split()
+ invalid = []
+ for entry in bbfiles_dynamic:
+ parts = entry.split(":", 1)
+ if len(parts) != 2:
+ invalid.append(entry)
+ continue
+ l, f = parts
+ invert = l[0] == "!"
+ if invert:
+ l = l[1:]
+ if (l in collections and not invert) or (l not in collections and invert):
+ confdata.appendVar("BBFILES", " " + f)
+ if invalid:
+ return None
bbfilespecs = (confdata.getVar('BBFILES') or '').split()
if destdir == destlayerdir:
for bbfilespec in bbfilespecs: