@qinyun
2018-02-26T20:52:49.000000Z
字数 1260
阅读 2203
未分类
本月中旬,Facebook在GitHub上修改了React Native的开源协议,这意味着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)开源项目以规避风险,此后,Facebook才公开发表声明,表示从 v16开始,React将不再使用BSD+Patents协议,而是采用MIT协议。
由于去年9月Facebook只是宣布将React、Jest、Flow和Immutable.js执行MIT协议,但同作为Facebook黄金级别的开源项目React Native却维持BSD+Patents协议,这自然引发开发者的热议与不满。在经过开发者几个月的努力之下,Facebook终于为之所动,让React Native采用MIT标准。
我们不知道Facebook这样做的真正目的是什么,但是Facebook这种抛弃单惠协议,重持开源精神的做法足以让React Native开发者狂欢,毕竟就目前来说,能够取代React Native的技术寥寥无几,背后的原因多究无意。
修改声明:
https://github.com/facebook/react-native/commit/26684cf3adf4094eb6c405d345a75bf8c7c0bf88
NR开发者诉求: