diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index c56b4b4248..cdde3635ab 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py @@ -566,6 +566,7 @@ class CacheData(object): self.packages = defaultdict(list) self.packages_dynamic = defaultdict(list) self.possible_world = [] + self.universe_target = [] self.pkg_pn = defaultdict(list) self.pkg_fn = {} self.pkg_pepvpr = {} @@ -644,6 +645,11 @@ class CacheData(object): if not info.broken and not info.not_world: self.possible_world.append(fn) + # create a collection of all targets for sanity checking + # tasks, such as upstream versions, license, and tools for + # task and image creation. + self.universe_target.append(info.pn) + self.hashfn[fn] = info.hashfilename for task, taskhash in info.basetaskhashes.iteritems(): identifier = '%s.%s' % (fn, task) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 97863e517a..3c7b60eb95 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -124,6 +124,8 @@ class BBCooker: if 'world' in self.configuration.pkgs_to_build: buildlog.error("'world' is not a valid target for --environment.") + if 'universe' in self.configuration.pkgs_to_build: + buildlog.error("'universe' is not a valid target for --environment.") elif len(self.configuration.pkgs_to_build) > 1: buildlog.error("Only one target can be used with the --environment option.") elif self.configuration.buildfile and len(self.configuration.pkgs_to_build) > 0: @@ -889,6 +891,12 @@ class BBCooker: for t in self.status.world_target: pkgs_to_build.append(t) + if 'universe' in pkgs_to_build: + parselog.debug(1, "collating packages for \"universe\"") + pkgs_to_build.remove('universe') + for t in self.status.universe_target: + pkgs_to_build.append(t) + return pkgs_to_build def get_bbfiles( self, path = os.getcwd() ):