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 发行版没有定期测试,使用时请注意这一点。