版本 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 代码。

  • native 类:启用 RDEPENDS 处理。

  • inetutils:该配方禁用 rsh。