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
Update PATENTS #3554
Update PATENTS #3554
Conversation
IMO, and in the opinion of several developers I've spoken with in the burgeoning react community, this kind of language has no place in the OSS world and sets a poor precedent. I don't fully expect this to be removed or merged, but I'm registering my opinion with a PR.
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at cla@fb.com. Thanks! |
This is a legal matter and won't be resolved without lawyers. |
@zpao said who about OSS ever? Seriously? Is there no other public comment about this than that? |
I've been in front of the community teaching react. The question has come up multiple times and I've had no good answers. What's the deal? |
@colinmegill We understand your concern/pain. We are in dialog with legal about the potential to change this language. Unfortunately, for legal reasons, we can't comment further. |
@JSFB That's all I need to hear. Thanks! I want to let you guys know about the rumbling out here. It exists. |
Any comment on legal matters must come from the lawyers. I can't predict what commentary would be available at the end of the discussions. |
@JSFB @zpao -- Former (and presently inactive) patent attorney here... your lawyers should be able to come up with a non-binding potential timeframe that you can disclose to us publicly as to when to expect further clarification of the issue. And as a current React developer, I can say that we'd all love to have a better idea as to when we're going to hear back on the issue. ;) Thanks! |
There's a fairly extensive conversation on Hacker News on what this patent policy means: https://news.ycombinator.com/item?id=9271331
I, like many others, would encourage some consideration from Facebook legal, as the license currently stands in the way of a lot of progress. |
I've always considered the consternation about this to be quite strange, especially considering the Apache License 2.0 has virtually the same clause, though possibly with slightly more obvious wording. What this text does is offer a patent grant, unless you're engaged in patent litigation with Facebook. It seems completely impossible for Facebook to provide such a grant and still expect to win a patent lawsuit—so the grant becomes null and void in that particular case. I don't see any way that this has any bearing on the BSD license.
That seems like a pretty dubious reading to me, but then I'm (thankfully) not a patent attorney. Some clarification from Facebook legal would be good on this part. It is, however, pretty clear to me that 1) this is designed as an extra patent grant, on top of the already free code, to be taken away only in the case of patent litigation against Facebook, 2) removing it completely would be bad for the community. Still though, I'm definitely not blaming anyone for wanting more clarification. If I'm wrong about any of this, feel free to shout at me. But at the same time, I do believe people should assume good faith here. |
Yeah definitely. I'm totally assuming good intentions. I'm sure everyone is trying to do the right thing. I think we're just stuck between laywercat speak and interpretation, and trying to see how it maps to typical open source expectations. |
In one of the threads discussing this topic I read something along the lines of "since the BSD license makes no mentioning of this, you could fork and freely remove the patents file". The good faith argument works for individuals and maybe tiny companies. If you work at a larger company that won't fly. Our team had to run this by our legal and get an OK from them. If you are in a similar situation, just do that. |
To clarify, I meant in this discussion. You're absolutely right about your company's viewpoint. It's just that I've seen people make all sorts of crazy claims (or vague allusions) about this file, on HN and other places. Even seen people talking about how someone should make a "patents-free ReactJS alternative". But thankfully the discussion here is more sober and to-the-point. |
Comments like this really hurt adoption: https://news.ycombinator.com/item?id=9271331
|
If I were to advocate for software patent reform that affects the validity of Facebook's patents, does this activate the termination clause in the patent grant? What are the potential and likely legal consequences for activating the termination clause of the patent grant? |
That is certainly not the intention. We will be clarifying this shortly; thanks for your patience in the meantime. |
We updated the grant: b8ba8c8 |
@jamesgpearce #3617 (comment) probably goes best in here :) also 👍 |
Much better. Thank you and congratulations. :) <3 |
@facebook A grant is not a license, so the update only deepens the issue... For an easy fix, please forward this link made by github to your lawyers: |
osquery's BSD License @Ab34 I don't work for Facebook and I'm not a lawyer, but a project licensed under the BSD license is not a guarantee that you're safe from patent infringement, if you need an example of that then you need to look no further than the BSD-like licensed VP8 codec. If you can substantiate your claims then please do, but rash action is only counter-productive to the discussion. |
@syranide A license can only terminate through its own clauses. So you can not grant a license under the clauses of a separate grant. A grant of license is to provide to the licensee the right to use the licensed software in accordance to the terms of the license agreement. The license agreement here is the BSD license agreement. So termination clauses can only be the one described in the BSD license agreement. Therefore the Additional Grant of Patents is invalid and has no legal meaning. It only creates confusion by putting two licenses on the software. But two licenses are mutually exclusive and incompatible by definition if they do not claim exactly the same thing regarding to the user's obligations... Users want to know precisely and exactly what is the license of what they are using and not to inherit from two contradictory grants of license for the same software. Thanks for your understanding. Note: It is not difficult for Facebook to extend the content of the BSD license if they want and to put their patents claims in it, but to call it BSD or to present it as BSD is non-sense and brings confusion to the table. They could change the name to "Facebook-BSD" or something else and put everything into the same file called "License", and that would solve the issue. That said, that would not make of it a real open-source license, just a permissive Facebook dependent license as it is presently, but it is what Facebook wants to offer anyway. Note 2: In other words:
A bit of discipline and less of intellectual laziness from the part of lawyers would be appreciated for the benefit of all. Thanks. |
@syranide Of course, you can use a BSD license and infringe a patent at the same time. It is not contradictory. But there, it is stated that you obtain a BSD license of the software for you to use, and that this BSD will terminate if you mess up with one of Facebook's patents. This is not in the BSD termination clauses. So you may break Facebook's patents copyright but not the BSD clause. So BSD license is still valid if the license is really BSD, as it is claimed to be, but falsely apparently, because the grants are contradictory. So it remains unclear if Facebook wants to put a dual-license or a single license on their projects: If it is a single license, then it is not BSD, because BSD is BSD and nothing else. If it is a dual-license, the two grants can be contradictory but should not refer to each other. In that case, the user may choose what license he wants to use the software under or what license he is eligible to. But here, one grant refers to another by including it. So there are two grants saying the two are applying at the same time, and the "patent related one" can terminate the other... This is just plain invalid and has no legal meaning. Either one uses BSD and that is all, either one uses another license that is more restrictive, but not the two at the same time. The question of patent infringement is another one. Patent infringement is infringement of a copyright, not the infringement of a license. So you can infringe a patent while at the same time being clean with your licenses used to infringe the patent. That is why many people think that patents are controversial and should not exist by the way, because they are just blocking the innovative process and favors abusive power position. For example, imagine a company putting a patent on web buttons, by carefully describing buttons and their roles on the webpage. Potentially all webpages having a button, nearly the whole internet, would infringe the copyright exposed by the patent. Problematic, right ? You can be clean with the libraries licenses you may use for creating the button on your page. But you still may be pursued by the owner of the patent for infraction of his patent... Note: one could name this new license invented by Facebook: "The Facebook Punitive License". It is a free license, but if ever you mess with Facebook's patents (for example by building a social network site, or putting a kind of social map on your website), you may be pursued for it, and moreover this license which may be unrelated to the infringement will be removed from you. :-) Wow |
In other words, licenses are immutable. |
@Ab34 Google's VP8/webm seemingly has the same legal approach, so it doesn't seem like something fishy Facebook's legal team made up, webm's New BSD license and webm's Additional IP Rights Grant (Patents). http://www.softwarefreedom.org/blog/2013/may/29/vp8-cross-license-draft-foss-compatible/ says:
This may be a misrepresentation of facts on my part, this is not my expertise after-all, but that sounds only logical to me. Again, I'm no lawyer, I'm as interested in this as everyone else as an outsider, but substantiated facts is the only way forward in this discussion. |
@syranide Great resources, thanks for bringing them on the table ! Yes, facts, only facts can nurture a true investigation. The major difference is that in the case of Google, the patent license addition (the "cross-license") relates directly to the licensed project itself, and thus is not contradictory with the main license:
So the only purpose of the cross-license patent grant is to allow the user to benefit from the licensed project even if the use of the project implicitly implies the infringement of one of Google's patent. In that case, the use of the main license itself infringes a patent, so a cross-license is needed. It is not a defensive implementation of the main license restricting the use of it. In our case, there is no implicit infringement of patent in the project by using the main license alone. In fact, what describes the last commit is a generalized patent grant covering all Facebook's patents, even unrelated to the main license, and furthermore stating that it can terminate the main license itself... It has no sense... because licenses are immutable, they can not be changed by another thing or otherwise there would be multiple licenses applying at the same time for a project...which would be an impossible mess to manage... So Google does not infringe the immutability principle of licenses by introducing his "cross-license". On the contrary, the "cross-license", that is, the added patent license, is what allows the main license to be valid in respect to the patents. Here it is a quite different thing. Facebook breaks the immutability principle of the BSD license by saying that it can terminate whenever any patent, even unrelated, is infringed... Furthermore, it is a restrictive "cross-license" in the sense that the intent here is not just to allow the use of the main license in conformance to the existing patent laws related to it, but rather to limit or end or restrict its usage whenever an infringement, any, has been risen. Quite a different thing ! When you know what license you are using, it is clear what you can do and not do, but in the case of patents, you may infringe a patent without knowing it. It suffices that you have the same idea than someone, or partly. Two people not being related to each other can work on the same idea without knowing it, and if one of them puts a patent on the thing, the other may infringe the thing, even only partly, without even knowing it. And in that case, with Facebook's point of view, not only the one infringing the patent may be pursued for it (whereas he has worked alone and for himself), but furthermore, the infringement implies that he may lose licenses for other unrelated tools and projects at the same time. One knows defensive programming, but here it is defensive licensing! Not quite OSS spirit. And anyway, it breaks the immutability principle of licenses which makes them to have a meaning on their own, as stand-alone, independent and solid descriptions of the context in which a project can be used, on its own. The actual proposed license is rather tentacular and restrictive, and not quite legal to my view in the sense that it mutates the BSD license clause from the outside which is quite problematic from a legal point of view. |
@Ab34 [PATENTS] Facebook osquery's Additional Grant of Patent Rights Version 2
[PATENTS] Google webm's Additional IP Rights Grant (Patents)
It seems to me like the same legal framework (and everyone seems fine with Google's) and I interpret them both to have the outcome, the termination of the additional patent rights license (again, I'm just a layman), not termination of the main New BSD license. It seems you don't and that is the issue you take with it? Or am I misunderstanding? Anyway, you don't need to explain it to me, I'm an "outsider" just like you on this matter. |
@syranide Cool, that is a good point. A layman generally can see things with fresh and innocent eyes, not biased by the intellectual habits and rigidity of the so-called experts. The termination, in both case, is the termination of the main license for the project, that is, in both case a BSD license. But concerning the additional patent license, the only point that is common is the following: Google:
Facebook:
All the rest is totally, completely, different, both in the intent, in the consequences and the legal applicability: For Google, the legal framework offers a patent license allowing to expose and therefore use the BSD License for a project already using a patent implementation. For Facebook, the "legal"(?) framework adds a "restriction patent license", terminating the BSD license of the project, in case of any "patent assertion", concerning any patent owned by Facebook or its corporate affiliates (how many and who are they ?), even if the project does not implement any patent itself... So you can see it is totally different... Facebook's legal framework is like an obscure and dark gas-works where nobody can know for sure what can trigger the termination of the main license. From a legal point of view, it may be really adventurous to use any of Facebook's opensource projects for production at this time in those conditions. Nice to play with though. |
@syranide That said, I understand your point. You interpret it by saying that what terminates is the patent license. And I said it was the main license. Facebook may precise about it if they care about clarity, but my guess is that both the patent license and the main license terminates, in their legal construct. You may understand now why I said that this legal framework is like a gas-work, and personally I don't want to be in it, when someone will strike a match, as it will inevitably blow up, sooner or later. We would have been the outsiders, yes, the witness about the falseness of it all. When one thinks about it, it is silly all those complications around intellectual property, how mankind is losing its time and energy in vain protections and struggles about it. It would be way more simple to consider that everything that is public is free to use for anyone, and to build upon, without any restriction nor limitation for anyone. Technique is already enough complicated but we lose our time and money with all those silly struggles, and possessive, selfish instincts. Building a company or a software, nowadays, is like building a castle of cards with people threatening to remove some cards from the foundation pretending they are theirs. And it really doesn't benefit to anyone, neither to creativity nor to real and genuine cooperation between human beings. Well, we can not change mankind I guess, but only oneself. |
@jimfb - It's been over 4 months since someone opened this issue. I assume that since the patent license has not change, legal has silently made a decision and it will stay as is for the foreseeable future. If not, then a status update would be helpful. I'm a big fan of React but I currently have to switch from using Om in a cljs project because patent license creates a potential risk for future litigation with Facebook. |
@dqdinh On the contrary... we did update our patents grant: https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/ |
The diff is here: b8ba8c8 |
@jimfb Thanks for highlighting that update. It is a helpful talking point in defending using React for my project. |
We are not allowed to use react because of this. It is interpreted as giving Facebook the right to all our patents. Anyone else experience the same? Is there any possibility of fixing this or is it Facebook's intention? |
@zhech2 no i'm pretty sure your company needs better patent laywers... |
@zhech2 Yeah, that is absolutely not the case, see #7293 (comment)
|
Simple workaround to this problem: don't use React. |
For what it's worth, this: http://www.elcaminolegal.com/single-post/2016/10/04/Facebook-Reactjs-License was exactly the nature of conversation I was having with developers in the community when I opened this PR. It's up on HN today. I've used React for two years happily despite it, though :) |
We’re relicensing React, Jest, Flow, and Immutable.js under the MIT license. https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/ |
Really great 🙂
…On Fri, Sep 22, 2017 at 3:12 PM Dan Abramov ***@***.***> wrote:
We’re relicensing React, Jest, Flow, and Immutable.js under the MIT
license.
I hope that this addresses your concerns.
https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#3554 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABsDGZJFx1t4SGKL6xYMD7EgpXu4iKzNks5slDDUgaJpZM4D4Fpb>
.
|
Fantastic news! Thank you! 💯 |
Great! Thanks for all of your hard work! :) |
@gaearon I know it's been troublesome and tiresome for you guys. Big round of applause to you all for making this change and all the amazing upcoming React improvements you're working on. |
☝ |
IMO, and in the opinion of several developers I've spoken with in the burgeoning react community, this kind of language has no place in the OSS world and sets a poor precedent. I don't fully expect this to be removed or merged, but I'm registering my opinion with a PR.