Proposal and Steps To Dual-License Gutenberg Under the GPL and MPL

The GPL is so embedded into WordPress that it is not just the license the platform is under but a part of the community’s culture. Friends have been gained and lost over discussions of it. Bridges burned. Battles waged. People cast out to the dark corners of the web that “we don’t talk about.” There was even a time when one could expect a fortnightly GPL dust-up in which the inner WordPress world argued the same points over and over, ad nauseam.

It might be hard to imagine a world where — outside of third-party libraries — direct contributions to the software are under anything other than the GPL. However, the wheels are now in motion. The Gutenberg project, which is the foundation of WordPress going forward, may soon be under both the GNU General Public License (GPL) v2 and the Mozilla Public License (MPL) v2.0.

The goal is to allow Gutenberg to be used in proprietary applications, particularly in the mobile space, where it can be a hurdle to ship GPL code.

Mobile Team contributor Maxime Biais proposed the change in July 2020. “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.”

At the moment, the WordPress for Android and WordPress for iOS apps use Gutenberg. Both of these apps are also licensed under the GPL, so it is a non-issue for them. However, it is uncommon for mobile apps to use the GPL. Thus, it limits Gutenberg’s potential reach.

“Rich text editor libraries in the mobile space are lacking,” wrote Biais. “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 proposal was announced on the Make Core blog in September 2020. It garnered three comments. WordPress project lead Matt Mullenweg was in favor of the change, pointing out that it could help Gutenberg become a cross-CMS standard.

“Right now it’s easy to distribute Gutenberg with web apps that aren’t GPL, due to the way browsers link and bundle things, but embedding Gutenberg inside a native app on desktop, iOS, Android, or beyond is not possible unless the entire application is also GPL,” he wrote. “Allowing people the option to embed Gutenberg under the MPL I think will increase its usage outside of WordPress, bring more contributors to the core experience, and continue the Cambrian explosion of blocks that will give Gutenberg users more tools to fully express their creativity and vision.”

The problem with switching licenses is that Gutenberg needs permission from every contributor who has added code to the project to make this change. The GitHub repository lists 721 individual contributors since the project began in 2016. To change licenses, each one must consent because they still own the copyright to their code.

Some of these people may not be involved any longer and not respond to the consent request. Others may refuse — as is their right. In either case, the Gutenberg team will need to either remove or rewrite the code.

The proposal outlines four stops on the timeline before Gutenberg can be officially dual-licensed:

March 19: All future contributions will be under both the GPL and MPL.

April 2: Seek consent via GitHub from past contributors and contributors from open pull requests.

Three months later: Begin removing or rewriting code that cannot be relicensed.

Future: Once all removed or rewritten code is squared away, update Gutenberg as a whole to a GPL/MPL dual license.

For a licensing discussion, only a few people have chimed in. However, some have brought up concerns.

“WordPress has historically strongly believed in the GPL,” wrote core WordPress contributor Aaron Jorbin in the comments. “It has gone so far as to call the Four Freedoms of the GPL it’s ‘Bill Of Rights.’ And now what is being said is that only sometimes do you get these freedoms. Anyone is welcome to take the code and remove these freedoms. Instead of empowering users, this move is empowering the removal of freedom. To me, this feels like a very pro-business move and a very anti-user one.”

The MPL is not considered viral in the same way as the GPL. Applications built with GPL-licensed code must allow for the same freedoms or more. App developers can distribute MPL-licensed code as long as it is in a separate file from their proprietary code. This lets businesses restrict parts of the codebase. Users might not have the freedom to use, fork, modify, and share all of an application’s code.

Most who have commented on the official threads so far have been excited or OK with the proposal. It can open Gutenberg to a new market. If developers in the mobile space begin using it for their apps, it could bring in fresh talent to the WordPress project as a whole.

“Our app sorely lacks a WYSIWYG editor,” wrote Radek Pietruszewski, the tech lead for Nozbe Teams, on the GitHub ticket in July 2020. “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, let 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 could solve this problem for us if it wasn’t for the licensing.”

How things move forward comes down to the 700+ contributors. Will the Gutenberg team be rewriting swaths of code? Or, will most developers sign off on the license change?