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等包可以被編譯:

- 前言
- (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的使用