For complex custom images, the best approach for customizing
an image is to create a custom package group recipe that is
used to build the image or images.
A good example of a package group recipe is
meta/recipes-core/packagegroups/packagegroup-base.bb
.
If you examine that recipe, you see that the
PACKAGES
variable lists the package group packages to produce.
The inherit packagegroup
statement
sets appropriate default values and automatically adds
-dev
, -dbg
, and
-ptest
complementary packages for each
package specified in the PACKAGES
statement.
inherit packages
should be
located near the top of the recipe, certainly before
the PACKAGES
statement.
For each package you specify in PACKAGES
,
you can use
RDEPENDS
and
RRECOMMENDS
entries to provide a list of packages the parent task package
should contain.
You can see examples of these further down in the
packagegroup-base.bb
recipe.
Here is a short, fabricated example showing the same basic pieces:
DESCRIPTION = "My Custom Package Groups" inherit packagegroup PACKAGES = "\ packagegroup-custom-apps \ packagegroup-custom-tools \ " RDEPENDS_packagegroup-custom-apps = "\ dropbear \ portmap \ psplash" RDEPENDS_packagegroup-custom-tools = "\ oprofile \ oprofileui-server \ lttng-tools" RRECOMMENDS_packagegroup-custom-tools = "\ kernel-module-oprofile"
In the previous example, two package group packages are created with their dependencies and their
recommended package dependencies listed: packagegroup-custom-apps
, and
packagegroup-custom-tools
.
To build an image using these package group packages, you need to add
packagegroup-custom-apps
and/or
packagegroup-custom-tools
to
IMAGE_INSTALL
.
For other forms of image dependencies see the other areas of this section.