33 使用外部源码管理系统
如果配方从外部源码管理系统(SCM)拉取源码,可以让 OpenEmbedded 构建系统 检测 SCM 中新增的配方变更,并使用最新版本构建依赖这些新配方的软件包。 只有能够为变更提供合理修订号的 SCM 才支持这种方式,目前包括 Apache Subversion(SVN)和 Git。
要启用此行为,配方的 PV 赋值中必须包含 + 号。例如:
PV = "1.2.3+git"
Bitbake 随后会在打包阶段将版本控制信息加入 PKGV。
然后,在 build/conf/local.conf 文件中添加:
SRCREV:pn-PN = "${AUTOREV}"
PN 是要启用源码修订版本自动更新的配方名称。
如果不想更新本地配置文件,也可以直接在配方中添加以下内容,以完成此功能 的启用:
SRCREV = "${AUTOREV}"
Yocto Project 提供了名为 poky-bleeding 的发行版,其配置文件包含以下行:
require conf/distro/include/poky-floating-revisions.inc
此行引入指定的包含文件,其中定义了启用 AUTOREV 的配方集合:
INHERIT += "poky-bleeding"
POKY_AUTOREV_RECIPES = "\
libmatchbox \
opkg-utils \
matchbox-config-gtk \
matchbox-desktop \
matchbox-keyboard \
matchbox-panel-2 \
matchbox-terminal \
matchbox-theme-sato \
matchbox-wm \
pseudo \
puzzles \
sato-icon-theme \
sato-screenshot \
settings-daemon \
"
这样便可以尝试构建一个跟踪多个软件包最新开发源码的发行版。
备注
poky-bleeding 发行版没有定期测试,使用时请注意这一点。