SDX72移除GPL3.0开源组件
1. 技术背景
GPL(GNU General Public License)是一种开源软件许可协议,是一份针对软件和其他种类作品的自由的、公共的授权文件。而 GPL3.0 是更新一代的开源标准,在对用户专利的保护和 DRM 的限制方面有所更改。GPL 协议同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件、获得软件源码、改进软件并将自己作出的改进版本向社会发行传播的自由。
与此同时,使用了附带 GPL3.0 协议的开源代码,就必须要履行相应的协议规定,在 GPL3.0 协议中规定无论软件以何种形式发布,都必须同时附上源代码。即只要使用了带有 GPL3.0 开源部分的代码,无论在项目代码中占比多少,都要将整个项目的代码开源,因此 GPL3.0 协议具有很强的“传染性”。
而当前 SDX72 平台目前有些开源组件用的协议是 GPL3.0客户希望不使用带有 GPL3.0 的软件包,本文章介绍了一种移除开源组件的方法和思路。
2 移除GPL3.0
2.1 查找 GPL3.0 组件
通过脚本在 pinnacles-le-1-0\Pinnacles_apps\apps_proc\owrt\src 目录下查找全部组件。
pinnacles-le-1-0\Pinnacles_apps\apps_proc\owrt\build_dir\target-aarch64_cortex- a53_musl 目录下运行 ls -1 | sed ‘s/-[0-9].*$//’ > xxx.txt,这一步可将可能要编译进系统的组件保存在 xxx.txt 文件中。
通过匹配两者的组件名且过滤出使用了 GPL3.0 协议的组件,通过
Pinnacles_apps/apps_proc/owrt/.config 内核配置文件查看组件是否启用,排查过后如下图所示,将符合条件的组件标红。