August 18Open Source

Explaining React's license

Adam Wolff

A few weeks ago, the Apache Software Foundation (the ASF) made a decision to list the BSD + Patents license as a Category-X license. This move affects users of much of Facebook's open source software, but especially the popular React project and the constellation of projects around it. As a result, many have asked us to consider relicensing React and all of our other open source projects. What has become clear through these discussions is that the ASF has very different considerations than Facebook does for how it maintains and distributes open source software.

I'd like to apologize for the amount of thrash, confusion, and uncertainty this has caused the React and open source communities. We know this is painful, especially for teams that feel like they're going to need to rewrite large parts of their project to remove React or other dependencies. We've been looking for ways around this and have reached out to ASF to see if we could try to work with them, but have come up empty.

Facebook has always benefited from open source and has worked to contribute back as much as possible to the open source community. Most major technology companies are involved in open source in some capacity, but at Facebook we've always tried to release hardware and software that we actually use in many of our most successful products. We do this because we believe others can benefit from technology that is tested at our scale and because we believe we are contributing to moving the entire industry forward. To this point, though, we haven't done a good job of explaining the reasons behind our BSD + Patents license.

As our business has become successful, we've become a larger target for meritless patent litigation. This type of litigation can be extremely costly in terms of both resources and attention. It would have been easy for us to stop contributing to open source, or to do what some other large companies do and only release software that isn't used in our most successful products, but we decided to take a different approach. We decided to add a clear patent grant when we release software under the 3-clause BSD license, creating what has come to be known as the BSD + Patents license. The patent grant says that if you're going to use the software we've released under it, you lose the patent license from us if you sue us for patent infringement. We believe that if this license were widely adopted, it could actually reduce meritless litigation for all adopters, and we want to work with others to explore this possibility.

We respect third party IP, including patents, and expect others to respect our IP too. The BSD + Patents license just intends to give our teams more room to make meaningful contributions to open source while decreasing our time spent fighting frivolous lawsuits. Other large technology companies have made similar decisions based on what they believe is best for their businesses through a mixture of approaches, including API, SDK, and software licensing. Some will argue that open source is different, but we believe that developers who are concerned about the BSD + Patents license should be looking at how companies approach patent licensing holistically.

The ASF’s decision related to projects carrying the BSD + Patents license was an internal policy choice directed at projects distributed through, and living on, Apache servers. While we respect this decision, it hurts to see so many great ASF projects get churned for policy reasons after using this license for years. In making the BSD + Patents license a Category-X license, the ASF added it to a long list of other licenses marked by the ASF as contrary to their policies. Their decision was not a legal decision about the compatibility of projects with this license. As has always been the case, source code licensed under the Facebook BSD + Patents license can be combined with source code licensed under other open source licenses like BSD, MIT, Apache 2.0, and GPL. Additionally, as has always been the case, you may distribute BSD + Patents licensed code with other popular open source licenses, such as BSD, MIT, Apache 2.0, and GPL.

We appreciate all the issues that have been opened asking questions and engaging us. We have considered possible changes carefully, but we won't be changing our default license or React's license at this time. We recognize that we may lose some React community members because of this decision. We are sorry for that, but we need to balance our desire to participate in open source with our desire to protect ourselves from costly litigation. We think changing our approach would inhibit our ability to continue releasing meaningful open source software and increase the amount of time and money we have to spend fighting meritless lawsuits.

Keep Updated

Stay up-to-date via RSS with the latest open source project releases from Facebook, news from our Engineering teams, and upcoming events.

Subscribe
Facebook © 2017