专利告诉你,为何 Apache 禁用 FB + PL 代码

专利告诉你,为何 Apache 禁用 FB + PL 代码

关于 React.js 的开源许可证从去年 7 月份争议到现在,Apache 基金会终于确认了立场,反对使用 React.js 和 Facebook 其他使用此许可证(BSD+Patents licensed)的流行软件。

最近,随着开源运动不断壮大,这边 LC3 大会刚过去不久,人们的热情还是未曾消去,那边 Apache 和 Facebook 又搅动着整个社区。

作为本次事件焦点的 Facebook Patents license 已经不是第一次出风头了,时不时成为人们讨论的主题。

上一次挑动大众神经是在 2016 年 7 月,Facebook 给 React 应用的开源许可协议是,在 BSD3-clause 协议基础上加上旨在保护 Facebook 自身的扩展协议。而这一次依然是围绕 Facebook Patents license 展开,简单梳理此次事件:

  • 2017 年 4 月,Apache Cassandra 项目正考虑增加 RocksDB 作为存储引擎,但考虑到专利授权的问题,Jeff Jirsa 向 Apache 法律社区寻求意见。
  • 2017 年 6 月,Apache 法律社区开始讨论 Facebook Patents license 协议专利授权的不对称性问题,且该协议与Apache Software License(即 Apache 2.0 等)不兼容。
  • 2017 年 7 月 15 日,Apache Software Foundation(以下简称 ASF)主管兼法律事务副主席 Chris Mattmann 正式发表声明称:Facebook BSD+Patents license(以下简称 FB+PL)已经正式被列入 “CategoryX” 列表,因此 Apache 项目中将不能够包含或依赖于 Facebook Patents license 的代码;而已经发布的代码,涉及 FB+PL 许可证的,需要在 8 月 31 号前完成替换。

这一结论一出场便自带光环,引起了整个社区的关注,包括国内著名社交论坛知乎。当然,其对 Apache 项目自身的影响不比外界的关注度低。

如,虽然 Facebook 已于本月 17 号将 RocksDB 许可证更新为 Apache 2.0 和 GPLv2 双许可,但更大的问题是 React 也是基于 FB+PL 开源,Apache 的 CouchDB 项目、Apache Superset 项目等都依赖于 React,但是要让其开发人员在一个月内摆脱对 React 的依赖似乎也不是一件简单的事情。

到底是什么原因让 ASF 对 Facebook 的 FB+PL 许可协议下禁止令?要回答这个问题,需要先分析一下 FB+PL 许可协议。

众所周知,Facebook 也算是开源社区的中坚力量,截至目前已经发布了很多开源软件技术,包括使用广泛的 React.JS 框架和键值数据库 RocksDB。

不过,Facebook 没有像其他社区一样,自定义自己的开源许可证,也没有仅采用现存的开源许可证,而是采用 “BSD+Patents license” 许可证组合授权其大部分项目,该协议组合也被称为 FB+PL 组合。

其中,BSD 是指 BSD3-clause license,是被 OSI 和 FSF 都认可的开源软件许可证,也是被业界称为“宽松型”的开源许可证。

正是这个“宽松型”的 BSD 许可证附加了专利条款的开源许可协议,已经被 ASF 列为 “Category X”,杜绝了任何以 FB+PL 授权的软件进入 Apache 项目中的可能性,等于 FB+PL 已被 Apache 明确打入冷宫。

FB+PL 协议中,BSD3-clause license 本身没有问题,问题自然就出在 Facebook Patents license,即 Facebook 开源软件组合协议 FB+PL 中的附加专利许可条款。

以下是 Facebook Patents license 条款内容

Additional Grant of Patent Rights Version 2

“Software” means the React software distributed by Facebook, Inc.

Facebook, Inc. (“Facebook”) hereby grants to each recipient of the Software
(“you”) a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
(subject to the termination provision below) license under any Necessary
Claims, to make, have made, use, sell, offer to sell, import, and otherwise
transfer the Software. For avoidance of doubt, no license is granted under
Facebook’s rights in any patent claims that are infringed by (i) modifications
to the Software made by you or any third party or (ii) the Software in
combination with any software or other technology.

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. Notwithstanding the foregoing, if Facebook or any of its
subsidiaries or corporate affiliates files a lawsuit alleging patent
infringement against you in the first instance, and you respond by filing a
patent infringement counterclaim in that lawsuit against that party that is
unrelated to the Software, the license granted hereunder will not terminate
under section (i) of this paragraph due to such counterclaim.

A “Necessary Claim” is a claim of a patent owned by Facebook that is
necessarily infringed by the Software standing alone.

A “Patent Assertion” is any lawsuit or other action alleging direct, indirect,
or contributory infringement or inducement to infringe any patent, including a
cross-claim or counterclaim.

就是以上这段不算长的附加专利授权条款,让不少开发者甚至开源社区组织顾虑重重。

