如何在 Yocto 中为 git 标签设置 SRCREV?

问题描述 投票:0回答:1

我正在尝试从 git 存储库获取特定标签,但是我不断遇到 SRCREV 的问题。

当我像这样使用标签的提交哈希时:

SRC_URI = "git://example.com/repo.git;protocol=https;branch=main;tag=${PV}"
SRCREV = "2bd3465aa7eac0d2de55c9918ce66cac1bcc048f"

我收到以下错误(

6.44
是来自
${PV}
的版本和标签名称):

Bitbake Fetcher Error: FetchError('Conflicting revisions (2bd3465aa7eac0d2de55c9918ce66cac1bcc048f from SRCREV and 6.44 from the url) found, please specify one valid value', None)

如果我随后将 SRCREV 指定为与 URL 中的相同 (

SRCREV = "${PV}"
),我会得到以下结果:

Bitbake Fetcher Error: FetchError("Recipe uses a floating tag/branch '6.44' for repo 'example.com/repo.git' without a fixed SRCREV yet doesn't call bb.fetch2.get_srcrev() (use SRCPV in PV for OE).", None)

我不确定

use SRCPV in PV for OE
是什么意思,但如果我这样做
PV = "${SRCPV}"
我很容易理解关于循环变量扩展的错误:

The variable dependency chain for the failure is: SRCPV -> PV -> SRCREV -> SRCPV -> PV -> BP -> FILESPATH

我找到了许多从分支获取最新提交的解决方案,但似乎没有关于正确设置特定标签的解决方案。我该怎么做?

git yocto bitbake openembedded
1个回答
0
投票

如果您在 SRC_URI 中设置标签,那么您不需要 SRCREV,但出于确定性原因,最新版本确实不喜欢您使用“浮动”引用。标签是浮动引用,因为您可以移动标签。

如果您想签出 6.44,请识别标记指向的 SHA,然后将 SRCREV 设置为该 sha。

© www.soinside.com 2019 - 2024. All rights reserved.