版本 1.4 (dylan)
本节介绍如何从上一版本迁移到 Yocto Project 1.4 版本(代号“dylan”)。
BitBake
差异如下:
注释续行:如果注释以续行符(\)结尾,下一行也必须为注释, 否则现在会警告。应移除续行符,或确保下一行也是注释。
软件包名称覆盖:运行时包特定变量 RDEPENDS、RRECOMMENDS、 RSUGGESTS、RPROVIDES、RCONFLICTS、RREPLACES、 FILES、ALLOW_EMPTY,以及安装和卸载前后函数
pkg_preinst、pkg_postinst、pkg_prerm、pkg_postrm,始终应带有软件包名称覆盖。 例如主包使用RDEPENDS_${PN}而非 RDEPENDS。 BitBake 解析配方时会执行更严格的检查。
构建行为
差异如下:
共享状态代码:已优化以避免不必要的任务。例如,以下命令不再填充目标系统根目录, 因为这并不必要:
$ bitbake -c rootfs some-image
系统仅需提取输出包内容、重新创建包并构建根文件系统。 除非缺少依赖声明,否则不太可能产生问题。
扫描目录名:扫描 SRC_URI 文件时,现在使用 FILESOVERRIDES 而非 OVERRIDES 生成目录名。一般而言,旧值已包含在 FILESOVERRIDES 中。但如果依赖自己添加到 OVERRIDES 的额外值,可能需要也加入 FILESOVERRIDES,除非已通过 MACHINEOVERRIDES 或 DISTROOVERRIDES 添加。相关变更见 “变量”。
代理与源码获取
新增 oe-git-proxy,取代过去处理代理和从 Git 获取源码的方法。
用法见 meta-yocto/conf/site.conf.sample。
自定义 interfaces 文件(netbase 变更)
如果通过 netbase 的追加文件定制 etc/network/interfaces,
现在应改为为 init-ifupdown 创建追加文件。
该配方位于 OpenEmbedded-Core (OE-Core) 的 meta/recipes-core/init-ifupdown。
追加文件的用法见 Yocto Project 开发任务手册的
“通过自己的层追加其他层元数据”。
远程调试
Eclipse IDE 远程调试支持拆分为镜像功能 eclipse-debug,
对应 packagegroup-core-eclipse-debug 包组。
过去通过 tools-debug 镜像功能及 packagegroup-core-tools-debug 包组提供。
变量
以下变量发生变化:
使用 RPM 的目标包管理
启用运行时包管理并选择 RPM 后端时,现在安装 Smart 代替 Zypper, 用于软件下载、依赖解析和升级。使用帮助可在目标上运行:
smart --help
已移动的配方
由于 OpenEmbedded-Core 中没有使用者,以下配方已迁移:
clutter-box2d:移至meta-oe。evolution-data-server:移至meta-gnome。gthumb:移至meta-gnome。gtkhtml2:移至meta-oe。gupnp:移至meta-multimedia。gypsy:移至meta-oe。libcanberra:移至meta-gnome。libgdata:移至meta-gnome。libmusicbrainz:移至meta-multimedia。metacity:移至meta-gnome。polkit:移至meta-oe。zeroconf:移至meta-networking。
移除与重命名
移除或重命名的内容如下:
evieext:2008 年起已从xserver移除,因此删除。Gtk+ DirectFB:上游 Gtk+ 自 2.18 不再支持,因此移除支持。
libxfontcache / xfontcacheproto:2008 年已从 Xorg 服务器移除,因此删除。libxp / libxprintapputil / libxprintutil / printproto: XPrint 服务器 2008 年已从 Xorg 移除,因此删除。libxtrap / xtrapproto:上游功能已损坏,因此移除。linux-yocto 3.0 内核:移除并新增 3.8,仍保留 3.2 和 3.4。
lsbsetup:移除,功能由lsbtest提供。matchbox-stroke:一直仅是概念验证,因此移除。matchbox-wm-2 / matchbox-theme-sato-2:无人维护,因此移除。 仍提供matchbox-wm和matchbox-theme-sato。mesa-dri:重命名为mesa。mesa-xlib:不再有用,移除。mutter:无人使用且配方陈旧,移除。orinoco-conf:已过时,移除。update-modules:不再使用,内核模块的postinstall和postrm现在无需此脚本即可完成相同工作。web:无人维护,由web-webkit取代。xf86bigfontproto:上游自 2007 年默认禁用且无人使用,因此移除。xf86rushproto:xserver对它的依赖是多余的,已于 2005 年移除,因此删除。zypper / libzypp / sat-solver:移除。使用 RPM 打包并启用目标包管理时, 其功能由 Smart(python-smartpm)取代。