https://www.yoctoproject.org/docs/2.1/dev-manual/dev-manual.html#maintaining-open-source-license-compliance-during-your-products-lifecycle

image中的license文件

在编译后的yocto目录中,/build/deploy/licenses 中有各个软件的license。

而在/build/deploy/licenses/[image名称+机器名+日期] 这个文件夹中有三个文件

文件名内容
image_license.manifest镜像包括的软件的license,包括bootloader,kernel。
license.manifest文件系统中的软件的license
package.manifest文件系统用到的软件列表

image包括的软件列表

在下面路径下,可以查到已安装的软件的名字,大小,等信息。

build/buildhistory/images/[machine name]/glibc/[build image name]/

其中有

文件名内容
files-in-image.txt文件系统的文件列表,包括位置,权限,大小
installed-package-names.txt文件系统中安装的package的名字
installed-package-sizes.txtpackage的大小,从大到小排列
installed-packages.txtpackage的ipk名字
depends.dot软件的依赖列表 wiki dot filetype
depends-nokernel.dot软件的依赖列表
其他 dot

以及其他文件可以查看相关的信息。

生成image中使用的软件的源代码

https://www.yoctoproject.org/docs/2.1/dev-manual/dev-manual.html#providing-the-source-code

在conf/local.conf中加入

INHERIT += "archiver"
ARCHIVER_MODE[src] = "original"

然后就会在 deploy/sources 中按license分文件夹生成源代码包。如果需要分license来区分不同的包,请在本节头部的链接的对应yocto版本中查看方法。

文件夹名内容
allarch-phytec-linux目标板源码
arm-phytec-linux-gnueabi目标板源码
x86_64-linux编译环境源码

在生成的image中加入软件的license

https://www.yoctoproject.org/docs/2.1/dev-manual/dev-manual.html#providing-license-text

在conf/local.conf中加入

COPY_LIC_MANIFEST = "1"
COPY_LIC_DIRS = "1"
LICENSE_CREATE_PACKAGE = "1"


去掉某一类license的软件,如GPL v3

https://wiki.yoctoproject.org/wiki/How_do_I#Q:_How_do_I_build_an_image_without_GPLv3_Licensed_packages_.3F

在conf/local.conf中加入

INCOMPATIBLE_LICENSE = "GPLv3"
  • No labels