cloudflare / templates

A collection of starter templates and examples for Cloudflare Workers and Pages
https://cloudflareworkers.com
MIT License
1k stars 638 forks source link

Possible licensing issue with WordPress plugin #36

Closed utrenkner closed 5 years ago

utrenkner commented 5 years ago

@pmeenan I really prefer permissive licenses and therefore laud your choice of the MIT license for the Edge-Cache WordPress plugin. However, I believe that you have to change it to the GPL, because a piece of software that relies on a GPL'ed software to run (in this case WordPress core) must be GPL licensed, too (your plugin is a derivative work of WordPress core).

I am not a lawyer, but my understanding is, that if your code would not work with any other non-GPL'ed software (e.g. as a plugin for another CMS) there is no way around the GPL.

I am really sorry that I have to point this out, but I would not want you or Cloudfare to run into any licensing problems with the WordPress project. So better check/fix it now.

pmeenan commented 5 years ago

Good catch, thanks.

kentonv commented 5 years ago

This is not correct. This code should stay MIT-licensed.

(Disclaimer: I am not a lawyer, but I've worked with a lot of lawyers in regards to open source licenses. I work for Cloudflare, but the following should be considered my own personal opinion and not a legal opinion from Cloudflare.)

The code Cloudflare is distributing is not a derivative work of WordPress's code, and therefore there is no legal basis for WordPress's license terms to apply to this code. Cloudflare is the sole copyright owner of this code, and therefore Cloudflare can distribute it under any license it chooses. The fact that the code is designed to work with WordPress does not cause it to be a derivative work of WordPress; to be a derivative work, it has to incorporate code that is copyright by WordPress.

GPL virality applies to derivative works that incorporate GPL'd code. Usually, the derivative work is a compiled binary (or some other aggregate form). If you take some GPL'd code X and some non-GPL'd code Y, and compile them into a binary, and distribute that binary, then the GPL says that you are required to also distribute the code of both X and Y under GPL-compatible terms. In this case, Cloudflare is not distributing any compiled binary and not distributing WordPress's code at all; it is only distributing its own code.

Even if Cloudflare were distributing a derivative work, there is no exclusivity requirement on the license of the code. The GPL says that people receiving the derivative work must also receive the code under GPL-compatible terms, but this does not mean the code can't also be made available to other people under other terms. The copyright holder has the right to give the same code to different people under different licenses, as well as to give the receiver the option of multiple licenses. (E.g. you often see companies offering code "dual-licensed" under GPL and some proprietary license.)

Finally, the MIT license is recognized to be a GPL-compatible license. That is, distributing code under the MIT license satisfies the GPL's requirements for code distribution. This is because the MIT license does not contain any restrictions that the GPL did not already have. So even if Cloudflare were distributing a derivative work based on combining this code with GPL'd code, distributing this code under MIT license only (not even dual MIT/GPL) would in fact be sufficient to satisfy the terms of the GPL.

We should definitely keep this code MIT-licensed as changing it to GPL may discourage people from building on this example.

pmeenan commented 5 years ago

WordPress themselves appear to feel pretty strongly that plugins need to inherit the GPL license (I checked before updating). I'm happy to switch it back if lawyers give it a green light but going by the WordPRess docs it doesn't look like it is optional.

kentonv commented 5 years ago

Wow that's... quite an extreme opinion.

I think they are asserting that the code will be relicensed upon distribution in plugin form -- essentially the WordPress plugin equivalent of a "compiled binary". That's still a stretch but I can see that argument. But that would not prohibit the author from distributing the original source files under MIT as well.

If you're happy making the code GPL, though, then there's no issue here...

utrenkner commented 5 years ago

@kentonv I would be happy, if you were right. But I think @pmeenan chose the safer option.

Before I posted, I read what the Software Freedom Law Center is said to have answered conc. WordPress themes and I feel that this would apply also to this plugin. I know: If you ask 3 different lawyers you get at least as many different opinions... therefore, I will not participate in any further discussion on this.

kentonv commented 5 years ago

Yikes, this argument seems to be saying that writing code against an API makes your code a derivative work of that API, that an API can be covered by copyright, and that use of an API is not covered under "fair use". That's an extremely scary position to take. :(

I was not familiar with WordPress's assertions here when I wrote the comment above -- I was speaking generally. Given WordPress's assertions then I guess it makes sense not to rock the boat.