解包后让yocto下载更多源

Make yocto download more sources after unpacking

我有一个食谱,它通过 SRC_URI 变量引用源 A。但是在源 A 内部有一个 link 到另一个源 B。 我想让 Yocto 下载并解压源 A。然后我将从源 A 解析源 B 的 URL,并告诉 Yocto 返回下载和解压源 B。 这可能吗?

源 A 的构建过程会下载源 B 本身,但我希望 Yocto 将源 B 添加到它的 DL_DIR 以避免为下一个构建再次下载它。

您可以使用 Bitbake 的 fetcher 来获取更多资源。

请务必注意,即使您将 ;rev=xxx 之类的内容附加到 URL,获取程序仍将使用 SRCREV 变量,这一点很重要。所以你应该将 SRCREV 设置为 None"AUTOINC".

python do_loadSources() {
  # Backup SRCREV
  mySrcRev = d.getVar('SRCREV')
  d.setVar('SRCREV', None)
  
  # Somehow determine source URL
  sourceUrl = ...

  # Create fetcher
  fetcher = bb.fetch2.Fetch([ sourceUrl ], d)

  # Download
  fetcher.download()

  # Get path of downloaded sources
  fetcher.localpath(sourceUrl)

  # Use the downloaded sources
  ...

  # Restore SRCREV
  d.setVar('SRCREV', mySrcRev)
}

addtask do_loadSources after do_configure before do_compile