Openembedded Bitbake Development
 help / color / mirror / Atom feed
From: Joshua Lock <josh@linux.intel.com>
To: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH 22/32] cooker: fix calculating of depends and rdepends
Date: Wed, 29 Feb 2012 13:28:01 -0800	[thread overview]
Message-ID: <4F4E9861.5070604@linux.intel.com> (raw)
In-Reply-To: <e78d0c3a15df7d064e9db5accfd921f89e619dac.1330523904.git.shane.wang@intel.com>



On 29/02/12 06:15, Shane Wang wrote:
> From: Dongxiao Xu<dongxiao.xu@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@intel.com>
Signed-off-by: Joshua Lock <josh@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



  reply	other threads:[~2012-02-29 21:36 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29 14:11 [PATCH 00/32] Hob related fixes Shane Wang
2012-02-29 14:14 ` [PATCH 01/32] Hob: make HobViewTable more general in hob and make the image selection dialog and the image details page reuse it Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-03-02  7:19     ` Wang, Shane
2012-02-29 14:14 ` [PATCH 02/32] Hob: avoid the image selection dialog to walk through all directories and its sub-directories, when users click "My images" Shane Wang
2012-02-29 21:30   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 03/32] Hob: cleanup those class methods in HobWidget Shane Wang
2012-02-29 14:15 ` [PATCH 04/32] Hob: fixed the issue in the brought-in-by dialog Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-03-02  7:22     ` Wang, Shane
2012-03-02 18:02       ` Joshua Lock
2012-03-07 23:21         ` Wang, Shane
2012-03-07 23:56           ` Joshua Lock
2012-02-29 14:15 ` [PATCH 05/32] Hob: include hddimg and iso into image types Shane Wang
2012-02-29 21:27   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 06/32] Hob: implement a self-defined notebook visual component for Hob Shane Wang
2012-02-29 21:27   ` Joshua Lock
2012-03-02  7:06     ` Wang, Shane
2012-03-02 18:06       ` Joshua Lock
2012-02-29 14:15 ` [PATCH 07/32] Hob: use HobNotebook to enable a notebook in build details page Shane Wang
2012-02-29 21:32   ` Joshua Lock
2012-03-02 13:34     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 08/32] Hob: image configuration page doesn't need dialogs any more Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 09/32] Hob: fix a bug in builder.configuration.curr_mach Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 10/32] Hob: add ignore_all_errors to avoid showing error dialog multiple times Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-02  7:31     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 11/32] Hob: make the image configuration page not to flash the progress bar Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 12/32] Hob: enable indicators on the "Included" tab in the recipe selection page and the package selection page Shane Wang
2012-02-29 14:15 ` [PATCH 13/32] crumbs: Factor common dialogue configuration out Shane Wang
2012-02-29 14:15 ` [PATCH 14/32] crumbs/builder: use the name Hob consistently Shane Wang
2012-02-29 14:15 ` [PATCH 15/32] crumbs: move towards more standard dialogue spacing Shane Wang
2012-02-29 14:15 ` [PATCH 16/32] crumbs: fix button order in several dialogues Shane Wang
2012-02-29 14:15 ` [PATCH 17/32] hig: try to avoid setting explicit dialogue sizes Shane Wang
2012-02-29 14:15 ` [PATCH 18/32] crumbs/hig: tweak UI and layout of LayerSelectionDialog Shane Wang
2012-02-29 14:15 ` [PATCH 19/32] Hob(crumbs/builder.py): remove the code commented out in the builder.py Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 20/32] command.py: remove the resolve parameter in generateTargetsTree Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 21/32] cooker.py: Fix a bug due to variable name Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 22/32] cooker: fix calculating of depends and rdepends Shane Wang
2012-02-29 21:28   ` Joshua Lock [this message]
2012-02-29 14:15 ` [PATCH 23/32] Hob(crumbs/hoblistmodel.py): Fix recipe's populate() function Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 24/32] Hob(crumbs/hoblistmodel.py): Add mapping for rprovides and pkg Shane Wang
2012-02-29 21:30   ` Joshua Lock
2012-03-01  4:20     ` Xu, Dongxiao
2012-03-02 13:31     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 25/32] Hob: Add an extra 50M space if zypper is selected Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-01  4:19     ` Xu, Dongxiao
2012-03-01 19:22       ` Joshua Lock
2012-02-29 14:15 ` [PATCH 26/32] Hob: fix a bug that the image size is shown incorrectly in the image details page Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 27/32] Hob: add "OK" button to "BinbDialog" Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-01  4:20     ` Xu, Dongxiao
2012-03-02 13:29     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 28/32] Hob: allow users to setup the proxy Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-02 13:29     ` Wang, Shane
2012-03-02 18:14       ` Joshua Lock
2012-02-29 14:15 ` [PATCH 29/32] Hob(crumbs/builder.py): adjust the main window's position and ignore the case lower than 1024x768 Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 30/32] Hob: Fix pressing "stop" build Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 31/32] runqueue.py: initialize rqexe at RunQueue's init function Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 32/32] Hob: Disable the handling of "NoProvider" event Shane Wang
2012-03-01 15:23   ` Richard Purdie
2012-03-02  1:24     ` Xu, Dongxiao
2012-02-29 21:27 ` [PATCH 00/32] Hob related fixes Joshua Lock
2012-03-02  6:48   ` Wang, Shane
2012-03-03  3:50     ` Oren Leaffer
2012-03-01 15:32 ` Richard Purdie
2012-03-01 15:35 ` Richard Purdie
2012-03-02  1:23   ` Wang, Shane

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F4E9861.5070604@linux.intel.com \
    --to=josh@linux.intel.com \
    --cc=bitbake-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox