11. Package Feeds¶
This section contains direct excerpts and quotes from publicly accessible documentation: Package Feeds — © 2010–2021 The Yocto Project.

Figure 11.1 Package Feeds with Details¶
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 (QA) checks through the insane.bbclass 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 Figure 11.1 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 – the Deploy 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
orqemux86
architectures.
Hint
Mostly all that variables set to default values in the BitBake default
configuration file conf/bitbake.conf
that residence inside the
Source Directory.
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 in the
Yocto Project Reference Manual 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
.