React’s New MIT License: The Circus Enters Its Third Ring 🎟
I’m not one to spread fear. I actually defended Facebook’s/React’s BSD + Patents. And I held off writing this post in hopes that Facebook would clarify the patent grants. They didn’t. 😪
TL;DR Facebook must include a patent grant or any Facebook MIT licensed OSS user infringes Facebook patents claiming the underlying tech.
BSD + Patents > MIT - Patents
First, the issue wasn’t with BSD. It was the strong patent retaliation clause in the PATENTS file (separate from the BSD license). In one swift move, Facebook upgraded the already ok BSD license to the more permissive MIT license but axed the patent grants that everyone needed.
Patenting OSS can make a giant mess of licensing. Fortunately, Apache thought about this long ago and published their Apache v2 (ALv2).
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
It looks like Facebooks PATENTS “don’t sue us” grant, but if you read closely, this is a weak patent retaliation clause. I.e. “if you assert patent infringement against our OSS software, you lose all of our patent grants that we may have protecting our OSS software.” ALv2 debuted in 2004 and its weak patent retaliation clause didn’t devolve ALv2 OSS into a patent shooting match. ALv2 and OSS are still standing thirteen years later.
Had Facebook chosen ALv2, in my opinion, this entire controversy ends. But they chose MIT — one of the most permissive licenses available — without a patent grant. If you haven’t bothered to read the MIT license, check it out in all of its three paragraph glory.
MIT is an incredible open source win when the licensor didn’t patent the underlying code/invention/methods. But are there Facebook patents?
Where and What Are These Facebook Patents?
I argued in my React license defending posts that Facebook is unlikely to have React patents. Two months later, I still think that’s true. But I could be wrong. And I have no idea about Jest, ImmutableJS, and any others.
The lack of a patent grant is a non-issue if Facebook didn’t patent their MIT licensed software. But if they did, it turns into the IP nightmare that is GraphQL.
Facebook’s GraphQL patents are very real and, like MIT licensed React, the GraphQL spec is without a patent grant. GitLab froze their GraphQL development in response.
What Now?
Frankly, this feels like a hand-wavey legal and political magic trick. “Hey, look we chose the most permissive license, the problem is over. Aren’t we great?” Quite the opposite. If there are FB patents backing React, React and its friends become a true IP poisioned pill.
Facebook attorneys presumably know about other licenses with patent grants, like ALv2. Why didn’t they select one of those? Or why didn’t they simply convert the BSD + (Strong) PATENTS to BSD + (Weak) PATENTS? Is this misdirection or legal incompetence? Both are troubling.
Either way, until there’s an explicit Facebook patent grant, or Facebook Legal (actual attorneys with bar ethical obligations — not staff or developers) state that there are no patents protecting the MIT licensed software, the React licensing circus continues.