Topics

require and image.bbappend


Matteo Facchinetti
 

Hi,

I encountered a problem when try to add packages in my image recipe, but I don't understernd if I wrong something or I have to do it in another way.

In detail, in my common_layer there are:
   - image_base.bb : yocto base image 

Now, in my BSP layer, I want to add some packages to the image_base.bb, so I create here the image_base.bbappend file.
But when I try to compile image_with_graphicsupport.bb the result is not how expected.
Image_with_graphicsupport.bb doesn't add packages contained in image_base.bbappend but only the packages contained in image_base.bb.

Is true that when include an image to another with require statement, you can't extend the base image with a bbappend? or I wrong something else?

Regards,

Matteo Facchinetti,
Sirius Electronic Systems


Stefano Babic
 

Hi Matteo,

On 04/04/19 15:35, Matteo Facchinetti wrote:
Hi,

I encountered a problem when try to add packages in my image recipe, but
I don't understernd if I wrong something or I have to do it in another way.

In detail, in my common_layer there are:
   - image_base.bb <http://image_base.bb> : yocto base image 
   - image_with_graphicsupport.bb <http://image_with_graphicsupport.bb>
: where include image_base.bb <http://image_base.bb> (require
image_base.bb <http://image_base.bb>)

Now, in my BSP layer, I want to add some packages to the image_base.bb
<http://image_base.bb>, so I create here the image_base.bbappend file.
But when I try to compile image_with_graphicsupport.bb
<http://image_with_graphicsupport.bb> the result is not how expected.
Image_with_graphicsupport.bb doesn't add packages contained in
image_base.bbappend but only the packages contained in image_base.bb
<http://image_base.bb>.

Is true that when include an image to another with require statement,
you can't extend the base image with a bbappend?
Yes, it is true, because the file is included and it is not anymore like
a recipe that can be extend. It will be searched for a
image_with_graphicsupport.bb append, not image_base.bbappend.

IMHO you can easy reach your goal if you write a packagegroup recipe
where you put all packages you have in the IMAGE_INSTALL of your
image_base.bb. You can then have a .bbappend for the packagegroup in
your BSP layer (and this then works) and you put the packagegroup in the
IMAGE_INSTALL directive of both image_base.bb and
Image_with_graphicsupport.bb.

or I wrong something else?
Best regards,
Stefano Babic


--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================


Matteo Facchinetti
 


Hi Stefano,

Il giorno gio 4 apr 2019 alle ore 17:32 Stefano Babic <sbabic@...> ha scritto:
Hi Matteo,

On 04/04/19 15:35, Matteo Facchinetti wrote:
> Hi,
>
> I encountered a problem when try to add packages in my image recipe, but
> I don't understernd if I wrong something or I have to do it in another way.
>
> In detail, in my common_layer there are:
>    - image_base.bb <http://image_base.bb> : yocto base image 
>    - image_with_graphicsupport.bb <http://image_with_graphicsupport.bb>
> : where include image_base.bb <http://image_base.bb> (require
> image_base.bb <http://image_base.bb>)
>
> Now, in my BSP layer, I want to add some packages to the image_base.bb
> <http://image_base.bb>, so I create here the image_base.bbappend file.
> But when I try to compile image_with_graphicsupport.bb
> <http://image_with_graphicsupport.bb> the result is not how expected.
> Image_with_graphicsupport.bb doesn't add packages contained in
> image_base.bbappend but only the packages contained in image_base.bb
> <http://image_base.bb>.
>
> Is true that when include an image to another with require statement,
> you can't extend the base image with a bbappend?

Yes, it is true, because the file is included and it is not anymore like
a recipe that can be extend. It will be searched for a
image_with_graphicsupport.bb append, not image_base.bbappend.


Ok, understood.
 
IMHO you can easy reach your goal if you write a packagegroup recipe
where you put all packages you have in the IMAGE_INSTALL of your
image_base.bb. You can then have a .bbappend for the packagegroup in
your BSP layer (and this then works) and you put the packagegroup in the
IMAGE_INSTALL directive of both image_base.bb and
Image_with_graphicsupport.bb.


Thank you very much for this tip.
I have done exactly in this way and works perfectly and it's easy to manage.

However there's a part containded in the image_base.bb recipe:
    inherit core-image
    IMAGE_FEATURE_append = "..."

that I had to duplicate into the Image_with_graphicsupport.bb too.

It's not a problem but is it possible to put them in a common recipe like packagegroup?



Stefano Babic
 

Hi Matteo,

On 05/04/19 17:54, Matteo Facchinetti wrote:

Hi Stefano,

Il giorno gio 4 apr 2019 alle ore 17:32 Stefano Babic <sbabic@denx.de
<mailto:sbabic@denx.de>> ha scritto:

Hi Matteo,

