在使用 bitbake INCOMPATIBLE_LICENSE 标志时需要帮助

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 中

【讨论】:

以上是关于在使用 bitbake INCOMPATIBLE_LICENSE 标志时需要帮助的主要内容,如果未能解决你的问题,请参考以下文章

Incompatible pointer types assiging to "UIViewController" *_Nullable' from 'AppDel

使用 bitbake 构建 OpenDDS

报错 maun.dylib (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))))

报错 maun.dylib (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))))

报错 maun.dylib (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))))

Gif 动画不适用于 Qt 5.8 中的 Yocto Pyro。如何使用 libqgif.so 在 bitbake 中构建 qtbase 5.8?