11

Is the Facebook BSD+Patents licence compatible with the GPL (GPLv3), in the sense that one could:

  1. use code licensed under BSD+Patents, as part of a project, the rest of which you write yourself (own its copyright), and release the project under the GPL?

  2. combine code licensed under BSD+Patents, with external GPL-licensed code, in a single project?

Obviously, if 2. is possible then so is 1., but not vice-versa.

Facebook's stance

According to Facebook it is:

Additionally, as has always been the case, you may distribute BSD + Patents licensed code with other popular open source licences, such as BSD, MIT, Apache 2.0, and GPL.

but I don't think that a statement in a blog post is really legally binding. On the other hand, it suggests that Facebook intended the licence to be GPL-compatible.

1. Writing your own GPL program, using code under BSD+Patents

Looking at the GPLv3, §7:

If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.

Now, the question is whether the "Patent Grant" is considered a restriction, or not. If it's not, then there is no problem and 1. is probably possible.

However, if it is, then it would seem that by licensing the entire program under the GPL, (including the parts licensed under BSD+Patents), I'm giving permission to users/redistributors of my program, to remove the "Patent Grant" restriction. I'm obviously not allowed to give this permission, so in this scenario I can't release the program under the GPL.

A possible saving grace could be if I just use the BSD+Patents licensed code as a library — e.g. I use the React library, as a library, without changing it. In that case, I could perhaps distribute my program without React, but grant users the additional permission to combine the program with the React library — similarly to the OpenSSL linking exception. I have no idea, though, how the concept of linking transfers to the JavaScript world.

2. Combining with existing GPL code

According to §10 of the GPL:

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.

Hence, we're again faced with the question of whether the "Patent Grant" is an additional restriction. If it is, then I'm not allowed to combine an existing GPL code-base with code under BSD+Patents, while if it's not, then again, there's probably no problem.

Is the "Patent Grant" an additional restriction?

This is the crucial issue and also the most uncertain.

On the one hand, the first line of the "Patent Grant" is Additional Grant of Patent Rights, suggesting that the grant is in addition to the BSD license and just gives you additional rights, not restrictions.

On the other hand, the BSD license already permits the use (and redistribution) of the software, under the set of three standard conditions, all of which are considered acceptable by the GPL, and none of which is linked to initiating Patent Assertions against Facebook, so the revocation of the patent license to use (etc.) the software, if you initiate a Patent Assertion against Facebook (et al.), might be considered an extra restriction.

1
  • 1
    License was changed to MIT: Relicensing React, Jest, Flow, and Immutable.js > Next week, we are going to relicense our open source projects React, Jest, Flow, and Immutable.js under the MIT license. We're relicensing these projects 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.
    – Rolograaf
    Sep 23, 2017 at 10:29

1 Answer 1

5

No, the patent grant is not an additional restriction (and therefore React code can be used in a GPL software).

The BSD license itself does not include a patent grant. This means that even if you have the right to use, modify and distribute the software per the license, doing so may infringe on someone's patents. With this (admittedly unusual and controversial) patent grant, Facebook is giving you additional permission to use its patents when required for running the software.

Per the license, you could remove the patent grant, and distribute React under BSD only. The problem would then be that recipients would not have received permission from Facebook to use their patents (but Facebook would likely apply to these recipients the same grant as to primary recipients).

The BSD license is compatible with the GPL license, and thus you can include React in a GPL software. The patent provisions of the GPL v3 license wouldn't apply to the React code because Facebook did not choose to license their code under GPL v3. Similarly to the case where you would redistribute React under BSD only, you have no obligations to redistribute the patent grant from Facebook with your code. However, once again users of your software may be sued by Facebook for the use of their patents if they do not comply with the patent grant restrictions...

All in all, is it a good idea to use React given how controversial this patent grant is? This is a question for you to answer. However, the answer should be about the same whether your software will be GPL licensed, BSD licensed, or proprietary...

3
  • I think that part of the problem is that some people claim that the BSD license contains an implicit patent grant (for example, see this e-mail in a thread where CC0 was withdrawn for application to become an OSI-approved license, due to the fact that unlike, say, the BSD and MIT licenses, CC0 explicitly states that it does not deal with patents).
    – aplaice
    Aug 28, 2017 at 19:12
  • On the other hand, nobody has ever claimed that CC0 is not compatible with the GPLv3, despite granting even fewer permissions patent-wise than Facebook BSD+Patents, so possibly the latter's compatibility with the GPLv3 is independent of whether the original BSD license deals with patents or not.
    – aplaice
    Aug 28, 2017 at 19:13
  • 1
    The BSD license does not deal with patents but distributing software under this license might prevent you to sue your users for patent infringement in some jurisdictions (unless like Facebook, you have an explicit patent grant explaining in which case you won't sue the users).
    – Zimm i48
    Aug 29, 2017 at 12:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.