Patchwork [bitbake-devel,04/11] Hob: Fix the image installation dependency

login
register
mail settings
Submitter Dongxiao Xu
Date March 14, 2012, 9:26 a.m.
Message ID <c30b412003be68dd9c060e2d227f85232e4492ff.1331716896.git.dongxiao.xu@intel.com>
Download mbox | patch
Permalink /patch/23293/
State Accepted
Commit a16b2245d7f5ef8509df0c543f9432c98367c79c
Headers show

Comments

Dongxiao Xu - March 14, 2012, 9:26 a.m.
Get the image installation content from rdepends and rrecommends
variables.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 lib/bb/ui/crumbs/hoblistmodel.py |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)
Joshua Lock - March 14, 2012, 7:37 p.m.
On 14/03/12 02:26, Dongxiao Xu wrote:
> Get the image installation content from rdepends and rrecommends
> variables.
>
> Signed-off-by: Dongxiao Xu<dongxiao.xu@intel.com>
> ---
>   lib/bb/ui/crumbs/hoblistmodel.py |    6 ++----
>   1 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/lib/bb/ui/crumbs/hoblistmodel.py b/lib/bb/ui/crumbs/hoblistmodel.py
> index 0b7c0cb..0378828 100644
> --- a/lib/bb/ui/crumbs/hoblistmodel.py
> +++ b/lib/bb/ui/crumbs/hoblistmodel.py
> @@ -546,9 +546,7 @@ class RecipeListModel(gtk.ListStore):
>               group = event_model["pn"][item]["section"]
>               install = []
>
> -            depends = event_model["depends"].get(item, [])
> -            rdepends = event_model["rdepends-pn"].get(item, [])
> -            depends = depends + rdepends
> +            depends = event_model["depends"].get(item, []) + event_model["rdepends-pn"].get(item, [])
>
>               if ('task-' in name):
>                   if ('lib32-' in name or 'lib64-' in name):
> @@ -557,7 +555,7 @@ class RecipeListModel(gtk.ListStore):
>                       atype = 'task'
>               elif ('-image-' in name):
>                   atype = 'image'
> -                install = rdepends
> +                install = event_model["rdepends-pkg"].get(item, []) + event_model["rrecs-pkg"].get(item, [])

rrecs should be recommendations, not requirements - are we making the 
conscious decision to include all recommended packages when building 
with Hob?

>               elif ('meta-' in name):
>                   atype = 'toolchain'
>               elif (name == 'dummy-image' or name == 'dummy-toolchain'):
Dongxiao Xu - March 15, 2012, 6:02 a.m.
On Wed, 2012-03-14 at 12:37 -0700, Joshua Lock wrote:
> 
> On 14/03/12 02:26, Dongxiao Xu wrote:
> > Get the image installation content from rdepends and rrecommends
> > variables.
> >
> > Signed-off-by: Dongxiao Xu<dongxiao.xu@intel.com>
> > ---
> >   lib/bb/ui/crumbs/hoblistmodel.py |    6 ++----
> >   1 files changed, 2 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/bb/ui/crumbs/hoblistmodel.py b/lib/bb/ui/crumbs/hoblistmodel.py
> > index 0b7c0cb..0378828 100644
> > --- a/lib/bb/ui/crumbs/hoblistmodel.py
> > +++ b/lib/bb/ui/crumbs/hoblistmodel.py
> > @@ -546,9 +546,7 @@ class RecipeListModel(gtk.ListStore):
> >               group = event_model["pn"][item]["section"]
> >               install = []
> >
> > -            depends = event_model["depends"].get(item, [])
> > -            rdepends = event_model["rdepends-pn"].get(item, [])
> > -            depends = depends + rdepends
> > +            depends = event_model["depends"].get(item, []) + event_model["rdepends-pn"].get(item, [])
> >
> >               if ('task-' in name):
> >                   if ('lib32-' in name or 'lib64-' in name):
> > @@ -557,7 +555,7 @@ class RecipeListModel(gtk.ListStore):
> >                       atype = 'task'
> >               elif ('-image-' in name):
> >                   atype = 'image'
> > -                install = rdepends
> > +                install = event_model["rdepends-pkg"].get(item, []) + event_model["rrecs-pkg"].get(item, [])
> 
> rrecs should be recommendations, not requirements - are we making the 
> conscious decision to include all recommended packages when building 
> with Hob?

