背景
中国第一个关涉GPL协议的诉讼案件,数字天堂(北京)网络技术有限公司起诉柚子(北京)科技有限公司侵犯计算机软件著作权纠纷一案中,原告数字天堂公司起诉柚子公司发布的APICloud软件抄袭了数字天堂公司HBuilder软件中的三个插件的源代码,侵犯其多项权利[1]。
而柚子公司辩称,HBuilder软件属于应遵循GPL协议开放源代码的软件,应遵循开源,其构建衍生软件作品并不对数字天堂著作权造成侵犯。
也就是说,使用GPL协议的软件为开源软件,基于GPL协议作品产生的衍生作品也要遵循GPL协议,开放源代码。
在一审及二审判决中,法院大篇幅引用GPL v3.0协议[2]的原文,论证GPL协议对涉案插件是否具有约束力。这相当于默认了GPL协议在中国同样具有法律约束力,对于开源软件许可协议在中国司法程序中的效力认定具有重大参考意义。中国法院已经开始认同国际开源许可证的法律效力,中国绝不会成为开源许可协议违反行为的避风港。
2021年《开源安全和风险分析报告》显示,目前大约有65%的代码库中包含许可证冲突,26%的代码库使用了没有许可证或定制许可证的开源代码[3]。可见,开源软件许可证冲突、缺乏已知许可证是如今许多项目面临的问题。
因此,我们在软件审计时更要慎重,对于代码库中的开源软件要谨慎判断是否拥有相关许可证以及是否存在许可证冲突,规避不必要的法律风险。
许可证的引入
研发人员在编写代码时引入无许可的开源软件,主要有以下三种方式:
1.开源软件创建时没有分配许可证
未经许可的开源组件被引入代码库最直接的方式,就是