在 Apache 软件基金会禁止 BSD+Patents 依赖项许可后,React 用户请求 Facebook 重新许可 React.js
已发表: 2017-07-18
Apache 软件基金会周末发布通知,表示已将 Facebook 的 BSD+Patents 许可证添加到其针对 Apache PMC 成员的 X 类禁止许可证列表中。 这是 Facebook 用于其大部分开源项目的许可证。
Facebook 的 RocksDB 团队的一位代表对 Apache 基金会的帖子发表了评论,建议该项目将在 8 月 31 日的最后期限内重新许可,以符合 Apache PMC 成员的要求,并且该更改已于今天提交:
RocksDB 团队正在调整许可,以便在 Apache 2 和 GPL 2(用于 MySQL 兼容性)许可下获得双重许可。 这应该会在 8 月 31 日之前不久发生。 我将不谈关于许可的历史和哲学,因为它通常是一个复杂的讨论,我不确定它是否真的在这个线程中被完全捕捉到,特别是相对于 Facebook 的意图。
希望今天上午对 PMC 的指导可以调整,因为我认为我们中的任何人都不认为在已经使用 RocksDB 的 ASF 项目中需要大量额外的工程工作
鉴于 ASF 法律事务委员会决定在 Apache 项目中禁止 BSD+专利许可,ASF 成员 Joan Touzet 在 React 存储库上提出了一个问题,敦促 Facebook 考虑根据 Apache License v2.0 和 GPL 2 重新许可 React.js :
这在 Apache 社区中引起了很多不安和沮丧,特别是在需要类似许可代码作为直接依赖项的项目中——其中最主要的是 RocksDB。
我们(Apache 软件基金会)刚刚收到消息,RocksDB 将根据双重 Apache 许可证 v2.0 和 GPL 2 许可证重新许可他们的代码。
作为 ASF 顶级项目 (Apache CouchDB) 中 React.JS 的用户,请考虑以类似条款重新许可 React.JS。 否则,许多 ASF 项目(例如我们自己的)将不得不停止依赖 React 并使用 React 进行构建。
尽管 RocksDB 的重新许可解决了该特定项目的问题,但 ASF 禁止 Facebook 的 BSD+Patents 许可意味着 Facebook 的其他广泛使用的技术,包括 React.js,仍然被禁止。 这可能会给许多开源项目带来问题。
Minio 团队的 Harshavardhana 发表评论,支持向 Facebook 提出的重新授权 React 的请愿书。
“我们的对象存储浏览器 UI 基于 React,并且我们获得了 Apache 2.0 许可,”他说。 “迁移将是不幸且耗时的,但我们将不得不这样做,以代替有关 Apache 不兼容性的新信息。 请考虑重新授权 React。”
Om(React 的 ClojureScript 接口)的贡献者也在讨论 ASF 的新要求是否会影响他们的项目。 Greg Stein 代表 ASF 发表评论,澄清了该组织决定禁止 Facebook 的 BSD+Patents 许可的原因:
请注意,ASF 选择这条路径是出于政策原因,而不是“许可证不兼容”。 我们不希望 Apache 代码的下游用户对 RocksDB 和 React 中的专利授权感到惊讶。 用户应该只需要遵循 ALv2,没有进一步的限制。
这些许可证可以一起工作(IMO),并且只对用户提供两组限制。
Stein 说,做出决定的不是 ASF 的律师,而是该组织的政策决定,即“不允许将 FB/BSD+专利许可混入基金会向用户发布的软件中”。

Facebook 正在内部讨论重新授权事宜
Redux、Create React App 和 React Hot Loader 的合著者 Dan Abramov 加入了 GitHub 上关于重新许可的讨论,并简要而模糊地总结了 Facebook 如何处理重新许可的请愿书。
阿布拉莫夫说:“为了给你一个小小的更新,大约一周内将有更多关于这个的内部讨论。” “我能说的就这么多了。 我不会对 React 的这种变化过于乐观,但我们会看到的。 @daveman692 已同意在这些讨论结束后提供更新。”
完全放弃专利授权,这将是解决开源项目这个问题的最方便的方法,不太可能发生。 React 在其短暂的历史中已经经历了两次重新授权。 它最初在 Apache 2.0 下获得许可,但在 2014 年 10 月更改为 BSD 许可和专利授权,其中包括一个极具争议的终止条款。 2015 年 4 月,专利授权略有更改,以允许被许可人在专利诉讼中不包括针对与 React.js 无关的事件中针对 Facebook 或其关联公司的反诉的情况下继续使用该软件。
Facebook 的 BSD+Patents License 中的终止条款仍然不受欢迎,许多开源项目维护者对此表示怀疑。 当 Drupal 项目开始考虑使用客户端框架来取代 Backbone.js 时,Dries Buytaert 基于他所说的“可能不可接受的专利条款”放弃了 React,并引用了 WordPress.com 的 Calypso 和 React 贡献者的反对意见。
WordPress 开源项目尚未正式宣布决定将哪个 JavaScript 框架包含在核心中,但所有迹象都指向 React。 WordPress 即将推出的 Gutenberg 编辑器是基于 React 构建的,其主要贡献者是 Automattic 员工,他们为 WordPress.com 开发基于 React 的产品。 Gutenberg 继续以极快的速度向前推进,没有任何重写的迹象,WordPress 的共同创建者 Matt Mullenweg 直言不讳地表达了他对使用 React 的偏好。
尽管 Automattic 的法律顾问表示,该公司愿意在项目当前的许可下将 React 用于其产品,但 WordPress 社区中的其他人并不愿意将框架包含在核心中。
Open Source Initiative (OSI) 包括一个通用 BSD+Patent 许可,列在其批准的许可中,但 Facebook 的特定 BSD+Patent 许可尚未提交。 El Camino Legal 的合伙人 Robert Pierce 认为,许可终止条款在开源许可中应该是不允许的,因为它的存在是为了保护 Facebook 免受与 React 代码完全无关的专利诉讼:
Facebook 将 React.js 吹捧为开源软件。 但在我看来,额外授予专利权的许可终止条款使该产品超出了开源软件的范围。
额外授予专利权 (v.2) 中提供的专利许可的条件是被许可人未对 Facebook 或其关联公司提起专利侵权诉讼。 因此,被许可人为使用该库付出了代价。 这不是用金钱付出的代价。 Facebook 要求使用该库的价格是被许可人不得针对 Facebook 或其关联公司行使任何专利权。
Pierce 将 Facebook 发布 React 源代码视为赢得一些专利诉讼保护的筹码,他认为“对于 Facebook 来说,声称开源地位过于贪婪”。
开源社区广泛猜测将 Facebook 的 BSD+专利许可作为依赖项的含义,但该许可尚未在法庭上进行测试。 Apache 软件基金会是第一个对有争议的许可证采取强硬立场的主要组织,这引起了 Facebook 的注意。 Facebook 代表已承诺在内部讨论结束后更新重新授权的请愿书。
