版本 2.7 (warrior)
本节介绍如何从上一版本迁移到 Yocto Project 2.7 版本(代号“warrior”)。
BitBake 变更
BitBake 有以下变更:
BitBake 现在会检查元数据中的匿名 Python 函数和纯 Python 函数 (例如
def funcname:)是否使用制表符缩进,若发现则产生警告。BitBake 现在会检查 BBFILE_COLLECTIONS 中的重复条目,若发现则报错。
移除 Eclipse 支持
移除了对 Eclipse IDE 的支持。2.7 之前原本包含该支持的版本会继续支持。 2.7 不再包含 Eclipse Yocto 插件。
qemu-native 拆分系统模式和用户模式部分
qemu-native 的系统模式与用户模式部分现已拆分。
qemu-native 提供用户模式组件,qemu-system-native 提供系统组件。
如果配方在构建时依赖 QEMU 系统仿真功能,应改为依赖 qemu-system-native,
而不是 qemu-native。
移除 upstream-tracking.inc 文件
此前已弃用的 upstream-tracking.inc 现已移除。
所有 UPSTREAM_TRACKING* 变量改为在相应配方中设置。
请移除配置中对此文件的所有引用。
移除 DISTRO_FEATURES_LIBC 变量
DISTRO_FEATURES_LIBC 不再使用。通过 kconfig 配置 glibc 的功能早已移除,
因此 libc-* 功能集已不再生效。
请移除自己的层中对 DISTRO_FEATURES_LIBC 的所有引用。
许可证值修正
配方设置的 LICENSE 值作了以下修正:
socat:LICENSE 由 "GPLv2+" 修正为 "GPLv2"。
libgfortran:许可证设为 "GPL-3.0-with-GCC-exception"。
elfutils:移除 "Elfutils-Exception",共享库设为 "GPLv2"。
打包变更
本节介绍打包方式的变更。
bind:nsupdate二进制文件移至bind-utils包。调试信息拆分:默认改为创建独立源码包,即
package_name-dbg和package_name-src。如果通过 IMAGE_FEATURES 中的dbg-pkgs引入调试符号,而且仍需要源码,现在还必须添加src-pkgs。 SDK 的目标部分默认仍包含源码包,除非自行设置的 SDKIMAGE_FEATURES 不包含src-pkgs。util-linux的全部挂载功能:/etc/default/mountall移至 -mount 子包。util-linux二进制拆分:每个二进制文件现在都有独立软件包,以提供细粒度控制。 主util-linux包通过 RRECOMMENDS 和 RDEPENDS 引入各包。 因此,只要未设置 NO_RECOMMENDATIONS,现有镜像应不会变化。netbase/base-files:/etc/hosts从netbase移至base-files。tzdata:主包转为空的元包,默认引入全部tzdata软件包。lrzsz:从packagegroup-self-hosted和packagegroup-core-tools-testapps中移除。现代系统很少需要 X/Y/ZModem 支持。如果依赖这些包组将lrzsz加入镜像,现在需要显式添加它。
已移除的配方
以下配方已移除:
gcc:移除 7.3 版本配方,保留 8.3。
linux-yocto:移除 4.14 和 4.18 版本配方,保留 4.19 和 5.0。
go:移除 1.9 版本配方,保留 1.11 和 1.12。
xvideo-tests:已过时。
libart-lgpl:已过时。
gtk-icon-utils-native:这些工具现在由 gtk+3-native 提供。
gcc-cross-initial:不再需要,改用 gcc-cross/gcc-crosssdk。
gcc-crosssdk-initial:不再需要,改用 gcc-cross/gcc-crosssdk。
glibc-initial:用于 site_config 的收益已不足以抵消构建成本,因此移除。
已移除的类
以下类已移除:
distutils-tools:从未使用过。
bugzilla.bbclass:已过时。
distrodata:功能由更现代的、基于 tinfoil 的实现取代。
其他变更
其他变更如下:
Poky 仓库顶层
scripts目录中的distro子目录已移除。Perl 现在使用 perl-cross 为目标构建, 改善可维护性和构建性能。除非对 Perl 配方进行了大量定制,否则应不会遇到问题。
arm-tunes:如果已添加 mcpu,则移除 "-march" 选项。update-alternatives:将文件重命名转换为 PACKAGE_PREPROCESS_FUNCS。base/pixbufcache:移除过时的sstatecompletions代码。inetutils:该配方禁用 rsh。