Variables related to image/sdk installation
===========================================
PACKAGE_INSTALL: real package list to be installed on image
export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL} ${FEATURE_INSTALL}"
IMAGE_INSTALL: package list to be installed on image, take effect via the PACKAGE_INSTALL variable
If PACKAGE_INSTALL is overridden in image recipe to not contain IMAGE_INSTALL, then IMAGE_INSTALL has no effect.
ROOTFS_BOOTSTRAP_INSTALL: package needed to bootstrap image
default to run-postinsts, ROOTFS_BOOTSTRAP_INSTALL = "run-postinsts", take effect via PACKAGE_INSTALL variable
FEATURE_INSTALL: required packages which are bundled together and treated as image or distro features
FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
Its value is determined by the setting of IMAGE_FEATURES, the meta data related to IMAGE_FEATURES.
e.g.
FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"
And if IMAGE_FEATURES contain 'package-management', then ${ROOTFS_PKGMANAGE} would be installed.
This var takes effect via PACKAGE_INSTALL variable.
PACKAGE_INSTALL_ATTEMPONLY: List of packages attempted to be installed. If a listed package fails to install, the build system does not generate an error.
PACKAGE_INSTALL_ATTEMPTONLY ?= "${FEATURE_INSTALL_OPTIONAL}"
FEATURE_INSTALL_OPTIONAL: optional packages which are bundled together and treated as image or distro features
FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
FEATURE_PACKAGES_foo = "bar"
FEATURE_PACKAGES_foo[optional] = "1"
Then if IMAGE_FEATURES contain 'foo', then FEATURE_INSTALL_OPTIONAL contain 'bar'.
IMAGE_INSTALL_COMPLEMENTARY: complementary packages like *-dev, *-dbg, etc
IMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("IMAGE_FEATURES", d)}'
The variable is parsed in install_complementary in package_manager.py
LINGUAS_INSTALL: locale packages to install on image, set by the IMAGE_LINGUAS variable
The packages specified by this var are treated as complementary packages.
TOOLCHAIN_HOST_TASK: packages installed in host part of SDK
TOOLCHAIN_HOST_TASK_ATTEMPTONLY: packages attempted to be installed in host part of SDK
TOOLCHAIN_TARGET_TASK: packages installed in target part of SDK
TOOLCHAIN_TARGET_TASK_ATTEMPTONLY: pacakges attempted to be installed in target part of SDK
SDKIMAGE_INSTALL_COMPLEMENTARY: complementary packages to be installed in SDK
meta/classes/populate_sdk_base.bbclass:SDKIMAGE_FEATURES ??= "dev-pkgs dbg-pkgs ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'doc-pkgs', '', d)}"
meta/classes/populate_sdk_base.bbclass:SDKIMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("SDKIMAGE_FEATURES", d)}'
meta/lib/oe/sdk.py: self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))