When I first brought up how misguided people were for embracing React and projects with this license, I was downvoted to hell on HN. But really, everyone, THINK ABOUT IT. This is a company that glorifies and celebrates IP theft from others, and lionizes their employees who successfully clone others’ projects. They’ve built their entire business on the back of open source software that wasn’t ever encumbered with the sort of nonsense they’ve attached to their own projects. And this industry is just going to let them have it, because the stuff they are putting out is shiny and “convenient” and free?
Having known so many people involved with Facebook for so long, I have come up with a phrase to describe the cultural phenomenon I’ve witnessed among them – ladder kicking. Basically, people who get a leg up from others, and then do everything in their power to ensure nobody else manages to get there. No, it’s not “human nature” or “how it works.” Silicon Valley and the tech industry at large weren’t built by these sorts of people, and we need to be more active in preventing this mind-virus from spreading.
By the way, the fact that Facebook is using this on their mostly-derivative nonsense isn’t what should concern you. It’s that Google has decided, as a defensive measure, to copy Facebook’s move. Take a look at the code repo for Fuschia and you’ll see what I mean. Imagine if using Kubernetes meant you could never sue Google?
To use React, you give Facebook permission to use any of your software patents (edit: all patents, even on a new jet engine) throughout your whole company. Facebook gives you permission to use only the software patents necessary for React.
If your company sues Facebook over an unrelated software patent (edit: as above, any patent), your React license (to the React patents) is pulled and if your business has any dependency on React that part of your business is broken until you can port to something else, or you are in license violation if you keep using it.
On the other hand, if Facebook sues you over a software patent (edit: any patent) that isn't related to React, they are still free to do so (edit: you become free to defensively sue with other patents in response and not lose your license to React patents, meaning with the nuclear analogy below you give Facebook "first strike" capabilities but are allowed to keep a retaliatory-only arsenal).
So there is a big asymmetry: all of your software patents for a few of ours. (edit: all of your patents for a few react software patents)
It's a nuclear arms reduction agreement where Facebook gives up 1% of nukes in exchange for co-signers giving up 100%.
(edit: as pointed out below, it is a much worse deal: you give up all patents on everything, not just software patents; Facebook only gives up software patents on React)
That is, on its face, absolutely untrue. Nowhere in the React patent terms does it specify that you grant Facebook rights to use your patents--not even to ones related to React.
That's something that isn't in the React terms, nor does it seem to show up in any legal analyses published online from a lawyer making that claim. (None of the analyses I've seen, at least; if you found some, please post them.) In fact, the only place where this claim does crop up is in off-the-cuff message board comments.
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 yours that make claims like the one above.
Now where does it say that? The way I read it, so long as you don't sue Facebook, you have a patent grant. If you believe people when they say that their patent portfolios are purely defensive, there is no problem.
On the other hand, being the aggressor in a patent lawsuit loses you the patent grant. This seems sane enough to me.
The normal state of affairs is completely ambiguous about patents. You get no explicit grant, so if they feel like suing, there's nothing to stop them. Some people claim an implicit grant, but there's no conclusive ruling on it.
I don't particularly care for software patents, but I don't see anything more stupid than the usual lawyerly CYA layered on an attempt to disambiguate the patent situation.
My professional opinion is that if you use React and are concerned about this, talk to your attorney.
Has any of this React patent usage agreement been tested yet?
Maybe someone out there has access to legal cases and could help?
W̶o̶u̶l̶d̶ ̶y̶o̶u̶ ̶p̶l̶e̶a̶s̶e̶ ̶q̶u̶o̶t̶e̶ ̶t̶h̶e̶ ̶e̶x̶a̶c̶t̶ ̶t̶e̶x̶t̶ ̶t̶h̶a̶t̶ ̶g̶i̶v̶e̶s̶ ̶F̶a̶c̶e̶b̶o̶o̶k̶ ̶a̶n̶y̶ ̶r̶i̶g̶h̶t̶s̶ ̶t̶o̶ ̶u̶s̶e̶r̶'̶s̶ ̶p̶a̶t̶e̶n̶t̶s̶.̶ ̶A̶s̶ ̶f̶a̶r̶ ̶a̶s̶ ̶I̶ ̶c̶a̶n̶ ̶s̶e̶e̶ ̶o̶n̶l̶y̶ ̶F̶a̶c̶e̶b̶o̶o̶k̶ ̶i̶s̶ ̶a̶c̶t̶u̶a̶l̶l̶y̶ ̶g̶r̶a̶n̶t̶i̶n̶g̶ ̶p̶a̶t̶e̶n̶t̶ ̶r̶i̶g̶h̶t̶s̶.̶ ̶Y̶o̶u̶ ̶l̶o̶s̶e̶ ̶t̶h̶e̶ ̶p̶a̶t̶e̶n̶t̶ ̶r̶i̶g̶h̶t̶s̶ ̶i̶f̶ ̶y̶o̶u̶ ̶s̶u̶e̶ ̶F̶a̶c̶e̶b̶o̶o̶k̶ ̶f̶o̶r̶ ̶a̶n̶y̶ ̶p̶a̶t̶e̶n̶t̶s̶ ̶t̶h̶a̶t̶ ̶i̶n̶v̶o̶l̶v̶e̶ ̶R̶e̶a̶c̶t̶ ̶o̶r̶ ̶y̶o̶u̶ ̶s̶u̶e̶ ̶a̶n̶y̶o̶n̶e̶ ̶u̶s̶i̶n̶g̶ ̶R̶e̶a̶c̶t̶.̶
https://github.com/facebook/react/blob/master/PATENTS
edit: nvm, I misread line 16-17. Naturally line 21-26 is mostly useless.
Is this widespread at all or is it just Facebook..?
Edit: I'm glad to be downvoted for asking a genuine fucking question if anyone else does this since Apache mentions Facebook and the only place I ran into PATENTS file is another Facebook property and googling brings nothing up except more React..
There's a larger problem here, and I feel it comes down to our collective attitudes.
In the case of Fuschia, I don't see any more restriction of end-user rights than Apache 2.0 would give you. The only real difference is this line:
> This grant does not include claims that would be infringed only as a consequence of further modification of this implementation.
That makes it clear if you make a modification to Fuschia, that infringes on a patent that Google holds, that you don't automatically get rights to that patent too. Apache 2.0 doesn't mention that, but it appears implicit to me as Apache 2.0 only gives you patent rights to whatever is in the source.
So did Amazon apparently and others. At least Google have open sourced many interesting and useful projects so they have given back. Microsoft have been open sourcing things lately too. Others so so.
https://github.com/grpc/grpc/pull/11432
https://github.com/grpc/grpc-java/pull/3047
https://github.com/grpc/grpc-go/pull/1290(I'm the executive director of CNCF and wrote the blog post. )
https://www.amazon.com/Kicking-Away-Ladder-Development-Persp...
- As stated in the standard BSD 3 clause, you're more or less licensed to do whatever you want with the software.
- The above doesn't give you a patent grant (at least not an explicit one), so Facebook also grants you a license to use any patents they have associated with the software.
- The ONLY possible way you can lose the above patent grant is if YOU sue Facebook for patent infringement.
Even if we assume, for the sake of argument, that everyone working at Facebook is a child of Satan, the only thing your company has to do to not lose the patent grant is NOT SUE Facebook for patent infringement. Seems pretty simple, no?
If your company is one that plans to, as part of its business plan, make money by suing companies like Facebook for patent infringement (which I have nothing against by the way), probably don't use react . Everyone else, what is there to lose?
Is the BSD-3 + PATENTS as nice as the Apache 2? No. Is it anything to get hysterical over? I can't see why.
I speculate that this grant was probably written in this way to ward off NPEs, but I doubt any of those NPEs actually would use React and so in reality it causes issues for pretty much anyone else that cares.
Calling what it is has become unpopular amongst the hipsters.
What are you referring to?
Of course, that issue was rapidly closed with essentially a "we don't think there is anything to worry about here" -- ignoring that even if Automattic may not have patents to defend, any of their customers who has patents could face an issue using Calypso.
All this is made more confusing by the fact that Facebook changed the React license over time from Apache to BSD+WORSE_PATENTS and then to BSD+LESS_BAD_PATENTS. And it looks like Automattic may have started using React when it was Apache licensed. So they got the rug pulled out from under them by trusting Facebook. I can wonder if their code might be considered to have grandfathered Apache patent licensing rights?
The Fuchsia license by Google (at least the one file I looked at) does not seem to me to be that different from other FOSS Patent licenses in that it is not as broad as Facebook's and just covers patent claims about Fuchsia itself. So I would not put it in the same category as React's much broader PATENT retaliation clause which applies for any disagreement over any patents with Facebook whether they are related to React or not. So it is more like if you sue about Fuchsia patents you can't use Fuchsia. https://github.com/fuchsia-mirror/magenta/blob/master/PATENT...
What if you got acquired. What if something unexpected happens. What if you got pulled into some suit against Facebook. There are a ton of things that could potentially happen.
https://blog.xkcd.com/2010/05/03/color-survey-results/ (at the end of post)
I agree with this move.
There are plenty of OSS projects out there without patent thing attached to its license so no reason to use react.
Always check the licence. Public domain, MIT, simple, plain BSD, GPL (any version), apache - if it's anything else, be extremely cautious.
I would have too. I'm getting into Clojure(Script) where React(Native) seems to be a popular choice for UI. I haven't touched it yet. I hope there's a good alternative when I get around to it because I really like Clojure but I never wanted to rely on anything made by Facebook.
+ (not saying React is objectively better than alternatives, only that if you believe it's better then the statement is true for you)
You are licensed to use React even if you never agreed to whatever is in the PATENTS file. The reading where to use a source code is meant only to compile it, maybe admire the compiled artifact but never to put it anywhere near an executable environment seems pretty far-fetched to me.
But you're not wrong, preact is a great alternative to react and it comes with a permissive license.
Actually, React is banned at a number of them, and i've personally discussed the issue with a number of fairly concerned counsel.
So for better or for worse, i don't believe this is as simple as you make it out to be.
Consider: The risk for React is based on 1) speculation that Facebook has patents on core React concepts and 2) the fact that patent grant that comes with React terminates in some situations if you end up in conflict with Facebook. So for safety, it might be better to make sure you use code that Facebook has no patents on, which (if (1) above is true) means "code that is nothing like react at all".
A React clone that doesn't have the patent grant at all is vulnerable to all the same issues React itself is, plus more. It's strictly more dangerous than using React itself.
(Unless, of course, we assume there's some bit of React that's subject to a Facebook-owned patent that would not also apply to Preact. But having spent a few minutes thinking about it, nothing leaps out at me.)
Often the large companies that are using React have patent cross-licensing agreements with Facebook (or other special arrangements) that make the issue moot for them.
Otherwise, getting your in-house council (or even your board, depending on the situation/risk) to approve of using React with the very broad patent restrictions can be an uphill battle indeed.
No, seriously, that is what the contract said.
In reality, the bulk of developers used whatever they wanted with no consideration. I assume other contractors were under similar legal terms, but not sure about employees. I was seen as a pain when I kept asking for formal permission for stuff.
React isn't as popular in the real world as it is on HN.
Many don't, and don't.
BTW one can use [preact] which is an almost drop-in replacement, but smaller, and is under MIT license.
[preact]: https://github.com/developit/preact/
How did you arrive at that conclusion?
There are two things here: The copyright license, and the patent grant. Copyright applies to the concrete implementation. You have to agree to the license to be subject to it, and to legally use the code.
A potential patent applies to any implementation. Even if you write a clean-room clone of React, if it uses the same patent, Facebook has a patent claim. But that means the patent grant is not specific to the code; it doesn't even require consent, Facebook could allow you conditional patent usage even without your knowledge! A corollary is that you are strictly better off with the patent grant, it imposes no additional constraints on you.
License with no patent grant: Facebook can sue you for infringing patents, even if you are using a clone!
License with patent grant: Facebook cannot sue you for infringing patents, unless you do it first.
----
Second, I think the philosophy behind the patent grant is twofold: 1) that software patents are not legitimate. Enforcing a patent is not seen as a legitimate right, but an annoyance, like pissing on someones lawn. From that point of view, it seems not asked too much from somebody to refrain from doing that. (I don't know if that was the idea of the people who drafted that license, but it wouldn't surprise me.)
----
Another, unrelated observation (and please don't invalidate the first observations if this one is wrong as internet commentators are wont to do):
I see nowhere in the license [1] that it requires you to take the patent grant. Is that true? It would be silly to refuse it, because you are strictly better off with it, of course.
This is the point that most people seem to be missing, and it applies to much more than just React clones. If for Facebook has patents required for Virtual DOM, you are no better off if you use Vue.js or almost any other recent frontend framework. Just because you're using a project without the patents file doesn't mean those patents won't affect you.
Does anyone know what patents you are granted with the React license? Virtual DOM work that I and some colleagues did (and have patents for) pre-dates even the earliest internal Facebook experiments with the virtual DOM. We even spoke with the team at Facebook about our work well before React was even publicly released.
Sure, but that only rules out a reimplementation of React. The question most people face is "React or existing alternative X?". If your chosen alternative is still actively developed, it's probably notably different from React in concept and implementation (why else would it still exist).
Now if Facebook owns any react-related patents, you use all of them by using react, your alternative has a good chance to be sufficiently different to not be infringing.
In terms of your chances of using Facebook patents, any alternative is strictly better than React itself.
And note that that Facebook doesn't reciprocate that, and so if they decide to sue you for any alleged patent infringement then you cannot counter-sue for patent infringement they may be committing if you are using React. Also it makes you far weaker in negotiations about patent portfolios.
I personally dislike this whole patent business, but I can imagine even pro-patent people would also be against this.
From an ideological or appearances point of view, it seems a bit clumsy. People see it as a submarine to get access to their patents, rather than an insurance to prevent unnecessary patent litigation costs.
I wonder what other companies do with their patent grants, e.g. Microsoft. I remember MS had one that said, you may use our patent for the Ribbon UI, as long as you follow our UI guidelines and don't make an Office competitor (which I find pretty restrictive). But maybe there are other options out there that people would find more agreeable.
I think a unilateral patent grant for React in the license would be nice, but unrealistic. Maybe they should restrict the kinds of patent actions that trigger the invalidation of the grant, say only to certain patents, but it is hard to find a good compromise.
Anything I as a solo or mostly-solo dev would put together to sell would almost certainly be sold to a company less than 0.1% Microsoft's size - even at the 1% level it's just as likely that a company would decide they'd rather just build their own version or get someone to do so as a work for hire.
Edit: I'm also mentally picturing scenarios where Facebook's terms might end up tested in court. A developer team using an open-source framework without understanding the legal ramifications is one thing, and a thing done by people not authorized to negotiate binding contracts for the company. A purchase of a company or significant software (not off-the-shelf) on the other hand is by definition done by someone with authority to negotiate binding contracts. It's not that hard to imagine a scenario where that difference becomes relevant in court. Heck, I wouldn't be surprised if it turned out that Facebook had an intern or two somewhere focused on identifying and tracking projects using React and what companies they're owned by, just in case they end up in a conflict with someone and need to say "Hey, are they using anything of ours that can make this go away?"
Do you have a license to use Facebook's patents? Yes.
Do you have a license to use Facebooks patents if Facebook brings a patent case against you? Yes.
Do you have a license to use Facebooks patents if you bring a patent case against us? No.
If you do not have a patent grant, can you still use React? YES!
If you're going to down vote this, please say why. This is how I interpret the license plus patent grant. If I'm wrong, I'd like to know why.
The license to use React is governed by the BSD license, and it's not terminated if you end up suing Facebook over their violation of you VR patents or whatever.
Edit: Downvoted for a factual answer? There's a host of sources confirming by answer as correct, including Facebook's official FAQ on React licensing[0].
Q: "Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?"
A: "No."
That's about as simple as it gets.
I mean, if you can use the software without the patent license, what is the patent license giving you?
Your license to use React is therefor not governed by the BSD license. It governed explicitly by the Facebook Patents+BSD license.
Its not talking about terminating the patent grant, its talking about terminating the license to use.
Emphasis mine. So it seems to terminate just the patent grant. You can't terminate a BSD license so if you're in like France (no software patents) then you are fine to use React and sue Facebook for patent infringement.
This is totally incorrect, and has been debunked many time. "The license granted herein" is the patent grant, because that language occurs in the patent grant. The BSD license is totally separate.
This has been stated, repeatedly, by representatives of Facebook and independent lawyers; the language is standard and unambiguous. They even answered it in a FAQ here[0]:
Q: Does termination of the additional patent grant in the Facebook BSD+Patents license cause the copyright license to also terminate?
A: No.
I found this [1]:
> FB is not interested in pursuing the more draconian possibilities of the BSD+patents license. If that is true, there is actually very little difference between BSD+patents and the Apache license. As such, relicensing should make little if any pragmatic difference to Facebook.
So what happens if Facebook doesn't change the license and in the future changes its mind?
> My reading of that is if you use this code and Facebook infringes a completely unrelated patent that you own, you can't sue them for infringement without giving up this patent license. That is much broader than the language in the ALv2 which is limited to a single work.
So it almost certainly doesn't affect personal projects unless you are the sort of person who files for patents as a hobby, but for a commercial project, the scenario, I think, is that if you own some patent (not even a software patent!) and you sue Facebook for it, you lose your patent rights to React. In effect, you may as well be granting Facebook a patent license to literally all your patents for use in any context, in exchange for using React.
Also, it's not just Facebook: it also covers suing anyone for infringing your patent in their use of any other Facebook product or service, as well as "any party relating to" React -- so quite possibly, depending on how lawyers and judges read the license, you can't enforce your non-software patents against anyone who uses React.
I'd say that's overstating the case. You aren't granting them a license to your patents and you can still sue them for infringing (which you would not be able to do if you granted them a license).
Rather, you are promising to look the other way for as long as you are using React. Should you choose to sue,
1. You can say in your case that they never had a right to your patents
2. You can take the time to remove your usage of React prior to filing the court case (so that you never infringe).
2. Grant of Copyright License. Subject to the terms and conditions of this
Agreement, You hereby grant to Facebook and to recipients of software
distributed by Facebook a perpetual, worldwide, non-exclusive, no-charge,
royalty-free, irrevocable copyright license to reproduce, prepare derivative
works of, publicly display, publicly perform, sublicense, and distribute Your
Contributions and such derivative works. Based on the grant of rights in Sections 2.1 and 2.2, if We
include Your Contribution in a Material, We may license the
Contribution under any license, including copyleft,
permissive, commercial, or proprietary licenses. As a
condition on the exercise of this right, We agree to also
license the Contribution under the terms of the license or
licenses which We are using for the Material on the
Submission Date. Copyright (c) 2011 The LevelDB Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
View
The first list item disproves your statement.I agree you can add the Apache 2.0 license on top of that, but you cannot discard the BSD license unless you own the code.
There is an issue with a related discussion about it going for more than a year:
https://github.com/facebook/zstd/issues/335
Last update is interesting. Someone did a search and looked for any patents FB filed for and couldn't find any in last year. So somehow based on that they decided things are "OK".
To quote:
---
US allows to patent up to a year after the publication, allowing to conclude that ZSTD remains free of patents (?) - suggesting this "The license granted hereunder will terminate, automatically and without notice (...)" from PATENTS file has no legal meaning (?)
---
Anyone care to validate how true that statement is?
It is also quite possible that facebook collects patents under a different name, e.g. "faceless intellect llc", a wholly owned subsidiary of Facebook. Or they may have bought patents that are essential for ZSTD from someone else who filed them independently.
The conclusion that "zstd remains free of patents" is baseless and made by someone who is not familiar with patent practice.
Holy shit, what?! The US patent system means that you can infringe on patents that you had no way to know even existed at that point in time? How the fuck can someone look at this policy and think that it's in any way reasonable?!
The line "A year has passed, but searching patents with 'facebook compression' suggests no patent application regarding ZSTD has been filled" is not very convincing to me for a few reasons, primarily that the word "compression" may not show up at all in the patent document. When I got the text of the patent application back from the lawyers, after describing to them in engineering terms the thing we'd invented, I could hardly understand what it was talking about. Patentese is its own dialect of English, and there's no reason to assume that it'll say in straightforward terms that it's a compression algorithm.
And I'd find it highly unlikely it contains any patents too. Occulus was bought in March 2014 by Facebook and RakNet was bought in April 2014 by Occulus and there is only a handful of commits on GitHub that don't seem substantial at all and are just maintenance and cleaning up the repo. RakNet operated for years before that so it's unlikely they happen to have had a patent in it at the time of its purchase or they'd be nuked by Facebook before.
Then again, there are/were patents for some bit tricks and Carmack's Reverse so anything is possible.
There's already an issue [0] asking them to consider doing something similar for react, and Dan Abramov said he'd route the request internally on the next work day.
I can't imagine they'd keep the existing license without harming their community image. But even if they keep the license, many applications should be able to easily migrate to preact [1] and preact-compat, which provides a react-compatible API.
Hopefully they relicense the project. It seems like it's the first thing that gets brought up each time react gets mentioned.
All licenses to "use" and "distribute" this software are now contingent upon a patent. The copyright license is secondary to an overriding control and use and distribution via patent.
Apache 2.0
> 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
The important bit being...
> 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.
But what people seem to be missing (as far as I can tell) is that you don't lose the licence to use the software. You just lose the patent grants. But with the BSD licence alone, you lose both the patent grand AND the licence. I really don't see how the Apache 2.0 License and Facebook's BSD+Patent Grant are any different.
So hypothetically if Google released some JS frontend library under Apache 2.0, I don't lose the patent grant if I sue them for violating my company's VR patents, whereas I do lose my patent grant to React if I sue Facebook for violating my VR patents.
My company happily uses React, because we don't believe that's a risk worth worrying about, but it is a difference, and it might be relevant to some.
The part you said is important sounds like you lose the right to use the patent in the given software if you attempt to sue someone over patents in that software which sounds absolutely sane.
In facebook's case they terminate the patent grant given to you for you trying to sue them for any patent, except a counterclaim if they sue first: https://github.com/facebook/react/commit/b8ba8c83f318b84e429...
And even that is just few years ago, RakNet that Facebook owns via Occulus is still using the old wording: https://github.com/facebookarchive/RakNet/blob/master/PATENT...
So basically the difference boils down to the CAPS part below:
Apache 2.0: we grant you use of these patents, sue anyone over one of the patents we gave you and we take that grant away.
Facebook's BSD: we grant you use of these patents, sue anyone over one of the patents we gave you OR SUE US OVER ANY PATENT AT ALL and we take that grant away.
Another difference is what is covered. Apache is about suing, Facebook's BSD says you can't even 'take a direct financial interest in' any of the stuff they don't want you doing.
I do fully support this bit though, which is specifically to avoid that whole thing where Microsoft was bankrolling patent trolls.
So many of these questions would be easier to answer if anyone knew the patents FB actually has obtained on this technology.
You usually can get patents for "software-related inventions" but there's no huge "software patents" problem in most other places like there is in the US.
> No.
> Does the additional patent grant in the Facebook BSD+Patents license terminate if I sue Facebook for something other than patent infringement?
> No.
https://code.facebook.com/pages/850928938376556
Consider re-licensing to AL v2.0: https://github.com/facebook/react/issues/10191
https://github.com/facebook/react/blob/master/PATENTS
The actual license text is what matters, not what some intern wrote on a page.
And then
>against that party
IANAL, but does that mean that if Facebook proper transfers a patent to a new subsidiary (wholly owned patent troll) they can sue you, and the only patent counterclaim you can make without terminating your ready license is against the troll subsidiary, not Facebook proper?
If Facebook had not included this Patent grant and had released React under only the BSD license then any user would be in the exact situation which everyone is complaining so loudly about being in IF they decide to bring a patent action against Facebook. Specifically, you would be open to being sued by Facebook for violating a patent which they own.
What this grant says is for one specific circumstance (you haven't brought a patent suit against them) and for one specific limited set of patents (those related to React), Facebook will not sue you. If you like that protection then don't sue them. If you decide that you do want to bring a patent suit against them then you're right back where you were to begin with. Your one small limited protection is removed and Facebook can once again sue you if you violate one of their patents - just like they could before you started using React in the first place.
This business about it being asymmetrical is IMO a distraction. What would it mean for it to be symmetrical? That it would only trigger if you sue them for a patent violation related to React? What does that mean? You don't hold React patents, Facebook does. How would you sue them for a violation of a React patent? It makes no sense.
Many corporate lawyers operate on the assumption that all open source licenses that do not mention patents (BSD, MIT etc) implicitly grant a patent license. Clarifying this ambiguity is seen by them as harmful — that’s why approval of CC0 at OSI was abandoned[1], for example. Including an explicit patent grant removes the possibility this could be argued in court and is seen as an escalation of the patent conflict by Facebook.
Given many voices at Apache are being quietly guided by corporate counsel, this seems the most likely underlying explanation for the antipathy that's been rationalised out into the open.
We know this statement to be a lie. A deliberate falsehood. There are extra conditions by which you may use or distribute this software.
It was never open source.
So say Facebook was infringing on one of your patent, you could still sue them, but you'd have to give up React if you did. Is that correct?
If you sue Facebook for infringing on your patents, then you lose the rights to any patents which Facebook may or may not have on parts of React.
Nobody has, to my knowledge, found one of these patents to date.
So my guess, is Apache and GPLv2 together makes sense if author wants to give the user the maximum choice in combining the library with other software. That because depending which lawyers you ask Apache and GPL are not always compatible.
So say your code is Apache and you want to use RocksDB, you can pick to use the Apache license for it. Your code is GPL, then you can pick GPL.
> Hi all, wanted to jump in here to let everyone know that the RocksDB team is adjusting the licensing such that it will be dual-licensed under the Apache 2 and GPL 2 (for MySQL compatibility) licenses.
The whole decision seems to have been taken by "not-a-lawyer" people with their own interpretations. Doesn't the Apache Foundation have some software lawyers they can ask?
The reason Facebook doesn't, I assume—and this is just my personal opinion—is because Facebook wants to do evil shit in the future that the Apache 2 wouldn't allow them to do. Otherwise, I just don't see any value for Facebook in all the negative publicity they've gotten over this idiotic patent grant crap they're trying to pull.
But MS and Google are big fish relative to Facebook, private deal or not.
:-)
LEGAL-303 (the issue linked here) was opened to ensure that we were legally clear to do that. The answer of "no" basically means that a project such as Cassandra:
- Can create a pluggable storage engine that enables RocksDB
- Can not have the RocksDB implementation of that plugin in an Apache repo
There were about half a dozen other ASF projects (Kafka, Samza, etc) that had some reference to RocksDB in their source, that likely would have been impacted.
There are about 50 ASF projects that seem to have some reference to React in their source, which (as this HN comment section clearly noticed) is much more heavily used, and seems to scare more people.
The RocksDB team has already re-licensed the project to make it compatible.
Whether or not that happens with React will determine the apache projects' reactions - a product like CouchDB, which uses react for its database user interface, may have to strip it out (or use a drop-in alternative) before their next release, which is probably a LOT of work for someone.
[1] https://github.com/caffe2/caffe2/blob/master/PATENTS
[2] https://github.com/torch/torch7/blob/master/COPYRIGHT.txt
[3] https://github.com/pytorch/pytorch/blob/master/LICENSE
[4] https://github.com/tensorflow/tensorflow/blob/master/LICENSE
So even if Facebook tries to patent that particular invention/innovation, it may not stand up to legal scrutiny depending on the filing date. AFAIK, Facebook didn't do a provisional patent for virtual DOM stuff before July 2012 (long after I released Blossom), because that patent filing would have become public AT THE LATEST on January 1st, 2016 and nothing has come to light that I'm aware of.
So…you should be safe (IANAL).
[0] Ironically given the subsequent popularity of React, the SproutCore team rejected my virtual DOM approach which is why I had to fork it. Live and learn. I actually came up with the specific virtual DOM + diff design in spring 2008, but didn't get around to writing the code for it until someone paid me to do it (I had asked Apple and they declined). Eventually, the copyright owner of SproutCore (Strobe, Inc.) got bought by Facebook, though I don't recall when…
It's tempting to consider the BSD license independent of the additional patent license. However, the OSI has not approved CC0 as being open source precisely because it expressly reserves patent rights [0]. In the OSI's justification, permissive MIT and BSD licenses may provide implicit patent license, so by themselves they are open source. However, like CC0, BSD+Patents expressly exclude this possibility. Indeed, Facebook's licensing FAQ deems the combined work of the BSD+patents to be the license [1]. Further, recent court case has shown that these licenses are not simply copyright or patent statements, but can be actual contracts [2].
Hence, we have to consider the BSD text + the patents file text as the combined license. This license is not symmetric and hence may violate OSI license standards. I've made this comment in the facebook bug report, https://github.com/facebook/react/issues/10191
[0] https://opensource.org/faq#cc-zero [1] https://code.facebook.com/pages/850928938376556 [2] https://perens.com/blog/2017/05/28/understanding-the-gpl-is-...
After going to our lead dev, who in turn went to our project manager, we received an email from our legal department a few days later that simply stated we would not be using React due to "certain patent constraints."
Having not done any prior research, I looked into what the problem might be and was pretty floored with what I found. At first I scoffed when they said no, but after reading about the patent situation I totally get it.
Glad the long-term legal implications will be given serious consideration publicly, rather than the "this is not the droid you're looking for" I've seen nearly everywhere so far!
I don't think avoiding React makes you any safer. You don't know how broadly Facebook or the courts will interpret their patents.
Clearly the apache 2 license would be preferable (and what rocks db did), but I am puzzled the foundation accepts bsd code in their products, given their worry about patents.
Looks like they're working on amending this issue, could very well be a case of legal getting involved and the regular engineers not realizing the change or simply not paying attention. Alternatively, maybe this is just crisis management and they were just hoping this wouldn't happen.
> As noted earlier, the availability of a GPLv2 license does not preclude inclusion by an ASF project. If patent rights are not conferred by the 3-clause BSD and required by ASLv2 then would not these licenses be incompatible?
---
> he has discussed the matter with FB's counsel and the word is that the FB license is intentionally incompatible. It is hard to make the argument that it is compatible after hearing that.
I cannot sue Facebook for patents in react or lose my react license, but I could some other patent I own e.g. fizzbuzz that Facebook is violating. Is this correct or is it any patent?
If it is any patent, I cannot believe that was the intent even if that's how Apache Foundation is interpreting it.
I wonder if such a clause is actually enforceable. Are there any actual cases where this clause was invoked?
People should be aware that Atom (the editor) uses React internally, so it's possible you face similar legal exposure without even shipping anything just because you agreed to the terms by installing an editor.
I'm sticking with Vue, even if (and that's a big if) it might also infringe facebook patents.