GPL, Licensing
comments 8

Understanding the GPL licensing of WordPress

(Note: I wrote this post before I learned of the WPScan debate. Nothing in this post was written with that debate in mind. I’ll leave that for the next post… .)

Licensing

As I’ve noted previously, WordPress is licensed under the GNU General Public License (GPL), version 2. The text of version 2 of the GPL has accompanied every release of WordPress since its inception, in the license.txt file included in each download. Originally, and until version 3.2 of WordPress, the license.txt file was a verbatim reproduction of the GPL, with no reference to b2 or the WordPress contributors. Matt and his co-developers had, instead, included full attribution to b2 and Michel Valdrighi in the readme.html file included with each download. For example, in the open source spirit that pervades the WordPress community and which Matt has championed from the outset, the readme.html file in version .71 of WordPress said this:

“WordPress is built from b2, which comes from Michel V. We wouldn’t be here without him, so why don’t you grab him something from his wishlist?”

Nice.

As WordPress matured, each download continued to include a license.txt file and a readme.html file but, with the release of version 3.2 of WordPress, Matt and his co-developers added to the wording of the license.txt file. From that point forward, the license.txt file has commenced with this wording (the only change in subsequent versions being the year of copyright):

“WordPress – Web publishing software

Copyright 2011 by the contributors

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program incorporates work covered by the following copyright and
permission notices:

b2 is (c) 2001, 2002 Michel Valdrighi – m@tidakada.com – http://tidakada.com

Wherever third party code has been used, credit has been given in the code’s
comments.

b2 is released under the GPL

and

WordPress – Web publishing software

Copyright 2003-2010 by the contributors

WordPress is released under the GPL”

Understanding the GPL

Freedoms

The GPL is an open-source software licence that is designed to protect four fundamental freedoms that are considered to underpin “free software”, namely, the freedom to:

  • run the software for any purpose;
  • study how the software works through access to source code and to freely adapt it;
  • redistribute copies of the software to anyone; and
  • improve the software, and redistribute those improvements to anyone.

Versions

First written by Richard Stallman and the Free Software Foundation (FSF) in 1989, the GPL has continued to evolve through successive versions. Version 2 was released in 1991 and version 3 was released in 2007. Version 3 is the latest version.

As noted above, WordPress is released under version 2 of the GPL, although the introductory section in the licence now states that “you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version”.  Clauses or paragraphs in the GPL are called “sections”.

Summarising the GPL

From the perspective of opening up software for use by others, the GPL was and remains a well-crafted open source licence. At the same time, it uses legally-oriented language with which many WordPress users may be unfamiliar. In addition, and unlike the Creative Commons licences for other forms of copyright works, the GPL doesn’t have a simplified “human readable deed” (as Creative Commons calls the summary of its licences). For these reasons, the true meaning and impact of the GPL might not be immediately apparent to some WordPress developers, designers and users.

To boil things down, the following box summarises key aspects of version 2 of the GPL. It doesn’t summarise all clauses. Rather, it summarises those that are most relevant to WordPress users on a day-to-day basis.

A summary of the GPL


Copying and distribution
: You may copy and distribute the program as long as you comply with some copyright notice and disclaimer requirements. Those requirements are that you publish on each copy an appropriate copyright notice and disclaimer of warranty, keep intact all notices that refer to the GPL and the absence of any warranty, and give recipients a copy of the GPL along with the program. (Section 1)

Fees: You may, if you wish, charge a fee for transferring a copy of the Program and/or for warranty protection. (Section 1 as well)

Modifications / derivative works: You may modify the Program or any part of it and distribute the modifications or new work as long as modified files contain notices regarding the existence and date of changes and any work that you distribute or publish that contains or is derived from the Program or any part of it is licensed as a whole at no charge to all third parties under the GPL. (Section 2)

