如何在Yocto中以递归方式克隆带有子模块的git repo

Ram*_*sad 4 git git-clone bitbake yocto

有没有其他方法来克隆Bitbake配方文件中的所有相关文件夹(类似于使用递归标记)?我现在正在做如下:

SRC_URI="git://[uri_a];...;name=a \
     git://[uri_b];...;destsuffix=git/a/b;name=b \
     git://[uri_c];...;destsuffix=git/a/b/c;name=c"
Run Code Online (Sandbox Code Playgroud)

其中"b"和"c"是"a"的子模块.

mr_*_*org 5

尝试gitsm但没有成功后,我手动将子模块的获取添加到配置步骤:

do_configure_prepend() {
  cd ${WORKDIR}/git
  git submodule update --init --recursive
}
Run Code Online (Sandbox Code Playgroud)

注意:同样的限制gitsm适用,即:

Git Submodules fetcher 不是一个完整的 fetcher 实现。fetcher 存在一些已知问题,即它没有正确使用正常的源镜像基础设施。此外,它获取的子模块源对许可和源归档基础结构不可见。

  • 这是预料之中的 - 事实上这就是 gitsm:// 存在的原因。在获取源代码期间,yocto 使更多的环境可用,允许访问您的 ssh 代理。在“构建”步骤中,环境在很大程度上被锁定。gitsm:// 应该是解决方案 - 直到最近才为我们工作 - 您对 gitsm:// 有什么问题? (2认同)