The Yocto Project brings impactful changes with the LTS Kirstone release (4.0). This post details two changes that may impact a Factory:
- Renaming of build system variables.
- License names for recipes now follow SPDX standard.
A future LmP version will be released based on Kirkstone. These changes do not impact the current version (v86) and older.
Some build system variables have their name changed. There is a script convert-variable-renames.py to help with the conversion.
From the Yocto Project 4.0 release notes. The following variables have changed their names:
BB_ENV_WHITELIST became BB_ENV_PASSTHROUGH BB_ENV_EXTRAWHITE became BB_ENV_PASSTHROUGH_ADDITIONS BB_HASHBASE_WHITELIST became BB_BASEHASH_IGNORE_VARS BB_HASHCONFIG_WHITELIST became BB_HASHCONFIG_IGNORE_VARS BB_HASHTASK_WHITELIST became BB_TASKHASH_IGNORE_TASKS BB_SETSCENE_ENFORCE_WHITELIST became BB_SETSCENE_ENFORCE_IGNORE_TASKS CVE_CHECK_PN_WHITELIST became CVE_CHECK_SKIP_RECIPE CVE_CHECK_WHITELIST became CVE_CHECK_IGNORE ICECC_USER_CLASS_BL became ICECC_CLASS_DISABLE ICECC_SYSTEM_CLASS_BL became ICECC_CLASS_DISABLE ICECC_USER_PACKAGE_WL became ICECC_RECIPE_ENABLE ICECC_USER_PACKAGE_BL became ICECC_RECIPE_DISABLE ICECC_SYSTEM_PACKAGE_BL became ICECC_RECIPE_DISABLE LICENSE_FLAGS_WHITELIST became LICENSE_FLAGS_ACCEPTED MULTI_PROVIDER_WHITELIST became BB_MULTI_PROVIDER_ALLOWED PNBLACKLIST became SKIP_RECIPE SDK_LOCAL_CONF_BLACKLIST became ESDK_LOCALCONF_REMOVE SDK_LOCAL_CONF_WHITELIST became ESDK_LOCALCONF_ALLOW SDK_INHERIT_BLACKLIST became ESDK_CLASS_INHERIT_DISABLE SSTATE_DUPWHITELIST became SSTATE_ALLOW_OVERLAP_FILES SYSROOT_DIRS_BLACKLIST became SYSROOT_DIRS_IGNORE UNKNOWN_CONFIGURE_WHITELIST became UNKNOWN_CONFIGURE_OPT_IGNORE WHITELIST_<license> became INCOMPATIBLE_LICENSE_EXCEPTIONS
TUNEABI_OVERRIDE have been removed.
When the variables are used in a Factory, a error massage is shown, and it is recommended that the rename is applied to the metadata.
The standard when setting a recipe
LICENSE is to now use the SPDX license tags, as described in meta/conf/licenses.conf.
It is important to adjust any existing recipe to the new standard, because the Yocto Project build system use the content of
LICENSE to generate artifacts depending on the license.
Another important impact is regarding the package filtering based on the license, as shown in FoundriesFactory docs
Append, Prepend and other Operations
When a variable has its value changed by
prepend and also by a
+= operator, a warning message is now shown. It usually happens when there is one or more bbappend file changing that variable.
prepend are applied at variable expansion time, while
+= takes immediate effect during parsing. It is important however, to review the overrides being used on both interactions.
This change is described in Kirkstone migration notes