Distributing non-source forms: You may copy and distribute the program or a work based on it in object code or executable form, on the terms of sections 1 and 2, as long as you accompany it with either:

  • the complete corresponding machine-readable source code; or
  • a written offer (valid for at least 3 years) to give any third party the source code, for a charge that is no more than the cost of distribution; or
  • information you received as to such offer (this option is allowed only for noncommercial distribution and if you received the non-source form(s) with such an offer (Section 3).

Termination: If you copy, modify, sublicense or distribute the Program other than as permitted, your rights under the GPL will terminate automatically. (Section 4)

Downstream licensing: Downstream recipients of the Program or any work based on it automatically receive a licence from the original licensor to copy, distribute and modify the Program on the terms of the GPL. As a distributing licensee, you are not allowed to impose any further restrictions on the recipients’ exercise of the rights under the GPL. (Section 6)

The GPL in a small nutshell

A super-condensed summary would be along these lines: you can copy and distribute the program, you can charge a fee for transferring the program or providing warranty protection, and you can modify the program and distribute your resulting derivative work. But, if you distribute your derivative work, you need to license it under the GPL, otherwise your licence to use the program will terminate (and you’ll be infringing copyright in the program). 

Qualifications

Whilst many parts of the GPL are abundantly clear, certain aspects are, unfortunately, more complicated than the above summary might suggest. In particular, one needs to be aware of some important qualifications as to how the requirements relating to modifications / derivative works are intended to apply. The full text of section 2 should be consulted for the detail but key points are these:

  • the intent is to control the distribution of derivative or collective works based on the Program, not to “contest your rights to work written entirely by you”;
  • if identifiable sections of the modified work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then the GPL does not apply to them when distributed as separate works;
  • however, 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 the GPL; and
  • “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 [the GPL]”.

As we will see in a later post, the intended meaning and scope of the modifications / derivative works provisions have been the subject of considerable debate for many, many years, including within the WordPress community. (Yep, in a later post, I’m going to wade into the topic of the GPL and commercial themes. I need to take a few deep breaths before doing so.)

GPL-related WordPress questions

GPL-questions

It’s fairly easy to summarise most key aspects of the GPL but the rubber hits the road when people come to apply it in practice. For this reason, I’ve set out below a range of GPL/WordPress questions that do or may arise in practice and have sought to answer them. Note that I’ve deliberately not addressed the question of the extent to which commercial themes may need to be licensed under the GPL (as mentioned above, that’ll be the subject of a later post). When I use a term like “GPL’d theme”, I’m saying that the theme has been licensed under the GPL.

If I modify the core WordPress software or a GPL’d theme or plugin, must I release the source code of the modified versions(s) to the public?

If you are using the modified version privately without distribution, then you do not have to release the source code of the modified version to the public. However, as the Free Software Foundation puts it, “if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program’s users, under the GPL.”

If I know that someone has developed a WordPress theme or plugin for private use, can I require that person to give me a copy of the theme or plugin?

No, the GPL does not require this.

I take a GPL’d theme or plugin from the WordPress theme or plugin repository, or I purchase a GPL’d theme or plugin from a commercial provider, and then I modify the theme or plugin for my own purposes. Am I obliged to release my modified version to others?

No, you are not obliged to release your modified version to others.

Can I sell the core WordPress software for a fee if I want to?

Yes. Doing so is consistent with the freedoms in the GPL. However, trying to do so would be pointless and unlikely to earn you any money, as everyone knows or could easily find out that WordPress is freely available at wordpress.org.

I’m a theme/plugin developer. I’ve put huge effort into writing my theme/plugin and I’m going to release it under the GPL but I want to make sure that everyone who receives my theme or plugin, even if from someone else, is obliged to pay me a licensing fee or notify me that they have it. Can I do that?

No. As the Free Software Foundation puts it, the “GPL is a free software license, and therefore it permits people to use and even redistribute the software without being required to pay anyone a fee for doing so.” Similarly, if someone receives a copy of GPL’d software, that person does not have to inform the developer that s/he has it. You are entitled to charge a fee for access to support and later versions, but this is quite different to requiring recipients to pay a licensing fee for merely using the software.

I’m a commercial theme or plugin developer. I sell my GPL’d theme or plugin online, behind a pay wall. People can only access the theme or plugin files after paying my prescribed fee. Does the GPL allow me to do this?

Yes. You are entitled to charge a fee for distributing copies of GPL’d software. Note, however, that anyone who obtains a copy is entitled to release it to anyone else, with or without charge; the GPL allows this to occur.

I’m the same commercial theme or plugin developer mentioned above, selling my GPL’d theme or plugin online behind a pay wall. As a commercial operator distributing a GPL’d program, am I obliged (e.g., if someone asks) to make my theme or plugin available to a member of the public for free?

No. However, as noted above, anyone who obtains a copy is entitled to release it to anyone else, with or without charge.

I’ve purchased some GPL’d themes or plugins from a commercial theme or plugin provider. May I sell those themes or plugins from my own website for my own benefit or publish those themes or plugins on my own website and give them away for free?

Yes, under the GPL, you may do either of these things (or both on separate sites if you were so inclined). Bear in mind, however, that some in the WordPress community are likely to frown on such activity and that you are unlikely to be able to provide (or may not wish to provide) the support that the developers/owners can provide.

I’m happy for other people to use my themes and plugins for free. Indeed, that’s why I released them under the GPL and put them in the WordPress theme or plugin repository. I would, however, like to be acknowledged as the author of the theme or plugin in cases where users share the theme plugin with others or modify the theme or plugin. Can I require that?

Yes. As the Free Software Foundation puts it, you “can certainly get credit for the work. Part of releasing a program under the GPL is writing a copyright notice in your own name (assuming you are the copyright holder). The GPL requires all copies to carry an appropriate copyright notice.”

What practical steps can I take if I believe a theme or plugin developer is violating the GPL?

Various things. You could try to raise the matter with:

  • the developer/owner in question (with a view to explaining what you consider to be a GPL violation);
  • the core developers of WordPress (to see whether they, as the principal copyright holders, are interested in getting involved); and/or
  • the wider WordPress community (with a view to evoking community support).

I suggest that raising it with the developer/owner in the first instance is preferable to going straight to the WordPress core developers or the wider community, as sometimes an individual developer/owner may not appreciate what the GPL requires in a particular situation or may have an explanation that meets your concerns. All this said, if your concern relates to not licensing a theme or plugin under the GPL, I suggest it’s important to note that the extent to which themes and plugins must be licensed under the GPL is a thorny and controversial issue (that I’ll be addressing, in relation to themes, in a later post). There is unlikely to be a single definitive answer to this question which applies to every single theme and plugin.

8 Comments

  1. Rheinard says

    Though I knew the gist of this… your post certainly made me realise that the “gist” was so very blurry!

    Well written and great clarification.

    Thanks!

  2. This is a really great resource, and I’d love to see more posts like it — maybe something along the lines of best practices for following the GPL under various commercial models.

    Could you comment specifically on appropriate practices for charging fees for support (mainly internal automated upgrades) limited to a certain number and/or type of sites? My understanding of this sort of arrangement is that it should not be marketed as a limit on “use” (i.e. distribution) but rather a limit on “support.” For example, the developer might decline to support/provide automatic upgrades for their plugin on more than 5 sites under a certain support license, but they cannot prohibit use on more than 5 sites. If you manually uploaded their plugin to 500 sites that would be just fine under the GPL, but I could see why the developer might see you as a parasite detrimental to their business if you did this. They would be within their right to refuse to serve you as a customer even though your actions are lawful.

  3. Hi Dan. Really appreciate your comments, thanks. The topic you’ve raised is on my to do list and has been for quite a while. I have a pretty clear view on it which is along the lines you’ve described. I’m going to refer to some practices of certain theme and plugin shops (without identifying them; I don’t want to call anyone out) to make the point. The reason I propose to do this is that people paying good money for GPL’d software are not always given clear information as to what they’re permitted to do with it. In some cases, I’d say they’re given pretty confusing messages (I’m not saying that’s intentional on the part of any particular site owner but it can be a consequence of the language used). Thanks again for commenting.

  4. Hello,
    many thanks for this great post. It’s really difficult to find this kind of information explained in understandable english.

    I have some questions and would appreciate a lot if you could give some hints on them:

    1- Either on the GPL or AGPL, the only mandatory way to show the copyright notice and the license is via the license.txt file located in the server? So, for example for the AGPL if I give access only to the end users to that file on the server is enough?
    Or I have to maintain the copyright notice at the footer for example?
    Or I have to add that license.txt file also to the website that sells that SAAS but it’s not the software per se but only a website for selling it?
    Is it mandatory to create a git? Or I can provide access to the source code from my own server?

    2- How much can I charge for selling a modified copy of the code? I don’t see logical that you can charge as much as you want and I don’t understand “for a charge that is no more than the cost of distribution”. How much is the cost of distribution? It’s none!

    Thanks a lot in advance.
    Best regards

  5. Pingback: This Week in WordPress: WordCamp Europe and Core Dev Announcements - WPMU DEV

  6. JoMel says

    1. Awesome Post and if I get it right then both reselling WordPress Themes and Plugins (like http://sozot.com) does and giving them entirely away for free (like http://gpldl.com) does is perfectly legal?

    2. What about split-licenses like used at Envato Marketplace (http://themeforest.net)? Cannone make the case that this is a GPL violation with the following reasoning: The GPL of WordPress is completely inherited by any plugin and theme per se, so the authors do not have the rights to release under any proprietary license?

    Would love your views on these!

    • Richard Best says

      Hi and thanks for your comments JoMel.

      As to 1, the simple answer is “yes, it can be, depending on how you go about it”, but it can be a little more complicated than that depending on the circumstances. I’ve discussed a range of issues that can arise in Readers ask: About reselling commercial plugins (updated).

      As to 2, this is a view that people used to advance before 2009; that is, many people used to argue that a theme or plugin was, in its entirety, a derivative work of WordPress and, therefore, had to be fully GPL-licensed when distributed. However, in 2009, Matt sought an opinion from the Software Freedom Law Center (SFLC). The SFLC opinion states that the PHP and any intermingled HTML needs to be released under the GPL. CSS and images, by contrast, can be but do not need to be. If those latter components are not also released under the GPL, two different sets of licensing rights apply to different components of a theme. This is essentially a strategy to constrain people’s uses of the theme to what is allowed by the non-GPL licensing rights. Not that many theme shops do this. As you’ve observed, Envato/ThemeForest does, but it gives authors/developers the choice to opt for 100% GPL if they wish. I’ve discussed a range of complex issues that arise under this general heading in WordPress themes, the GPL and the conundrum of derivative works.

      All the best.
      Richard

Leave a Reply

Your email address will not be published. Required fields are marked *