---
author: 付钦伟
category: 开源智慧
comments_data:
- date: '2017-08-10 13:41:42'
  message: 双授权协议就是韭菜苔
  postip: 111.20.112.126
  username: 来自陕西西安的 Chrome Mobile 59.0|Android 7.0 用户
- date: '2017-08-11 19:06:45'
  message: 如果用的只是BSD协议的项目会不会遇到什么专利问题？
  postip: 182.245.171.252
  username: 来自云南昆明的 Firefox 54.0|GNU/Linux 用户
count:
  commentnum: 2
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 7666
date: '2017-08-10 09:17:00'
editorchoice: false
excerpt: 关于 React.js 的开源许可证从去年 7 月份争议到现在，Apache 基金会终于确认了立场，反对使用 React.js 和 Facebook
  其他使用此许可证（BSD+Patents licensed）的流行软件。
fromurl: ''
id: 8764
islctt: false
largepic: /images/p/201708/09/214628tu18801915dq96ju.jpg
permalink: /article-8764-1.html
pic: /images/p/201708/09/214628tu18801915dq96ju.jpg.thumb.jpg
related:
- displayorder: 0
  raid: 8733
- displayorder: 0
  raid: 8784
- displayorder: 0
  raid: 8876
- displayorder: 0
  raid: 8895
reviewer: ''
selector: ''
summary: 关于 React.js 的开源许可证从去年 7 月份争议到现在，Apache 基金会终于确认了立场，反对使用 React.js 和 Facebook
  其他使用此许可证（BSD+Patents licensed）的流行软件。
tags:
- Facebook
- Apache
thumb: false
title: 专利告诉你，为何 Apache 禁用 FB + PL 代码
titlepic: true
translator: ''
updated: '2017-08-10 09:17:00'
---








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








![](/images/p/201708/09/214628tu18801915dq96ju.jpg)


最近，随着开源运动不断壮大，这边 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](https://www.apache.org/legal/resolved.html#category-x)” 列表，因此 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 条款内容](https://github.com/facebook/react/blob/master/PATENTS)：









> 
> 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（附加专利授权条款）](https://github.com/facebook/react/blob/master/PATENTS)可以看出，该协议是一个单边优惠协议，授予人和被授予人的权利不平衡。


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


另外，2015 年 4 月 10 以前，[Facebook Additional Grant of Patent Rights 第一版](https://github.com/facebook/react/commit/dcf415c2b91ce52fd5d4dd02b70875ba9d33290f#diff-7373d27f0ea94a5b649f893e20fffeda)中，针对 Facebook 任何形式的诉讼，包括反诉、以及与专利无关的诉讼，都会导致基于该协议的专利授权自动终止。后来由于社区人员对该条款争议较大， Facebook 进行了[修改](https://github.com/facebook/react/commit/b8ba8c83f318b84e42933f6928f231dc0918f864?diff=split#diff-7373d27f0ea94a5b649f893e20fffeda)，也即是目前的[第二版](https://github.com/facebook/react/blob/b8ba8c83f318b84e42933f6928f231dc0918f864/PATENTS)。


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


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


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


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


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


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


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









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


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


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


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


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


（题图：react-etc.net）




---


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