[bitbake-devel] [PATCH 22/32] cooker: fix calculating of depends and rdepends
Joshua Lock
josh at linux.intel.com
Wed Feb 29 21:28:01 UTC 2012
On 29/02/12 06:15, Shane Wang wrote:
> From: Dongxiao Xu<dongxiao.xu at intel.com>
>
> Remove part of the original logic that stores pkg dependency and pkg
> recomends, which will not be used in Hob.
>
> Add the judgement for preferred fn provider of a certain package,
> which maps package name to its providing recipe name.
>
> The above approaches correct the build dependency calculation,
> and they also reduced the total depend_tree size, which speed up the
> tree data generation time.
>
> Signed-off-by: Dongxiao Xu<dongxiao.xu at intel.com>
Signed-off-by: Joshua Lock <josh at linux.intel.com>
> ---
> bitbake/lib/bb/cooker.py | 45 ++++++++++-----------------------------------
> 1 files changed, 10 insertions(+), 35 deletions(-)
>
> diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
> index b23b569..e71f72b 100644
> --- a/bitbake/lib/bb/cooker.py
> +++ b/bitbake/lib/bb/cooker.py
> @@ -438,19 +438,6 @@ class BBCooker:
>
> return depend_tree
>
> - def append_package(self, taskdata, depend_tree_package, package):
> - if package not in depend_tree_package:
> - targetid = taskdata.getrun_id(package)
> - if targetid in taskdata.run_targets and taskdata.run_targets[targetid]:
> - fnid = taskdata.run_targets[targetid][0]
> - fn = taskdata.fn_index[fnid]
> - pn = self.status.pkg_fn[fn]
> - version = "%s:%s-%s" % self.status.pkg_pepvpr[fn]
> - depend_tree_package[package] = {}
> - depend_tree_package[package]["pn"] = pn
> - depend_tree_package[package]["filename"] = fn
> - depend_tree_package[package]["version"] = version
> -
> def generatePkgDepTreeData(self, pkgs_to_build, task):
> """
> Create a dependency tree of pkgs_to_build, returning the data.
> @@ -466,7 +453,6 @@ class BBCooker:
> depend_tree["depends"] = {}
> depend_tree["pn"] = {}
> depend_tree["rdepends-pn"] = {}
> - depend_tree["packages"] = {}
> depend_tree["rdepends-pkg"] = {}
> depend_tree["rrecs-pkg"] = {}
>
> @@ -493,7 +479,6 @@ class BBCooker:
>
> if fnid not in seen_fnids:
> seen_fnids.append(fnid)
> - packages = []
>
> depend_tree["depends"][pn] = []
> for dep in taskdata.depids[fnid]:
> @@ -510,26 +495,16 @@ class BBCooker:
>
> depend_tree["rdepends-pn"][pn] = []
> for rdep in taskdata.rdepids[fnid]:
> - depend_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep])
> -
> - for package in rdepends:
> - depend_tree["rdepends-pkg"][package] = []
> - for rdepend in rdepends[package]:
> - depend_tree["rdepends-pkg"][package].append(rdepend)
> - self.append_package(taskdata, depend_tree["packages"], rdepend)
> - if not package in packages:
> - packages.append(package)
> -
> - for package in rrecs:
> - depend_tree["rrecs-pkg"][package] = []
> - for rrec in rrecs[package]:
> - depend_tree["rrecs-pkg"][package].append(rrec)
> - self.append_package(taskdata, depend_tree["packages"], rrec)
> - if not package in packages:
> - packages.append(package)
> -
> - for package in packages:
> - self.append_package(taskdata, depend_tree["packages"], package)
> + item = taskdata.run_names_index[rdep]
> + pn_rprovider = ""
> + targetid = taskdata.getrun_id(item)
> + if targetid in taskdata.run_targets and taskdata.run_targets[targetid]:
> + id = taskdata.run_targets[targetid][0]
> + fn_rprovider = taskdata.fn_index[id]
> + pn_rprovider = self.status.pkg_fn[fn_rprovider]
> + else:
> + pn_rprovider = item
> + depend_tree["rdepends-pn"][pn].append(pn_rprovider)
>
> return depend_tree
>
--
Joshua Lock
Yocto Project "Johannes factotum"
Intel Open Source Technology Centre
More information about the bitbake-devel
mailing list