【问题标题】:bitbake git fetcher failurebitbake git fetcher 失败
【发布时间】:2014-08-25 19:57:53
【问题描述】:

我在 Yocto Project 的 poky 中有一个自定义内核配方。我将它与 dylan-9.0.0 (1.4.0 distro) 版本一起使用,效果很好。

编辑:我目前使用的新版本:daisy 1.6.1 发行版。

现在我换成daisy了,git fetcher找不到标签了。

日志:

调试:Python 函数 base_do_fetch 完成 |调试:Python 函数 do_fetch 完成 |错误:函数失败:URL 提取器失败: 'git://git.myserver.com/custom-linux;protocol=git;tag=1.8'。这 命令 git ls-remote git://git.myserver.com/custom-linux refs/heads/1.8 refs/tags/1.8^{} 意外给出空输出错误: 任务 70 (/opt/poky/meta-mine/recipes-kernel/linux/linux-custom_1.8.bb, do_fetch) 失败,退出代码为 '1'

git ls-remote git://git.myserver.com/custom-linux refs/heads/1.8 refs/tags/1.8^{} 确实给出了从命令行调用的空输出,但如果我这样做git ls-remote git://git.myserver.com/custom-linux refs/heads/1.8 refs/tags/1.8 然后它返回我正在寻找的标签。

所以...问题在于 URL 末尾的 ^{}。我猜它的工作方式与以前的版本不同。

您有什么想法可以解决吗?

【问题讨论】:

  • 嗯...是的,它是相关的,但这并不是我问题的真正答案。它澄清了 ^{} 是什么,但我仍然不知道为什么如果我有一个简单的 1.8 标签还不够。
  • 我可以这样解决:我从 SRC_URI 中删除了 tag=1.8 并在我的配方中使用提交标识符哈希定义了 SRCREV 变量,并且我必须将 branch=mybranch 附加到 SRC_URI 变量的末尾。这样可以完美运行,但我不会说这是一个很好的解决方案。
  • @Attila_Horvath 太棒了!您应该将此作为答案发布,以便其他人将此视为已解决。

标签: git bitbake yocto


【解决方案1】:

我最终使用的解决方案是确保我们创建并打算通过 yocto 获取的所有标签都是带注释的标签。当您创建非注释标记时,它不会在 refs/tags/ (即 ^{} 版本)中添加引用指针,并且因为 yocto fetcher 正在寻找取消引用的版本,所以它失败了。当您创建一个带注释的标签时,它会自动为您创建该版本,并且会被找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多