Per my understanding, RRECOMMENDS means that if the recommended package
do exists, then install it. Else if it doesn't, system will not report
error as missing dependency. (Correct me if it is wrong)

Here in Hob code, we will try to install both RDEPENDS and RRECOMMENDS
packages. But note that here the "install" variable is only used to make
selections in "Package Selection" page. Therefore if a recommended
package doesn't exists, it will not be included in the installation
list.

Thanks,
Dongxiao

> 
> >               elif ('meta-' in name):
> >                   atype = 'toolchain'
> >               elif (name == 'dummy-image' or name == 'dummy-toolchain'):
>
Joshua Lock - March 15, 2012, 5:47 p.m.
On 14/03/12 23:02, Xu, Dongxiao wrote:
> On Wed, 2012-03-14 at 12:37 -0700, Joshua Lock wrote:
>>
>> On 14/03/12 02:26, Dongxiao Xu wrote:
>>> Get the image installation content from rdepends and rrecommends
>>> variables.
>>>
>>> Signed-off-by: Dongxiao Xu<dongxiao.xu@intel.com>
>>> ---
>>>    lib/bb/ui/crumbs/hoblistmodel.py |    6 ++----
>>>    1 files changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/lib/bb/ui/crumbs/hoblistmodel.py b/lib/bb/ui/crumbs/hoblistmodel.py
>>> index 0b7c0cb..0378828 100644
>>> --- a/lib/bb/ui/crumbs/hoblistmodel.py
>>> +++ b/lib/bb/ui/crumbs/hoblistmodel.py
>>> @@ -546,9 +546,7 @@ class RecipeListModel(gtk.ListStore):
>>>                group = event_model["pn"][item]["section"]
>>>                install = []
>>>
>>> -            depends = event_model["depends"].get(item, [])
>>> -            rdepends = event_model["rdepends-pn"].get(item, [])
>>> -            depends = depends + rdepends
>>> +            depends = event_model["depends"].get(item, []) + event_model["rdepends-pn"].get(item, [])
>>>
>>>                if ('task-' in name):
>>>                    if ('lib32-' in name or 'lib64-' in name):
>>> @@ -557,7 +555,7 @@ class RecipeListModel(gtk.ListStore):
>>>                        atype = 'task'
>>>                elif ('-image-' in name):
>>>                    atype = 'image'
>>> -                install = rdepends
>>> +                install = event_model["rdepends-pkg"].get(item, []) + event_model["rrecs-pkg"].get(item, [])
>>
>> rrecs should be recommendations, not requirements - are we making the
>> conscious decision to include all recommended packages when building
>> with Hob?
>
> Per my understanding, RRECOMMENDS means that if the recommended package
> do exists, then install it. Else if it doesn't, system will not report
> error as missing dependency. (Correct me if it is wrong)

I thought that the behaviour was dependant on which package backend you 
use (RPM, etc.) but the Yocto documentation agrees with your assertion 
so this  behaviour seems reasonable.

Cheers,
Joshua

Patch

diff --git a/lib/bb/ui/crumbs/hoblistmodel.py b/lib/bb/ui/crumbs/hoblistmodel.py
index 0b7c0cb..0378828 100644
--- a/lib/bb/ui/crumbs/hoblistmodel.py
+++ b/lib/bb/ui/crumbs/hoblistmodel.py
@@ -546,9 +546,7 @@  class RecipeListModel(gtk.ListStore):
             group = event_model["pn"][item]["section"]
             install = []
 
-            depends = event_model["depends"].get(item, [])
-            rdepends = event_model["rdepends-pn"].get(item, [])
-            depends = depends + rdepends
+            depends = event_model["depends"].get(item, []) + event_model["rdepends-pn"].get(item, [])
 
             if ('task-' in name):
                 if ('lib32-' in name or 'lib64-' in name):
@@ -557,7 +555,7 @@  class RecipeListModel(gtk.ListStore):
                     atype = 'task'
             elif ('-image-' in name):
                 atype = 'image'
-                install = rdepends
+                install = event_model["rdepends-pkg"].get(item, []) + event_model["rrecs-pkg"].get(item, [])
             elif ('meta-' in name):
                 atype = 'toolchain'
             elif (name == 'dummy-image' or name == 'dummy-toolchain'):