Facebook has decided to change the React license from BSD+Patents to MIT to make it possible for companies to include React in Apache projects, and to avoid uncertain relationship with the open source community.
Adam Wolff, an Engineering Director at Facebook, has announced that a number of projects – React, Jest, Flow, and Immutable.js – will soon start using the more standard MIT License instead of BSD+Patents. The reason provided is “because React is the foundation of a broad ecosystem of open source software for the web, and we don’t want to hold back forward progress for nontechnical reasons.” While aware that the React’s BSD+Patents license has created “uncertainty” among users of the library, prompting some to select an alternative solution, Facebook does not “expect to win these teams back” but they still hope some will reconsider the issue. The change in license will become effective when React 16 will be released next week.
Regarding other projects, Wolff said that “many of our popular projects will keep the BSD + Patents license for now”, while they are “evaluating those projects’ licenses too, but each project is different and alternative licensing options will depend on a variety of factors.” It seems from this clause that Facebook plans to get rid of the BSD+Patents license entirely, but they need to figure out the best option for each project.
The BSD+Patents is a non-standard 3-clauses BSD license accompanied by a PATENTS file introduced to protect Facebook against litigation. A React user would be revoked the right to use the library or any other Facebook project with the same license if it sues Facebook directly or indirectly for a Patent Assertion, or has a financial interest in such assertion, defined by Facebook as:
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.
In the beginning this license raised some eyebrows but it did not bother most users until Apache decided to include BSD+Patents on the Category X of licenses not allowed to be included in an Apache product. The list includes among others several GNU licenses, Microsoft Limited Public License, and Amazon Software License (ASL). The main problem is that such licenses are not a “universal donor to downstream projects, and as such introduces limitations surrounding the use of this software.” A number of important open source projects have been impacted by Facebook’s license, including Samza, Flink, Marmotta, Kafka and Bahir. Apache allowed companies some time to fix the problem until August 31st, at which point “ANY and ALL usage of these Facebook BSD+patents licensed artifacts are DISALLOWED.” More details on the reason behind Apache’s decision can be found on issue RocksDB/LEGAL-303.