前言
前一阵子由于Facebook BSD+PATENTS License的原因,Apache项目禁止使用带该license的代码,引人注目的就是Facebook的React前端框架。
后来在知乎上看到百度内部也要求在半年内完成内部产品的转型,如下图所示。目录
- Facebook的BSD+PATENTS License到底说了些什么,以React为例子。
- 开源协议选择
- 结尾
BSD+PATENTS License
根据维基百科的定义,License即软件许可证,含义如下
软件许可证是一种具有法律性质的合同或指导,目的在规范受著作权保护的软件的使用或散布行为。通常的授权方式会允许用户来使用单一或多份该软件的复制,因为若无授权而径予使用该软件,将违反著作权法给予该软件开发者的专属保护。效用上来说,软件授权是软件开发者与其用户之间的一份合约,用来保证在匹配授权范围的情况下,用户将不会受到控告。
根据更新前的Facebook React仓库中的 Readme文件所示。
The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software
这一段整体说明了,如果违反了以下三个限制,就会被撤销使用React的许可,在我个人的理解来说,就是Facebook可以反告你一把了。
由 (i)和(ii)看出,如果你采取专利申诉或者是挑战到了Facebook,Facebook的子公司以及合作方,你的React许可就会被撤销。由(iii) 可以看出:你不能够其他使用了React的公司产生纠纷,不然也会被撤销React许可。这一段是引起了很大的反向,换句话来说,只要你使用着Facebook的React框架,那么Facebook如果侵权你的专利,你还不能告他,你告他的话,你的React许可就会被撤销,然后被反告一把实锤,想想还真的是挺心塞的哈哈。所以百度以及其他的一些公司有一些对应的举措也不足为怪。各种开源协议以及如何选择
因为社区的反响实在强烈,以及Apache基金会的强硬举措,Facebook在近期是妥协了,将Facebook BSD+PATENTS License更新为了MIT协议。
开源协议的数量非常多,但一般来说,我们只需要在常用的当中进行选择即可。阮一峰老师在乌克兰程序员Paul Bagwell的基础上绘制了一份中文的协议选择图,非常浅显易懂。结尾
这是个人对这次Facebook React开源协议事件的一些资料收集以及个人看法,希望对大家有所帮助。
同时也对之前网络上盛传的“ 不用学React”这种言论说一句。且不说你的公司使用React会不会和Facebook引起冲突,哪怕公司层面上有冲突,私下去学习这样一个优秀的框架也是极好的提升机会,切莫浮躁啊。