Problem/Motivation

Proposed resolution

Discuss whether the statements above are accurate, and what, if any, remaining patent concerns exist about Drupal and Drupal users using React.

Remaining tasks

?

Comments

effulgentsia created an issue. See original summary.

dawehner’s picture

I think the issue summary should also describe that Drupal is already violating a shit ton of software patents, just like the use of JSON, or responsive design. Much like facebook we probably could have issues with microsoft, google and many more companies.

effulgentsia’s picture

Re #2: +1 to adding that to the IS if people can provide links to the relevant patents. Otherwise, it's just speculation of what is or isn't patented.

neclimdul’s picture

INAL so I don't have much to add to a pretty good summary of the legal situation. I will say many organizations have already decided React is problematic based on earlier licensing so regardless of the interpretations and discussions had here reversing course is going to require developers making a legal argument to management and legal teams. Additionally those organization likely investing real time and resources into that process. This is something I'm personally not looking forward to doing at least.

dawehner’s picture

Re #2: +1 to adding that to the IS if people can provide links to the relevant patents. Otherwise, it's just speculation of what is or isn't patented.

Maybe Dries has more concrete information, but I remember him saying something along 300 patents we already deal with.

Mingsong’s picture

Facebook has re-licensed React under MIT license.

See the changes from Git:

https://github.com/facebook/react/commit/b765fb25ebc6e53bb8de2496d2828d9...

aleksip’s picture

This issue is specifically about patents, but patents are not the only values-related issue with React. Many of these issues are connected, and when making a decision on adopting React they should be considered together, not individually.

I do not disagree with any of the points presented in the summary. They paint a picture of the many problems with patents. This is why it would be good if all OSS projects used licenses which explicitly cover patents.

I think a key point is: "does not mean that it would hold up in court". Going to court to prove anything takes money and resources and involves risks. Facebook has bucketloads of money and an army of lawyers. Who is willing to get involved in a lawsuit against Facebook, and has the resources to do it, even if Facebook seemed likely to lose?

The many license changes are a great example of how Facebook has complete control over React. Facebook declared that BSD + Patents was "designed to ensure that developers can use our projects with confidence", but didn't return to using the initial Apache 2.0 license with React. Apache 2.0 explicitly covers patents, so why did Facebook choose MIT instead? We do not know, because React is not a truly open project. These kind of decisions, and likely many more, are made behind closed doors.

Even though React is now licensed under MIT, Facebook's past actions do not exactly increase trust in the company. By adopting React, Drupal would force all of its users to weigh whether they are willing to take all of the risks that come with React, regardless of the fact that they can use any framework for user-facing front ends.

I have no doubt that React can be an excellent choice for individual downstream projects, where the risks can be weighed individually. But I believe that as an OSS platform Drupal has a great responsibility when deciding on new dependencies.

Mingsong’s picture

Even jQuery is released under MIT license, though.

https://jquery.org/license/

If we can't adopt any other open source project which is under MIT License, our hands are definitely tied.

effulgentsia’s picture

In July 2017, in https://issues.apache.org/jira/browse/LEGAL-303, Chris Mattmann, VP of Legal Affairs of the Apache Software Foundation disallowed use of projects with the Facebook BSD+patents license.

https://www.apache.org/licenses/GPL-compatibility.html says:

The Apache Software Foundation is a nonprofit organization that is dedicated to open source software development. We never knowingly incorporate patented technology in our own products unless such technology has been offered free for everyone.

Today, in https://issues.apache.org/jira/browse/LEGAL-319, Chris Mattmann wrote:

ReactJS is useable in version 15.6.2 or in versions 16 onward.

This looks to me like ASF's own VP of legal affairs interprets the MIT license as sufficient in addressing Apache's concern that the patented technology is offered free for everyone.

droplet’s picture

If FB re-license React back to BSD + Patent in v17. Can we still use v16 freely?

effulgentsia’s picture

Yes. The MIT license has no clause about being terminable, so once included in a particular release of the software, it's always in that release.

aleksip’s picture

The problem Apache Software Foundation (and many others) had with BSD + Patents was the patent retaliation clause. I do not know of an official ASF position on MIT containing an implicit patent grant, I believe they are accepting MIT and React simply because React contains no known patents enforced by anyone.

Even after relenting under pressure and changing the license to MIT, Facebook still insists that "our BSD + Patents license provides some benefits to users of our projects". And they are right, because an explicit patent grant is better than a contested and untested implicit grant. But for some reason Facebook did not want to give an explicit grant without the retaliation clause, and chose MIT for React.

Completely avoiding projects without an explicit patent grant would unfortunately be very limiting indeed. So the risks involved need to be evaluated individually for each project.

jQuery for example is maintained by the JS Foundation. I would say the risks related to patents and possible legal cases are very different in magnitude between jQuery and React.

I'd like to stress once again that patents are not the only values-related issue with React. In an other issue MySQL, maintained by Oracle, was offered as an example of Drupal being dependent on technologies backed by enterprises. Well, Drupal isn't dependent on MySQL, but MySQL still makes a good example: MariaDB was forked because Oracle control over MySQL was unacceptable for so many.

Adopting React will affect the general acceptability of Drupal, unless the React UI is completely decoupled and offered as an optional and separate download.

justafish’s picture

Status: Active » Closed (works as designed)

> But for some reason Facebook did not want to give an explicit grant without the retaliation clause
Because in 2012 Yahoo tried to patent troll them and sued. You can read more about it here https://medium.com/@ji/the-react-license-for-founders-and-ctos-b38d2538f3e5

Also to echo what @dawehner mentioned - we're already violating several hundreds of patents and will continue to do so. Here's some examples of things you'll have to remove from Drupal if you want to pursue this issue:

This issue was opened to only focus on React. Considering the above, and also that React is now MIT licensed (as others have mentioned), and that we already used MIT licensed code - this can be closed as it's not a blocking issue.

aleksip’s picture

@justafish That article explains Facebook's motives for BSD + Patents very well.

Are you saying that Facebook did not want to give an explicit patent grant and chose MIT instead because they want to be able to use patents on React technology against patent trolls? Because that is of course what the situation looks like, based on that article and numerous other articles.

I agree that Drupal is probably violating several hundreds of patents, and am not suggesting patents alone should be a reason for not adopting React.

However, like the ASF and others I think open source software should not contain patented technology, unless it is offered for free for everyone. Neither should standards. As a standards-based and community-led open source project should we just 'accept the reality' and give up without a fight?

Whatever the outcome, I think these are important topics to discuss before a decision like this, because these discussions shed light on what our values and principles really are (and are not) as a project and a community.

droplet’s picture

Status: Closed (works as designed) » Active

Does Drupal CORE compatible with Apache 2.0? I realise a (very popular) Polymer lib kit released under this license: https://vaadin.com/elements

So now, Drupal has no plans move to GPL v3
https://www.drupal.org/about/licensing#q12

On Apache 2.0 page, it says not compatible if I read it correctly.
https://www.gnu.org/licenses/license-list.html#apache2

Do we need to do a research on the these frameworks' popular `components` libs if we have a plan to reuse it instead make a custom one?

effulgentsia’s picture

Status: Active » Closed (works as designed)

Thanks for spotting that @droplet. I opened #2917161: JavaScript library evaluation: polymer license compatibility with GPL2 for how this affects the Polymer issue.

I'm re-closing this one, as it does not affect React.

aleksip’s picture

Replying to #2917161-20: JavaScript library evaluation: polymer license compatibility with GPL2 here as requested, although this issue has been closed as well.

If we are to trust the FSF on WebM, this is what they say about the MIT license: "For substantial programs it is better to use the Apache 2.0 license since it blocks patent treachery." In other words, the FSF does not believe that the MIT license blocks patent treachery.
https://www.gnu.org/licenses/license-list.html#Expat

In this recent article that goes through the MIT license line by line, the author, who is a lawyer, concludes that "as a result of this mishmash of legal, industry, general-intellectual-property, and general-use terms, it isn’t clear whether The MIT License includes a patent license."
https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html

GPLv2 and MIT are different licenses, and use different language. We would still need a court decision on MIT and patents to be sure.

David_Rothstein’s picture

Status: Closed (works as designed) » Active

I think it is too early to close this.

The issue here was never really about the specific license (at least in my mind; I was never bothered by the old license myself), but rather about people's reactions to it and their overall trust of Facebook's activity with regard to patents. If that causes enough people to not want to use Facebook's software, that's a problem regardless of the merits of their concerns.

It is not obvious to me that switching React from a license with an explicit (and arguably generous) patent grant to one that says nothing explicit about patent grants at all is going to end the concerns people have about Facebook and patents. Certainly reading through https://github.com/wordpress/gutenberg/issues/2733, for example, a number of people still seem to be concerned about it there.

So I think this issue should remain open (maybe postponed?) until it is more clear how the overall community is reacting to the new license.

e0ipso’s picture

I'm so lost with all this legal stuff. I see the argument of previous court ruling. Does a court ruling apply to the U.S. only? Does a U.S. court ruling also apply to France or Nicaragua (as examples)?


I'd like to highlight a response to this recurring comparison with jQuery:

Even jQuery is released under MIT license, though.

jQuery for example is maintained by the JS Foundation. I would say the risks related to patents and possible legal cases are very different in magnitude between jQuery and React.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.