bitbake: cache: don't insert PN into PACKAGES

The cache code currently inserts PN into the package list if it isn't already
present.  Whilst this ensures that the package list contains something which is
important for native recipes that don't set PACKAGES, it causes confusing
behaviour where a normal recipe doesn't have PN in PACKAGES: for example adding
dhcp to IMAGE_INSTALL will parse successfully but fail at rootfs time as the
dhcp recipe doesn't generate a dhcp package.

Solve this by only adding PN to the cache's package list if the package list is
empty.  This results in the package list for recipes such as DHCP being correct,
but native recipes continue to have just PN in the list as before.

[ YOCTO #5533 ]

(Bitbake rev: df31a88786ce5bd7708ff14e1379dc2a58a8c0cf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2017-06-20 19:47:34 +01:00 committed by Richard Purdie
parent b4b2e6d4df
commit 3dea09570a

View File

@ -107,7 +107,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.pn = self.getvar('PN', metadata)
self.packages = self.listvar('PACKAGES', metadata)
if not self.pn in self.packages:
if not self.packages:
self.packages.append(self.pn)
self.basetaskhashes = self.taskvar('BB_BASEHASH', self.tasks, metadata)
@ -217,7 +217,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.packages_dynamic[package].append(fn)
# Build hash of runtime depends and recommends
for package in self.packages + [self.pn]:
for package in self.packages:
cachedata.rundeps[fn][package] = list(self.rdepends) + self.rdepends_pkg[package]
cachedata.runrecs[fn][package] = list(self.rrecommends) + self.rrecommends_pkg[package]