Yocto tips (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST

Yocto中能够配置一个Distrbution的License。然后全部的软件包,都须要符合这个license才干够被shipped到image中,假设我们须要使用违反此license的软件包,那么就须要额外配置。

比如,在bitbake编译vlc的时候出现以下的错误log:

$ bitbake vlc
Parsing recipes: 100% |###################################################################################################################################| Time: 00:00:26
Parsing of 2029 .bb files complete (0 cached, 2029 parsed). 2524 targets, 210 skipped, 1 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'ffmpeg' (but /media/work/iMX6/Yocto/sources/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.1.4.bb DEPENDS on or otherwise requires it)
ERROR: libav PROVIDES ffmpeg but was skipped: because it has a restricted license not whitelisted in LICENSE_FLAGS_WHITELIST
ERROR: libav PROVIDES ffmpeg but was skipped: because it has a restricted license not whitelisted in LICENSE_FLAGS_WHITELIST
ERROR: Required build target 'vlc' has no buildable providers.
Missing or unbuildable dependency chain was: ['vlc', 'ffmpeg']

那么就是由于vlc依赖libav。可是libav,的license不符合Distribution的License而无法编译。在libav中的bb文件配置中。能够看到其license flag为commercial:



开启接受全部的commercial license软件包

因此假设我们须要加入一些commercial Lincense的软件包。就须要加入对commercial的支持,仅仅须要在local.conf中加入一行就可以:

LICENSE_FLAGS_WHITELIST="commercial"

仅仅接受特定的commercial license软件包

可是假设我们仅仅期望某些特殊的commercial软件包能够被编译放入到rootfs中,那么我们就须要逐个指定。比如指定libav等包能够被编译:



原文地址:https://www.cnblogs.com/gccbuaa/p/7133276.html