Forest header image

Symfony Finland
Random things on PHP, Symfony and web development

Patents in Open Source licenses and the Facebook patent clause

Software Patents and Open Source are like oil and water. They just don't mix easily. One of the recent cases where the pair has been discussed is the BSD + Patent Clause licensing that Facebook uses for React.js and other Open Source software it has released.

React is a wildly popular library for creating user interfaces for the web using JavaScript. It, and the recently open sourced React Native library both originate from Facebook. They are both licensed with the permissive BSD license with an accompanying Patent Clause that continues to be a source of confusion.

As a corporation it's natural that Facebook is looking after it's own best interest even when releasing software under an open source license. The company has chosen to use the BSD licensing, but these pieces of software contain functionalities that are patented by Facebook. The patent clause in place is meant to protect these investments the company has made.

The patent clause put in place for React.js, in addition to the BSD license, actually grants the permission to use the Facebook patented functionalities. The parts about revoking your permission to these patents only comes to play if you challenge Facebook or it's subsidiaries in a court of law.

This means that if you sue Facebook, it's subsidiaries or any other company over the patents granted to Facebook in the open sourced software you use - your license to these patents is automatically removed. Two common licenses, BSD and MIT don't contain a patent grant in themselves, because both were created before the patentability of software was recognized by US law. They do not protect you from later patent litigation by default.

As any legalese, the text can be hard to comprehend, but in essence the patent clause aims to protect the developers and companies using React.js and other software from Facebook in a fair manner. The clause put in place by Facebook is itself rather aggressive (in fact Facebook toned it down a notch in April 2015), but should you not be a patent troll it should not be an issue.

And in the end React is nothing whose API can't be replicated, so if Facebook goes bad just dump React. It might have been an innovator, but there are few unique things in it any longer. It's not like a standard adopted by browsers or something, so it can an will be replaced with relative ease.

Also the widely used Apache license also nowadays has a similar clause...

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.
- Grant of Patent License [in the Apache License]

...as does the latest iteration of the GPL license, GPLv3, is also taking this into account:

In the 17 years since GPLv2 was published, the software patent landscape has changed considerably, and free software licenses have developed new strategies to address them. GPLv3 reflects these changes too. Whenever someone conveys software covered by GPLv3 that they've written or modified, they must provide every recipient with any patent licenses necessary to exercise the rights that the GPL gives them. In addition to that, if any licensee tries to use a patent suit to stop another user from exercising those rights, their license will be terminated.

What this means for users and developers is that they'll be able to work with GPLv3-covered software without worrying that a desperate contributor will try to sue them for patent infringement later. With these changes, GPLv3 affords its users more defenses against patent aggression than any other free software license.
- Stronger Protection Against Patent Threats [in GPLv3]


Written by Jani Tarvainen on Monday July 18, 2016
Permalink - Tags: javascript, reactjs, patents

« A workflow component with framework integration coming in Symfony 3.2 - Httpoxy vulnerability hits PHP installs using FastCGI with PHP-FPM, HHVM »