计算机视觉库 OpenCV 2020 年技术委员会的会议记录显示,其中一项议程提到计划将其开源许可协议从BSD 变更为 Apache 2.0。
OpenCV 开发团队目前正在讨论变更开源许可协议的详细问题,预计在6月29日进行第一次评估。
BSD 许可协议比较宽松,对于采用 BSD 的开源项目,开发者使可以自由使用、修改源码,也可以将修改后的代码作为开源或者专有软件再发布,不过需要保留当前许可内容。根据维基百科的介绍,BSD 不像GPL 那样具有“传染性”。
然而 BSD 许可协议在某些情况下(例如涉及到专利)却无法保护用户。引用OpenCV团队举的一个例子来进行说明:
某名为“发明”的公司为某算法申请了专利,并发表了论文。因算法效果优秀,某CV爱好者依论文编写了代码,并以BSD协议将代码提交到OpenCV。这个过程中没人知道算法已申请专利,隐患便被埋下。
另一名为“发财”的公司将OpenCV中的这个算法应用到其产品中。依照现有BSD协议,此公司可以商业销售产品,只需注明产品使用了OpenCV,而无需对用户开源。
“发明”发现“发财”使用了其专利技术,遂起诉“发财”要求赔偿和停止侵权,并顺带起诉或要求开源社区停止侵权。一旦发生这样的案例,“发财”肯定要破财。开源软件声誉也会受到负面影响。
OpenCV团队表示这样的案例在其他开源社区中发生过,但没在 OpenCV 社区发生过,因为 OpenCV 不接收有专利的算法。对于每个提交的新算法,社区会确认是否有专利。若有,只能拒绝接收。
以上做法虽然保障了安全性,但也让一些优秀算法无法进入 OpenCV。
与 BSD 相比,Apache 2.0是一个更规范和更详细的开源许可协议,其第三条“Grant of Patent License”明确规定了专利所有人通过代码向使用者进行“永久性的、全球性的、非排他性的、免费的、免版税的、不可撤销的”授权。也就是说,专利所有人同意永久授权,不可再起诉用户侵权。