summaryrefslogtreecommitdiffstats
path: root/lib/bb/cooker.py
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2018-08-28 14:19:55 -0400
committerMark Hatle <mark.hatle@windriver.com>2018-08-28 15:31:00 -0400
commitaedeabafd6ff401d8d285d4cc81232492915f76d (patch)
treef0e4eecbce44f2e6a1e046a870be6c3ffd8503d5 /lib/bb/cooker.py
parent9c86c582a10c9b23abad7d34b6cbf12f7086294d (diff)
downloadbitbake-contrib-mgh/cooker-fix.tar.gz
bitbake-contrib-mgh/cooker-fix.tar.bz2
bitbake-contrib-mgh/cooker-fix.zip
cooker.py: Fix incorrect bb files matched warningmgh/cooker-fix
In the case of a sublayer of an existing layer, where the sublayer and main layer share a path, the system may not match the paths properly resulting in: No bb files matched BBFILE_PATTERN_sublayer '^/path/main/sublayer' because it has already matched the main layer. Fix this issue by sorting the collection items based on the pattern, using longest to shortest. Obviously regex wildcards could still be an issue but these are typically not used, so this simply fix should work in the existing cases. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Diffstat (limited to 'lib/bb/cooker.py')
-rw-r--r--lib/bb/cooker.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 946ba9ca06..d7e90f25d2 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1661,7 +1661,10 @@ class CookerExit(bb.event.Event):
class CookerCollectFiles(object):
def __init__(self, priorities):
self.bbappends = []
- self.bbfile_config_priorities = priorities
+ # Priorities is a list of tupples, with the second element as the pattern.
+ # We need to sort the list with the longest pattern first, and so on to
+ # the shortest. This allows nested layers to be properly evaluated.
+ self.bbfile_config_priorities = sorted(priorities, key=lambda tup: tup[1], reverse=True)
def calc_bbfile_priority( self, filename, matched = None ):
for _, _, regex, pri in self.bbfile_config_priorities: