[agl-discussions] [meta-agl] Suggestion for how to decide which packagegroup to add packages to

Streif, Rudolf rstreif at jaguarlandrover.com
Mon Sep 14 23:33:41 UTC 2015


Hi Tanikava-san,


> I write here down about my thought of packagegroups which I made in
> meta-agl/meta-agl-demo currently.
>
>   meta-agl/
>      recipes-core/
>       images/agl-image-minimal.bb
>       packagegroups/packagegroup-agl-core*.bb
>                     packagegroup-core-boot-agl.bb
>
> Maybe calling the image image-agl-core-minimal.bb to indicate that this
is a core image providing basic functionality rather than a full image. I
purposely put image at the beginning of the name then we have a consistent
naming scheme:

   - package groups: packagegroup-agl-core-*
   - images: image-agl-core-*



>     recipes-ivi/
>       images/agl-image-ivi.bb
>       pcakgegroups/packagegroup-agl-ivi*.bb
>
> Would name images starting with image: image-agl-ivi-*.


>   meta-ivi-common/
>     recipes-core/
>       packagegroups/packagegroup-ivi-common*
>
> I would call it packagegroup-ivi-common-core. You may have another recipe
directory such as recipes-graphics and there you may have
packagegroup-ivi-common-graphics* and images to go with them. Here I
actually deviate from the OpenEmbedded naming scheme as they still call
package groups and images in recipes-graphics packagegroup-core* and
core-image*. I would make clear that these are package groups and images
that enable stacks with a graphical UI. That is my opinion of course.


>   meta-agl-demo/
>     recipes-demo-platform/
>        images/agl-demo-platform.bb
>        packagegroups/packagegroup-agl-appfw*
>
>
Name the recipes-demo-platform just recipes-platform as 'demo' is already
part of the layer name. Images then should be named
image-agl-demo-platform-* and package groups
packagegroup-agl-demo-platform-*


> Details of packagegroups:
>   packagegroup-agl-core*
>     These are for making image 'agl-image-minimal' which is small image
>     just capable of allowing a device to boot.
>
> agl-core-image-*. When you see this, and understand the nomenclature,  you
will instantly know that the images and package groups are defined in the
meta-agl layer in recipes-core. No more grepping around and searching
through layers.


>     That's why in agl-image-minimal.bb, only packagegroup-agl-core is
>     appended to IMAGE_INSTALL.
>
> Image recipes are easy enough to create and understand. I suggest that
each AGL image simply defines its own IMAGE_INSTALL rather than including
another image and appending to it. Yes, there is some redundancy but I
think it improves readability. The only exception I would make is if
depending image and image providing the dependency are defined in the same
directory. Then just use include or require.


>     Subsystem should maintain packagegroup-agl-core-[subsystem].bb which
>     should hold sufficient packages to build 'agl-image-minimal'.
>
>   packagegroup-agl-ivi*
>     These are for making image 'agl-image-ivi' which is baseline for
>     IVI profile of AGL distro.
>     'Baseline' means Service Layer and Operating System Layer defined
>     in AGL Spec v1.0. I think this is the same as GENIVI baseline.
>     All packages which belong to AppHMI and Application Framework
>     should be put into 'meta-agl-demo'.
>
>   packagegroup-ivi-common*
>     These are for picking up some packages from GENIVI/Tizen/Others.
>     meta-ivi-common has no image to build, all packagegroups are
>     aggregated to 'packagegrou-ivi-common' and it is included by
>     images, 'agl-image-ivi.bb' and 'agl-demo-platform.bb'.
>
>   packagegroup-agl-appfw*
>     These are for making image 'agl-demo-platform' which is full image
>     for IVI profile of AGL distro.
>     As above design of packagegroups, in agl-demo-platform.bb, only
>     4 packagegroups are appended to IMAGE_INSTALL,
>     'packagegroup-agl-core', 'packagegroup-agl-ivi',
> 'packagegroup-agl-appfw',
>     'packagegroup-agl-ivi-common'.
>
> Agree.


> Maintenance Policy of Packagegroup
>
>   1. Anyone should not add new packagegroup into below as possible,
>        meta-agl/recipes-core/packagegroups
>        meta-agl/recipes-ivi/packagegroups
>        meta-agl-demo/recipes-demo-platform/packagegroups
>
>      because these are groups for building image and intended to clarify
>      the responsibility of the subsystems about each images.
>
>   2. Subsystem should maintain packagegroup for subsystem in each layer.
>      For exaple, multimedia subsystem should maintain these .bb files.
>        meta-agl/recipes-core/packagegroups/
> packagegroups-agl-core-multimedia.bb
>        meta-agl/recipes-ivi/packagegroups/
> packagegroups-agl-ivi-multimedia.bb
>        meta-ivi-common/recipes-core/packagegroups/
> packagegroups-ivi-common-multimedia.bb
>        meta-agl-demo/recipes-demo-platform/packagegroups/
> packagegroup-agl-appfw-multimedia.bb
>
>   3. Any subsystem could add new packagegroup into thier own recipes-*
> freely.
>      For example, multimedia subsystem could add its own packagegroup into
>      recipes-multimedia/packagegroups/ if they were judged to need it.
>
> I agree in principal, but if somebody adds new recipes and package groups
to include the packages those recipes build, then there also should be
images that demo the functionality. But those images can be added to the
images directory. Eventually, there should by overarching demo images that
make use of and integrate all of it to build an exemplary stack.


> ToDo
> I think these names are mismatch to concept.
>
>   meta-ivi-common/
> *1  recipes-core/
>       packagegroups/packagegroup-ivi-common*
>
> The package groups there should be called packagegroup-ivi-common-core-*


>   meta-agl-demo/
>     recipes-demo-platform/
>        images/agl-demo-platform.bb
> *2     packagegroups/packagegroup-agl-appfw*
>
>   *1 'core' is not appropriate, it should be recipes-ivi/ or
> recipes-ivi-common/
>
>   *2 'appfw' is not appropriate, it should be 'agl-demo-platform' but its
> a bit long
>      name, so agl-dp is good or adp is better? (initials of AGL Demo
> Platform).
>      Then the package group's name would become packagegroup-agl-dp* or
>      packagegroup-adp*.
>

I suggest calling the directory recipes-platform as demo is already in the
name of the layer. In that sense, package groups would be named
packagegroup-agl-demo-platform-* and images image-agl-demo-platform-*.

Thanks,
Rudi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/automotive-discussions/attachments/20150914/e0eaed1c/attachment-0001.html>


More information about the automotive-discussions mailing list