我下载源代码的地址:http://tools.harmonyos.com/mirrors/os/1.0/code-1.0.tar.gz
我好好的看了下里面的源代码,对鸿蒙引用的第三方库的许可表示担忧。
首先鸿蒙使用了 Linux 内核(third_party\Linux_Kernel)的部分实现,该项目采用 GPL v2 许可,那么关于设备开发者定制了鸿蒙的内核,会有必须要求开源的风险。
答复:OpenHarmony的third_party\Linux_Kernel库包含两部分内容,1是jffs2模块,2是scripts模块 。
(1)jffs2模块是为了兼容jffs2而引入,jffs2采用GPLV2+EXCEPTION的许可,并非纯粹的GPLV2,您可以通过如下链接查看其许可证:https://gitee.com/openharmony/third_party_Linux_Kernel/blob/master/fs/jffs2/LICENCE
OpenHarmony对jffs2模块的编译及链接使用方式满足其EXCEPTION的规定,故对该模块的使用,不会导致项目其它代码受到GPLV2的影响。
(2)scripts模块是独立的编译工具,仅在编译过程中用来生成 conf和mconf工具,代码不会编译打包到kernel_liteos_a内核中。因此kernel_liteos_a内核不受GPL影响。
其次鸿蒙在用 Linux 内核部分实现的情况下还用了 OpenSSL 的实现(third_party\openssl),而 OpenSSL 的开源许可证严格来说不兼容 GPL 系列开源许可证。(参阅:https://www.gnu.org/licenses/license-list.html#OpenSSL)
答复:根据对您第一个问题的答复可知,Linux内核部分实现的使用并不会导致OpenHarmony内核受到GPL的影响,故不影响OpenHarmony对OpenSSL的使用,不存在许可证兼容性问题。
还有 freetype
库(third_party\freetype)的许可可能也需要担心(这个库采用的双许可,要么
GPLv2,要么就是与 GPLv2 互斥的 BSD
风格许可),但由于鸿蒙的代码树第三方库包含了 Linux 的代码,于是这方面也没法确定。
还有 hi35xx
芯片支持的代码里引用了 ffmpeg (vendor\hisi\hi35xx\middleware\source\third_party\ffmpeg\ffmpeg-y)这个最起码需要遵守
LGPL v2.1 的库。
我希望社区能够在这方面做出解答,期待回复。
总之希望鸿蒙项目顺利。
Best Regards,
Kenji Mouri (https://github.com/MouriNaruto)