Patchwork [bitbake-devel] cooker: Fix support for wildcards in bbappend filenames

login
register
mail settings
Submitter Nathan Rossi
Date Nov. 29, 2013, 5:19 a.m.
Message ID <fc56b436-2f80-4db5-a39c-672ddfa04224@TX2EHSMHS044.ehs.local>
Download mbox | patch
Permalink /patch/62633/
State New
Headers show

Comments

Nathan Rossi - Nov. 29, 2013, 5:19 a.m.
The 'bbappend in f' incorrectly compares the current recipe with the avaliable
bbappends recipes. This comparsion causes unrequested bbappend files to be
appended, e.g. in the case of 'libgcc_4.8.bb', the bbappends for 'libgcc_4.8.bb'
and 'gcc_4.8.bb' are added to the filelist (because 'gcc_4.8.bb' is contained in
the 'libgcc_4.8.bb' string) which in turn causes the gcc_4.8.bbappend files to
be appended to the libgcc_4.8 recipe.

This should be a 'bbappend == f' to match the previous implementation of this
function, such that if no wildcard is present the recipe names must match
exactly.

This issue was introduced by commit 31bc9af9cd56e7b318924869970e850993fafc5f,
which it related to [YOCTO #5411].

Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
---

This patch resolves an issue that is seen in the meta-xilinx yocto layer. In the
layer we add appends for both gcc and libgcc, as such we get a duplication of
configuration.

Please let me know if this patch is expected, or if the change to the bbappend
naming has changed such that the layer needs to be fixed.

Thanks,
Nathan

---
 lib/bb/cooker.py |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 1f494ee..b36ed6f 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1486,7 +1486,7 @@  class CookerCollectFiles(object):
         filelist = []
         f = os.path.basename(fn)
         for bbappend in self.appendlist:
-            if bbappend in f or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
+            if (bbappend == f) or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
                 self.appliedappendlist.append(bbappend)
                 for filename in self.appendlist[bbappend]:
                     filelist.append(filename)