对开源运动有了解的人可能都知道,开源社区对专利非常敏感,甚至有开源大佬和前辈毫不掩饰对软件专利的厌恶和痛恨。更甚者,国外有专门的反软件专利组织,但毕竟专利制度是很多国家的法律制度,不可能受某个人或某一个群体的人的意见而转移。

因此,开源社区能做的就是改变自己以及影响自己可以影响的人,所以不少开源软件许可证都有针对专利的规范条款。

不过,对于 Facebook 附加专利许可协议,开源圈内人士从一开始都不是特别待见。甚至一些反对软件专利的人认为 FB+PL 协议关于专利的授权,拥有这样的专利授权比没有这样的授权更糟糕。

究其原因,从以上 Facebook Additional Grant of Patent Rights(附加专利授权条款)可以看出,该协议是一个单边优惠协议,授予人和被授予人的权利不平衡。

简单说就是基于 FB+PL 授权的软件使用者以及基于 FB+PL 开发衍生代码的开发者,与 Facebook 的权利不平衡。一旦被许可人对 Facebook 及其子公司甚至关联公司提出直接的或间接专利诉讼,无论该诉讼是与所涉及项目有关还是无关,亦或是硬件专利诉讼,甚至是 Facebook 主动提出的专利诉讼而被告者进行的专利反诉,该协议授予用户的专利权利即刻自动终止。

另外,2015 年 4 月 10 以前,Facebook Additional Grant of Patent Rights 第一版中,针对 Facebook 任何形式的诉讼,包括反诉、以及与专利无关的诉讼,都会导致基于该协议的专利授权自动终止。后来由于社区人员对该条款争议较大, Facebook 进行了修改,也即是目前的第二版

值得一提的是,在众多的开源许可证中,有专利权利终止以及许可证权利终止条款的许可证并不少见,例如,Apache2.0 以及GPLv2/v3 都有关于权利终止的条款约束。之所以 FB+PL 会有如此强烈的反应关键有两点:

  1. FB+PL 专利终止条款过于宽泛;
  2. FB+PL 专利条款使得被授予者与 Facebook 之间的权利不平衡。

从另一个层面上讲,Facebook 附加专利授权条款的存在也不是全无道理,毕竟开源软件无时无刻不在承受着来自软件专利的威胁。尽管这些年软件专利没有成功将开源运动送入坟墓,反而使其不断壮大,而开源社区对专利的排斥和恐惧却已深入骨髓。

Facebook 作为开源领域一员猛将,并且已经开源了大量的代码和技术,将所有可能导致侵权的专利技术授权给用户。另一方面,为了自身防护的原因,想办法建立一种自保的机制也在情理之中,毕竟谁都不想成为被鱼肉被屠宰的一方。

整体来讲,Facebook 附加专利授权条款是一个带有严格的惩罚性措施的协议,其严厉性特别表现在其第一版,虽然在第二版中,将诉讼范围限定于专利诉讼,但在许多人看来其范围依然是过大。

Facebook 附加专利授权条款有一种过激的表现,但是如果你能想象一个刚刚崭露头角的少年,还未有可观的积蓄(专利),在群狼环嗣,个个武装到牙齿的对手面前,那种本能的警惕,也许会对 Facebook 多少有点理解。

毕竟,即便 Facebook 附加专利授权条款在严格,对于个人开发者,以及不喜欢搞专利诉讼的组织来说,大家彼此相安无事,也不失为一件好事。

就我个人来讲,我对 Facebook 之于开源的真诚性是认可的。

目前,虽然“ 开源软件 Open Source Software ”和“ 自由软件 Free Software ”两种哲学理念还存在分歧,但很多社区以及组织包括像 Facebook 这样自我保护略显偏激的组织,都是开源/自由软件理念真诚的践行者。还有一部分像微软一样“从良”的,也为开源做了不少贡献,像这种老牌的商业公司背负了太多的包袱,一下子转身可能性不大。

当然,浑水摸鱼以及投机的分子也肯定不少。不过,开源是软件开发的未来趋势和必然走向,开源理念不仅避免了重复开发中时间、人力和资金了浪费,更是智力共享、集体智慧的完美实践。

因此,虽然目前开源运动还存在着种种的冲突和矛盾,但就像所有的新生事物一样,从萌芽到成长再到成熟都会有一个过程,而在这个过程中磕磕绊绊在所难免。

整体上说,这次 Apache 对 Facebook 附加专利授权条款下禁止令,只是开源运动在一件小事,而开源的生命力正是在这种碰撞、冲突和磨合中逐渐显现,慢慢成熟。

(题图:react-etc.net)


作者简介:付钦伟,专利代理人、专利咨询师,任职于集慧智佳知识产权咨询公司。研究生选专业“误入歧途”,进入高大上的知识产权领域,目前从事专利咨询分析工作,励志为中国知识产权事业抛头颅、洒热血。