yocto poky 4.0 语法变更¶
常量名变更
原常量名 |
新常量名 |
---|---|
BB_ENV_WHITELIST |
BB_ENV_PASSTHROUGH |
BB_ENV_EXTRAWHITE |
BB_ENV_PASSTHROUGH_ADDITIONS |
BB_HASHBASE_WHITELIST |
BB_BASEHASH_IGNORE_VARS |
BB_HASHCONFIG_WHITELIST |
BB_HASHCONFIG_IGNORE_VARS |
BB_HASHTASK_WHITELIST |
BB_TASKHASH_IGNORE_TASKS |
BB_SETSCENE_ENFORCE_WHITELIST |
BB_SETSCENE_ENFORCE_IGNORE_TASKS |
CVE_CHECK_PN_WHITELIST |
CVE_CHECK_SKIP_RECIPE |
CVE_CHECK_WHITELIST |
CVE_CHECK_IGNORE |
ICECC_USER_CLASS_BL |
ICECC_CLASS_DISABLE |
ICECC_SYSTEM_CLASS_BL |
ICECC_CLASS_DISABLE |
ICECC_USER_PACKAGE_WL |
ICECC_RECIPE_ENABLE |
ICECC_USER_PACKAGE_BL |
ICECC_RECIPE_DISABLE |
ICECC_SYSTEM_PACKAGE_BL |
ICECC_RECIPE_DISABLE |
LICENSE_FLAGS_WHITELIST |
LICENSE_FLAGS_ACCEPTED |
MULTI_PROVIDER_WHITELIST |
BB_MULTI_PROVIDER_ALLOWED |
PNBLACKLIST |
SKIP_RECIPE |
SDK_LOCAL_CONF_BLACKLIST |
ESDK_LOCALCONF_REMOVE |
SDK_LOCAL_CONF_WHITELIST |
ESDK_LOCALCONF_ALLOW |
SDK_INHERIT_BLACKLIST |
ESDK_CLASS_INHERIT_DISABLE |
SSTATE_DUPWHITELIST |
SSTATE_ALLOW_OVERLAP_FILES |
SYSROOT_DIRS_BLACKLIST |
SYSROOT_DIRS_IGNORE |
UNKNOWN_CONFIGURE_WHITELIST |
UNKNOWN_CONFIGURE_OPT_IGNORE |
WHITELIST_<license> |
INCOMPATIBLE_LICENSE_EXCEPTIONS |
以下常量被去除:BB_STAMP_WHITELIST, BB_STAMP_POLICY, INHERIT_BLACKLIST, TUNEABI, TUNEABI_WHITELIST, and TUNEABI_OVERRIDE
Fetch任务变更
由于上游源码的远程指向分支一直采用默认的值,这样对于将来的不确定因素导致采用其他分支将会变得不可实现,因此在指向远程分支的链接末尾添加了分支信息,并且由于github不再支持git协议的原因,因此需要在链接尾部额外添加protocol=https,例如:
SRC_URI = "git:git.denx.de/u-boot.git;branch=master;protocol=https"
菜谱的变更
菜谱 |
变更日志 |
---|---|
dbus-test |
与dbus菜谱合并 |
libid3tag |
移动到meta-os层 |
libportal |
移动到meta-gnome层 |
linux-yocto |
移除5.14版本(5.15与5.10版本仍保留) |
python3-nose |
在oe-core层不再有其相关依赖 |
Rustfmt |
在标准镜像中不再强制依赖 |
Python 变更
由于上游python3.10已经遗弃distutils,因此distutils相关类已经移到meta-python层,同样的菜谱中有对distutils*相关的类的继承要改成setuptools*
Prelink 变更
在上游glibc的2.36版本中,因为在比较旧的版本中它导致了在编译过程中一些难以解决的错误,因此新版本中已经去掉。在上一版本honister中已经禁用的该功能,当然如果由于特殊的业务场景需要,也可以启动该功能,但是需要对应glibc支持才行。如果在菜谱中对你prelink有依赖,则需要删除。
Reproducible 变更
Reproducible 相关功能已经作为一个标准功能参与到构建当中,因此其内容被移到base.bbclass中。如果在其他bb文件中有对reproducible的继承,在新版本中需要被移除掉。
构建主机系统的变更
新版支持almaLinux主机系统用来替换CentOS,并且对于其他主机系统版本的支持有所变化,这些主机系统的版本将不再支持:CentOS 8,Ubuntu 16.04,Fedora 30,31,32
gcc的版本要求在7.5以上
:append/:prepend 组合符号变更
在新版本中,使用 append、prepend 和 remove 组合符号时,只能使用等于号 (=) 或者双等号 (:=)。老版本中使用的加号 (+) 需要全部去掉。在使用 append 和 prepend 指向的内容时,需要在前面保留一个空格。另外,在 yocto 中,变量与这三个扩展符号之间的连接由下划线 (_) 改为冒号 (:),例如 SRC_URI:append 或 SRC_URL:prepend 等。
具体详情可以参照https://docs.yoctoproject.org/migration-guides/migration-4.0.html