Hacker News new | ask | show | jobs
by JamesFM 3192 days ago
Wait, this doesn’t solve anything. They replaced BSD with MIT, which are basically the same license and then they removed any explicit patent grant. So this means the user is actually granted less rights then before.

Am I missing something or does this make zero sense?

8 comments

Implied patent licenses:

https://www.wilmerhale.com/pages/publicationsandnewsdetail.a...

https://copyleft.org/guide/comprehensive-gpl-guidech7.html

Basically, if you sell or license a product that requires a patent to work, courts have generally held that you grant an implied patent license for any patents that the product might require. If you explicitly reference patents within the license, however, then whatever terms you explicitly write into the license supersede this implied patent license. BSD+patents (and Apache 2) have explicit patent language; paradoxically, this makes them more restrictive than licenses like MIT, BSD, or GPL that don't mention patents at all.

Furthermore, suppose you're some company like, say, IBM which figured out some way to say, safely double the energy density and recharge cycles of Lithium Ion batteries, which you have patented. Let's also assume that you are shipping some critical problem which is dependent on React. Facebook could now freely use your patented idea, and violating it left, right, and center, and if you try to sue them for violating that patent, you're completely f*cked.

So Facebook's idea works fine if you believe that Patents as a Thing are bad (all patents, not just software patents), and should not be asserted under any circumstances, and it's fine for Facebook to arbitrarily violate any patent of any company who has become dependent on React.

> and if you try to sue them for violating that patent, you're completely f*cked.

No, if you try to sue them for violating that patent, they can try to sue you for using React - if they actually have valid patents that cover React, that is. I doubt IBM's lawyers are breaking a sweat.

Why do you keep spreading FUD about this stuff even after Facebook withdraws the license?

Furthermore, this is all untested in the courts. Contracts and laws aren't really worth much until they're tested in courts. It's arguable that giving someone a license to use your code also gives them a license to use the patents that code uses. Kind of like how you're not infringing on iPhone patents if you buy and use an iPhone.
You might want to read the link below, then go re-read the now deleted PATENTS grant for React.

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

> Facebook could now freely use your patented idea, and violating it left, right, and center, and if you try to sue them for violating that patent, you're completely fcked.

Maybe, maybe not. You suing them over your patent would terminate you patent* license from Facebook, but not your copyright license. Whether that fucks you or not depends on whether or not you actually NEED a patent license from Facebook.

As far as I know, no one has actually found a Facebook patent that covers React.

There is - its been posted multiple times https://www.google.com/patents/US20170221242.
Interesting. If that patent issues, is it going to be a problem for any React alternatives, or is what is described there unique to React?

Also, I'm curious. When did React start using the techniques covered in that patent application?

> As far as I know, no one has actually found a Facebook patent that covers React

This would make Reacts PATENTS file a bluff (nothing to grant or revoke). I don't think many companies would be eager to base decisions on that legal theory.

GPL 3 adds an anti-patent-treachery clause not unlike the Apache 2 clause.

React Patent Grant Version 2: https://github.com/facebook/react/blob/b8ba8c83f318b84e42933...

The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software.

Apache 2 Section 3: http://www.apache.org/licenses/LICENSE-2.0

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.

GPL 3 Section 10 (See also Section 11): https://www.gnu.org/licenses/gpl-3.0.en.html

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

Edited for spacing

This is highly confusing to me.

If implicit patent grants are a thing, why have more modern licenses like Apache 2 and GPL 3 made it a point to include explicit patents grants in the language of the license?

Wouldn’t their legal counsel advise them against it if it was redundant?

Explicit probably saves a lot of time in court, and helps with global consistency. More importantly, Apache 2 and GPL 3 include reciprocal patent grants. They work similarly to the React patent grant, but unlike that one they go both ways. In the React one, only you lose access to the patents if you sue Facebook, but Facebook can sue you fine even if you contributed to React. Under Apache 2 and GPL 3, no one contributing to the software can sue anyone for patents infringed as a result without having their license revoked in its entirety (copyright AND patent).
Correction: I'm not sure Apache 2 and GPL work that way. IANAL and please read the licenses yourself (and consult counsel if needed).
Has this implied patent license ever actually been tested in court wrt to open source software?
I'm not well versed enough in the various licenses to compare BSD+Patents and MIT, but in my opinion, this is more of a move to appease the community than anything dealing with the benefits/disadvantages of the license being used.

You may be right that this might actually reduce our rights, however, the MIT license is well known and accepted by many in the developer community. It's been around long enough that developers know what they are agreeing to when they use something with an MIT license. With the BSD+Patents license, the biggest concern was not understanding what you were getting into when using React.

Facebook recognized this and conceded despite still believing in the BSD+Patents license to be better. So in that sense, this makes a lot of sense as it:

* alleviates community concerns

* builds up their standing with developers

* generates a lot of good PR

* draws attention away from alternative solutions which were getting a lot of publicity from all of this (Vue.js, Marko, Preact, etc.)

It would be nice though to have a lawyer chime in on the differences between BSD+Patents and MIT.

That's what all the Facebook & React folks were arguing. Facebook doesn't want to do unconditional patent grants. Plus, they decided that the weak patent retaliation clause in Apache 2 license wasn't strong enough. This new license is strictly riskier for people than the old license, but it's more familiar, so people won't freak out.
Apache 2 was fine for RocksDB.
If there is an implicit patent grant, we have more rights. I think there is a strong case that the implicit grant exists, and would vastly prefer seeing projects licensed under MIT than under the Facebook license.

Apache 2.0 would have also been acceptable, as it had a better explicit patent grant. I'm actually a little surprised they didn't choose it.

The way I interpret it is, explicit patent license implies _less_:

- Explicit patent license specifies why / how it can be revoked.

- Without an explicit patent license, patent infringement case (by Facebook) against a party that uses Facebook's OSS would be become harder, because one may argue that such grant is implied by Facebook open sourcing the software.

There hasn't been a single patent covering a standard React implementation found yet. Someone found one that might cover a niche case, but the bottom line is no one really knows if any patents of any substance or having broad claims will actually ever issue.

That combined with the implied licenses means there was a patent clause causing a ton of unecessary hand-wringing.

The reality is every company of FB's size is patenting every developer's latest dump if it can get through the patent office.

Yeah, that's why all the upheaval against the patents grant was so fucking stupid.
I'm just glad we can put this one to bed, and focus our efforts on finding the next silly reason not to use React.
From my layman perspective, jQuery has MIT license, now React has MIT license. jQuery was once ubiquitous, now React can be too.

I'm likely oversimplifying, but that's about as much as I understand on licenses