React Users Petition Facebook to Re-license React.js after Apache Software Foundation Bans BSD+Patents License in Dependencies

The Apache Software Foundation issued a notice over the weekend, indicating that it has added Facebook’s BSD+Patents license to its Category X list of disallowed licenses for Apache PMC members. This is the license that Facebook uses for most of its open source projects.

A representative from Facebook’s RocksDB team commented on the Apache Foundation’s post to advise that the project will meet the August 31st deadline for relicensing in order to be in compliance with Apache PMC member requirements, and that change has been committed today:

The RocksDB team is adjusting the licensing such that it will be dual-licensed under the Apache 2 and GPL 2 (for MySQL compatibility) licenses. This should happen shortly and well ahead of August 31st. I’ll leave the history and philosophy around licensing alone since it’s generally a complex discussion to have and I’m not sure that it has actually been fully captured in this thread especially vis a vis Facebook’s intent.

Hopefully this morning’s guidance to PMCs can be adjusted since I don’t think any of us see a bunch of extra engineering effort as a desirable thing across the ASF projects which are already making use of RocksDB

In light of the ASF Legal Affairs Committee’s decision to disallow the BSD+Patents License in Apache projects, ASF member Joan Touzet opened an issue on the React repository urging Facebook to consider re-licensing React.js under Apache License v2.0 and GPL 2:

This has led to a lot of upset and frustration in the Apache community, especially from projects requiring similarly-licensed code as direct dependencies – the chief of these being RocksDB.

We (the Apache Software Foundation) have just received word that RocksDB will be re-licensing their code under the dual Apache License v2.0 and GPL 2 licenses.

As a user of React.JS in an ASF top-level project (Apache CouchDB), please consider re-licensing React.JS under similar terms. Otherwise, many ASF projects such as our own will have to stop relying on and building with React.

Although the re-licensing of RocksDB solves that particular project’s problem, ASF’s ban of Facebook’s BSD+Patents license means other widely used technologies from Facebook, including React.js, are still banned. This is likely to cause problems for many open source projects.

Harshavardhana, from the Minio team, commented in support of the petition to Facebook for re-licensing React.

“Our object storage browser UI is based on React and we are Apache 2.0 licensed,” he said. “It would be unfortunate and time consuming to migrate but we will have to do that in lieu of new information regarding Apache incompatibility. Please consider re-licensing React.”

Contributors to Om, a ClojureScript interface for React, are also discussing whether or not the ASF’s new requirements will affect their project. Greg Stein, commenting on behalf of ASF, clarified the reasons behind the organization’s decision to ban Facebook’s BSD+Patents license:

Please note that the ASF chose this path for policy reasons, rather than “license incompatibility”. We don’t want downstream users of Apache code to be surprised by the PATENTS grant that (was) in RocksDB and (is) in React. Users should only need to follow the ALv2, with no further constraints.

These license can work together (IMO) and simply provide two sets of restrictions upon users.

Stein said it was not ASF’s lawyers who made the decision but rather the organization’s policy decision to “disallow FB/BSD+Patent license to be mixed into the software the Foundation releases to users.”

Facebook is Internally Discussing the Re-Licensing Matter

Dan Abramov, co-author of Redux, Create React App, and React Hot Loader, joined the discussion on GitHub regarding re-licensing with a brief and ambiguous summary about how Facebook is handling the petition to re-license.

“To give you a small update, there are going to be more internal discussions about this for about a week,” Abramov said. “This is about as much as I can say. I wouldn’t be too optimistic about this changing for React but we’ll see. @daveman692 has kindly agreed to provide an update when these discussions are over.”

Dropping the patent grant entirely, which would be the most convenient way of solving this issue for open source projects, isn’t likely to happen. React has already gone through re-licensing twice during its short history. It was originally licensed under Apache 2.0 but this was changed in October 2014 to the BSD License plus the patent grant, which included a highly controversial termination provision. In April 2015, the patent grant was changed slightly to allow licensees to continue to use the software in the event that a patent lawsuit did not include a counterclaim against Facebook or its affiliates in a matter unrelated to React.js.

The termination provision in Facebook’s BSD+Patents License continues to be unpopular and is regarded suspiciously by many open source project maintainers. When the Drupal project began considering a client-side framework to supersede Backbone.js, Dries Buytaert passed on React based on what he said was “a potentially unacceptable patent clause,” citing pushback from WordPress.com’s Calypso and React contributors.

The WordPress open source project has not formally announced its decision on which JavaScript framework will be included in core, but all signs point to React. WordPress’ upcoming Gutenberg editor is built on React and its chief contributors are Automattic employees who work on React-based products for WordPress.com. Gutenberg continues to plough forward at a breakneck pace with no indication of a rewrite, and WordPress co-creator Matt Mullenweg has been outspoken about his preference for using React.

Although Automattic’s legal counsel has said the company is comfortable using React for its product under the project’s current license , others in the WordPress community are not as amenable to including the framework in core.

The Open Source Initiative (OSI) includes a generic BSD+Patent license listed among its approved licenses, but Facebook’s particular BSD+Patent license has not been submitted. Robert Pierce, a partner at El Camino Legal, contends that the license termination provision ought to be impermissible in an open source license because it exists to protect Facebook from patent litigation that is completely unrelated to React code:

Facebook touts React.js as open source software. But in my mind the license termination provision of the Additional Grant of Patent Rights takes the offering outside the realm of open source software.

The patent license offered in the Additional Grant of Patent Rights (v.2) is conditioned upon the licensee not bringing a patent infringement lawsuit against Facebook or its affiliates. Thus, the licensee pays a price to use the library. It is not a price paid with money. The price demanded by Facebook for use of the library is that the licensee refrain from exercising any of its patent rights against Facebook or its affiliates.

Pierce views Facebook’s publication of React source code as leverage to win some protection against patent lawsuits, which he deems to be “too greedy an approach for Facebook to claim open source status.”

The open source community has widely speculated about the implications of including Facebook’s BSD+Patent license as a dependency, but the license has not yet been tested in court. The Apache Software Foundation is the first major organization to take a hard line stance on the controversial license and this has caught Facebook’s attention. Facebook representatives have promised an update on the petition for re-licensing after its internal discussions have concluded.