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:
![](https://box.kancloud.cn/2016-04-08_570776a39667a.jpg)
## 开启接受所有的commercial license软件包
因此如果我们需要添加一些commercial Lincense的软件包,就需要添加对commercial的支持,只需要在local.conf中添加一行即可:
~~~
LICENSE_FLAGS_WHITELIST="commercial"
~~~
## 只接受特定的commercial license软件包
但是如果我们只期望某些特殊的commercial软件包可以被编译放入到rootfs中,那么我们就需要逐个指定,例如指定libav等包可以被编译:
![](https://box.kancloud.cn/2016-04-08_570776a3b4b30.jpg)
- 前言
- (1): Yocto 编译后文件放在了哪里 输出文件位置
- (2): Yocto Linux内核编译目录在哪?
- (3): Yocto 如何重新编译Linux内核与dtb,并放到deploy目录?
- (4): Yocto 如何确定(找到)一个包的名字
- (5): Yocto如何更改source code的下载与git clone地址
- (6): Yocto中如何共享已经下载的文件
- (7): Yocto Bitbake的clean与cleanall以及cleansstate的区别
- (8): Yocto 如何加快软件包的下载 如何只下载所有需要的软件包而不编译
- (9): Yocto 软件包的下载地址在哪
- (10): Yocto hellworld 添加一个软件包
- (11): Yocto如何往最终的rootfs中添加软件
- (12): 使用Yocto帮组我们寻找难找的固件与固件放置路径
- (13): Yocto 查看软件包的依赖关系
- (14): Yocto中编译链的配置变更(tuning)
- (15): Yocto中的包管理器
- (16): Yocto 制作SDK分发Toolchain 脱离Yocto环境开发
- (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST
- (18): Yocto SDK Toolchian中静态库的添加
- (19): Yocto SDK Toolchian的使用