Recently, I’ve been seeing a lot of posts on reddit telling users that they can do whatever they want with WordPress themes and plugins, and demand or pirate free copies of paid themes and plugins, because they’re all GPL licensed. Unfortunately, this isn’t the whole story. I figure it’s time to clear the air about how this all works.
Note: I am not a lawyer, and one of the most important things to take away from this article is that you shouldn’t make your own legal interpretations without the support of a lawyer, specializing in intellectual property law.
What is the GPL, and how would it effect other people’s licenses?
WordPress itself is licensed under an open source license called the GNU Public License Agreement (GPLv2), which contains a requirement that “derivative works” be also licensed as GPL. This requirement reads as follows (note section 2b, in particular):
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:
- a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
- 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.
- c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
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, the 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
Now, this section fairly clearly describes modifying the original codebase to create a new work, and distributing that work as a whole, which is a fairly separate concept from a plugin or theme system where addons are installed, managed, and removed separately from the main program, without fundamentally transforming its core operations. use published hooks, actions, and public functions to interact with the original program, and are distributed independently from the program itself. However, this is not the way many people in the GPL community interpret this clause.
Ambiguity arises from the fact that PHP is a scripting language, rather than a compiled language, so sections of code can be distributed completely separately, but they have access to the same objects, functions, and data as the original program, despite not being distributed with the program. This concept wasn’t common at the time that the GPLv2 was written, so it isn’t well defined by this license.
Why would plugins and themes be “derivative works”?
Although the GPL itself is unclear on the matter, there are several supporting documents provided by the Free Software Foundation that interpret their intended application of the GPL. On their FAQ page, they state:
When is a program and its plug-ins considered a single combined program? (#GPLPlugins)
It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.
If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins. If the main program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.
Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.
This pretty clearly would apply to plugins and themes. However it is important to note the use of “we believe”. This is not an actual term of the license, but an interpretation of the license’s terms, that is subject to the opinions of the author or group.
It is also important to note that the FAQ also states:
Runtime libraries are “System Libraries” as GPLv3 defines them. That means that you don’t need to worry about including their source code with the program’s Corresponding Source. GPLv2 provides a similar exception in section 3.
You may not distribute these libraries in compiled DLL form with the program.
Which becomes extremely confusing when you consider new Operating systems like Node-OS, where every library provided by the OS is interpreted, and memory and functions are directly shared with programs.
There are also valid counter-arguments to be made in support of the integrated view of plugins and themes.
So is there an official opinion on themes and plugins?
In 2009, Matt Mullenweg reached out to the Software Freedom Law Center, to get a legal opinion on whether themes (and by extension, plugins) are derivative works or not. Their response was a slightly guarded yes:
it is our opinion that the themes presented, and any that are substantially similar, contain elements that are derivative works of the WordPress software as well as elements that are potentially separate works. Specifically, the CSS files and material contained in the images directory of the “default” theme are works separate from the WordPress code. On the other hand, the PHP and HTML code that is intermingled with and operated on by PHP the code derives from the WordPress code.
In conclusion, the WordPress themes supplied contain elements that are derivative of WordPress’s copyrighted code. These themes, being collections of distinct works (images, CSS files, PHP files), need not be GPL-licensed as a whole. Rather, the PHP files are subject to the requirements of the GPL while the images and CSS are not. Third-party developers of such themes may apply restrictive copyrights to these elements if they wish.
Finally, we note that it might be possible to design a valid WordPress theme that avoids the factors that subject it to WordPress’s copyright, but such a theme would have to forgo almost all the WordPress functionality that makes the software useful.
It’s also important to note that this is an informed legal opinion, not a legal ruling. So it would be risky for developers to license their PHP under non-GPL compatible terms, but it doesn’t legally change the terms of their licenses if they do so.
The official company line from the WordPress theme handbook is:
If you plan to distribute your theme, it is a good idea to license it fully under the GPL, so others can enjoy the same freedoms that you did when creating it.
Which is hardly a clear and direct demand on developers.
Has this ever been tested in a court (aka is there legal precedent for the interpretation above)?
As far as I can tell, there has never been a verdict, or even a case regarding the licensing of WordPress themes and plugins. The closest example was in 2010, when Chris Pearson of Thesis Theme and Matt Mullenweg (co-creator of WordPress) got into a heated twitter war over the closed license of Thesis Theme at the time. Legal threats were brought up, but eventually Pearson re-licensed his theme as Split-GPL, before any action was taken.
This isn’t a great example, however, as his theme contained subclassed components like a custom nav-walker (which were legally ruled on in a case involving Java code), and functions that copied WordPress core code verbatim, which clearly forces derivative status, regardless of the core question.
Regardless, as it was never brought to court, the situation remains legally ambiguous.
So, who doesn’t fully GPL license their code?
Many themes and plugins distributed via the popular Envato marketplace are licensed under a “Split license”, where the PHP is GPL licensed, and the CSS, JS, and media included in the plugin or theme isn’t. This is clearly supported by the Software Freedom Law Foundation’s interpretation of the GPL, Matt Mullenweg is against the practice, but clearly doesn’t have a legal reason for this, just an ideological one. Regardless, split licenses are common and defensible.
Beyond this, we get into the more questionable realm of developers who actively apply non-GPL licenses or who Do not honor the terms of the GPL. In the first case, there are a few popular themes and plugins that either don’t list their license or actively post a restrictive license.
Can I ignore the rules of a non-GPL-compatible license?
The right and responsibility to enforce license compliance lies with the developer of the original GPL code (in this case, the WordPress Foundation or Michel Valdrighi, author of the original B2 platform). Just claiming that a license is invalid, as a user, doesn’t make it so. All licenses must be treated as valid by users, or you face possible legal action. If you discover an improper license, you can forward it to the WordPress Foundation, and they can decide whether to attempt to enforce the terms of their license.
From the Free Software Foundation’s GPL FAQ:
Who has the power to enforce the GPL? (#WhoHasThePower)
Since the GPL is a copyright license, the copyright holders of the software are the ones who have the power to enforce the GPL. If you see a violation of the GPL, you should inform the developers of the GPL-covered software involved. They either are the copyright holders, or are connected with the copyright holders. Learn more about reporting GPL violations.
Does the GPL let me force a developer to provide me their plugin/theme for free?
No. From the Free Software Foundation’s GPL FAQ:
If I distribute GPL’d software for a fee, am I required to also make it available to the public without a charge? (#DoesTheGPLRequireAvailabilityToPublic)
No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public.
If I bought the plugin or theme once, can I force the developer to provide me with future updates free?
No. The GPL says nothing about making future updates to code available to current users, so if your license doesnt include updates, or limits the term for which you will receive updates, after that you will need to purchase future versions.
are GPL clubs legal?
This is a very gray area. If they provide only GPL-licensed software, then they are legal. However, the vast majority of so-called “GPL clubs” offer plugins and themes that are split-licensed or closed licensed. If they do so, they are committing software piracy.
You can usually verify that a GPL club is sharing software illegally by searching for “Avada”, “Visual Composer”, “WP Bakery”, “X Theme”, and “Thesis”. These are all popular split-license plugins and themes that are illegal to share in their entirety. Obviously, passing this quick test doesn’t confirm that a GPL club is operating within the law, but I have yet to see one that properly respects software licensing.
The takeaway for Developers
if you are writing code for WordPress either license the whole work as GPL v2, or a compatible license, or license your assets, styles, and scripts separately from your PHP, or interact with WordPress only via API. Anything else is just asking for future legal trouble, regardless of your opinion of how GPL applies to plugins and themes. That is, unless you really want to be the one to create precedent either confirming or refuting the SFLF’s interpretation of the GPL.
The takeaway for Users
Respect the license provided to you by the developer. If you believe it is in violation of the WordPress license, forward it to the WordPress Foundation, and let them handle any possible legal action. Don’t assume you can ignore a license, or you may end up in court.
Be very cautious of GPL Clubs. While the concept is valid, many implementations leave you with illegal copies of software or assets that are not GPL licensed.