我们以React为例,看看开源软件的坑在哪里。
React的开源许可证
React最初的开源许可证为Facebook 在BSD许可证基础上附加了专利防御保护条款,即BSD+Patents license。
解读
- 如果被许可人对Facebook及其子公司、关联公司提出直接或间接的专利诉讼;
- 对其他方提起专利诉讼,且该专利诉讼全部或部分起因于Facebook、其子公司或者关联公司的任何软件、技术、产品或服务;
- 就React软件相关发起专利诉讼,起诉其他方。
许可证及后续Facebook的答疑中明确专利权在以下情形下不会被撤回:
- 被许可人使用React创造了竞争产品;
- 被许可人就专利侵权之外的事项起诉Facebook;
- Facebook作为专利诉讼(非因BSD+Patents license授权下的软件相关)的原告,被许可人反诉的情形。
质疑漩涡
Apache基金会在2017年7月禁止Apache 产品中使用遵循BSD+Patents License的JAR包。质疑漩涡进一步发酵,社区激烈地质疑Facebook违背了开源的精神。
在持续发酵的情况下,Facebook承诺更换许可证,并于9月26日遵守承诺在发布React16时更换为MIT许可证。然而,对Facebook还坚持使用原许可证的开源项目,仍然应该引起关注。总体而言,React许可证的更换不仅是开源社区的一次胜利,更是提高了企业、开发者对许可证重要性的认识、起到了警示作用。
如何正确使用开源软件
1. 关注开源软件使用的合规性
综上,未按照开源许可证约定使用开源软件会引发潜在的法律纠纷,或者给企业带来名誉损失。因此,企业在使用开源软件时应建立审查制度。依据开发软件的用途、目的、市场等情况判断是否引入某开源软件。
就软件开发服务提供者而言,应首先关注同客户的合同约定,在合同约定可以使用的前提和范围下,尽到对客户的通知义务或取得客户的书面同意。以避免因为使用开源软件导致的合同违约或者被追偿。
2. 关注开源软件使用的安全性
开源软件由于贡献者的能力不同导致可能存在安全漏洞。因此,开发者在享受开源软件的便利时,应注意漏洞的识别,并采取相应的代码安全审计,并将已披露漏洞及修复方案及时告知客户。
3. 制定开源软件使用政策。
文/朱伟燕,ThoughtWorks中国总法律顾问
閱讀更多 ThoughtWorks 的文章