WordPress Foundation & The GPL Issue

There’s a problem that the WordPress Foundation & Core Team face, that puts them in unusual and awkward situations. It centers around a long running debate over the GPL and linking. A prime example being the recent situation of Jake Caputo:

So far the essential reading on GPL and WordPress has been this post by Chip Bennet

There’s also this article by Mark Jaquith on why WordPress themes should be considered derivative

The issue arises around linking. Derivative codebases are clearly subject to GPL as they’re unambiguously described by the license itself, but what if I write a plugin from scratch with no prior work? If I open Sublime and start typing a plugin into a blank document, how can it be derivative? Clearly it is not, and it isn’t. The problem then becomes one of linking/binding.

There is a long running debate on exactly how the GPL impacts linking. It boils down to the following question:

If I have a codebase, and I link to a GPL library, does this mean I must be GPL compatible?

Some people say the GPL only applies to compiled languages ( GPL makes no mention of the word compile or compiled ), and others are ignorant of the fact that some form of linking does take place in PHP.

So what does it mean for two pieces of code to be ‘linked’?

It is not the use of hyperlinks.

Say I have 2 objects, one of type Apple, and one of type Pear. This is the same PHP file, and the two classes are loaded into memory at the same time and do not interact with eachother:

$apple = new Apple();
$pear = new Pear();

Here Apple and Pear are totally separated, no linking is happening. Now lets say we add a method to Pear which modifies an Apple:

$apple = new Apple();
$pear = new Pear();
$pear->modify_apple($apple);

Now Pear and Apple are linked. At runtime/compile time, the PHP runtime needs to resolve the Apple and Pear symbols, and ‘link’ them together. If linking was not involved, the above code example would not be possible, the result would be that the code running in the Pear class would be unable to grasp exactly what is meant by an ‘Apple’ object.

There are many kinds of linking, static linking ( think .lib files ), dynamic linking ( think dll/so/dylib files ), runtime linking ( how objective C links objects together ).

How does this impact WordPress?

By referring to and using the WordPress API, your code is linking/binding with the WordPress code. As a result, if the answer to the big question about GPL and linking is yes, then your codebase must be GPL compatible if it’s to be publicly distributed for use with WordPress.

As such, the question is important, and has a direct impact on the licensing options available to plugin developers.

Official legal opinion is defined by a letter solicited from the Software Freedom Law Center, While this rests upon the assumption that the answer to the ongoing debate at large is yes, the thoughts expressed are those of lawyers with much experience in these matters.

Can a GPL Codebase And a Non-GPL Compatible Codebase Be Linked?

That depends who you ask, and the debate has been raging for the last 18 years.

The relevant part of the GPL v2 that concerns this is article 2b:

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program,

he distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

If we look at what the working group of the European Legal Network of lawyers, facilitated by the Free Software Foundation Europe have done, we can see the progress made legally within the european framework towards a better understanding of the situation:

Abstract This article presents the current results of the work carried out within a working group of the European Legal Network of lawyers, facilitated by the Free Software Foundation Europe, whose aim is to provide some general guidance to lawyers and developers working with free software to understand the technical and (potentially) legal effects of the interaction or interoperation of two programs in the context of GPLv2 licensing.1

From this we can gather that the interpretation and application of the GPL on this issue is unclear, has arguments for and counter arguments, and is subject to the current jurisdiction.

One can surmise that this is unlikely to be resolved any time soon. The logical choice then being to err on the side of caution and be GPL compatible.

So What Does This Mean For Them?

It means that this is a policy issue. Keeping in mind that they have vested interests. Should in the future this question be resolved, and they have been permissive with the GPL, this could be dangerous should a legal dispute occur. It could be argued they don’t care, and has only endeavoured to defend its licence for dubious reasons.

On the other hand if they play it safe they could protect themselves, at the cost of the community becoming disgruntled from time to time.

The clever approach would be to advise GPL compatible licences, but make no strong effort to enforce the policy outside of their own properties.

As such Jake should not have been penalized for his activities on Theme Forest, no matter the approval or disapproval within the Foundations quarters. A statement indicating the foundations disapproval should be enough to clear up any suggestion that of approval by implication.

Or we could be watching political drama for dramas sake, that has been going on for a long time, here’s an old blog post on the subject from the venerable Rarst:

So basically we have mass of people that use WordPress and have different opinions about inheritance of GPL for extensions. Bunch of adults should be able to admit that opinions differ and live with it.

Actual situation is quite different. Anyone in disagreement with opinions propagated by Automattic is labeled evil, harmful, hostile and hater. All exact words used. You either do what Automattic says or you are bad bad person.

This goes well beyond software and GPL as well:

non-GPL-compliant people, my ass!

WordPress community is all of people who use WordPress. Different people, with different opinions. Automattic want to sort and label these people into good and bad in accordance with Automattic’s business agenda.

This has no longer anything to do with GPL. Either what you do fits Automattic interests or it does not. Former and you are patted on the head, latter and you are called names and labeled as desecrator of open source spirit.

Considering the lack of legal consensus, the lack of a correct answer, and the actions by the Foundation, perhaps Rarst is right when he says:

Truth is neither side gives a damn about GPL anymore. It is merely a buzzword for political bullshit around WordPress.

Namely the angst caused by Envato flouting the spirit of the GPL and free software by using split licensing as a tool to get around it and enforce strict site licenses using non-GPL images.

Revisions

  • 23 Jan-17:17 GMT – Added a link to Mark Jaquiths post on why WordPress themes should be considered derivative
  • 23 Jan-17:23 GMT – Ammended some minor mistakes ‘a -> A’ >_<
  • 23 Jan-18:05 – Linked to Matts post on a letter solicited for legal advise on Themes and the GPL
  • 23 Jan-19:11 – Moved a paragraph to a more appropriate addition and pointed out Envatos foul play with dual licensing