bitbake: cooker: Fix support for wildcards in bbappend filenames
authorNathan Rossi <nathan.rossi@xilinx.com>
Fri, 29 Nov 2013 05:19:11 +0000 (15:19 +1000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 29 Nov 2013 09:53:00 +0000 (09:53 +0000)
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].

(Bitbake rev: 991cbeedbde8bd25ce08c669b1bfac8b99e33149)

Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/cooker.py

index 1f494ee..b36ed6f 100644 (file)
@@ -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)