When the OpenEmbedded build system generates an image or an SDK, it gets the packages from a package feed area located in the Build Directory. The general Yocto Project Development Environment figure shows this package feeds area in the upper-right corner.
This section looks a little closer into the package feeds area used by the build system. Here is a more detailed look at the area:
Package feeds are an intermediary step in the build process.
The OpenEmbedded build system provides classes to generate
different package types, and you specify which classes to enable
through the
PACKAGE_CLASSES
variable.
Before placing the packages into package feeds,
the build process validates them with generated output quality
assurance checks through the
insane
class.
The package feed area resides in the Build Directory. The directory the build system uses to temporarily store packages is determined by a combination of variables and the particular package manager in use. See the "Package Feeds" box in the illustration and note the information to the right of that area. In particular, the following defines where package files are kept:
DEPLOY_DIR
:
Defined as tmp/deploy
in the Build
Directory.
DEPLOY_DIR_*
:
Depending on the package manager used, the package type
sub-folder.
Given RPM, IPK, or DEB packaging and tarball creation, the
DEPLOY_DIR_RPM
,
DEPLOY_DIR_IPK
,
DEPLOY_DIR_DEB
,
or
DEPLOY_DIR_TAR
,
variables are used, respectively.
PACKAGE_ARCH
:
Defines architecture-specific sub-folders.
For example, packages could exist for the i586 or qemux86
architectures.
BitBake uses the do_package_write_*
tasks to
generate packages and place them into the package holding area (e.g.
do_package_write_ipk
for IPK packages).
See the
"do_package_write_deb
",
"do_package_write_ipk
",
"do_package_write_rpm
",
and
"do_package_write_tar
"
sections for additional information.
As an example, consider a scenario where an IPK packaging manager
is being used and package architecture support for both i586
and qemux86 exist.
Packages for the i586 architecture are placed in
build/tmp/deploy/ipk/i586
, while packages for
the qemux86 architecture are placed in
build/tmp/deploy/ipk/qemux86
.