The GPL: what it means and what is means for plugins

A friend of mine recently expressed their confusion over the GPL and how it all relates to the [recent bruhaha happening in WordPress land]( A quick search on Google will reveal a number of people attempting to answer the same question. Here is my own attempt to answer this question, paying special attention to how this may relate to WordPress themes and plugins.
In an effort to further everyone’s understanding of the GPL, let me see if I can shed some light on what the GPL is and how it works.
1. The GPL governs ones rights to redistribute software using the GPL as a license.
2. The GPL gives me the right to take GPL code and redistribute it as is (provided that I also respect any related trademarks). For example, I can’t take Firefox and redistribute it under the name “Firefox” since the name is a trademark owned by Mozilla and only they have the right to convey its name on software.
3. Believe it or not, the GPL also allows people to sell copies of GPL software. Most people don’t understand this for one simple reason, “why buy the cow when I can get the milk for free.” Selling GPL software just doesn’t make sense in that regard. But it has been done very successfully. People used to sell Linux on CD – but the value of doing so was clear: at the time to download Linux could take days, so for many shelling out $29.95 for the 5 of so CDs was a huge convenience.
4. The GPL also says that you can take GPL software, and modify it and redistribute it as well. For example, Microsoft could take the OpenOffice suite, make tons of changes (under auspices of making it better) and then turn right around and sell it. — There is a catch though, any change you make to GPL software AND also redistribute you must also make available under the same license. In other words, Microsoft would need to make any changes they made to Open Office freely available to others.
*Note: the key here is “redistribution.” Because the GPL governs distribution only, it means that I could, as an individual, take OpenOffice, make changes of my own that are TOTALLY AWESOME (naturally) and, provided that I never give a copy of that software to a friend or anyone else, I would never have to share my modifications.*
*Another Note: the above note is important because this is why it is reasonable and acceptable for someone to download a copy of WordPress, modify it, pay a consultant to modify it, add features to it, redesign it, etc, etc, etc. and never be compelled to share the mods they have made, or be compelled to open source anything else in their organization.*
5. The GPL also says I can take a portion of code from a GPL program and include it in my own. For example, say I want to write a blogging platform in Perl. I have written most of the code myself, but I deem Movable Type’s commenting system to be perfect. So I cut and paste large portions of it into my software. Under the GPL, this is equivalent to forming a derived work, and my new blogging platform is compelled to be GPL as well.
Now let’s look at what makes the WordPress theme debate special:
* The GPL defines something called a “derivative work.” When I take Firefox, edit the source, recompile and redistribute it, that forms an obvious derivative work. All derivative works are bound by the terms of the GPL.
* The GPL also defines a derivative work as a piece of software that runs in the same shared memory space as a GPL program. In layman’s terms this means that if a piece of software, say a theme or plugin (even it is distributed separately from the another piece of GPL software), is designed to run in conjunction with GPL software, then the two of them, by virtue of sharing the same memory/process when they run form a derivative work, and thus, the theme/plugin is bound by the GPL.
Ok, why the debate?
Well, their is *some* ambiguity over what forms a derivative work. I believe this stems from the fact that most people don’t understand technically the concept of “shared memory space.” But I believe this [FAQ answer from the FSF]( makes clear the *intent* of the licensor:
> **If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?**
> If the program dynamically links plug-ins, and they make function calls to each other and share data structures, **we believe they form a single program**, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed. (emphasis mine)
So, although the Free Software foundation states their *belief* that this forms a derivative work, their own language admits that it does not conclusively do so.
But Byrne, I still don’t understand all this techno-mumbo-jumbo. Just tell me, why is there a debate?
Let’s clarify one more thing that I have seen many people get confused about. **The GPL is NOT law**. It is just a contract between two parties. If those two parties have a [dispute over the terms, or their interpretation of the contract](, then it is up to a judge to resolve the dispute and assess damages.
What makes the GPL special with regards to contracts is that is a standardized one. Meaning tons of people have accepted and/or conveyed the license to others. So if a judge rendered a judgement that helped to resolve the ambiguity of what constitutes a derivative work, then just like that, we would have legal precedence to reinforce anyone else’s claims contingent upon this definition.
Finally, let’s suppose Matt does sue Chris Pearson, what could he actually get from Chris?
I do not personally think Matt can claim that he has suffered any damages (e.g. lost revenue) from Chris’ distribution of a proprietary theme, so I don’t think a law suit would result in any money changing hands. But Matt can ask a judge to compel him to comply with the license and force him, by way of a court order, to distribute his themes according to the terms of the GPL. That’s it.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s