Finally, people are beginning to realize the insanity of this entire PATENTS file situation!<p>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?<p>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.<p>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 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]<p>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.<p>So…you <i>should</i> be safe (IANAL).<p>[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…<p>[1] <a href="https://github.com/erichocean/blossom" rel="nofollow">https://github.com/erichocean/blossom</a>
I really have no idea why react is so popular with such a silly license.<p>I agree with this move.<p>There are plenty of OSS projects out there without patent thing attached to its license so no reason to use react.
I'm not a lawyer, but perhaps Facebook's BSD+Patent license is not even open source.<p>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].<p>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, <a href="https://github.com/facebook/react/issues/10191" rel="nofollow">https://github.com/facebook/react/issues/10191</a><p>[0] <a href="https://opensource.org/faq#cc-zero" rel="nofollow">https://opensource.org/faq#cc-zero</a>
[1] <a href="https://code.facebook.com/pages/850928938376556" rel="nofollow">https://code.facebook.com/pages/850928938376556</a>
[2] <a href="https://perens.com/blog/2017/05/28/understanding-the-gpl-is-a-contract-court-case/" rel="nofollow">https://perens.com/blog/2017/05/28/understanding-the-gpl-is-...</a>
I think this is an overreaction (pun accidental).<p>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.<p>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.<p>License with no patent grant: Facebook can sue you for infringing patents, even if you are using a clone!<p>License with patent grant: Facebook cannot sue you for infringing patents, unless you do it first.<p>----<p>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.)<p>----<p>Another, unrelated observation (and please don't invalidate the first observations if this one is wrong as internet commentators are wont to do):<p>I see nowhere in the license [1] that it <i>requires</i> 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.<p>[1] <a href="https://github.com/facebook/react/blob/master/LICENSE" rel="nofollow">https://github.com/facebook/react/blob/master/LICENSE</a>
I was interested in React based on what I'd read and was figuring it'd be worth looking into, but this provides all the reason I need to avoid it - I don't forsee a situation where I would personally or as a small company be suing Facebook, but I could see developing something then selling/trying to sell it to a larger company. If my code comes with a big side of "oh, and if you buy this you won't be able to sue Facebook or its affiliated companies for patent infringement" that could significantly hurt sales chances.
RocksDB has fixed this <a href="https://github.com/facebook/rocksdb/commit/3c327ac2d0fd50bbd82fe1f1af5de909dad769e6" rel="nofollow">https://github.com/facebook/rocksdb/commit/3c327ac2d0fd50bbd...</a> now and moved to Apache / GPL dual license.
I worked or a large company on several web-based apps right around the time React came out. There were some UI issues I thought could be sorted easily using React.<p>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."<p>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.
Can someone explain how this can affect to projects using react, as in a part of a product of a company or personal projects? Thanks<p>I found this [1]:<p>> 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.<p>So what happens if Facebook doesn't change the license and in the future changes its mind?<p>[1] <a href="https://github.com/facebook/react/issues/10191" rel="nofollow">https://github.com/facebook/react/issues/10191</a>
So push finally comes to shove.<p>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 was wondering about a similar issue for zstd compression library. It has a similar BSD+Patentsfile thing.<p>There is an issue with a related discussion about it going for more than a year:<p><a href="https://github.com/facebook/zstd/issues/335" rel="nofollow">https://github.com/facebook/zstd/issues/335</a><p>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".<p>To quote:<p>---<p>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 (?)<p>---<p>Anyone care to validate how true that statement is?
In the discussion they say RocksDB will be relicensed under dual license Apache 2 and GPL 2.<p>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.<p>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.<p>Hopefully they relicense the project. It seems like it's the first thing that gets brought up each time react gets mentioned.<p>[0] <a href="https://github.com/facebook/react/issues/10191" rel="nofollow">https://github.com/facebook/react/issues/10191</a><p>[1] <a href="https://preactjs.com" rel="nofollow">https://preactjs.com</a>
If Facebook has patents that cover React functionality. They almost certainly cover parts of other JavaScript frameworks. React is well executed, but it's conceptually simple.<p>I don't think avoiding React makes you any safer. You don't know how broadly Facebook or the courts will interpret their patents.
Ok. With the BSD + patent grant<p>Do you have a license to use Facebook's patents? Yes.<p>Do you have a license to use Facebooks patents if Facebook brings a patent case against you? Yes.<p>Do you have a license to use Facebooks patents if you bring a patent case against us? No.<p>If you do not have a patent grant, can you still use React? YES!<p>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.
INAL - But this seems strange to me. The Apache license has what I see as being the same patent grant, with the same condition that if you make a claim against them, you lose the patent grant.<p>Apache 2.0<p>> 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.<p>The important bit being...<p>> 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.<p>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.
I don't understand how code with a bsd license without a patent grant is better for the apache foundation than facebook's bsd + patent license. With the former, the entity donating the source can sue you for patent infringement at any time.<p>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.
How did Facebook was able to change the license of RocksDB so easily? The CLA is not a copyright assignment and therefore all contributors have to agree for the change. Did they contact anyone who has signed up the CLA?
> Does the additional patent grant in the Facebook BSD+Patents license terminate if I create a competing product?<p>> No.<p>> Does the additional patent grant in the Facebook BSD+Patents license terminate if I sue Facebook for something other than patent infringement?<p>> No.<p><a href="https://code.facebook.com/pages/850928938376556" rel="nofollow">https://code.facebook.com/pages/850928938376556</a><p>Consider re-licensing to AL v2.0: <a href="https://github.com/facebook/react/issues/10191" rel="nofollow">https://github.com/facebook/react/issues/10191</a>
>>
David Recordon
Added Yesterday 21:10
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. This should happen shortly and well ahead of August 31st. I'll leave the history and philosophy around licensing alone since it's generally a complex discussion to have and I'm not sure that it has actually been fully captured in this thread especially vis a vis Facebook's intent.
Hopefully this morning's guidance to PMCs can be adjusted since I don't think any of us see a bunch of extra engineering effort as a desirable thing across the ASF projects which are already making use of RocksDB
Thanks,
--David<p>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.
I rejected using React in a project just for this reason. I'll be perfectly honest: I didn't (and still don't) completely understand the implications, but on it's face it sounds like trouble.
Am I reading this right that Apache's unwillingness to use rocksdb under the custom license pressured Facebook into switching to Apache || GPLv2? That is pretty cool!
There is so much FUD around this PATENTS file.<p>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.<p>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.<p>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.
So if I understand correctly, by using React, you agree that if you sue Facebook, you'll need to stop using React? And that goes no matter the reason why you're suing them for?<p>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?
As the other comments say, RocksDB is going to be dual licensed both GPLv2 and Apache. What's the advantage to doing so? If I choose to consume the library via the Apache license, I'd never have to contribute back code; doesn't this invalidate the copyleft of GPLv2?
This keeps coming up as a concern with back and forth "it's a big deal"/"it's not a big deal" - so if FB has no ill-intent from this, are there any simple, obvious changes they could/should make to the React license?
And now, for a tinfoil hat moment: even though companies like Microsoft and Google are using Facebook's libraries, it is possible that they have some kind of private deal in regards to the patents clause.
Interesting note from the discussion:<p>> 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?<p>---<p>> 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.
Is it any patent, or only patents pertaining to the "Software" as defined in the license (react)?<p>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 <i>any</i> patent?<p>If it is <i>any</i> patent, I cannot believe that was the intent even if that's how Apache Foundation is interpreting it.
If your landlord does something that they would normally be within their rights to do in retaliation to you enforcing some other provision in your agreement, then it is illegal. I'd bet that this was not the kind of statute that they could override in a lease agreement.<p>I wonder if such a clause is actually enforceable. Are there any actual cases where this clause was invoked?
Thanks to David Recordon this has now been fixed and RocksDB is now dual licensed under Apache or GPL 2. The ball has been started to have the same change occur at React, which AFAIK is still under the old BSD+Patents license. Please click through the OP's link to get the current details.
What will Facebook have to do now - they either have to opensource their infringing software or re-write them convincingly (Wasn't there an Oracle vs Google case about duplicate implementations of a function?)
IANAL, but...<p>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.
Reading a bit more the thread, it's quite surprising. The assignee is Chris Mattmann. From his webpage, he is not a legal counsel. The only evidence of a problem they show is that BSD alone implies a patent grant but coupled with an explicit patent grant, this is not the case anymore. The other evidence is brought by Roy Fielding who does not appear to be a legal counsel either about a discussion (oral?) with Facebook's legal counsel that the license is incompatible with ASLv2.<p>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?
I've never liked react (and not only because of the sketchy licensing, in fact, that's fairly low among my qualms about react) so it's nice to see validation.<p>I'm sticking with Vue, even if (and that's a big if) it might also infringe facebook patents.
I've made a pull request to fix that situation <a href="https://github.com/facebook/react/pull/10195" rel="nofollow">https://github.com/facebook/react/pull/10195</a>
I hate Facebook but I also hate patents so I like this license and wish more projects would use it because lawsuits impede progress, damage the economy, and no matter what the laws are curious smart people will always invent.
I'm sorry but I struggle to take anyone here seriously that thinks that having to not use a specific js framework would be grounds to be legally neutered in a patent litigation case
Luckily React itself is no longer unique in itself, and project can use the ideas popularized by React with liberally licensed alternatives such as Preact or Inferno.