Skip to content
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

Closed
wants to merge 1 commit into from
Closed

Update PATENTS #3554

wants to merge 1 commit into from

Conversation

colinmegill
Copy link

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.

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.
@facebook-github-bot
Copy link

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!

@zpao
Copy link
Member

zpao commented Mar 31, 2015

This is a legal matter and won't be resolved without lawyers.

@zpao zpao closed this Mar 31, 2015
@colinmegill
Copy link
Author

@zpao said who about OSS ever? Seriously? Is there no other public comment about this than that?

@colinmegill
Copy link
Author

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?

@jimfb
Copy link
Contributor

jimfb commented Mar 31, 2015

@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.

@colinmegill
Copy link
Author

@JSFB That's all I need to hear. Thanks! I want to let you guys know about the rumbling out here. It exists.

@iamdustan
Copy link
Contributor

Thanks for the update @JSFB and @zpao! It’s very reassuring to know the dialog is happening. Is it fair to expect any public commentary at the end of those discussions? Whether it’s in a week or 6 months.

@jimfb
Copy link
Contributor

jimfb commented Mar 31, 2015

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.

@ryan-roemer
Copy link

@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!

@paulirish
Copy link

There's a fairly extensive conversation on Hacker News on what this patent policy means: https://news.ycombinator.com/item?id=9271331

the fourth clause is super weird. [...] It might even mean you can't lobby for software patent reform.

I, like many others, would encourage some consideration from Facebook legal, as the license currently stands in the way of a lot of progress.

@msikma
Copy link

msikma commented Apr 5, 2015

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.

the fourth clause is super weird. [...] It might even mean you can't lobby for software patent reform.

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.

@paulirish
Copy link

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.

@alexgorbatchev
Copy link

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.

@msikma
Copy link

msikma commented Apr 6, 2015

The good faith argument works for individuals and maybe tiny companies. If you work at a larger company that won't fly.

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.

@cmwelsh
Copy link

cmwelsh commented Apr 6, 2015

Comments like this really hurt adoption:

https://news.ycombinator.com/item?id=9271331

I work at Google, where many are sad to not be able to use recent Facebook code.

@jokeyrhyme
Copy link

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?

@jamesgpearce
Copy link
Contributor

That is certainly not the intention. We will be clarifying this shortly; thanks for your patience in the meantime.

@zpao
Copy link
Member

zpao commented Apr 10, 2015

We updated the grant: b8ba8c8

@syranide
Copy link
Contributor

@jamesgpearce #3617 (comment) probably goes best in here :) also 👍

@jokeyrhyme
Copy link

Much better. Thank you and congratulations. :) <3

@ghost
Copy link

ghost commented Apr 11, 2015

@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:
http://choosealicense.com

@syranide
Copy link
Contributor

osquery's BSD License
osquery's Additional Grant of Patent Rights Version 2

@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.

@ghost
Copy link

ghost commented Apr 11, 2015

@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:

  1. Wrong way:
    Facebook Patented License Grant
    -----Nested BSD License

  2. Good Way:
    Facebook Patented License BSD-like Grant

A bit of discipline and less of intellectual laziness from the part of lawyers would be appreciated for the benefit of all. Thanks.

@ghost
Copy link

ghost commented Apr 11, 2015

@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

@ghost
Copy link

ghost commented Apr 11, 2015

In other words, licenses are immutable.

@syranide
Copy link
Contributor

@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:

Because the patent license does not restrict those freedoms, but rather affords some new, limited protections to users and developers within the field of use, it improves on the current situation. Without this license, the patent holders would be in a position to threaten those users and developers as well as others.

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.

@ghost
Copy link

ghost commented Apr 11, 2015

@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:

(...)such (patent) license applies only to those patent claims, both currently owned by
Google and acquired in the future, licensable by Google that are necessarily
infringed
by these implementations of WebM

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.

@syranide
Copy link
Contributor

@Ab34
[LICENSE] Facebook osquery's New BSD License
[LICENSE] Google webm's New BSD license

[PATENTS] Facebook osquery's Additional Grant of Patent Rights Version 2

Additional Grant of Patent Rights Version 2
The license granted hereunder will terminate, automatically and without notice, if...

[PATENTS] Google webm's Additional IP Rights Grant (Patents)

Additional IP Rights Grant (Patents)
...then any patent rights granted to you under this License for these implementations of WebM shall terminate...

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.

@ghost
Copy link

ghost commented Apr 11, 2015

@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:

This grant does not include claims that would be infringed only as a consequence of further modification of these implementations.

Facebook:

For avoidance of doubt, no license is granted under Facebook’s rights in any patent claims that are infringed by (i) modifications to the Software made by you or any third party or (ii) the Software in combination with any software or other technology.

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.

@ghost
Copy link

ghost commented Apr 11, 2015

@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.

@dqdinh
Copy link

dqdinh commented Aug 5, 2015

@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.

@jimfb
Copy link
Contributor

jimfb commented Aug 5, 2015

@dqdinh On the contrary... we did update our patents grant: https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/

@jimfb
Copy link
Contributor

jimfb commented Aug 5, 2015

The diff is here: b8ba8c8

@dqdinh
Copy link

dqdinh commented Aug 5, 2015

@jimfb Thanks for highlighting that update. It is a helpful talking point in defending using React for my project.

@nijikokun
Copy link

@jimfb the termination clause is still as restrictive as before, they just made it in clearer wording, the issue still exists, as was explained in the conversation that @ghost and @syranide were having.

ccing @dqdinh

@zhech2
Copy link

zhech2 commented May 26, 2016

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?

@StevenLangbroek
Copy link

@zhech2 no i'm pretty sure your company needs better patent laywers...

@syranide
Copy link
Contributor

@zhech2 Yeah, that is absolutely not the case, see #7293 (comment)

Google was unhappy with the original patent grant, and it was updated in response to their concerns. They are OK with it now. And so is Apple.

@supernintendo
Copy link

Simple workaround to this problem: don't use React.

@colinmegill
Copy link
Author

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 :)

@gaearon
Copy link
Collaborator

gaearon commented Sep 22, 2017

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/

@colinmegill
Copy link
Author

colinmegill commented Sep 22, 2017 via email

@alexgorbatchev
Copy link

Fantastic news! Thank you! 💯

@blling
Copy link

blling commented Sep 22, 2017

Great! Thanks for all of your hard work! :)

@syranide
Copy link
Contributor

@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.

@colinmegill
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet