-
Notifications
You must be signed in to change notification settings - Fork 24k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Relicense React Native to MIT along with React, etc. #16079
Comments
Very much missed opportunity to start the community off again on fresh, legally neutral grounds. Facebook have the resources and patents porfolio now to defend themselves against any foe, troll or otherwise (cough Yahoo cough) when it comes to patents. If they truly want to make their technology core to other companies' and foster more shared innovation for 99.99% of what won't be a legal issue for them, they should relicense ALL their OSS and drop the patents clause. |
My guess is that in the end they will release RN and GraphQL under MIT licenses. (just wondering how much stupid lawyers can damage a company image) 😠 --R |
Lawyers are not stupid. I had to deal with too many for better or worse. They are just laggy. |
At the moment I'm actually somewhat relieved. I do not think that relicensing to plain MIT, which has no patent protection of any kind as opposed to something like Apache 2.0 is a good idea. MIT grants us users of react-native an open license to the copyrights involved in Facebook's work on react-native, but it doesn't grant a license to any patents. The current PATENTS file may not be the best for the OSS community, but IMHO neither would pure MIT. I just skimmed over a list Facebook's patent applications and I see a couple of ones that could at some point be relevant to react-native. It would be just as bad for the OSS community if Facebook relicensed react-native to plain MIT and used techniques they've patented as part of react-native without granting a license for those patents, letting them sue any user of react-native using patents even though they licensed copyrights. |
This is a good point. With the previous license + patent grant, everybody knew we had a grant to use the related patents (until specific termination clauses). |
MIT license does not have any form of patent grant or protection. Under pure-MIT any mobile software patent applicable to react-native can be used to sue any react-native user.
I don't think the idea of termination itself in the patent grant is the problem, but the execution of it. The majority of OSS licenses that have a patent grant in them contain some form of a termination clause to the patent grant. Apache 2.0 has an explicit termination clause that terminates the patent grant if you institute relevant patent litigation. MPL 2.0 copies the termination clause in Apache 2.0. And while GPLv3 doesn't have an explicit clause a combination of the virality, patent, and termination clauses effectively make it so trying to sue anyone regarding usage of the software terminates all your rights under the license (copyright too, not just patent grants). The only OSS license with a patent grant but no retaliation clause is the uncommonly used EPL. From what I understand from comments/articles I see in a quick search there are a few issues with the execution:
TL;DRThe correct fix to this issue would be to relicense react-native not under MIT but instead either license under Apache 2.0 or dual-license it under Apache 2.0/GPLv2 (for compatibility with GPLv2-only projects that cannot use Apache 2.0). Facebook likely already knows this, because they already relicensed RocksDB as Apache 2.0/GPLv2. |
Nice write-up, thanks for the legal analysis. |
@dantman Do you mean I could be sued anytime if I use any libraries under MIT license Like Preact.js, Vue.js, AngularJS)? So why does MIT license exist? |
@lsycxyj There are two answers to that: Firstly, the reason MIT exists in its current form is because the MIT license was created before software patents even became "a thing". Secondly, patent grants are only relevant if the creator of / contributors to a library actually have patents relevant to a library.
For most small libraries none of the developers have patents and/or the library doesn't do anything any of the contributors could get a patent for (ie: it doesn't do anything that hasn't been done before that you could patent). So MIT is fine for them because there is no point in including a patent grant. This is likely the case for projects like AngularJS and most of Vue.js. As for Preact.js and Vue.js' diffing, that entirely depends on whether Facebook has a patent for the HTML/virtual diffing algorithm and whether Preact.js or Vue.js use the same technique. Of course license choice is irrelevant here, since those libraries aren't made by Facebook you wouldn't get a grant for a Facebook patent even if those libraries used Apache 2.0 or GPL. Of course since Facebook changed React.js to MIT without a patent grant (meaning React.js doesn't have patent protection for any possible patent related to the diffing algorithm) it's likely there aren't any patents held by related to React/Preact/Vue.js held by any relevant entity. The problem with react-native is that it's being developed by large entities with large pools of patents (Facebook and others), react-native is part of the mobile ecosystem, and Facebook has or is trying to acquire a number of mobile related patents, which may or may not apply to techniques used in react-native or Facebook may add code using these patents in the future (Facebook and their internal developers use react-native internally and pull changes from that back into the open-source library, so it would be very easy for someone to intentionally or unintentionally slip in code using one of Facebook's patents). For instance Facebook has patent applications for patents relating to denoising and predicting touch input. Which could be applicable to techniques that may be used in the react-native touch responders now, or in the future if a Facebook developer decides react-native responders are too unreliable in a Facebook app and adds something patented into react-native. |
@dantman So could I interpret your answers as "I still could be sued if I use AngularJS under MIT license because, for example, AngularJS may get a patent something like relating to algorithms of dirty data checking and updating elements in the future"? |
@lsycxyj AngularJS doesn't use virtual dom diffing like React/Preact/Vue.js. And the dom binding techniques that AngularJS uses have been used for ages, there's little "new" that AngularJS is doing from what I can tell. So it's unlikely that someone writing AngularJS could get a patent for anything AngularJS is doing. |
As Adam Wolff said earlier, we're evaluating our open source projects' licenses, but each project is different and alternative licensing options will depend on a variety of factors. I'm going to close this issue, as this is not an appropriate place to address license questions. |
React Native (including Metro, Fresco, and Yoga) has also been relicensed as MIT. |
Facebook announced that React, Jest, Flow, Immutable are being relicensed from BSD+Patents to simple MIT. Unless there's particular reason for React Native not to and/or this is in a conversation somewhere I'm not seeing, RN should also be relicensed similarly.
For reference, this is the PATENTS grant file in RN that's similar to what's in React also, currently.
The text was updated successfully, but these errors were encountered: