Changes With Kirkstone That Impact FoundriesFactory

Photo of Daiane Angolini

Posted on Jul 3, 2022 by Daiane Angolini

2 min read

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.

Variables renamed

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

In addition, BB_STAMP_WHITELIST, BB_STAMP_POLICY, INHERIT_BLACKLIST, TUNEABI, TUNEABI_WHITELIST, and 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.

License Tags

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 append or 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.

The append and 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

Related posts

Keep up to date with Foundries.io