Well generally React users seem to not care. So I don't blame FB. I guess the clause could be rewritten to be more like what Google/Apache 2.0 does - then everyone would be happy.
This is in reply to the Apache Software Foundation decision to list the BSD + Patents license as a Category-X license.
- Facebook gets attacked by meritless patent litigation
- Facebook creates the BSD + Patents license, which has the following effect :
> 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.
- Facebook believe that 'if this license were widely adopted, it could actually reduce meritless litigation for all adopters'
I understand Facebook's position here, surely this will decrease meritless litigation, but what about meritful litigation?
Let's take an example, a small startup has a cool technology but also all their front-end is using React. That cool technology is patented.
Now if 'Facebook or any of its subsidiaries or corporate affiliates' infringe on that patent, that startup won't be able to sue them without first re-writing the entire front-end to not use React.
I don't think software should be patent-able in the first place anyways but it seems the situation above would still be true if that startup sues them for what they believe is a completely legitimate hardware patent.
Also, IANAL, I'm wondering what even is the definition of a 'corporate affiliate' here? Who is a 'corporate affiliate' of FB?
Finally, what 'patent license' are they referring to in this post anyways ?
The react's PATENT clause (https://github.com/facebook/react/blob/b8ba8c83f318b84e42933...) says they're providing the React software License, and they revoke this software license if you sue them.
Doesn't that only help if we have a react clone to drop in place? That's not necessarily hard to do without patents, but does it exist?
Edit: I think I see what you are saying. It says you lose the patent license, not necessarily the license for the software that doesn't have a patent, so doesn't do anything. Not sure how a judge would decide to interpret it though.
This is what I find confusing, the blog post mentions a patent license that you are granted, but as you say, nobody is aware of any patent covering React. React's doesn't seem to use any novel technique in the field of CS.
But https://github.com/facebook/react/blob/b8ba8c83f318b84e42933... , the way I read it says they grant you a license to to "make, have made, use, sell, offer to sell, import, and otherwise transfer" the React Software. They don't seem to give you a license to any patent.
True or not, is this the kind of power a company of Facebook's size should have over others? If something patentable was added to React, would there be a notice sent out? Let's also not forget that this applies to all of their open-source libraries, things like Immutable, GraphQL, Flux, Hack, HHVM, etc,...
Facebook's license means you lose the license to React if you sue Facebook for any patents, not just for patents that are related to React. That's the core problem here.
Exactly. The "BSD + patents" license applies to _all_ of React, not just the parts of React that use Facebook proprietary technology/patents (and they haven't even identified those parts).
I'm never going to use React under this license, but this is still worrying to me because more companies could follow Facebook's lead and start using open-source as a nuclear deterrent against patent legislation.
Does the additional patent grant in the Facebook BSD+Patents license terminate if I create a competing product?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if I sue Facebook for something other than patent infringement?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if Facebook sues me for patent infringement first, and then I respond with a patent counterclaim against Facebook?
No, unless your patent counterclaim is related to Facebook's software licensed under the Facebook BSD+Patents license.
Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
Does the additional patent grant in Facebook BSD+Patents license terminate if Facebook infringes upon your legitimate patents and you sue them as is right and proper?
Yes.
Does the additional patent grant in Facebook BSD+Patents license terminate if React infringes upon your legitimate patents and you sue another company using React over this?
Yes.
> Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
If Facebook has any patents that are related to React, and you lose the grant for those patents, then Facebook can sue you over them if you use React.
If Facebook doesn't have any patents that are related to React, then why do they have a patent grant?
No, they can't sue you for using React any more than, say a maker of a coffee machine can sue you for using it to serve coffee in your restaurant. You still retain the BSD license, which is an irrevocable, worldwide right to redistribute React.
Facebook has thousands of patents. If you sue Facebook for patent infringement, their lawyers are going to comb through their patent portfolio and look for things that you might be infringing on. That's standard, and to be expected, with or without the React patents clause.
They can sue you for using React if they have patents that it infringes. That's kind of the whole point of the patent grant, to allow you license to those patents to cover your usage of React.
A common understanding of the BSD license is that it has an implicit patent grant, but the existence of the explicit patent grant presumably negates the implicit one, meaning if you lose your explicit patent grant (e.g. by suing Facebook when they infringe one of your patents), then you have no protection from Facebook suing you over your usage of React.
Facebook and other large software firms have a large arsenal of patents that's sufficient to defend themselves from a patent lawsuit from a large competitor. These patents are broad. So if you're writing web software with any amount of compexity, you probably infringe on Facebook's patents. If you are a small firm that owns a patent Facebook is infringing on and you wish to litigate it, you have basically two options:
1: give up your main business so you no longer infringe on the Facebook patents. IOW, become a troll.
2: get demolished by the Facebook counter suit.
The React license doesn't change those two options one bit, it just makes it much more obvious. Facebook's intent is likely just to prevent the suits from even being considered in the first place.
> 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.
This, to me, is a significant warning sign.
I was leery of the React license to begin with. But the community at large had _almost_ convinced me that it was nothing to worry about.
Unfortunately, Facebook's position as stated here is clearly that the license is weaponized for a reason. I think it's irresponsible to leverage software with this license without clear guidance from legal and corporate overlords stating that it's OK.
No. The PATENTS portion of BSD+Patents does not nullify the BSD License. So you are no worse off than had Facebook simply licensed the code under the BSD License.
In 2005, Dan Ravicher explained[2] that, in the USA, recipients of software under the GNU GPL version 2 receive an implicied patent grant, based on the following US case law.
* De Forest Radio, 273 U.S. 236 (1927)
"No formal granting of a license is necessary in order to give it effect. Any language used by the owner of the patent, or any conduct on his part exhibited to another from which that other may properly infer that the owner consents to his use of the patent in making or using it, or selling it, upon which the other acts, constitutes a license."
* Hewlett - Packard Co. v . Repeat - O-Type Stencil Mfg. Corp. , Inc., 123 F. 3d 1445 (Fed. Cir. 1997).
"Generally, when a seller sells a product without restriction, it in effect promises the purchaser that in exchange for the price paid, it will not interfere wit h the purchaser's full enjoyment of the product purchased. The buyer has an implied license under any patents of the seller that dominate the product or any uses of the product to which the parties might reasonably contemplate the product will be put."
* Bottom Line Mgmt., Inc. v. Pan Man, Inc., 228 F. 3d 1352 (Fed. Cir. 2000)
"Unless the parties provide otherwise, the purchaser of a patented article has an implied license not only to use and sell it, but also to repair it to enable it to function properly. This implied license covers both the original purchaser of the article and all subsequent purchasers"
That is not entirely true. As stated elsewhere, there is likely an implicit patent license provided by the BSD. The reasoning is basically, "we are [copyright] licensing this cod e to you to use, so [therefore] we must also be providing a corresponding patent license to use the code."
Legal scholars are mixed on that, and it hasn't been tested in court.
But that implicit license is certainly better than the explicit license in FB's code.
How is a theoretical (i.e. unproven in court), implicit license better than an explicit license you only lose in the event of patent litigation that you initiate?
Wow, that is pretty disingenuous. Clearly, BSD+Patents places some extra conditions on the BSD license, you don't have to be a lawyer to understand that. I mean, several people have provided the legal reasons elsewhere on this thread, but even the name "BSD PLUS Patents" should be a tip-off.
No, its not at all disingenuous. Facebook could have written the "Additional Grant of Patent Rights" (note: additional) to also terminate the copyright grant under the BSD license. But they did not:
https://github.com/facebook/react/blob/master/PATENTS
There is a serious problem with the Facebook license. I've heard this and many other "it'll be ok because..." kind of statements in discussions about Facebook licensing. The problem is that there is no clear agreement as to what the ramifications are, and no real clarity offered by facebook after repeated efforts by the community to obtain it.
The only clarity they offer is that they have their license in place for litigation purposes.
For a personal project, everybody can make their own decisions. For a project involving a corporate entity or an institution, it is irresponsible to leverage any facebook licensed software without a legal review of the license. I'm not saying that it's bad. I'm not saying that it's good. I'm saying that however a laymen may interpret the license, there is a high chance of being wrong. Better to have the professionals review it and make a judgement call. I have seen many people state that their legal departments reviewed the license and have come back in some cases supporting the use of facebook software, in other cases denying the ability to use it. Even among professionals there seems to be disagreement.
There is a common understanding of many open source licenses. There is none surrounding facebook's.
I have asked ASF to have their lawyers make a public interpretation of the facebook BSD+Patents license for the betterment of the community, but the response was along the lines of "no lawyer would do that." Someone else might have better luck with the FSF. The FSF does support the idea of patent clauses, or at least at one point they did. I have seen nothing from them regarding the facebook license specifically though.
> For a project involving a corporate entity or an institution, it is irresponsible to leverage any facebook licensed software without a legal review of the license.
And this is a problem, because we all know how much of a huge pain in the ass it is to get any new license or legal issue relating to open source cleared with a big corporation's legal dept.
I think this is a pretty clear signal from Facebook that at least part of the company really doesn't care if people use Facebook open source or not. After all the work some in the company have done to promote Facebook open source, to great benefit to the company for recruiting and for synergy with other large company open source, that is a big surprise to me.
This kind of tone-deaf response from part of the company with the other half frustrated that it's causing so many problems reminds me more of how large old, moribund companies like IBM operate. It's a surprise that Facebook's already there, or at least starting to be.
No it is not, and that is what so many people misunderstand about this. Plain BSD has an implicit patent grant to the extent needed to run the software. An explicit patent license overrides that implicit grant. Of course, that interpretation is still subject to what the courts say in a lawsuit.
Of course, you are right that legal and corporate should review such a license. And for any company that deals in patents (or has customers who deal in patents), the likely answer is "no way".
That assumption of an 'implicit' grant is quite tenuous. You have taken it as invalidated by a PATENTS file, what if instead of a PATENTS file Facebook legal had blogged that they don't believe in an implicit grant? Does that nullify the grant of patents? What if stated by a project contributor?
That's the conundrum for any open source project and the exposed danger of the BSD license.
I doubt some statement of opinion in some out-of-the-way place that did not accompany the software directly would hold up in court.
That said, your point on uncertainty is why many people prefer the Apache2 License or the GPL3 which have an explicit patent grant (but not a one-sided grant like in Facebook's PATENTS file).
Personally, I increasingly doubt that BSD+PATENTS is even GPL-compatible -- and so potentially Automattic may be violating the GPL by using React integrated with WordPress.
What's especially sad about this is that React isn't even that good compared to other vdoms like Mithril and Inferno and others. React just has a lot of name recognition and mindshare from the Facebook association (which then translates into a rich-get-richer effect with more tutorials and components).
You're right overall (at least for developers who prefer React). React Native is a compelling technology. That said, I can hope that over time, lightweight JavaScript libraries like Mithril along with better mobile browsers with better support for occasionally-connected web applications will continue to reduce the relative benefits of a native approach. Apache Cordova and NativeScript are other options as well.
Most of those twenty probably infringe on Facebook patents. You can choose to use a library with an explicit grant, or a library with unclear patent status.
We don't know for sure what React-related patents Facebook really has or if they would claim any other libraries infringe them -- or whether those patents would stand up in court given prior art. There are vdom-like approaches that predate React.
That said, I would expect that vdom libraries like Mithril that work in a very different way than React would be less likely to be claimed by Facebook to infringe a React-related patent than, say, Preact which tries to duplicate the React API.
Of course, this is all speculation with a lot of unknowns. It all is another example of why software patents are very problematical ways to "promote the Progress of Science and useful Arts".
If Facebook has a patent on React, it's almost certainly going to be on the vdom concept.
If Facebook has a patent on the vdom, then all the projects in your list violate the patent, and none of them come with even a conditional patent grant from Facebook.
If Facebook does not have a patent on the vdom or other React technology, then those other projects are safe, but so is React, since termination of the patent grant has zero cost to you.
My personal belief is that Facebook has no patents on React, so I feel safe to use React, Mithril, or any other vdom based library. But I can certainly understand people who feel like they need to play it safe, assume Facebook does have a vdom patent, and avoid all such libraries.
But I'm not really following your logic at all. It's like you think Facebook has a patent, but then you only want to use the libraries that maximise your ability to get sued over it? What am I missing?
Being sued, whether the patent is valid or not, is really expensive. Unless you're Google, or of similar size, you're going to lose just due to the costs.
Using React just opens you up to liability, with no real benefit (other than using React). Why would you use it?
just because you may have enough resources to sue facebook for patent infringement doesn't mean you can afford to halt all new development and rewrite/rebuild what has become the reason that you have enough resources to sue facebook
> Using React just opens you up to liability, with no real benefit (other than using React).
How?
Again, if they have a patent, they can sue you if you use one of the alternatives mentioned. If they don't have a patent, they can't sue you if you use React.
What's your thinking behind saying using React adds liability? Because to me, it looks like either it does nothing or it reduces liability.
The fact that we even have to have this discussion is a reason not to use it. I'd have to a hire a lawyer and disclose it to my investors to be cleared up. It would cost us money to validate because it does something different compared to any other similar project. My investors were very specific about software licenses - we aren't allowed to use GPLv4 or AGPL at all.
If that's your concern, then you should comb through the source code of all your open source libraries and be certain that none of it violates any of Facebook's patents, including the MIT licensed stuff, which may very well.
> I'd have to a hire a lawyer and disclose it to my investors to be cleared up
That seems extremely weird. Normal startups do nothing of the kind; do you have extremely weird investors?
> My investors were very specific about software licenses - we aren't allowed to use GPLv4 or AGPL at all.
Ah, there we go. First off, there's no such thing as GPLv4. Second of all, you do realise that avoiding even the AGPL puts you in a vanishingly rare crowd in these parts, right? Eg, MongoDB is AGPL; of all the reasons I've seen given for avoiding Mongo, the license is a new one on me.
If you've decided to only use GPLv2 or vanilla MIT licenses software that's totally fine, but it is unusual.
> If you have a patent, and use React, you can't sue Facebook if they use your patent.
Citation needed. Let's say I have an awesome VR patent, and a React based website. I find out the Oculus violated my patent, what happens next?
Answer: I sue them. :) Nothing about the React license stops this; I will even still have a right to use React. What I won't have is a right to use any patents that Facebook might have on React. But Facebook, as far as is known, has no such patents.
> The license granted hereunder will terminate, automatically and without notice, if you [...] initiate [...] any Patent
Assertion
The key part is that if you don't have a license to use the patented technology (or more pertinently - that license is explicitly revoked), you can't legally use that technology, no matter what the BSD license might say: the patent grants supersedes the BSD license.
So, to respond directly to your answer - you lose the right to use React; Facebook can sue you for your use of React, since they own the patents to that technology.
So if you want to operate under the belief that Facebook has no patents to assert, then yes, you will consider yourself to be safe. The fact is that many lawyers, including the Apache Foundations lawyers, disagree with this assertion.
> The fact is that many lawyers, including the Apache Foundations lawyers, disagree with this assertion.
Incorrect. The ASF's objections had nothing to do with believing Facebook had any patents, and many ASF projects are looking to move to Preact, which is presumtively covered by the same patents React would be (if any).
But you can still sue Facebook. Nowhere does the PATENTS file require grantees to waive their right to sue. But if you do sue, Facebook gains the right to counter-sue you with any react related patents.
I.e. the exact situation you would be in if you sued Facebook and there was no PATENTS file.
Not quite - if there was no patents file, the BSD license would have a implied grant associated with it which would not be revoked by the lawsuit.
The "implied" license doesn't have a strong legal finding backing it up yet. Even so, most lawyers are comfortable with the idea that if a company tells other people to freely use their software, they can't then come back around and sue those same people.
You're missing the fact that if you sue Facebook for any patent infringement, even a legitimate one (say, you're the creator of some new hardware), Facebook will revoke your React license.
Also, Facebook has no vdom patent. It's not like you can be granted a secret, hidden patent (even the word "patent" itself means "open").
you mean their patent grant? How can an open source license like apache, MIT or bsd be "revoked"? Do facebook have a public blacklist of people who aren't allowed to use react?
Not practically, because once you make a library with an mit license available to anyone, they can give to anyone you didn't "want" to give it to, per the mit license.
Correct. Once released under an OSS license, that cannot be revoked. They can change/restrict the license on future releases, but you can also choose an older release, which uses the more favorable OSS license.
Apache revokes your rights under the patent section of the license if you sue anyone for patents granted under said license:
> 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.
Note that the "Grant of Copyright License" of Apache doesn't grant you the right to use the work, so revoking the patent license is effectively revoking the whole license (though you can still redistribute the work).
> You're missing the fact that if you sue Facebook for any patent infringement, even a legitimate one (say, you're the creator of some new hardware), Facebook will revoke your React license.
Incorrect. (This has been clarified many times, including in Facebook's official FAQ about React licensing.)
> Also, Facebook has no vdom patent. It's not like you can be granted a secret, hidden patent (even the word "patent" itself means "open").
I agree. Many people have looked; no one has found one. Hence why I believe there's no risk to using React.
They revoke the React patent grant, which effectively downgrades "the React license" to just a stock BSD 3-clause license. At that point they will likely counter-sue you for patent infringement.
In my mind that situation is effectively identical to losing "the right to use" license on grounds of patent suit (like Apache). Interestingly, in Apache you'd still be sued for patent infringement (not copyright infringement) because "right to use" is provided as a patent license.
> They revoke the React patent grant, which effectively downgrades "the React license" to just a stock BSD 3-clause license. At that point they will likely counter-sue you for patent infringement.
Yes, but for what patent? People have looked; none have been found. :)
Patent applications are secret, not to mention that software patents can be very difficult to interpret and search for. RMS gave a fairly long talk about the various problems with software patents[1], and the difficulty in being able to find all software patents that may be related to a project is one of them.
Patent applications are public for a minimal time period, 18 months at the very most. But obviously patents are public. React has been open source for over 2 years now. It's highly-likely, almost certain, that any React-related Facebook patent would now be public.
The second part of my comment is probably more applicable (maybe I should've just excluded the point about private patent applications). Even if a React-related patent was public, it wouldn't be called "Patent on React Framework". It probably wouldn't even use the words JavaScript, HTML, or DOM. You would need to hire a patent lawyer for an extended period of time to have a reasonable amount of certainty that no such patent exists (and even then, it's just an educated guess).
"Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software
("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
(subject to the termination provision below) license under any Necessary
Claims, to make, have made, use, sell, offer to sell, import, and otherwise
transfer the Software...The license granted hereunder will terminate, automatically and without notice..."
The PATENTS file affects more than just React. It's found in their other projects too.
It's speculation what patents Facebook has for React or what they cover. I've heard of claims of prior art for vdom-like concepts, so it is possible even if Facebook has React-related patents, only narrower interpretations of any claims might hold up (if that). React has a specific way of updating state which, for example, Mithril does not use. So, it is possible other vdoms may be far enough away from React to not be covered by any patents claims Facebook might try to make. Granted, that is no 100% guarantee of anything.
Personally, I feel templating approaches to making JavaScript-powered UIs like React's JSX or Angular's own templating approach or the templating systems in many other UI systems are obsolete. Modern webapps can use Mithril+Tachyons+JavaScript/TypeScript to write components in single files where all the code is just JavaScript/TypeScript. Such apps don't need to be partially written in either CSS and some non-standard variant of HTML that reimplements part of a programming language (badly). (Well, there may be a tiny bit of custom CSS needed on top of Tachyons, but very little.)
So, by writing UIs using HyperScript (plus a vdom library), you can potentially (with some work) replace a backend like Mithril with almost any other vdom or even a non-vdom solution. So, that is another way I mitigate this risk when I have a choice.
Granted, I know many web developers grew up on tweaking HTML and love HTML-looking templates and so they love JSX or whatever and are happy to ignore how hard it is to refactor such non-code stuff in the middle of their applikcations or validate it (granted, some IDEs are getting better at that). But I came to web development from desktop and embedded development working with systems where you (usually) generated UIs directly from code (e.g. using Swing, Tk, wxWidgets, and so on). I like the idea that standard tools can help me refactor all the code I work on and detect many inconsistencies.
Maybe a deeper issue for me is that with BSD+PATENTS Facebook is redefining what "open source" means in a way that is harmful to the open source community -- and also free software community as well like with Automattic using React on top of a GPLd WordPress. Which is why the Apache Foundation rejected the React license.
Here is a prior art reference by erichocean: https://news.ycombinator.com/item?id=14784983
"To anyone concerned about React's virtual DOM and diff'ing stuff, and a potential Facebook patent thereof, in early 2012 I wrote and published (under a GLPv3 license) a virtual DOM implementation with efficient diff'ing when I forked SproutCore[0] to become Blossom.[1]"
People used to say that the GPL was illegal, unacceptable, immoral, and all sorts of other things. Then, gradually, everyone started using it, and copyleft became an acceptable software licensing strategy. I hope that BSD + Patents also achieves gradual acceptability.
People started using the GPL because it works fine for software that isn't distributed to consumers, e.g. on servers. Those uses have subverted the entire intent of he license, however.
> Those uses have subverted the entire intent of the license
You're reading too much into the intent of the license. GPLv2 being used on servers is a valid use case.
Tivoization is indeed subverting the intent of GPLv2, which is one of the reason for GPLv3. But in the case of Tivoization, you _are_ distributing the code to end users, rather than just running it on their behalf, and hence, in my eyes, violates the intent of GPL (that end users you distribute your software to should be allowed to modify the software).
Hosted software isn't like tivoization, in that the host doesn't distribute, and so no GPL issues whatsoever.
The more conditions we apply the less usage it will get. But adding conditions like everyone can share in the changes provides a different value and encourages more changes.
GPL works because it forces the source code to remain open allowing everyone to enjoy all new changes.
BSD works because you are free to repackage and resell with bsd code. This code can be used in an existing product.
This is a defensive answer. Facebook doesn't even enumerate the React related patents, so you're left guessing about that. At the very least, they should maintain and up to date list of patents granted. What do they have to hide?
Facebook's position on this is weird. Any company that wants to use react and avoid liability arising from Facebook's terms can do so easily by incorporating a subsidiary or wholly separate company and paying that company $1 to license the UI built on react.
Maybe this is about fencing off Google/Amazon/Alibaba/etc who might be reluctant to do something that would be technically legal but something that a jury might take a dim view of. That seems to been the thesis behind Oracle v Google.
Since Facebook grants a license, the worst case scenario is you sue Facebook for infringing your "X" patent, and then they search your website and find a react ui, and then you say oh we bought that off WebKidCo. IANAL but it seems farfetched that a court could/would hold a company bound to such a broad clause for what it's supplier(s) did. Or you could just sue Facebook for using your patent "X" after having first moved the patent into a non practicing entity.
This theoretical litigation process with claims & counter-claims against Facebook would cost you millions. Patents are by themselves incredibly expensive to defend. Your "X" patent better be worth tens of millions and Facebook better be deriving millions in value from it, or this is just an exercise in futility.
> 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.
What complete, tone deaf newspeak. If a BSD-licensed project uses code with a Facebook BSD license, the project is now Facebook BSD licensed. That means it's incompatible with the BSD license.
The additional Patents clause can simply be disregarded or, if not, then just file a patent lawsuit against Facebook. The plain BSD license does not offer a patent grant so there is no incompatibility.
The Apache Software License does grant a patent license [0] (as does GPLv3) so is incompatible with either of these BSD licenses (unless an 'implied' grant is assumed).
Not tone deaf at all. The BSD license explicitly permits reuse in differently licensed software.
This is the ultimate disagreement of what software freedom means. GPL people think derivatives of their software should remain free. (the viral nature of GPL) Strong BSD proponents believe the freedom to incorporate the software into non-BSD projects (including closed software) is the ultimate freedom.
It sounds like you are more in the copyleft/GPL camp if you are concerned with derivative works remaining compatible with the original license.
The way I read it, ASF denied FB's BSD+Patents license in a mysterious bureaucratic decision that will cause a lot of pain for companies that use React, while FB's decision to create the BSD+Patents license was an altruistic move designed to benefit the software ecosystem and reduce their patent litigation overhead.
I believe FB is at the "pounding on the table" stage.
The ASF does not want downstream users to be caught by more restrictions than those of the ALv2. The BSD+Patents licensing imposes more restrictions; thus, Apache projects cannot depend upon software under that license.
This is pretty clear, and the ASF has been operating under this "no more restrictive than the Apache license" since its origin.
I agree the plain BSD 2 and GPL licenses are compatible. The issue here is how the PATENTS file from Facebook reduces an implicit patent grant by the BSD license making BSD+PATENTS into essentially a different license with less permissions than plain BSD.
According to the FAQ on the GPLv3: https://www.gnu.org/licenses/quick-guide-gplv3.html "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."
So, since GPLv3 talks about patents, and the Facebook PATENTS clause reduces the implicit patent grant of BSD, I feel it is in scope for GPLv3. A plain BSD 2.0 license with an implicit patent grant would presumably provide enough patent rights to be compatible with GPLv3. To my reading of the situation, BSD+PATENTS does not seem to provide enough patent rights to comply with GPLv3 (because of the one-sided retaliation clause of Facebook's PATENTS file).
The GPLv2 is a different story which is less clear to me.
In section 7 GPLv2 says: "If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program."
So, because some of your downstream users might not have a valid patent grant from Facebook if they sue Facebook for infringing their patents, does the last sentence imply you can't distribute the combined BSD+PATENTS and GPLv2 code?
Isn't the style of programming react imposes (unidirectional data flow and component composition) the real innovation for front end applications here?
Sure the dom diffing technology was hot at the time it came out but it's basically is a commodity item at this point.
In that sense, the open source community can (and should) build multiple react clones that are licensed more liberally.
Sure, I'm annoyed by the licensing of React too, I think abou it a lot. But does it really matter that Facebook won't budge on this? The technology is out there whether it's React or not.
I wonder how much BSD + patents actually diminishes lawsuits for Facebook. Is React that widespread? What happens if you stop using React, and replace it with a clone like Preact?
I also wonder if this will hold up in court, or is purely a defensive measure.
ELI5 anyone? My basic understanding is if you use React and decide to sue FB for patent infringement down the line, FB can countersue(?) bc they revoke your grant to use the patent upon you suing them. But what _exactly_ constitutes using React? Of course using the library is one thing, but what about using some other library that installs React as some dependency? Does using JSX also count as using "React"? I just feel that what exactly constitutes using React is very vague esp considering there are many non-FB tools that use "React" (and associated technologies, eg the idea of Virtual DOM) in some form or another.
> but what about using some other library that installs React as some dependency?
I think that still counts as "using react".
> Does using JSX also count as using "React"?
I think that if you use a custom JSX compiler instead of the one that comes with React then you could be clean. JSX itself is just a programming language and cannot be copyrighted.
> I just feel that what exactly constitutes using React is very vague esp
I don't think that is vague, actually. In the end, what matters is if the whole system includes React source code in some way or another.
> and associated technologies, eg the idea of Virtual DOM
Associated technologies are not covered by copyright. They could possibly be covered by patents but that would be a whole different can of worms.
> 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.
There's a pretty obvious solution to this: relicense React. The fact that Facebook isn't even considering that is a pretty strong indication that they "weaponized" their license on purpose.
> To this point, though, we haven't done a good job of explaining the reasons behind our BSD + Patents license.
I think we already understand the reasoning behind it.
> As our business has become successful, we've become a larger target for meritless patent litigation.
And the solution you chose stops merit-ful litigation as well.
> We respect third party IP, including patents, and expect others to respect our IP too.
Clearly you don't, because you've intentionally designed a license to allow you carte blanche to violate other companies' patents if they're dependent enough upon React to not be able to easily stop using it.
They need to stop referring to React as open source software. This is proprietary source code.
> 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.
They do not give a pathway for litigation with merit. This is a patent weapon.
No company assumes a meritorious lawsuit against them exists. Planning for it is ridiculous. Don't take that as a defense of this type of license though.
Yeah, pointing out how they would never plan for a meritorious lawsuit isn't really defending them, it's pointing out that the argument that they even might requires a lot of assumptions of good faith on Facebook's part that make no sense.
It's possible that there were two groups in FB that were for this, some that were naive enough to just not understand it, and some that totally understood it and let the others continue with their misconceptions. I don't believe there existed a group that actually understood it and it's ramifications and thought it was benign.
I don’t get the obsession with React. It’s a great concept but vdom isn’t hard. Many great alternatives preact, inferno. Slightly different ones like snabdom. We use virtual-jade which allows us to build templates in jade as clean functions.
Facebook has gone too far with React and its Trojan patent clause. So easy to get away from it though with smaller, faster and more focused libraries.
No company hopes or expects a meritorious lawsuit against them to exist.
But, and especially concerning patents, assuming one can't exist is pure folly. And designing your own licenses in a way that prevents someone else from initiating a meritorious lawsuit against you seems quite intentional, especially since they refused to back down once it was pointed out (and especially because there was already precedent in open source licenses for doing this in a sane way, e.g. the Apache License, Version 2.0, and presumably others too).
I would patiently beg everyone to employ some basic reasoning.
Situation A: React is licensed under BSD + PATENTS. You sue Facebook for infringing your widget patent. Turns out Facebook has a patent for something in react. They revoke your grant and counter sue you for infringing that patent. Long legal battle ensues.
Situation A: React is licensed under just BSD. You sue Facebook for infringing your widget patent. Turns out Facebook has a patent for something in react. You never had a grant so Facebook counter sues you for infringing that patent. Long legal battle ensues.
Can someone coldly explain how anyone anywhere would be helped in any way by removing the patents file? Or is the BSD license the problem?
People are worried about Situation C: React is licensed under BSD + PATENTS. You sue Facebook (or any corporate affiliate of theirs) for infringing on your widget patent. Facebook revokes your react license and counter sues you for copyright infringement.
The patents clause doesn't have anything to do with any patents on parts of React. It's a way for Facebook to make it so that anyone who wants to sue them for patent infringement can't use React.
No it is NOT identical. In situation A/C (React is licensed under BSD + PATENTS), you have explicitly agreed to have what is essentially your lawful use of React immediately revoked if you sue Facebook for patent infringement. So you sue Facebook, and whether or not your suit is of merit: You have to immediately stop using React. This actually prevents people who are dependent on React from suing Facebook for patent infringement, since they'd basically have to remove any dependency on React before suing. And this emboldens Facebook to infringe on the patents of entities who have a dependency on React, where it would be a major undertaking for the React-dependent organization to cease the use of react. Remember, Facebook is saying they have this in place to prevent merit-less legal battles. But the way they've set it up, it's not a question of whether your suit has merit or not. Facebook is saying "Sue us for patent infringement, and you immediately give up your use of React. Period." So the court rules in your favor over an unrelated patent infringement case? Congrats you won that case, but you've still given up your use of React, because you sued Facebook.
In situation B (React is licensed under just BSD), the patent rights necessary to use React are not written in explicit terms. You have made no explicit agreement to have your patent grant to use React revoked when you sue Facebook for patent infringement. In addition, without an explicit patent grant, a patent grant is implied with the license. You can at least continue to use React until the results of the court case.
> In situation A/C (React is licensed under BSD + PATENTS), you have explicitly agreed to have what is essentially your lawful use of React immediately revoked if you sue Facebook for patent infringement.
No you haven't. That is not what is written in the PATENTS file. The PATENTS gives you a patent grant to any react patent facebook may or may not have, that you can only lose if you sue facebook for patent infringement. Without the patents file, you don't have any grant to those patents.
> You have to immediately stop using React.
No you don't. Why do you think this is the case? There is nothing in the PATENTS file about this at all. All it says is that you lose the grant. If a court grants a preliminary injunction, then yes, you have to stop using it immediately, but guess what: assuming Facebook has some react patents, they can apply for a preliminary injunction against you whether or not the PATENTS file is in there. With just plain jane BSD they can also get a preliminary injunction.
> In addition, without an explicit patent grant, a patent grant is implied with the license.
It's totally misleading to state unsettled law as fact like this. It's wishful thinking. Not being a patent holder myself, I would like it to be true as much as anyone, but the fact is that until this stuff ends up in court, just assuming that a license to redistribute also implies a license to any patents is just a theory.
It's totally misleading for you to state unsettled law as fact like this. None of this has been tried in court so even what you have written carries a degree of speculation.
When Facebook explicitly includes a revocable patent grant (aka the PATENTS file), the argument of it being a "BSD license with no patent grant" when the patent grant is revoked is self-fulfilling. But if the PATENTS file had never existed, then what you have is a "BSD license with a debateably implicit patent grant", which has been the topic of debate long before React even existed, and has yet to be tried in court so could set a precedent, and is a way better bet for the consumer than a "BSD license with no patent grant because that patent grant has been explicitly granted and now revoked, no debate, period".
> People are worried about Situation C: React is licensed under BSD + PATENTS. You sue Facebook (or any corporate affiliate of theirs) for infringing on your widget patent. Facebook revokes your react license and counter sues you for copyright infringement.
This cannot happen. This is not a thing. Nobody is legitimately worried about this; anyone who is needs to take a deep breath and stop being ridiculous. This has been clarified many times.
(Source: The plain language of the license, multiple independent lawyers who have commented on this, Facebook's official license FAQ, etc. The BSD license does not terminate when the patent grant does.)
The lawyer who wrote this piece [1], AND automattic's general counsel agree on this.
> Automaticc’s general counsel also agrees with my analysis of contractual and copyright liability in that the patent clause does not revoke the underlying license.
There's a school of thought that the BSD permission to "use" the software implies a patent grant. As an extension of this school of thought, React's PATENTS file could be seen at modifying that grant.
Right. This is the notion that BSD provides an "implicit" patent grant. Legal scholars are debating it, and there is no court precedent. ... but it is likely a more permissive grant than the explicit grant provided by BSD+PATENTS.
What protection? The PATENTS takes rights away from Facebook, and gives rights to grantees. Facebook is in a stronger position without it. They added it to be nice.
Without patents file:
- Facebook can sue you for any reason, including react related patent infringement
- You have no patent grant for anything in react
- You can sue Facebook for anything, including patent infringement.
With patents file:
- Facebook can sue you for any reason, except for react related patent infringement
- you have a grant for any Facebook patents related to react
- You can sue Facebook for anything, including patent infringement of any kind. If you do sue them for patent related infringement, you lose the grant above (i.e. You are in same position as if there was no PATENTS file)
I personally am most worried about Facebook's attitude toward dissent on this issue. There's clearly an overwhelming number of developers who want Facebook to simply adopt an established open source license, preferably just BSD, with no extra conditions.
The fact that Facebook has continued to ignore this sentiment tells me that it's no longer a place where developers have much influence. I personally don't want to contribute to or use open source software from such an entity.
But that's just my personal opinion. It's a shame, because I've been really impressed and happy with the work Facebook has done in the area of programming languages (Flow, Hack, HHVM, etc.).
> Clearly you don't, because you've intentionally designed a license to allow you carte blanche to violate other companies' patents if they're dependent enough upon React to not be able to easily stop using it.
I think it's pretty clear how disingenuous this is since they don't even constrain the patent revocation to IP lawsuits.
If they were doing this in good faith they would want to scope this as tightly as they could, but this is clearly Facebook just trying to extract additional benefit from their OSS contributions.
Disappointed to see no forward upfront stance on what Facebook will do if someone sues them for a patent infringement unrelated to React in any way.
Will note though that if Facebook does choose to revoke a license on the basis of getting sued for something unrelated it will definitely reflect poorly on FB in the developer community and reduce React's adoption.
> Disappointed to see no forward upfront stance on what Facebook will do if someone sues them for a patent infringement unrelated to React in any way.
Well, they've specifically related React if it's in use, so the only case where it's not related is if isn't being used by the plaintiff.
In a similar vein, people are wondering what Facebook will do with patent infringement suits that do have merit, to which I ask, when's the last time a company defending a patent suit stated the plaintiff's case had merit.
I think the reasoning that this will protect them against frivolous lawsuits is pretty poor; you only need a patent grant if you're actually building software. Patent trolls don't build anything so they have no need for patent grants.
Facebook most likely is guarding it for strategic reason. My guess is it will built something like Expo into its Facebook/Messenger app, then it can have its own native app, games store without going through Apple. This is something WeChat already is running called mini-apps.
>Patent trolls don't build anything so they have no need for patent grants.
You'd be surprised. Patent trolls can have all forms, not just a only-suing company. Some company that has failed as a startup, but which holds 1-2 patents might decide to turn into patent-trolling to make a quick back while it dies.
> Some company that has failed as a startup, but which holds 1-2 patents might decide to turn into patent-trolling to make a quick back while it dies.
If the startup is dead it should be trivial to transfer the patents to a separate entity and then sue from that entity, making counter-suits irrelevant.
This only has an affect on companies which are a going concern.
Companies who plan to make litigation part of their strategy can pretty easily just not use React.
This does the most harm to companies who were not planning to come into conflict with Facebook, and then do.
As I understand the asymmetry in the BSD+patents license, the real issue here is that usage of React significantly weakens you with respect to mounting a defense against Facebook for infringing upon your own patents or IP, a possibility which, given the stark example of Instagram Stories, is plainly plausible. (This is not to say that Instagram Stories is patent theft, but rather a propensity to copy ideas wholesale).
Were Facebook to amend that license to soften the criteria for revocation of the license grant in cases of suits against Facebook for infringement, this outrage might just go away. But as it stands now, Facebook stands to exercise an ability to infringe on others' patents for monetary gain so long as the patent holder uses React in deployment. It would be easy to weaponize this arrangement, and you have to assume that any fiduciary would consider it.
More broadly, this is a good case to be made against software patents in general.
Not really. Not necessarily. Patents aren't all created equal. The economic value you derive from using Facebook's open-source patent grants is probably not going to be higher than whatever patent suit you're bringing against Facebook (if you deem it necessary and have the millions to wage such a war).
My worry is that the BSD+patent license puts FB in the position where they are able violate valid patents that another company hold. If that company is using React, they will have a strong incentive not to pursue their claims against FB because it means they would have to rewrite their code. Is this a valid concern?
> The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: ... (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates,
I always thought the main problem was this part, where you basically lose the license or your IP if Facebook ever decides to become your competitor, e.g. you start a company with a react front-end that does X, and then Facebook decides to directly copy your business. You have no recourse against Facebook, because if you sue them for infringing your IP, you lose the ability to use the React license.
Does the additional patent grant in the Facebook BSD+Patents license terminate if I create a competing product?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if I sue Facebook for something other than patent infringement?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if Facebook sues me for patent infringement first, and then I respond with a patent counterclaim against Facebook?
No, unless your patent counterclaim is related to Facebook's software licensed under the Facebook BSD+Patents license.
Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
I wonder how Facebook would feel if all the open source software they currently use incorporated the same license. I bet it would deter them from enjoying much of the code they built their business on. This stance seems pretty antithetical to the goal and spirit of open source software and I really hope it's not the beginning of other companies following suit and 'poisoning' the well.
> how Facebook would feel if all the open source software they currently use incorporated the same license
That would work incredibly well to neutralize patents, actually, and would be a huge win for free/open source software.
It's surprising not to have seen anyone point out the logical conclusion of a world where every major license includes a React-like stance on patents: it's a world where no one is able to bring patent suits against anyone, because it means they are now violating the licenses of every piece of FOSS they're currently using. (I'm relying on the assumption that there's no entity that could perform an audit right now and conclude that there's not a single piece of FOSS underpinning their products/services/infrastructure.)
Licenses like Apache 2.0, MPL2, etc all have a "MAD" policy wrt patents, but they all have a gaping hole in their strategy. The React license patches this hole in a really clever way--probably the cleverest thing since the GPL's invention of copyleft to hack copyright law by using it against itself. It's really disappointing to see people's sense of disdain for Facebook overpower their ability to appreciate how clever the React license is.
Addendum from the last time [1] I commented: "FWIW, I don't use React, I don't want to, I'm not a Facebook employee, and in fact I think the world would be a lot better off with Facebook having less influence than they do today. But that doesn't change how weird it is to keep seeing comments like [those that frame the React terms in a negative light]".
In fact, this is explicitly part of their reasoning, from the blog post linked to in the GitHub comment here:
> 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.
I'm inclined to say you're mistaken. The FSF hasn't published an analysis of the React terms, but if they did, it seems pretty much assured that they'd deem it a "free software license, but incompatible with the GPL".
Recall that Apache 2.0, MPL2, and GPLv3—all free software licenses—have patent termination clauses as well, but they're comparatively weak. In fact, GPLv2 didn't have one, and this was the reason why Apache 2.0 is labeled as free but incompatible with GPLv2. The FSF's solution to this was to include it's own patent termination in the next update to the GPL, which is why Apache 2.0 and GPLv3 are compatible today.
> I'm inclined to say you're mistaken. The FSF hasn't published an analysis of the React terms, but if they did, it seems pretty much assured that they'd deem it a "free software license, but incompatible with the GPL".
Richard Stallman said it is non-free [1]:
> React.js is nonfree because of its patent license restriction.
Richard Stallman and the FSF are literally the Inês behind the original de definition of "free software". What are you trying to say there?
Anyway, even if you dont line Mr. Stallman, the set of licenses he deems as free software is pretty much 99.9% compatible with the set of licenses deemed "open source" by the OSI or licenses acceptable by Debian (the other authorities you might Sant to look to when it comes to this)
Thanks! I also found the following one which gives a rationale [1]. The fine distinction is that the patent grant is completely separate from the copyright license and the termination of patent grant has no influence on the copyright license whatsoever. Unfortunately these messages are not in a single thread, so it is a bit hard to find them.
For context in this discussion, the patent text in GPLv3 was original a copy of the Apache 2.0 patent text. This is why Apache 2.0 and GPLv3 are compatible, since the Apache 2.0 patent text is simply a subset of the GPLv3 patent text.
Shortly after posting this, I came across IanKelling's link [1] to the GNU post on Software Patents. I've definitely been conflating copyright and patents in my mind. Thanks for the clarification.
This would only neutralize patents of actual companies that have something to create.
The only ones left to hold patents would be patent trolls. This would just massively empower patent trolls, and harm everyone. Because patent trolls don’t have to license patents there’s no risk for them.
See my remark about impossible audits. Patent trolls are almost definitely relying on FOSS whether they're in the business of creating software or not.
If I were a patent troll, I would get a Windows computer with a slightly old version of Microsoft Office and nothing else on it.
Even if the entire FOSS community decided to adopt a patent termination clause right now, it cannot retroactively apply to whatever fragments of FOSS code that has found its way into proprietary products so far. So I'm safe as long I don't install any new software until I'm done trollin'.
Your idea would make sense If all the FOSS that was ever written came with a patent termination clause. But that's not the world we live in.
So this opinion almost swayed me, but the problem is that companies aren't scared of open source writers suing them.
If you use project A that was written by one or two developers in their spare time (and they included a BSD+patents) clause, would Facebook fear being sued by them? Probably not -- but new companies that get anywhere close to what Facebook does (increasingly, that's everything these days) definitely live with the real possibility of facebook suing them.
In theory the "no one is able to bring patent suits against anyone because they're violating licenses" is a good outcome (mostly the no patent suits part), but it doesn't quite stand up in practice because patent suits cost money, and bigger companies can sue you longer than you can sue them. I don't want a world where MAD is the default, because the large companies carry nukes, and I carry a peashooter.
> the problem is that companies aren't scared of open source writers suing them.
They should be. Many popular open source projects are supported by a 'community' of large companies, or are invested into a widely respected foundation like Apache.
Additionally, many projects that started off as simply a few developers, grow to the point that a company is founded to handle support and customization. An example of this would be Redis Labs---started by the originator of Redis.
If even tiny patent trolls can be 'dangerous' to multinationals, I expect most would steer clear of declaring a patent war on the community at large.
Also, you're right except for the fact that lots of very very useful projects are not backed by large companies or foundations like apache. What you describe a solution is precisely the world I don't want to live in. I don't want the MAD state of things to be held in check by large organizations -- humans kind of forget themselves in large organizations, far too easily.
Redis is a great success story, but again, that organization is way way weaker than facebook. They just have more money in the bank, and MAD only works if EVERYONE has nukes. It doesn't work if one side is carrying rifles and only one side has nukes.
Maybe we should fix the patent system instead -- I'm aware it's hugely nuanced, but for all the griping that tech does, surprisingly nothing has changed -- the tech companies that make it just don't seem to be trying to change the system once they're established (someone please correct me if I'm wrong).
Yeah, and if Facebook DOES infringe on a patent you own, and it's a valid case? You then have to rewrite your frontend code base as fast as you can?
At it's best this is like some sort of warped "you infringe on my patents and I'll infringe on yours" kind of thing, assuming MAD means it doesn't become a very-uneven suing war. This case is also bad news, because larger companies are much more capable of infringing on your patents and competing with smaller companies in a conglomerate style.
Amazon is a conglomerate. Alphabet/Google is a conglomerate. Somehow, everyone in the government who manages anti-trust (whether that should be a thing is another debate), seems to be asleep at the wheel, literally everyday.
Also, guess who has lots of resources to rebuild a shitty copy of ingenuous software they found online? Big corporations do. All the starry eyed CS grads who want to go work for Big Conglomerate Co. are going to be rearing to re-implement Redis in 50K LOC, but it's harder for some small company (or just random open source project) to re-build the parts of their app that used react in some other framework.
> Yeah, and if Facebook DOES infringe on a patent you own, and it's a valid case? You then have to rewrite your frontend code base as fast as you can?
In that case, you have two other options:
* Quietly swap out your frontend before you file
* Continue using React and dare Facebook to produce a patent they can actually claim
This, of course, is based on the assumption that your frontend is a significant portion of your product. If your frontend is a trivial portion, then "rewrite your frontend code base as fast as you can" is also trivial.
If you are a small shop, you just don't have the money to file a patent claim against Facebook. That's exactly what the parent post told you: patent litigation is expensive.
The PATENTS file is red herring. If you're a small player and you launch a patent lawsuit against Facebook you stand no chance of winning. Facebook has thousands of patents in its portfolio, and software patents being broad as they are, you're invariably infringing one of them.
You know what, scrap that. Even if you were a somewhat large player with your own respectable patent portfolio, and Facebook had almost no patents you could never win. Why? Because this already happened, dear internet:
TLDR: Yahoo sued Facebook before their IPO with 10 infringed patents (not just 1), trying to scare Facebook into giving them money. Facebook only had 56 patents, but they had money, so they bought up 1400 more patents, and countersued with just 10 of them. Yahoo realized they don't have the money to win a lawsuit against Facebook, and meekly submitted and cross-licensed the patents to Facebook.
Now imagine trying to copy cat the Yahoo move with two guys in a garage who own just a single patent against a stronger and more prepared Facebook that has thousands.
This is something I have yet to understand. From all I read about the patent situation in America it looks like they are totally worthless unless you are a multi million company. Is there actually no way of pursuing a giant if they infringe on your IP?
I think most in the software community abhor patents for software, so it's probably a good thing that this "mutually assured destruction" environment exists.
The patent situation is broken in a ton of ways. Just think about the concept for a few minutes and you'll imagine many of the points.
As for the problem you're focusing on, the particular problem is that to actually your patent defensively (the original purpose), you must litigate. To litigate, you must have lawyers, and quite a bit of money. If the other side is capable of buying better lawyers, or lawyers for a longer time, you lose.
For the most part, yes, unless you're a non-practicing entity (patent troll).
Large companies carry massive war chests of patents, such that anyone who makes software is most likely violating several of them without knowing it. They defend themselves from patent lawsuits with countersuits from their war chests. (Trolls are immune, though, because they don't make software and therefore aren't infringing in the first place.)
> It would be a huge win for companies with large software patent portfolios
This is backwards. Those are exactly the companies that would be harmed, because their hopes to be able to wield those patents offensively have been nixed.
Companies like FB/AMZN/GOOG/MSFT have, effectively, unlimited engineering resources. And money. They simply smash any incoming problems into dust with brute force. Startups do not matter. Hell, few companies other than huge ones matter. "We might have to replace a 10,000 line piece of free software" is nothing to them. If they wage war against another MegaCo, nothing really changes with this license. That legal battle could be fought (and do damage) regardless, they can meaningfully litigate against each other. But the idea this changes anything when going against, say, smaller players? Because it "weakens" their ability to use their (massive) portfolio?
Because Facebook might be "afraid" of losing some software if they file suit? Not really.
So, here's how the real conversation will happen at MegaCo of your choice, should this play out:
---
Alice: We want to sue for patent violation against XYZ Co. But we use XYZ Co's software. If we file suit, we'll have to stop using it due to the license.
Some top-level guy with a three-letter title named "Joe": Okay. How big is their company and what software do we use?
Alice: <MegaCo has more money than God so the only meaningful comparison is "cockroach" at best, and the software is in no way something they cannot acquire elsewhere>
Joe: Okay. Assign 50 engineers to just recreate whatever stupid software of theirs we use, in-house. Or buy another version from someone more reliable. Then assign a billion dollars to legal to destroy them.
Alice: Okay.
---
And that's it. They're done. That strategy was all cleared up before lunch. Keep in mind of course Facebook will probably have enough money to litigate you into the ground so long that probably won't even be able to actually tell them to stop using your software, until they've already replaced it completely and also ruined you at the same time.
It turns out when you have effectively unlimited engineering resources and money (to wage legal battles), things like "Use a new virtual DOM library" or "Replace RocksDB" don't matter at all. They can just do it and crush you anyway.
So how the situation is better if both MegaCorp and small startup are using each other opensource code with just the BSD license (with no patent grants)? megacorp can still sue the startup for patent infringment and destroy it.
If you assume that MegaCorp is evil, the startup has no life whatsoever, whatever open source license is picked. If instead assume that MegaCorp is good, the patent grant has a positive effect on the ecosystem.
I guess the point is in this hypothetical world patents are useless because suing would trigger the destruction and this is good because the community can freely share and use the best designs.
However, in such a world I don't think the courts would approve of this 'hack' and kill the enforceability of these clauses precisely because they render patents useless.
> However, in such a world I don't think the courts would approve of this 'hack' and kill the enforceability of these clauses precisely because they render patents useless.
I believe that contracts that terminate if you sue the other party are fairly standard, and in court these licenses would be considered fairly similar to those contracts.
I don't really know what a court would say, but if I sign a contract that says "I will not sue X for any patent infringement under the condition they don't sue me for patent infringement" I would be surprised if a court found that contract unenforceable. The right to file a patent suit is not a fundamental human right after all, why would signing it away not be possible?
"it's a world where no one is able to bring patent suits against anyone, because it means they are now violating the licenses of every piece of FOSS they're currently using."
It's also a world where entrenched companies can feel free to use whatever technology they want from smaller competitors without fear of lawsuit, and use it to further entrench themselves :)
I'd put a lot more money on that happening than "happy fun kumbaya singing".
This is among the many reasons that apache, et al chose not to use them when revving their licenses.
It's totally worth reading the discussions that happened around these issues back then.
As a friend said WRT to this issue: "Everything old is new again"
>It's also a world where entrenched companies can feel free to use whatever technology they want from smaller competitors without fear of lawsuit, and use it to further entrench themselves
I agree, but software patents are arguably bad enough that doing away with them entirely is worth the collateral.
A legislative solution might exist to have the best of both worlds, but, in the absence of that, suppose there's a copyleft-analogue hacky way to undermine software patents indiscriminately without requiring an Act of Congress. (and that's not a sure thing at all, but suppose.) Wouldn't you press the button?
If the goal were to get rid of software patents, why don't all the large tech companies just band together and lobby against allowing patents for software? (more like Europe) This looks more like a sneaky trick by Facebook.
> It's surprising not to have seen anyone point out the logical conclusion of a world where every major license includes a React-like stance on patents
The thing is, I agree with your premise that we should always push for licenses that (in the long term) will result in a better free software world where threats such as software patents and draconian copyright are effectively neutralised. All three GPLs did this to copyright (as you noted), and Apache helped step forward on the patent front. I would love to say that the React license helped further this cause. Unfortunately I don't agree, and it's for several reasons.
* This may sound like a minor point, but the React patent license only applies to Facebook's patents, and relies on Facebook retaliating. Code contributed by anyone else may not be giving you the same protection, which means that if they sue someone other than Facebook the target has no real protection. Apache and GPLv3 both tackle this problem because the copyright license is terminated if anyone sues a copyright holder (and GPLv3 even more so because it's copyleft). By only terminating the patent license, you're relying on Facebook suing the offensive party.
* As with almost all patents, Facebook makes it exceptionally explicit that independent discoveries will not be protected. While this is to be expected because it's the default patent law position, it's not exactly what you want if you're going to try to sell me on this being "an ingenious, anti-patent license".
* The patent license clearly favours protecting Facebook over the wider software community. The fact that suits "(i) against Facebook or any of its subsidiaries or corporate affiliates," will result in termination means that the license is incredibly asymmetric in it's protection. The problem is that the "more free" stance of extending this protection to every user of the software would be too strong of a stance for companies to take (it would mean that no company could sue any other over patents in fear of being vulnerable to Facebook's patent portfolio). Not to mention that it still wouldn't solve the patent problem, you'd need to fix my first point and make it apply to all patents by all users. And then it would be seen as an incredibly risky business decision.
* By definition the patent grant cannot be used against Facebook, because of the above protections are not provided. If Facebook sues you over a patent unrelated to React, you cannot counter-sue them for any patents they may be infringing because then you'd be giving them more ammunition. This is where your comparison to the GPL falls flat for me. The GPL does protect users in this situation.
I understand that these might seem like "perfect being the enemy of good", but you have to consider that Facebook's dominant position is what makes these sorts of discussions critical. Sun made some mistakes in the CDDL, and we're still living with those mistakes to this day thanks to the whole Oracle OpenSolaris fiasco (though it went better than we could've hoped). We need to be far more careful in how we evaluate software licenses, and thinking about doomsday scenarios is crucial. If Facebook became a bad actor, would this patent license be better or worse for the community than Apache 2 or GPLv3?
> Apache and GPLv3 both tackle this problem because the copyright license is terminated if anyone sues a copyright holder (and GPLv3 even more so because it's copyleft).
This is not true of Apache 2.0. Filing a patent suit against someone over a piece of Apache licensed software means the plaintiff loses the grant to patents held by other contributors to that software, but that's the extent of it.
> If Facebook sues you over a patent unrelated to React, you cannot counter-sue them for any patents they may be infringing
This is also untrue. Your ability to file a countersuit for other patents is explicitly protected by the React grant. This has been the case ever since version 2 was published.
> If Facebook became a bad actor, would this patent license be better or worse for the community than Apache 2 or GPLv3
Either better or the same, depending on your values, but definitely not worse. The license termination clauses in Apache 2.0 and GPLv3 are so narrow they don't offer any greater protection against bad actors.
> Filing a patent suit against someone over a piece of Apache licensed software means the plaintiff loses the grant to patents held by other contributors to that software
Right, but the "right to use" permission is granted as part of the patent license not the copyright license. You're right that I misspoke and the copyright license is not touched, but the effect is similar AFAICS.
> This is also untrue. Your ability to file a countersuit for other patents is explicitly protected by the React grant.
Ah, you're right. I did read the latest version of the document, I guess that sentence must've just slipped by me. My point about asymmetry still stands though.
> Either better or the same, depending on your values, but definitely not worse.
I believe that the asymmetry does not make it better. You could argue it's the same, but I still am not sure I agree.
Of course they release this late on a Friday so it is does not get much reach. Facebook is very very evil - in every part of the company. Copying other's ideas (Snapchat) yet trying to stop other companies from copying them (this licensing).
I don't see it as "released". It's just the closing of a Github issue, not a press release.
Do you feel that if a company is "evil", do you feel there's a moral imperative to not use their products? It seems to me there's a lot of "But React!" going on.
It's an interesting question. I actually do feel that way, and this was a significant factor in choosing to use Vue.js for my next project over both React & Angular.
I'm on the fence about the license, but I totally believe your technology choices should reflect your convictions. Obviously there's a lot of attitudes of entitlement in our industry where it's easier to make a Github comment or a tweet than to take a stand.
They're not stopping anyone from copying them. In fact, they're saying please, use our code and use our patents...just don't sue us! How hard is that to understand?
I wonder how Facebook would feel if all the open source software they currently use incorporated the same license. I bet it would deter them from enjoying much of the code they built their business on. This stance seems pretty antithetical to the goal and spirit of open source software and I really hope it's not the beginning of other companies following suit and 'poisoning' the well of other open source projects.
I completely agree that the Facebook BSD+PATENTS license is antithetical to the goal and spirit of open source software. And that is why the Apache Foundation rejected it it. I'd like to see more statements by more groups like the FSF and OSI on that.
621 comments
[ 11.1 ms ] story [ 292 ms ] threadAlso, could that original patent grant in the original license apply to later versions of React?
- Facebook gets attacked by meritless patent litigation
- Facebook creates the BSD + Patents license, which has the following effect :
> 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.
- Facebook believe that 'if this license were widely adopted, it could actually reduce meritless litigation for all adopters'
I understand Facebook's position here, surely this will decrease meritless litigation, but what about meritful litigation?
Let's take an example, a small startup has a cool technology but also all their front-end is using React. That cool technology is patented.
Now if 'Facebook or any of its subsidiaries or corporate affiliates' infringe on that patent, that startup won't be able to sue them without first re-writing the entire front-end to not use React.
I don't think software should be patent-able in the first place anyways but it seems the situation above would still be true if that startup sues them for what they believe is a completely legitimate hardware patent.
Also, IANAL, I'm wondering what even is the definition of a 'corporate affiliate' here? Who is a 'corporate affiliate' of FB?
Finally, what 'patent license' are they referring to in this post anyways ? The react's PATENT clause (https://github.com/facebook/react/blob/b8ba8c83f318b84e42933...) says they're providing the React software License, and they revoke this software license if you sue them.
Do note this isn't necessarily the case, because nobody has yet found a patent that covers React.
Edit: I think I see what you are saying. It says you lose the patent license, not necessarily the license for the software that doesn't have a patent, so doesn't do anything. Not sure how a judge would decide to interpret it though.
But https://github.com/facebook/react/blob/b8ba8c83f318b84e42933... , the way I read it says they grant you a license to to "make, have made, use, sell, offer to sell, import, and otherwise transfer" the React Software. They don't seem to give you a license to any patent.
>> A "Necessary Claim" is a claim of a patent owned by Facebook that is necessarily infringed by the Software standing alone.
I'm never going to use React under this license, but this is still worrying to me because more companies could follow Facebook's lead and start using open-source as a nuclear deterrent against patent legislation.
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if I sue Facebook for something other than patent infringement?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if Facebook sues me for patent infringement first, and then I respond with a patent counterclaim against Facebook?
No, unless your patent counterclaim is related to Facebook's software licensed under the Facebook BSD+Patents license.
Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
No.
From: https://code.facebook.com/pages/850928938376556
Yes.
Does the additional patent grant in Facebook BSD+Patents license terminate if React infringes upon your legitimate patents and you sue another company using React over this?
Yes.
> Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
If Facebook has any patents that are related to React, and you lose the grant for those patents, then Facebook can sue you over them if you use React.
If Facebook doesn't have any patents that are related to React, then why do they have a patent grant?
Facebook has thousands of patents. If you sue Facebook for patent infringement, their lawyers are going to comb through their patent portfolio and look for things that you might be infringing on. That's standard, and to be expected, with or without the React patents clause.
A common understanding of the BSD license is that it has an implicit patent grant, but the existence of the explicit patent grant presumably negates the implicit one, meaning if you lose your explicit patent grant (e.g. by suing Facebook when they infringe one of your patents), then you have no protection from Facebook suing you over your usage of React.
1: give up your main business so you no longer infringe on the Facebook patents. IOW, become a troll.
2: get demolished by the Facebook counter suit.
The React license doesn't change those two options one bit, it just makes it much more obvious. Facebook's intent is likely just to prevent the suits from even being considered in the first place.
This, to me, is a significant warning sign.
I was leery of the React license to begin with. But the community at large had _almost_ convinced me that it was nothing to worry about.
Unfortunately, Facebook's position as stated here is clearly that the license is weaponized for a reason. I think it's irresponsible to leverage software with this license without clear guidance from legal and corporate overlords stating that it's OK.
From there:
In 2005, Dan Ravicher explained[2] that, in the USA, recipients of software under the GNU GPL version 2 receive an implicied patent grant, based on the following US case law.
* De Forest Radio, 273 U.S. 236 (1927) "No formal granting of a license is necessary in order to give it effect. Any language used by the owner of the patent, or any conduct on his part exhibited to another from which that other may properly infer that the owner consents to his use of the patent in making or using it, or selling it, upon which the other acts, constitutes a license."
* Hewlett - Packard Co. v . Repeat - O-Type Stencil Mfg. Corp. , Inc., 123 F. 3d 1445 (Fed. Cir. 1997). "Generally, when a seller sells a product without restriction, it in effect promises the purchaser that in exchange for the price paid, it will not interfere wit h the purchaser's full enjoyment of the product purchased. The buyer has an implied license under any patents of the seller that dominate the product or any uses of the product to which the parties might reasonably contemplate the product will be put."
* Bottom Line Mgmt., Inc. v. Pan Man, Inc., 228 F. 3d 1352 (Fed. Cir. 2000) "Unless the parties provide otherwise, the purchaser of a patented article has an implied license not only to use and sell it, but also to repair it to enable it to function properly. This implied license covers both the original purchaser of the article and all subsequent purchasers"
Legal scholars are mixed on that, and it hasn't been tested in court.
But that implicit license is certainly better than the explicit license in FB's code.
To sum up: you may be worse off with BSD+Patents.
The only clarity they offer is that they have their license in place for litigation purposes.
For a personal project, everybody can make their own decisions. For a project involving a corporate entity or an institution, it is irresponsible to leverage any facebook licensed software without a legal review of the license. I'm not saying that it's bad. I'm not saying that it's good. I'm saying that however a laymen may interpret the license, there is a high chance of being wrong. Better to have the professionals review it and make a judgement call. I have seen many people state that their legal departments reviewed the license and have come back in some cases supporting the use of facebook software, in other cases denying the ability to use it. Even among professionals there seems to be disagreement.
There is a common understanding of many open source licenses. There is none surrounding facebook's.
I have asked ASF to have their lawyers make a public interpretation of the facebook BSD+Patents license for the betterment of the community, but the response was along the lines of "no lawyer would do that." Someone else might have better luck with the FSF. The FSF does support the idea of patent clauses, or at least at one point they did. I have seen nothing from them regarding the facebook license specifically though.
And this is a problem, because we all know how much of a huge pain in the ass it is to get any new license or legal issue relating to open source cleared with a big corporation's legal dept.
I think this is a pretty clear signal from Facebook that at least part of the company really doesn't care if people use Facebook open source or not. After all the work some in the company have done to promote Facebook open source, to great benefit to the company for recruiting and for synergy with other large company open source, that is a big surprise to me.
This kind of tone-deaf response from part of the company with the other half frustrated that it's causing so many problems reminds me more of how large old, moribund companies like IBM operate. It's a surprise that Facebook's already there, or at least starting to be.
Of course, you are right that legal and corporate should review such a license. And for any company that deals in patents (or has customers who deal in patents), the likely answer is "no way".
That's the conundrum for any open source project and the exposed danger of the BSD license.
I doubt some statement of opinion in some out-of-the-way place that did not accompany the software directly would hold up in court.
That said, your point on uncertainty is why many people prefer the Apache2 License or the GPL3 which have an explicit patent grant (but not a one-sided grant like in Facebook's PATENTS file).
That, to me, is also a significant warning sign.
"Replace React with Mithril for licensing reasons" https://github.com/Automattic/wp-calypso/issues/650
Personally, I increasingly doubt that BSD+PATENTS is even GPL-compatible -- and so potentially Automattic may be violating the GPL by using React integrated with WordPress.
What's especially sad about this is that React isn't even that good compared to other vdoms like Mithril and Inferno and others. React just has a lot of name recognition and mindshare from the Facebook association (which then translates into a rich-get-richer effect with more tutorials and components).
Here is a list of more than twenty alternative vdoms I put together in January 2016 (although Mithril remains my favorite): https://github.com/dojo/meta/issues/11#issuecomment-17679024...
That said, I would expect that vdom libraries like Mithril that work in a very different way than React would be less likely to be claimed by Facebook to infringe a React-related patent than, say, Preact which tries to duplicate the React API.
Of course, this is all speculation with a lot of unknowns. It all is another example of why software patents are very problematical ways to "promote the Progress of Science and useful Arts".
If Facebook has a patent on the vdom, then all the projects in your list violate the patent, and none of them come with even a conditional patent grant from Facebook.
If Facebook does not have a patent on the vdom or other React technology, then those other projects are safe, but so is React, since termination of the patent grant has zero cost to you.
My personal belief is that Facebook has no patents on React, so I feel safe to use React, Mithril, or any other vdom based library. But I can certainly understand people who feel like they need to play it safe, assume Facebook does have a vdom patent, and avoid all such libraries.
But I'm not really following your logic at all. It's like you think Facebook has a patent, but then you only want to use the libraries that maximise your ability to get sued over it? What am I missing?
Using React just opens you up to liability, with no real benefit (other than using React). Why would you use it?
How?
Again, if they have a patent, they can sue you if you use one of the alternatives mentioned. If they don't have a patent, they can't sue you if you use React.
What's your thinking behind saying using React adds liability? Because to me, it looks like either it does nothing or it reduces liability.
That seems extremely weird. Normal startups do nothing of the kind; do you have extremely weird investors?
> My investors were very specific about software licenses - we aren't allowed to use GPLv4 or AGPL at all.
Ah, there we go. First off, there's no such thing as GPLv4. Second of all, you do realise that avoiding even the AGPL puts you in a vanishingly rare crowd in these parts, right? Eg, MongoDB is AGPL; of all the reasons I've seen given for avoiding Mongo, the license is a new one on me.
If you've decided to only use GPLv2 or vanilla MIT licenses software that's totally fine, but it is unusual.
If you have a patent, and use React, you can't sue Facebook if they use your patent.
Citation needed. Let's say I have an awesome VR patent, and a React based website. I find out the Oculus violated my patent, what happens next?
Answer: I sue them. :) Nothing about the React license stops this; I will even still have a right to use React. What I won't have is a right to use any patents that Facebook might have on React. But Facebook, as far as is known, has no such patents.
> The license granted hereunder will terminate, automatically and without notice, if you [...] initiate [...] any Patent Assertion
The key part is that if you don't have a license to use the patented technology (or more pertinently - that license is explicitly revoked), you can't legally use that technology, no matter what the BSD license might say: the patent grants supersedes the BSD license.
So, to respond directly to your answer - you lose the right to use React; Facebook can sue you for your use of React, since they own the patents to that technology.
So if you want to operate under the belief that Facebook has no patents to assert, then yes, you will consider yourself to be safe. The fact is that many lawyers, including the Apache Foundations lawyers, disagree with this assertion.
Incorrect. The ASF's objections had nothing to do with believing Facebook had any patents, and many ASF projects are looking to move to Preact, which is presumtively covered by the same patents React would be (if any).
I.e. the exact situation you would be in if you sued Facebook and there was no PATENTS file.
The "implied" license doesn't have a strong legal finding backing it up yet. Even so, most lawyers are comfortable with the idea that if a company tells other people to freely use their software, they can't then come back around and sue those same people.
Also, Facebook has no vdom patent. It's not like you can be granted a secret, hidden patent (even the word "patent" itself means "open").
you mean their patent grant? How can an open source license like apache, MIT or bsd be "revoked"? Do facebook have a public blacklist of people who aren't allowed to use react?
MIT and BSD licenses merely provide short-cuts to understanding a project's licensing
> 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.
Note that the "Grant of Copyright License" of Apache doesn't grant you the right to use the work, so revoking the patent license is effectively revoking the whole license (though you can still redistribute the work).
Incorrect. (This has been clarified many times, including in Facebook's official FAQ about React licensing.)
> Also, Facebook has no vdom patent. It's not like you can be granted a secret, hidden patent (even the word "patent" itself means "open").
I agree. Many people have looked; no one has found one. Hence why I believe there's no risk to using React.
It doesn't address the scenario of Facebook's violating your patents first.
Facebook cannot revoke your React license in any circumstances, as that link makes clear.
In my mind that situation is effectively identical to losing "the right to use" license on grounds of patent suit (like Apache). Interestingly, in Apache you'd still be sued for patent infringement (not copyright infringement) because "right to use" is provided as a patent license.
Yes, but for what patent? People have looked; none have been found. :)
[1]: https://www.youtube.com/watch?v=aiKRt3-FbM0
The PATENTS file affects more than just React. It's found in their other projects too.
To me, the most important part of a vdom library like Mithril is using the HyperScript API with it, a library which predates React: Aug 20, 2012: https://github.com/hyperhype/hyperscript/tree/9237f590f3bc82... May 2013: https://github.com/facebook/react/blob/75897c2dcd1dd3a6ca462...
Personally, I feel templating approaches to making JavaScript-powered UIs like React's JSX or Angular's own templating approach or the templating systems in many other UI systems are obsolete. Modern webapps can use Mithril+Tachyons+JavaScript/TypeScript to write components in single files where all the code is just JavaScript/TypeScript. Such apps don't need to be partially written in either CSS and some non-standard variant of HTML that reimplements part of a programming language (badly). (Well, there may be a tiny bit of custom CSS needed on top of Tachyons, but very little.)
Here is an example of a coding playground I wrote that way with several examples in it which use that approach: http://rawgit.com/pdfernhout/Twirlip7/master/src/ui/twirlip7...
So, by writing UIs using HyperScript (plus a vdom library), you can potentially (with some work) replace a backend like Mithril with almost any other vdom or even a non-vdom solution. So, that is another way I mitigate this risk when I have a choice.
Granted, I know many web developers grew up on tweaking HTML and love HTML-looking templates and so they love JSX or whatever and are happy to ignore how hard it is to refactor such non-code stuff in the middle of their applikcations or validate it (granted, some IDEs are getting better at that). But I came to web development from desktop and embedded development working with systems where you (usually) generated UIs directly from code (e.g. using Swing, Tk, wxWidgets, and so on). I like the idea that standard tools can help me refactor all the code I work on and detect many inconsistencies.
Maybe a deeper issue for me is that with BSD+PATENTS Facebook is redefining what "open source" means in a way that is harmful to the open source community -- and also free software community as well like with Automattic using React on top of a GPLd WordPress. Which is why the Apache Foundation rejected the React license.
You're reading too much into the intent of the license. GPLv2 being used on servers is a valid use case.
Tivoization is indeed subverting the intent of GPLv2, which is one of the reason for GPLv3. But in the case of Tivoization, you _are_ distributing the code to end users, rather than just running it on their behalf, and hence, in my eyes, violates the intent of GPL (that end users you distribute your software to should be allowed to modify the software).
Hosted software isn't like tivoization, in that the host doesn't distribute, and so no GPL issues whatsoever.
GPL works because it forces the source code to remain open allowing everyone to enjoy all new changes.
BSD works because you are free to repackage and resell with bsd code. This code can be used in an existing product.
What complete, tone deaf newspeak. If a BSD-licensed project uses code with a Facebook BSD license, the project is now Facebook BSD licensed. That means it's incompatible with the BSD license.
The Apache Software License does grant a patent license [0] (as does GPLv3) so is incompatible with either of these BSD licenses (unless an 'implied' grant is assumed).
[0] http://www.apache.org/licenses/LICENSE-2.0#patent
This is the ultimate disagreement of what software freedom means. GPL people think derivatives of their software should remain free. (the viral nature of GPL) Strong BSD proponents believe the freedom to incorporate the software into non-BSD projects (including closed software) is the ultimate freedom.
It sounds like you are more in the copyleft/GPL camp if you are concerned with derivative works remaining compatible with the original license.
I believe FB is at the "pounding on the table" stage.
This is pretty clear, and the ASF has been operating under this "no more restrictive than the Apache license" since its origin.
Facebook is offering a separate patent license, and that is out-of-scope of the GPL.
According to the FAQ on the GPLv3: https://www.gnu.org/licenses/quick-guide-gplv3.html "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."
So, since GPLv3 talks about patents, and the Facebook PATENTS clause reduces the implicit patent grant of BSD, I feel it is in scope for GPLv3. A plain BSD 2.0 license with an implicit patent grant would presumably provide enough patent rights to be compatible with GPLv3. To my reading of the situation, BSD+PATENTS does not seem to provide enough patent rights to comply with GPLv3 (because of the one-sided retaliation clause of Facebook's PATENTS file).
The GPLv2 is a different story which is less clear to me.
In section 7 GPLv2 says: "If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program."
So, because some of your downstream users might not have a valid patent grant from Facebook if they sue Facebook for infringing their patents, does the last sentence imply you can't distribute the combined BSD+PATENTS and GPLv2 code?
Sure the dom diffing technology was hot at the time it came out but it's basically is a commodity item at this point.
In that sense, the open source community can (and should) build multiple react clones that are licensed more liberally.
Sure, I'm annoyed by the licensing of React too, I think abou it a lot. But does it really matter that Facebook won't budge on this? The technology is out there whether it's React or not.
[1] https://github.com/developit/preact/blob/master/LICENSE
[2] https://github.com/infernojs/inferno/blob/master/LICENSE.md
I also wonder if this will hold up in court, or is purely a defensive measure.
> but what about using some other library that installs React as some dependency?
I think that still counts as "using react".
> Does using JSX also count as using "React"?
I think that if you use a custom JSX compiler instead of the one that comes with React then you could be clean. JSX itself is just a programming language and cannot be copyrighted.
> I just feel that what exactly constitutes using React is very vague esp
I don't think that is vague, actually. In the end, what matters is if the whole system includes React source code in some way or another.
> and associated technologies, eg the idea of Virtual DOM
Associated technologies are not covered by copyright. They could possibly be covered by patents but that would be a whole different can of worms.
There's a pretty obvious solution to this: relicense React. The fact that Facebook isn't even considering that is a pretty strong indication that they "weaponized" their license on purpose.
> To this point, though, we haven't done a good job of explaining the reasons behind our BSD + Patents license.
I think we already understand the reasoning behind it.
> As our business has become successful, we've become a larger target for meritless patent litigation.
And the solution you chose stops merit-ful litigation as well.
> We respect third party IP, including patents, and expect others to respect our IP too.
Clearly you don't, because you've intentionally designed a license to allow you carte blanche to violate other companies' patents if they're dependent enough upon React to not be able to easily stop using it.
> 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.
They do not give a pathway for litigation with merit. This is a patent weapon.
I just can't unsee the way this theoretically could allow Facebook to partake in patent infringement without fear of retribution.
It's possible that there were two groups in FB that were for this, some that were naive enough to just not understand it, and some that totally understood it and let the others continue with their misconceptions. I don't believe there existed a group that actually understood it and it's ramifications and thought it was benign.
Facebook has gone too far with React and its Trojan patent clause. So easy to get away from it though with smaller, faster and more focused libraries.
But, and especially concerning patents, assuming one can't exist is pure folly. And designing your own licenses in a way that prevents someone else from initiating a meritorious lawsuit against you seems quite intentional, especially since they refused to back down once it was pointed out (and especially because there was already precedent in open source licenses for doing this in a sane way, e.g. the Apache License, Version 2.0, and presumably others too).
Somewhere along the line we lost the distinction between "Open Source" and "Source Opened".
Situation A: React is licensed under BSD + PATENTS. You sue Facebook for infringing your widget patent. Turns out Facebook has a patent for something in react. They revoke your grant and counter sue you for infringing that patent. Long legal battle ensues.
Situation A: React is licensed under just BSD. You sue Facebook for infringing your widget patent. Turns out Facebook has a patent for something in react. You never had a grant so Facebook counter sues you for infringing that patent. Long legal battle ensues.
Can someone coldly explain how anyone anywhere would be helped in any way by removing the patents file? Or is the BSD license the problem?
The patents clause doesn't have anything to do with any patents on parts of React. It's a way for Facebook to make it so that anyone who wants to sue them for patent infringement can't use React.
You get counter sued whether or not there is a PATENTS file.
In situation B (React is licensed under just BSD), the patent rights necessary to use React are not written in explicit terms. You have made no explicit agreement to have your patent grant to use React revoked when you sue Facebook for patent infringement. In addition, without an explicit patent grant, a patent grant is implied with the license. You can at least continue to use React until the results of the court case.
No you haven't. That is not what is written in the PATENTS file. The PATENTS gives you a patent grant to any react patent facebook may or may not have, that you can only lose if you sue facebook for patent infringement. Without the patents file, you don't have any grant to those patents.
> You have to immediately stop using React.
No you don't. Why do you think this is the case? There is nothing in the PATENTS file about this at all. All it says is that you lose the grant. If a court grants a preliminary injunction, then yes, you have to stop using it immediately, but guess what: assuming Facebook has some react patents, they can apply for a preliminary injunction against you whether or not the PATENTS file is in there. With just plain jane BSD they can also get a preliminary injunction.
> In addition, without an explicit patent grant, a patent grant is implied with the license.
It's totally misleading to state unsettled law as fact like this. It's wishful thinking. Not being a patent holder myself, I would like it to be true as much as anyone, but the fact is that until this stuff ends up in court, just assuming that a license to redistribute also implies a license to any patents is just a theory.
When Facebook explicitly includes a revocable patent grant (aka the PATENTS file), the argument of it being a "BSD license with no patent grant" when the patent grant is revoked is self-fulfilling. But if the PATENTS file had never existed, then what you have is a "BSD license with a debateably implicit patent grant", which has been the topic of debate long before React even existed, and has yet to be tried in court so could set a precedent, and is a way better bet for the consumer than a "BSD license with no patent grant because that patent grant has been explicitly granted and now revoked, no debate, period".
"The license granted hereunder" refers to the patent license, not the copyright license.
This cannot happen. This is not a thing. Nobody is legitimately worried about this; anyone who is needs to take a deep breath and stop being ridiculous. This has been clarified many times.
(Source: The plain language of the license, multiple independent lawyers who have commented on this, Facebook's official license FAQ, etc. The BSD license does not terminate when the patent grant does.)
> Automaticc’s general counsel also agrees with my analysis of contractual and copyright liability in that the patent clause does not revoke the underlying license.
[1] https://medium.com/@dwalsh.sdlr/react-facebook-and-the-revok...
The problem is that in the case you have a legitimate claim against Facebook they always have an 'out' if you have significant React use in your org.
Without patents file:
- Facebook can sue you for any reason, including react related patent infringement
- You have no patent grant for anything in react
- You can sue Facebook for anything, including patent infringement.
With patents file:
- Facebook can sue you for any reason, except for react related patent infringement
- you have a grant for any Facebook patents related to react
- You can sue Facebook for anything, including patent infringement of any kind. If you do sue them for patent related infringement, you lose the grant above (i.e. You are in same position as if there was no PATENTS file)
It seems like yes it's true that there is an implicit grant, but it's not well established in case law.
Apache license includes an irrevocable patent grant.
The fact that Facebook has continued to ignore this sentiment tells me that it's no longer a place where developers have much influence. I personally don't want to contribute to or use open source software from such an entity.
But that's just my personal opinion. It's a shame, because I've been really impressed and happy with the work Facebook has done in the area of programming languages (Flow, Hack, HHVM, etc.).
I think it's pretty clear how disingenuous this is since they don't even constrain the patent revocation to IP lawsuits.
If they were doing this in good faith they would want to scope this as tightly as they could, but this is clearly Facebook just trying to extract additional benefit from their OSS contributions.
Will note though that if Facebook does choose to revoke a license on the basis of getting sued for something unrelated it will definitely reflect poorly on FB in the developer community and reduce React's adoption.
Well, they've specifically related React if it's in use, so the only case where it's not related is if isn't being used by the plaintiff.
In a similar vein, people are wondering what Facebook will do with patent infringement suits that do have merit, to which I ask, when's the last time a company defending a patent suit stated the plaintiff's case had merit.
- They confirm Apache's legal reading of the BSD + Patents.
- They deny the part about Facebook being able to steal your IP because Facebook isn't like that.
- They refuse to codify changes to enforce Facebook isn't like that
- We therefore must assume Facebook is like that.
You'd be surprised. Patent trolls can have all forms, not just a only-suing company. Some company that has failed as a startup, but which holds 1-2 patents might decide to turn into patent-trolling to make a quick back while it dies.
Think also of companies like SCO.
If the startup is dead it should be trivial to transfer the patents to a separate entity and then sue from that entity, making counter-suits irrelevant.
This only has an affect on companies which are a going concern.
Companies who plan to make litigation part of their strategy can pretty easily just not use React.
This does the most harm to companies who were not planning to come into conflict with Facebook, and then do.
Were Facebook to amend that license to soften the criteria for revocation of the license grant in cases of suits against Facebook for infringement, this outrage might just go away. But as it stands now, Facebook stands to exercise an ability to infringe on others' patents for monetary gain so long as the patent holder uses React in deployment. It would be easy to weaponize this arrangement, and you have to assume that any fiduciary would consider it.
More broadly, this is a good case to be made against software patents in general.
> The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: ... (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates,
I always thought the main problem was this part, where you basically lose the license or your IP if Facebook ever decides to become your competitor, e.g. you start a company with a react front-end that does X, and then Facebook decides to directly copy your business. You have no recourse against Facebook, because if you sue them for infringing your IP, you lose the ability to use the React license.
Any sane aspiring developer would know not to give Facebook that much power.
If not, then would it have mattered if they used React?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if I sue Facebook for something other than patent infringement?
No.
Does the additional patent grant in the Facebook BSD+Patents license terminate if Facebook sues me for patent infringement first, and then I respond with a patent counterclaim against Facebook?
No, unless your patent counterclaim is related to Facebook's software licensed under the Facebook BSD+Patents license.
Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
No.
From: https://code.facebook.com/pages/850928938376556
That would work incredibly well to neutralize patents, actually, and would be a huge win for free/open source software.
It's surprising not to have seen anyone point out the logical conclusion of a world where every major license includes a React-like stance on patents: it's a world where no one is able to bring patent suits against anyone, because it means they are now violating the licenses of every piece of FOSS they're currently using. (I'm relying on the assumption that there's no entity that could perform an audit right now and conclude that there's not a single piece of FOSS underpinning their products/services/infrastructure.)
Licenses like Apache 2.0, MPL2, etc all have a "MAD" policy wrt patents, but they all have a gaping hole in their strategy. The React license patches this hole in a really clever way--probably the cleverest thing since the GPL's invention of copyleft to hack copyright law by using it against itself. It's really disappointing to see people's sense of disdain for Facebook overpower their ability to appreciate how clever the React license is.
Addendum from the last time [1] I commented: "FWIW, I don't use React, I don't want to, I'm not a Facebook employee, and in fact I think the world would be a lot better off with Facebook having less influence than they do today. But that doesn't change how weird it is to keep seeing comments like [those that frame the React terms in a negative light]".
1. https://news.ycombinator.com/item?id=14780358
> 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.
Any project with such a license would be non-free, so I'm not sure how that would be a win for free software.
I'm inclined to say you're mistaken. The FSF hasn't published an analysis of the React terms, but if they did, it seems pretty much assured that they'd deem it a "free software license, but incompatible with the GPL".
Recall that Apache 2.0, MPL2, and GPLv3—all free software licenses—have patent termination clauses as well, but they're comparatively weak. In fact, GPLv2 didn't have one, and this was the reason why Apache 2.0 is labeled as free but incompatible with GPLv2. The FSF's solution to this was to include it's own patent termination in the next update to the GPL, which is why Apache 2.0 and GPLv3 are compatible today.
See https://www.gnu.org/licenses/license-list.html#apache2
> I'm inclined to say you're mistaken. The FSF hasn't published an analysis of the React terms, but if they did, it seems pretty much assured that they'd deem it a "free software license, but incompatible with the GPL".
Richard Stallman said it is non-free [1]:
> React.js is nonfree because of its patent license restriction.
[1] https://lists.gnu.org/archive/html/directory-discuss/2017-01...
Not the most impartial person to define "free" and "non-free".
Anyway, even if you dont line Mr. Stallman, the set of licenses he deems as free software is pretty much 99.9% compatible with the set of licenses deemed "open source" by the OSI or licenses acceptable by Debian (the other authorities you might Sant to look to when it comes to this)
And after actually reading it he said it's okay to use for GNU projects: https://lists.gnu.org/archive/html/directory-discuss/2017-01...
[1] https://lists.gnu.org/archive/html/directory-discuss/2017-01...
[1] https://www.gnu.org/philosophy/software-patents.en.html
This would only neutralize patents of actual companies that have something to create.
The only ones left to hold patents would be patent trolls. This would just massively empower patent trolls, and harm everyone. Because patent trolls don’t have to license patents there’s no risk for them.
Against each other only, right? They could still use their patents against patent trolls.
Even if the entire FOSS community decided to adopt a patent termination clause right now, it cannot retroactively apply to whatever fragments of FOSS code that has found its way into proprietary products so far. So I'm safe as long I don't install any new software until I'm done trollin'.
Your idea would make sense If all the FOSS that was ever written came with a patent termination clause. But that's not the world we live in.
It just leaves them as clearly the only enemy left, with massive corporate lobbies against them, and widespread public distaste weighing them down.
The current situation is mixed---companies aren't fully in favour of patents, but support the status quo.
If you use project A that was written by one or two developers in their spare time (and they included a BSD+patents) clause, would Facebook fear being sued by them? Probably not -- but new companies that get anywhere close to what Facebook does (increasingly, that's everything these days) definitely live with the real possibility of facebook suing them.
In theory the "no one is able to bring patent suits against anyone because they're violating licenses" is a good outcome (mostly the no patent suits part), but it doesn't quite stand up in practice because patent suits cost money, and bigger companies can sue you longer than you can sue them. I don't want a world where MAD is the default, because the large companies carry nukes, and I carry a peashooter.
I will no longer use react on any new projects.
Instead of forming organizations to fight patent wars, just put effort towards fixing the patent problems.
They should be. Many popular open source projects are supported by a 'community' of large companies, or are invested into a widely respected foundation like Apache.
Additionally, many projects that started off as simply a few developers, grow to the point that a company is founded to handle support and customization. An example of this would be Redis Labs---started by the originator of Redis.
If even tiny patent trolls can be 'dangerous' to multinationals, I expect most would steer clear of declaring a patent war on the community at large.
What if Postgres had a retaliatory patent clause?
What if Linux did?
Also, you're right except for the fact that lots of very very useful projects are not backed by large companies or foundations like apache. What you describe a solution is precisely the world I don't want to live in. I don't want the MAD state of things to be held in check by large organizations -- humans kind of forget themselves in large organizations, far too easily.
Redis is a great success story, but again, that organization is way way weaker than facebook. They just have more money in the bank, and MAD only works if EVERYONE has nukes. It doesn't work if one side is carrying rifles and only one side has nukes.
Maybe we should fix the patent system instead -- I'm aware it's hugely nuanced, but for all the griping that tech does, surprisingly nothing has changed -- the tech companies that make it just don't seem to be trying to change the system once they're established (someone please correct me if I'm wrong).
As pointed out by Dennis Walsh in (https://medium.com/@dwalsh.sdlr/react-facebook-and-the-revok...), it would take millions to bring a patent suit against Facebook.
At it's best this is like some sort of warped "you infringe on my patents and I'll infringe on yours" kind of thing, assuming MAD means it doesn't become a very-uneven suing war. This case is also bad news, because larger companies are much more capable of infringing on your patents and competing with smaller companies in a conglomerate style.
Amazon is a conglomerate. Alphabet/Google is a conglomerate. Somehow, everyone in the government who manages anti-trust (whether that should be a thing is another debate), seems to be asleep at the wheel, literally everyday.
Also, guess who has lots of resources to rebuild a shitty copy of ingenuous software they found online? Big corporations do. All the starry eyed CS grads who want to go work for Big Conglomerate Co. are going to be rearing to re-implement Redis in 50K LOC, but it's harder for some small company (or just random open source project) to re-build the parts of their app that used react in some other framework.
In that case, you have two other options:
* Quietly swap out your frontend before you file
* Continue using React and dare Facebook to produce a patent they can actually claim
This, of course, is based on the assumption that your frontend is a significant portion of your product. If your frontend is a trivial portion, then "rewrite your frontend code base as fast as you can" is also trivial.
Edit: fixed formatting
The PATENTS file is red herring. If you're a small player and you launch a patent lawsuit against Facebook you stand no chance of winning. Facebook has thousands of patents in its portfolio, and software patents being broad as they are, you're invariably infringing one of them.
You know what, scrap that. Even if you were a somewhat large player with your own respectable patent portfolio, and Facebook had almost no patents you could never win. Why? Because this already happened, dear internet:
https://techcrunch.com/2012/04/23/facebook-patent-fortress/ https://www.washingtonpost.com/business/technology/facebook-...
TLDR: Yahoo sued Facebook before their IPO with 10 infringed patents (not just 1), trying to scare Facebook into giving them money. Facebook only had 56 patents, but they had money, so they bought up 1400 more patents, and countersued with just 10 of them. Yahoo realized they don't have the money to win a lawsuit against Facebook, and meekly submitted and cross-licensed the patents to Facebook.
Now imagine trying to copy cat the Yahoo move with two guys in a garage who own just a single patent against a stronger and more prepared Facebook that has thousands.
To give this comment meaningful content:
https://mithril.js.org/
https://vuejs.org/
https://www.nativescript.org/
As for the problem you're focusing on, the particular problem is that to actually your patent defensively (the original purpose), you must litigate. To litigate, you must have lawyers, and quite a bit of money. If the other side is capable of buying better lawyers, or lawyers for a longer time, you lose.
Large companies carry massive war chests of patents, such that anyone who makes software is most likely violating several of them without knowing it. They defend themselves from patent lawsuits with countersuits from their war chests. (Trolls are immune, though, because they don't make software and therefore aren't infringing in the first place.)
It would be a huge win for companies with large software patent portfolios, which is the opposite of what the free software movement is about.
This is backwards. Those are exactly the companies that would be harmed, because their hopes to be able to wield those patents offensively have been nixed.
So, here's how the real conversation will happen at MegaCo of your choice, should this play out:
---
Alice: We want to sue for patent violation against XYZ Co. But we use XYZ Co's software. If we file suit, we'll have to stop using it due to the license.
Some top-level guy with a three-letter title named "Joe": Okay. How big is their company and what software do we use?
Alice: <MegaCo has more money than God so the only meaningful comparison is "cockroach" at best, and the software is in no way something they cannot acquire elsewhere>
Joe: Okay. Assign 50 engineers to just recreate whatever stupid software of theirs we use, in-house. Or buy another version from someone more reliable. Then assign a billion dollars to legal to destroy them.
Alice: Okay.
---
And that's it. They're done. That strategy was all cleared up before lunch. Keep in mind of course Facebook will probably have enough money to litigate you into the ground so long that probably won't even be able to actually tell them to stop using your software, until they've already replaced it completely and also ruined you at the same time.
It turns out when you have effectively unlimited engineering resources and money (to wage legal battles), things like "Use a new virtual DOM library" or "Replace RocksDB" don't matter at all. They can just do it and crush you anyway.
If you assume that MegaCorp is evil, the startup has no life whatsoever, whatever open source license is picked. If instead assume that MegaCorp is good, the patent grant has a positive effect on the ecosystem.
But what prevents everyone from becoming patent infringers in this scenario?
However, in such a world I don't think the courts would approve of this 'hack' and kill the enforceability of these clauses precisely because they render patents useless.
I believe that contracts that terminate if you sue the other party are fairly standard, and in court these licenses would be considered fairly similar to those contracts.
I don't really know what a court would say, but if I sign a contract that says "I will not sue X for any patent infringement under the condition they don't sue me for patent infringement" I would be surprised if a court found that contract unenforceable. The right to file a patent suit is not a fundamental human right after all, why would signing it away not be possible?
[IANAL]
It's also a world where entrenched companies can feel free to use whatever technology they want from smaller competitors without fear of lawsuit, and use it to further entrench themselves :)
I'd put a lot more money on that happening than "happy fun kumbaya singing".
This is among the many reasons that apache, et al chose not to use them when revving their licenses. It's totally worth reading the discussions that happened around these issues back then.
As a friend said WRT to this issue: "Everything old is new again"
https://news.ycombinator.com/item?id=15051709
I agree, but software patents are arguably bad enough that doing away with them entirely is worth the collateral.
A legislative solution might exist to have the best of both worlds, but, in the absence of that, suppose there's a copyleft-analogue hacky way to undermine software patents indiscriminately without requiring an Act of Congress. (and that's not a sure thing at all, but suppose.) Wouldn't you press the button?
The thing is, I agree with your premise that we should always push for licenses that (in the long term) will result in a better free software world where threats such as software patents and draconian copyright are effectively neutralised. All three GPLs did this to copyright (as you noted), and Apache helped step forward on the patent front. I would love to say that the React license helped further this cause. Unfortunately I don't agree, and it's for several reasons.
* This may sound like a minor point, but the React patent license only applies to Facebook's patents, and relies on Facebook retaliating. Code contributed by anyone else may not be giving you the same protection, which means that if they sue someone other than Facebook the target has no real protection. Apache and GPLv3 both tackle this problem because the copyright license is terminated if anyone sues a copyright holder (and GPLv3 even more so because it's copyleft). By only terminating the patent license, you're relying on Facebook suing the offensive party.
* As with almost all patents, Facebook makes it exceptionally explicit that independent discoveries will not be protected. While this is to be expected because it's the default patent law position, it's not exactly what you want if you're going to try to sell me on this being "an ingenious, anti-patent license".
* The patent license clearly favours protecting Facebook over the wider software community. The fact that suits "(i) against Facebook or any of its subsidiaries or corporate affiliates," will result in termination means that the license is incredibly asymmetric in it's protection. The problem is that the "more free" stance of extending this protection to every user of the software would be too strong of a stance for companies to take (it would mean that no company could sue any other over patents in fear of being vulnerable to Facebook's patent portfolio). Not to mention that it still wouldn't solve the patent problem, you'd need to fix my first point and make it apply to all patents by all users. And then it would be seen as an incredibly risky business decision.
* By definition the patent grant cannot be used against Facebook, because of the above protections are not provided. If Facebook sues you over a patent unrelated to React, you cannot counter-sue them for any patents they may be infringing because then you'd be giving them more ammunition. This is where your comparison to the GPL falls flat for me. The GPL does protect users in this situation.
I understand that these might seem like "perfect being the enemy of good", but you have to consider that Facebook's dominant position is what makes these sorts of discussions critical. Sun made some mistakes in the CDDL, and we're still living with those mistakes to this day thanks to the whole Oracle OpenSolaris fiasco (though it went better than we could've hoped). We need to be far more careful in how we evaluate software licenses, and thinking about doomsday scenarios is crucial. If Facebook became a bad actor, would this patent license be better or worse for the community than Apache 2 or GPLv3?
> Apache and GPLv3 both tackle this problem because the copyright license is terminated if anyone sues a copyright holder (and GPLv3 even more so because it's copyleft).
This is not true of Apache 2.0. Filing a patent suit against someone over a piece of Apache licensed software means the plaintiff loses the grant to patents held by other contributors to that software, but that's the extent of it.
> If Facebook sues you over a patent unrelated to React, you cannot counter-sue them for any patents they may be infringing
This is also untrue. Your ability to file a countersuit for other patents is explicitly protected by the React grant. This has been the case ever since version 2 was published.
See https://github.com/facebook/react/commit/b8ba8c83f318b84e429...
> If Facebook became a bad actor, would this patent license be better or worse for the community than Apache 2 or GPLv3
Either better or the same, depending on your values, but definitely not worse. The license termination clauses in Apache 2.0 and GPLv3 are so narrow they don't offer any greater protection against bad actors.
Right, but the "right to use" permission is granted as part of the patent license not the copyright license. You're right that I misspoke and the copyright license is not touched, but the effect is similar AFAICS.
> This is also untrue. Your ability to file a countersuit for other patents is explicitly protected by the React grant.
Ah, you're right. I did read the latest version of the document, I guess that sentence must've just slipped by me. My point about asymmetry still stands though.
> Either better or the same, depending on your values, but definitely not worse.
I believe that the asymmetry does not make it better. You could argue it's the same, but I still am not sure I agree.
I'm pretty sure they'd be thrilled. That seems to be their aim.
> I bet it would deter them from enjoying much of the code they built their business on.
Why? Serious question; I just don't see why Facebook would care.
Do you feel that if a company is "evil", do you feel there's a moral imperative to not use their products? It seems to me there's a lot of "But React!" going on.
https://code.facebook.com/posts/112130496157735/explaining-r...
I think it's an intimidation play on the part of Facebook to keep large players from profiting off of their IP.