版本 1.3 (danny)
本节介绍如何从上一版本迁移到 Yocto Project 1.3 版本(代号“danny”)。
本地配置
差异包括 SSTATE_MIRRORS 和 build/conf/bblayers.conf 的变化。
SSTATE_MIRRORS
SSTATE_DIR 指向的共享状态缓存(sstate-cache)现在默认使用两字符子目录, 避免同一目录文件过多。此外,在主机运行的 native 共享状态包会进入以发行版 ID 字符串命名的子目录。如果将新结构缓存复制到本地或远程镜像位置,再通过 SSTATE_MIRRORS 指向它,需要在镜像 URL 末尾添加 "PATH", 使 BitBake 镜像替换前使用的路径追加到访问镜像的路径中。例如:
SSTATE_MIRRORS = "file://.* http://someserver.tld/share/sstate/PATH"
bblayers.conf
meta-yocto 层拆成分别对应 Poky 参考发行版和参考硬件 BSP 的两部分:
meta-yocto 与 meta-yocto-bsp。升级后首次运行 BitBake,
build/conf/bblayers.conf 会更新以处理此变化,
并要求重新运行或重启,使变更生效。
配方
差异包括以下内容:
Python 函数空白
所有 Python 函数现在必须使用四空格缩进。
过去空格与制表符混用,因 Python 将空白视为语法的一部分,
通过 _append 或 _prepend 扩展函数会很复杂。
在自定义配方或类中定义或扩展 Python 函数
(如 populate_packages、do_unpack、do_patch)时,
必须确保一致使用四空格缩进。
SRC_URI 中的 proto=
SRC_URI 中所有 proto= 都需改为 protocol=,尤其是以下 URI:
svn://hg://osc://
其他 URI 已使用 protocol=,此变更改善一致性。
nativesdk
nativesdk 从后缀改为前缀,简化了 nativesdk 的大量打包代码。
所有自定义 nativesdk 配方(即原生于 SDK_ARCH
的可重定位包)及相关引用,都需从 *-nativesdk 更新为 nativesdk-*。
任务配方
“任务”配方现在称为“软件包组”,从 task-*.bb 重命名为 packagegroup-*.bb。
多数包有自动升级路径,因此旧 task-* 引用通常仍可工作。
但应更新自己的配方和配置,因为旧名可能在后续版本移除。
自定义 task-* 配方也应改名为 packagegroup-*,并继承
packagegroup 而不是 task。
同时可移除新类已负责的内容,如提供 -dev、-dbg 包,设置
LIC_FILES_CHKSUM 等。详情见 packagegroup。
IMAGE_FEATURES
镜像配方的 IMAGE_FEATURES 若原来包含 apps-console-core,
现在应改为 splash 以启用启动画面。旧条目仍会启用画面,但产生警告。
apps-x11-core 和 apps-x11-games 功能已移除。
已移除的配方
以下配方已移除。自己的 Metadata 通常不会引用其中大多数, 但仍应对照检查:
libx11-trim:由libx11取代,现代 Xorg 的体积差异可忽略。xserver-xorg-lite:改用xserver-xorg,不安装 DRI 和 GLX 时体积差异可忽略。xserver-kdrive:已多年基本无人维护。mesa-xlib:不再有任何用途。galago:由 telepathy 取代。gail:功能已集成到 GTK+ 2.13。eggdbus:不再需要。gcc-*-intermediate:构建流程重组后不再需要此步骤。libgsmd:多年无人维护,功能改由ofono提供。contacts, dates, tasks, eds-tools:基本无人维护的 PIM 应用套件, 移至
meta-openembedded中的meta-gnome。
此外,meta-demoapps 目录也已移除,其中配方无人维护,许多已过时或损坏,
默认配置也不解析它们。许多已有更新且受维护的版本,位于 meta-oe、
meta-gnome 等社区层。其余可在 meta-extras 仓库中找到,
位于 源码仓库 的 https://git.yoctoproject.org/meta-extras/。
Linux 内核命名
内核输出二进制文件名现在包含 PE:
KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
由于 PE 默认未设置,文件名可能包含两个连续连字符,例如:
bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin