前几天,Facebook 在 GitHub 上修改了 React Native 的开源协议(由Facebook BSD+Patents 修改为MIT),这意味着 React Native 将同 React 一样不再使用 Facebook BSD+Patents 协议,而是使用 MIT 协议。
BSD、MIT 和 Apache v2 是常用的三个开源软件协议,但 Facebook 使用的却是 BSD+Patents 协议,Patents 协议是 Facebook 的“特产”,称为专利附属条款,被视为 Facebook 用于解决开源代码中可能出现的专利纠纷的防御措施。
Patents 协议是 2015 年 Facebook 添加的,大致内容是使用基于 Facebook BSD+Patents 协议的开源项目的开发者,未来要是因为专利问题与 Facebook 产生纠纷,那么 Facebook 将有权停止你使用该开源项目,也就是说如果你起诉 Facebook,那么你所使用他们的开源技术开发的产品要么得停用,要么得用别的技术迁移重构,这对企业来说是一个重大的灾难。
虽然这个附属协议引起了社区开发者们强烈地不满,上书诉求不断,但是都没能改变 Facebook 的决定,因为 Facebook 认为这样的协议虽然会让他们失去一些用户,但从长远来看,可以让他们在诉讼上减少金钱和时间的浪费。
但是到了 2017 年 7 月,开源组织 Apache 软件基金会将基于 Facebook BSD+Patents 协议的开源软件列入黑名单让事情出现了转机,同年 9 月,WordPress、百度等大型公司宣布停用 React(Native) 开源项目以规避风险,此后,