【发布时间】:2016-03-11 01:34:43
【问题描述】:
我正在尝试删除一些附加了 GPLv3 许可的开源软件包,这些软件包我们无法作为最终生产映像的一部分分发。虽然可以使用 local.conf 中的“INCOMPATIBLE_LICENSE=GPLv3”删除这些包,但它会删除所有标记为 GPLv3 的包。 我用过了 PREFERRED_VERSION_recipename=(GPLv2 recipe_version) 并将所有 GPLv3 包降级为 GPLv2,我们希望将其推送到最终映像中。但是有几个 GPLv3 包我们希望保留作为调试映像的一部分,例如 M4、make、gdb、bison。这些包不需要出现在最终的生产映像中,但它们不能完全从构建中删除,因为在构建/调试期间需要它们。
所以,我如何从最终的 rootfs 映像中删除这些包/配方,同时让它们成为构建过程的一部分并让它们构建。换句话说,我想让 bitbake 从 GPLv3 源代码构建它们,但将它们排除在最终的 rootfs 映像之外。
我确实查看了 poky/lib/oe/manifest.py 和 rootfs.py 创建函数 ==>,其中正在创建最终的 rootfs 清单,但无法确定需要从 bitbake 中设置什么。 do_rootfs 是否需要被覆盖。如果是这样,需要设置哪些变量来覆盖最终清单。
【问题讨论】: