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

Discussion: Proposition to dual license Gutenberg under GPL v2.0 + Mozilla Public License v2.0 #23651

Open
maxme opened this issue Jul 2, 2020 · 21 comments
Labels
npm Packages Related to npm packages [Type] Discussion For issues that are high-level and not yet ready to implement.

Comments

@maxme
Copy link
Contributor

maxme commented Jul 2, 2020

This is a proposal to change the Gutenberg licensing scheme. Dual license it under GNU General Public License, v2 (GPL v2) and the Mozilla Public License v2.0 (MPL v2.0).

Reasons for switching from GPL v2.0 only

Gutenberg supports two main platforms, the web and the native mobile apps. The GPL v2.0 license is a blocker for distributing the Gutenberg library in proprietary mobile apps. Currently the only known users of Gutenberg on mobile are the WordPress mobile apps which are under GPL v2.0 (WordPress for Android, WordPress for iOS). Mobile apps under the GPL v2.0 are not common and this limits Gutenberg usage in many apps.

Rich text editor libraries in the mobile space are lacking. There is no well known open source rich text editor for Android or iOS. We believe that Gutenberg could be a key library for many mobile apps, but that will never happen with the GPL v2.

The WordPress-Mobile organisation is in the process of switching the license on AztecEditor-Android and AztecEditor-iOS (currently GPL v2) for the same reason.

Why the Mozilla Public License v2.0 (MPL v2.0)

  • It's less restrictive than the GPL and LGPL. MPL licensed software can be combined with other material if the files are separated (see paragraph 1.7 Larger Work and 3.3 Distribution of a Larger Work in the MPL v2.0). This allows proprietary mobile apps to integrate Gutenberg.
  • It's a copyleft license, like the GPL, every derivative work must be licensed under the same license. Unlike the BSD or MIT licenses, no one can distribute the code under different terms. It forces anyone modifying Gutenberg to contribute back with their changes (bug fix, new feature, etc.).
  • It's compatible with the GPL v2 (see paragraph 1.12 Secondary License and 3.3. Distribution of a Larger Work in the MPL v2.0), so integration into WordPress and the WordPress apps won't be a problem.

The purpose of this ticket is to get Gutenberg contributors' thoughts on the license change.

@gziolo
Copy link
Member

gziolo commented Jul 3, 2020

There is nearly 80 WordPress packages at the moment. It feels like all those that have a note in README file thar are WordPress specific should stay on “GPL 2.0 or later”, e.g. @wordpress/editor,@wordpress/edit-post, @wordpress/edit-site or @wordpress/edit-widgets, etc. There is also a set of packages used only for development purposes that could be relicensed as MIT, e.g. @wordpress/jest-puppeteer-axe. My point is that we could continue using GPL as a default license but be more liberal in choosing different license types for smaller subset of code. It would be great to take all that into account as well.

@gziolo gziolo added the npm Packages Related to npm packages label Jul 3, 2020
@radex
Copy link

radex commented Jul 3, 2020

Hi! I'm so incredibly happy to see this discussion! (I previously proposed doing this here).

I'm going to throw in my 2 cents into the hat, in case this makes any difference.

For context: I'm the tech lead for Nozbe Teams, a collaborative todo app. Our tech stack is essentially React on web and React Native on iOS and Android. We're a tiny company, and so we share >80% of app's codebase between these 3 platforms.

Our app sorely lacks a WYSIWYG editor. We had a working implementation on web, but we decided to scrap it, because there was no way to port it on iOS and Android. There are pretty much no viable rich text editors for iOS or Android, yet alone both. But even then, shipping three completely separate, but somehow compatible editors would be a vast amount of work.

And you know yourself, making a good rich text editor from scratch is incredibly hard. It's not something we could do ourselves.

Gutenberg (or even just parts of it like AztecEditor) could solve this problem for us, if it wasn't for the licensing.

It's 100% understandable why you don't want companies to profit off of your work by releasing it under MIT. I support that decision.

Of course I am biased, but MPL (or LGPL) solves most of the downside for you, while exposing you to the upside.

While we might not be big enough to be able to tackle a challenge of developing a rich text editor from scratch, we're big enough to contribute features and bug fixes to open source projects (and we do - for react-native, multiple RN community packages, and our own two popular frameworks for React apps: WatermelonDB and zacs).

I'm sure there are many organizations like this. As was noted in the top comment, no one outside of WordPress uses Gutenberg, while also there is no viable alternative other than Gutenberg. Multi-platform development keeps growing in strength, so there is a lot of thirst for a great multi-platform rich text editor. If it was an option for companies to use, I think a lot would. And yeah, they'd get something for free, but they'd be forced to contribute - to you- any improvements they make.

@maxme
Copy link
Contributor Author

maxme commented Jul 6, 2020

@gziolo good point, it makes sense to keep some packages under the GPL. Ideally we would have a way to bundle a GPL-free version of gutenberg (for the web and mobile).

@hsource
Copy link

hsource commented Aug 5, 2020

I realize this has succeeded already for the Android Aztec Editor! That's great!

@maxme - is there any chance that the react-native-aztec editor in this repository might have its license changed as well? We were thinking of writing our own adapter to take advantage of the new MPL-licensed Android package, but it'd save us work if we could reuse and contribute to the existing package.

@maxme
Copy link
Contributor Author

maxme commented Aug 5, 2020

@hsource yes we can do that after the license on the iOS version of the Aztec Editor is changed.

@maxme
Copy link
Contributor Author

maxme commented Sep 4, 2020

We got other inputs and dual licensing Gutenberg under GPL v2.0 + MPL v2.0, even if it's a bit redundant, it seems like the best solution for WordPress users and contributors.

It's redundant because the MPL v2.0 is explicit about compatibility with GPL v2.0. Dual licensing will make this compatibility crystal clear for everyone.

I updated the title and the content of that ticket.

@maxme maxme changed the title Discussion: Proposition to change the license from GPL v2.0 to Mozilla Public License v2.0 Discussion: Proposition to dual license Gutenberg under GPL v2.0 + Mozilla Public License v2.0 Sep 4, 2020
@hsource
Copy link

hsource commented Sep 15, 2020

The iOS license change just got merged! I'm pushing for my company to use React Native Aztec instead of rolling our own rich text editor, and a change to the react-native-aztec license would help with that! What needs to happen for that?

@kkMatt
Copy link

kkMatt commented Sep 22, 2020

Finally some great news. Actually that is one of the reasons why in SolidMVC micro-framework (that is MIT-opensourced) for WordPress, and where we bind all variables to view in the controller, we do not have support not for “Great_Widget extends WP_Widget” nor the Guttenberg blocks (we use shortcodes only instead, that does not have that ‘extend’ thing), besides that Guttenberg itself, is on React (MIT licensed), but that was troublesome for SolidMVC to fully support Guttenberg for commercial system via Envato and other portals, and even SolidMVC micro-framework port to Laravel framework.

@jeffpaul
Copy link
Member

Noting here that this has been proposed on Make/Core including a process by which to gain approval for and implement dual-licensing for Gutenberg: https://make.wordpress.org/core/2020/09/21/proposal-dual-licensing-gutenberg-under-gpl-v2-0-and-mpl-v2-0/.

@hsource
Copy link

hsource commented Nov 6, 2020

@maxme - is there anything we can do to help this? I know it's probably not high-priority, but I think I'd be able to contribute to the react-native-aztec package at work if it gets merged! For example, I realized that the support for toggling formatting is pretty incomplete, and I can see some quick fixes that I'd be happy to send PR's for

@maxme
Copy link
Contributor Author

maxme commented Nov 6, 2020

@hsource, the process to change the Gutenberg licensing scheme will take some time (months).

In the meantime we can extract the react-native-aztec wrapper and switch it to MPL. Let me double check something first, I'll get back to you. We might do this quickly.

@maxme
Copy link
Contributor Author

maxme commented Nov 7, 2020

@hsource, we're going to revive this repo https://github.com/wordpress-mobile/react-native-aztec . We'll switch the license to MPL soon and pull the modifications from WordPress/gutenberg in there.

@hsource
Copy link

hsource commented Nov 8, 2020

@maxme - that sounds great! Thanks for the update. I'm looking forward to contributing once it's revived.

@dngconsulting
Copy link

@maxme Is there any news on this topic ? The licence has changed but how to integrate react-native-aztec in a project without pulling all Gutenberg things ? Is there any dedicated npm package ? thanks.

@mchowning
Copy link
Contributor

👋 @dngconsulting

Is there any news on this topic ? The licence has changed but how to integrate react-native-aztec in a project without pulling all Gutenberg things ? Is there any dedicated npm package ?

The license has been changed on the react-native-aztec repository, and the code in that repository does not depend on Gutenberg, so you shouldn't need to pull anything from Gutenberg to use it.

With that said, we have not "pull[ed] the modifications from WordPress/gutenberg" to the react-native-aztec repository yet, so the code there is out-of-date. I'll work on getting that done, but it will probably be a couple of weeks.

@dngconsulting
Copy link

@mchowning Good to hear 👏 . But react-native-aztec is not published on npm registry, how do you 'npm install" it ?

@mchowning
Copy link
Contributor

mchowning commented Feb 9, 2021

react-native-aztec is not published on npm registry, how do you 'npm install" it ?

I wasn't planning to publish the react-native-aztec repo to npm since it is just a temporary measure until Gutenberg is dual-licensed. Once the license is updated I'd be happy to publish the package from the Gutenberg repository if that would be helpful.

@pxpeterxu
Copy link

@dngconsulting I just revisited this thread after a long while, but if you want to install it, it's possible to install directly from a GitHub repository: try:

npm install wordpress-mobile/react-native-aztec#trunk
// Or with yarn
yarn add wordpress-mobile/react-native-aztec#trunk

@mokagio
Copy link
Contributor

mokagio commented Jun 8, 2023

The license has been updated to GPL-2.0-or-later:

"license": "GPL-2.0-or-later",

Should this issue be closed?

@swissspidy
Copy link
Member

@mokagio no, as that is not related

@mokagio
Copy link
Contributor

mokagio commented Jun 8, 2023

Thanks for the clarification @swissspidy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
npm Packages Related to npm packages [Type] Discussion For issues that are high-level and not yet ready to implement.
Projects
None yet
Development

No branches or pull requests