【问题标题】:need help in using bitbake INCOMPATIBLE_LICENSE flag在使用 bitbake INCOMPATIBLE_LICENSE 标志时需要帮助
【发布时间】:2016-03-06 23:58:33
【问题描述】:

我是 bitbake 的新手。我有多个彼此相关的问题。

  1. 我正在尝试从我的包中删除所有 GPLv3 包。我看到 meta/recipes-*/ 文件夹中的包的两个版本(gplv2 和 gplv3 或其他适用的许可证类型)都有 .bb 文件。如果我使用 INCOMPATIBLE_LICENSE=GPLv3 它会删除所有 GPLv3 包。但我想包括一些 GPLv3 的包。我在哪里指定这个。 我确实在 poky/build/conf 目录的 bblayers.conf 中看到了一个 BBFILES 标志。这是添加特定食谱的地方吗?
  2. 我的另一个问题是,如果我想使用 recipes-/ 文件夹中多个 .bb 文件中的特定 .bb 文件,我该怎么做。例如

/recipes-extended/tar/tar_1.17.bb /tar_1.27.1.bb

在这种情况下,我如何选择 tar_1.17.bb 而忽略 1.27.bb。这只是一个例子。有一个“bitbake -b”命令将 .bb 文件作为输入,但它只会构建该 .bb 文件并根据文档忽略依赖项。我想构建完整的包并能够选择和忽略特定的 .bb 文件。

  1. 那么,当配方文件夹中有多个 .bb 文件时,bitbake 是如何挑选的,更准确地说是 bitbake 挑选哪个 .bb 文件。

【问题讨论】:

    标签: yocto bitbake


    【解决方案1】:

    1 没有办法做到这一点。目的是什么?通常,如果你想避免 GPLv3,你需要一个完全 GPLv3 的免费镜像

    有一种方法可以绕过系统。你可以设置 INCOMPATIBLE_LICENSE_pn-<package/recipe name> = "" 这将允许您构建包。但是,不要将其用于生产,除非您真的知道自己在做什么。

    2/3:通常会构建最高版本。您可以使用 PREFERRED_VERSION_<package name> 在 local.conf 或您的发行版中,选择另一个版本。另一种方法是添加 DEFAULT_PREFERENCE = "-1" 到您不想构建的配方。

    【讨论】:

    • 谢谢。 PREFERRED_VERSION_ 是我要找的。通过添加到我的 local.conf 文件中,我可以消除大多数 GPLv3 包并在它们的位置构建 GPLv2
    • 不懂这个语法,我做INCOMPATIBLE_LICENSE_gcc = "GPL-3.0-with-GCC-exception" 吗?
    • “目的是什么?”在开发和调试期间临时包含一个包,但不包括生产(例如bootchart2)。我发现我必须在 local.conf 文件中规避它,这有助于防止这些更改进入生产环境。
    【解决方案2】:

    你应该可以设置

    WHITELIST_<spdx_license> += "<name of the package which you want to white list>"
    

    没有很好的文档,但代码在 poky/meta/base.bbclass 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-21
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多