On 04/04/19 15:35, Matteo Facchinetti wrote:
> Hi,
>
> I encountered a problem when try to add packages in my image
recipe, but
> I don't understernd if I wrong something or I have to do it in
another way.
>
> In detail, in my common_layer there are:
>    - image_base.bb <http://image_base.bb> <http://image_base.bb> :
yocto base image 
>    - image_with_graphicsupport.bb
<http://image_with_graphicsupport.bb>
<http://image_with_graphicsupport.bb>
> : where include image_base.bb <http://image_base.bb>
<http://image_base.bb> (require
> image_base.bb <http://image_base.bb> <http://image_base.bb>)
>
> Now, in my BSP layer, I want to add some packages to the
image_base.bb <http://image_base.bb>
> <http://image_base.bb>, so I create here the image_base.bbappend file.
> But when I try to compile image_with_graphicsupport.bb
<http://image_with_graphicsupport.bb>
> <http://image_with_graphicsupport.bb> the result is not how expected.
> Image_with_graphicsupport.bb doesn't add packages contained in
> image_base.bbappend but only the packages contained in
image_base.bb <http://image_base.bb>
> <http://image_base.bb>.
>
> Is true that when include an image to another with require statement,
> you can't extend the base image with a bbappend?

Yes, it is true, because the file is included and it is not anymore like
a recipe that can be extend. It will be searched for a
image_with_graphicsupport.bb <http://image_with_graphicsupport.bb>
append, not image_base.bbappend.


Ok, understood.
 

IMHO you can easy reach your goal if you write a packagegroup recipe
where you put all packages you have in the IMAGE_INSTALL of your
image_base.bb <http://image_base.bb>. You can then have a .bbappend
for the packagegroup in
your BSP layer (and this then works) and you put the packagegroup in the
IMAGE_INSTALL directive of both image_base.bb <http://image_base.bb> and
Image_with_graphicsupport.bb.


Thank you very much for this tip.
I have done exactly in this way and works perfectly and it's easy to manage.
:-)

However there's a part containded in the image_base.bb
<http://image_base.bb> recipe:
    inherit core-image
    IMAGE_FEATURE_append = "..."

that I had to duplicate into the Image_with_graphicsupport.bb too.

It's not a problem but is it possible to put them in a common recipe
like packagegroup?
Then simply write a image_base.inc to factorize what is common and in
both recipes you can include it with "require image_base.inc"

Regards,
Stefano

--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================


Matteo Facchinetti
 

Hi Stefano,

Il giorno ven 5 apr 2019 alle ore 18:33 Stefano Babic <sbabic@...> ha scritto:
Hi Matteo,

On 05/04/19 17:54, Matteo Facchinetti wrote:
>
> Hi Stefano,
>
> Il giorno gio 4 apr 2019 alle ore 17:32 Stefano Babic <sbabic@...
> <mailto:sbabic@...>> ha scritto:
>
>     Hi Matteo,
>
>     On 04/04/19 15:35, Matteo Facchinetti wrote:
>     > Hi,
>     >
>     > I encountered a problem when try to add packages in my image
>     recipe, but
>     > I don't understernd if I wrong something or I have to do it in
>     another way.
>     >
>     > In detail, in my common_layer there are:
>     >    - image_base.bb <http://image_base.bb> <http://image_base.bb> :
>     yocto base image 
>     >    - image_with_graphicsupport.bb
>     <http://image_with_graphicsupport.bb>
>     <http://image_with_graphicsupport.bb>
>     > : where include image_base.bb <http://image_base.bb>
>     <http://image_base.bb> (require
>     > image_base.bb <http://image_base.bb> <http://image_base.bb>)
>     >
>     > Now, in my BSP layer, I want to add some packages to the
>     image_base.bb <http://image_base.bb>
>     > <http://image_base.bb>, so I create here the image_base.bbappend file.
>     > But when I try to compile image_with_graphicsupport.bb
>     <http://image_with_graphicsupport.bb>
>     > <http://image_with_graphicsupport.bb> the result is not how expected.
>     > Image_with_graphicsupport.bb doesn't add packages contained in
>     > image_base.bbappend but only the packages contained in
>     image_base.bb <http://image_base.bb>
>     > <http://image_base.bb>.
>     >
>     > Is true that when include an image to another with require statement,
>     > you can't extend the base image with a bbappend?
>
>     Yes, it is true, because the file is included and it is not anymore like
>     a recipe that can be extend. It will be searched for a
>     image_with_graphicsupport.bb <http://image_with_graphicsupport.bb>
>     append, not image_base.bbappend.
>
>
> Ok, understood.
>  
>
>     IMHO you can easy reach your goal if you write a packagegroup recipe
>     where you put all packages you have in the IMAGE_INSTALL of your
>     image_base.bb <http://image_base.bb>. You can then have a .bbappend
>     for the packagegroup in
>     your BSP layer (and this then works) and you put the packagegroup in the
>     IMAGE_INSTALL directive of both image_base.bb <http://image_base.bb> and
>     Image_with_graphicsupport.bb.
>
>
> Thank you very much for this tip.
> I have done exactly in this way and works perfectly and it's easy to manage.
>

:-)

> However there's a part containded in the image_base.bb
> <http://image_base.bb> recipe:
>     inherit core-image
>     IMAGE_FEATURE_append = "..."
>
> that I had to duplicate into the Image_with_graphicsupport.bb too.
>
> It's not a problem but is it possible to put them in a common recipe
> like packagegroup?

Then simply write a image_base.inc to factorize what is common and in
both recipes you can include it with "require image_base.inc"

 
 Oh yes, I didn't think about that.
These parts are statics and the "require image_base.inc" statement into the both images recipes is the simplest way and solve the problem... :-)

Thanks again.

Regards,

Matteo Facchinetti
Sirius Electronic Systems