Facebook 决定将 React 原先的 BSD+Patents 许可改为 MIT,这样其他公司就可以将 React 包含在 Apache 基金会的项目当中,并消除与开源社区之间关系的不确定性。
Facebook 的一位工程主管 Adam Wolff 声称,将会有越来越多的项目使用 MIT 许可代替 BSD+Patents ,如 React、Jest、Flow 和 Immutable.js 等。他说:“React 已经成为 Web 生态系统的基础,我们不想因为非技术问题阻碍了整个生态的发展。”React 的 BSD+Patents 许可给软件用户带来了不确定性,导致部分人去寻求其他的方案。Facebook 此举并不一定是要“让这些人重回 React 的怀抱”,但还是希望他们能够慎重考虑这个问题。React 16 将在下周发布,所以这次修改许可可谓是一场及时雨。
Wolff 说,“我们的其他项目仍然继续使用 BSD+Patents 许可”,不过他们“也正在考虑这些项目许可的事情,毕竟每一个项目的情况都不一样,使用何种许可是由多方面的因素共同决定的”。从他的话里似乎可以听出 Facebook 正计划完全剔除 BSD+Patents 许可,但需要根据每个项目的具体情况而定。
BSD+Patents 是非标准的 3-Clause BSD 许可,许可里包含了一个 PATENTS 文件,用于保护 Facebook 不受诉讼侵害。React 用户或 Facebook 其他项目(具有 BSD+Patents 许可协议)的用户如果直接或间接地因专利主张或财务问题向 Facebook 提起诉讼,那么他们就无权使用 Facebook 的这些项目。Facebook 对专利主张的定义如下:
“专利主张”就是指任何主张直接、间接或有助于侵害或诱发侵害任何专利的法律诉讼或行为,包括交叉诉讼和反诉讼。
在一开始,这一许可也引起了一些人的关注,但并没有给大部分人造成干扰,直到 Apache 决定把 BSD+Patents 许可归入 X 类许可,并拒绝该许可的项目被包含在 Apache 的产品当中。X 类许可还包括其他的一些 GNU 许可、微软的有限公共许可(Limited Public License)和亚马逊软件许可(ASL)。这些许可的问题在于,它们不是“完全捐献给下游的项目用户,它们给软件的使用带来了限制”。很多重要的开源项目受到了Facebook 许可的影响,包括Samza、Flink、Marmotta、Kafka 和Bahir。Apache 给其他公司一些时间来解决这个问题,截止日期为8 月31 号,到那时“任何使用Facebook BSD+Patents 软件包的项目都不允许出现在Apache 产品中”。想知道Apache 为什么要做出这一决定,可以参看 RocksDB/LEGAL-303 。
Facebook 计划将许可改为受 Apache 支持的标准 MIT 许可,彻底解决 React 和其他 Facebook 的许可问题。Facebook 其他项目的许可问题还有待观察,他们也想知道 React 的许可问题是如何影响到社区的。
评论