Should all Wordpress Plugins be under GPL License?

10 replies
Today I came across of these links I provide below which basicly say that there is a gray area on the license of wordpress plugins and their opinion is that every wordpress or drupal plugin has to be licensed under GPL because they are derivative works. That means that you can sell your plugin but also the buyer has the right to redistribute it free of charge.

This is the link:

WordPress › About » License

Part of this license outlines requirements for derivative works, such as plugins or themes. Derivatives of WordPress code inherit the GPL license. Drupal, which has the same GPL license as WordPress, has an excellent page on licensing as it applies to themes and modules (their word for plugins).

There is some legal grey area regarding what is considered a derivative work, but we feel strongly that plugins and themes are derivative work and thus inherit the GPL license. If you disagree, you might want to consider a non-GPL platform such as Serendipity (BSD license) or Habari (Apache license) instead.
and this:

Licensing FAQ | drupal.org

9: Is it permitted for me to sell Drupal or a Drupal module or a Drupal theme?

Yes. However, you must distribute it under the GPL version 2 or later, so those you sell it to must be allowed to modify and redistribute it as well. See questions 6 and 7 above.
7: If I write a module or theme, do I have to license it under the GPL?

Yes. Drupal modules and themes are a derivative work of Drupal. If you distribute them, you must do so under the terms of the GPL version 2 or later. You are not required to distribute them at all, however. (See question 8 below.)

However, when distributing your own Drupal-based work, it is important to keep in mind what the GPL applies to. The GPL on code applies to code that interacts with that code, but not to data. That is, Drupal's PHP code is under the GPL, and so all PHP code that interacts with it must also be under the GPL or GPL compatible. Images, JavaScript, and Flash files that PHP sends to the browser are not affected by the GPL because they are data. However, Drupal's JavaScript, including the copy of jQuery that is included with Drupal, is itself under the GPL as well, so any Javascript that interacts with Drupal's JavaScript in the browser must also be under the GPL or a GPL compatible license.

When distributing your own module or theme, therefore, the GPL applies to any pieces that directly interact with parts of Drupal that are under the GPL. Images and Flash files you create yourself are not affected. However, if you make a new image based off of an image that is provided by Drupal under the GPL, then that image must also be under the GPL.

If you commit that module or theme to a Drupal Git repository, however, then all parts of it must be under the GPL version 2 or later, and you must provide the source code. That means the editable form of all files, as described above.
#gpl #license #plugins #wordpress
  • Profile picture of the author Media Man
    Interesting... I wonder what developers would say about this.
    {{ DiscussionBoard.errors[5634522].message }}
  • Profile picture of the author pbarnhart
    There is no grey area. The Wordpress - Thesis lawsuit (settled out of court) was just the most public example. Plugins and the code portion of Themes are derivative works and fall under GPL no matter what. The help text, the instructions, the tutorials, the training - these are all copyrightable.

    How to get around it?

    Write all your functionality in another, standalone application. Use an API for that application. Example? Lets say you had a membership plugin. Use the Wordpress database, call things inside the loop, use the Wordpress login etc. (what EVERY membership plugin I've looked at does) and it is GPL derivative work. The design work - the javascript, css etc may be copyrightable. But a properly-executed Wordpress plugin is GPL.

    Now, write a standalone application, and simply use the Wordpress plugin to share login authorization by querying the database directly for example. Now you have some legal ground to stand on.

    And beyond all that, if you actually attempted to use another licensing scheme and sued someone who reproduced your plugin without authorization in court, the Automattic (owners of Wordpress) legal team will be there in a heartbeat to shut it down.
    {{ DiscussionBoard.errors[5634962].message }}
  • Profile picture of the author CDarklock
    Originally Posted by Mitsakis View Post

    Today I came across of these links I provide below which basicly say that there is a gray area on the license of wordpress plugins and their opinion is that every wordpress or drupal plugin has to be licensed under GPL because they are derivative works.
    The grey area is that what constitutes a derivative work is not a clear-cut question.

    The Thesis theme copied large amounts of code out of WordPress itself. It was clearly a derivative work because significant content and functionality was copied word for word. If you declare ten variables in a row, simply putting them in the same order as a GPL product did is something that could have been done over three and a half million different ways.

    So if you've not only declared them in the same order, but also given them the same names... yeah, you got those out of the GPL code and you're subject to the GPL.

    But what isn't clear is something like this:

    Code:
    class emailer {
      function send()  {
        #friends = 'bob@example.org,susie@example.org';
        mail(#friends,"sally's blog updated",'I just put something on my blog: http://blog.example.com');
        return ;
      }
    }
    #myEmailClass = new emailer();
    add_action('publish_post', array(#myEmailClass, 'send'));
    That's GPL code released as an example by the WordPress team. So what if I write this:

    Code:
    class MailClass {
      function Send()  {
        #recipients = 'john@example.org, george@example.org';
        mail( #recipients, 
            'Blog Updated', 
            'New post at http://blog.example.com' );
        return ;
      }
    }
    #mailInstance = new MailClass();
    add_action('publish_post', array( #mailInstance, 'Send' ));
    Is this code under the GPL or not?

    The grey area exists because it is impossible to prove this code wasn't written from scratch, without reference to the GPL code. It has to be demonstrated by a preponderance of the evidence that the GPL code was used to create the new code. (This is not the same as reasonable doubt.)

    You would have to make the argument that it is suspicious to name the function "Send" (albeit with a capital S), to store the recipients in a variable, and to use the mail() function for sending the mail - and that these three things cannot possibly have been decided independently. These are the only three elements of the code which do not have a clear and unambiguous engineering purpose. You could indeed name the function something that isn't "Send" (perhaps "Transmit" or "Notify"), and you could store the recipients in some other fashion, and you could use some function other than mail() to send the message.

    The question is whether you got the idea from the GPL code. And it can be pretty clearly demonstrated that almost every email system uses "Send" as the verb for email, and that mail() is the simplest possible way to send mail on PHP. Which leaves the question of "is this derivative" hanging on the idea that storing my recipients in a variable is enough to drag every single line of code I wrote in my plugin under a licence I don't want.

    Now, if you are a crap developer that writes a few lines of boilerplate code and is happy when they work, this is great. Because it means a professional developer like me has written thousands of lines of code that you get to use any way you want, since the GPL grabs it out from under me and says anyone who wants it can use it.

    But to a professional like myself, this is extortion. My experience has been hard-won over the course of more than thirty years spent programming on several architectures in dozens of languages. If I volunteer to work on your open-source project, that's my choice. But coming along and saying that my project can be freely redistributed because a couple lines of it look an awful lot like something some guy on the WordPress team wrote once? That's bull****.

    The GPL is just flat-out evil. It's asserting community ownership over code you haven't even written yet, so they can come along later and say "we like that, and you used some of our code once, so we get to take it from you."

    Compare the BSD licence, which allows you to change the licence if you want. Apple used the BSD codebase as the foundation of the newer Mac OS for precisely this reason: they could write proprietary code in which they had patent rights, and they were not required to release it under the BSD licence. The MIT licence is functionally equivalent. If you want to give back to the community, use one of those.

    Choosing the GPL is a petty, jealous, scarcity-minded play to steal code from other people. And if you know Richard Stallman, and you've seen the code he writes, you know exactly why he created the GPL.

    EDIT: Had to correct the code so all dollar signs were replaced by octothorpes, to prevent the forum stripping them.
    Signature
    "The Golden Town is the Golden Town no longer. They have sold their pillars for brass and their temples for money, they have made coins out of their golden doors. It is become a dark town full of trouble, there is no ease in its streets, beauty has left it and the old songs are gone." - Lord Dunsany, The Messengers
    {{ DiscussionBoard.errors[5635414].message }}
  • Profile picture of the author pbarnhart
    CDarklock makes some very excellent points. Especially the nature of GPL. Which is why I very rarely code for WordPress - I much prefer developing standalone apps and depend on standard frameworks like CodeIgniter.

    Unfortunately, CDarklock misses the core argument concerning Thesis. Having some firsthand knowledge of a related templates legal issue - the basic argument is that Thesis could not function independent of WordPress. It doesn't matter if not a single line of code looks anything like code within Wordpress. If it cannot run independent of Wordpress, it falls under the Wordpress GPL. So, your code example could not function without Wordpress
    Code:
    add_action('publish_post', array( #mailInstance, 'Send' ));
    Now, as for the original class MailClass - by itself it certainly isn't GPL'ed. its the add_action that triggers GPL.

    Unfortunately, a lot of this comes down to the nature of the marketplace. If you want to create products and services targeting the WordPress or Drupal-using community, you have to find income opportunities that do not depend on code ownership.
    {{ DiscussionBoard.errors[5636314].message }}
    • Profile picture of the author CDarklock
      Originally Posted by pbarnhart View Post

      If it cannot run independent of Wordpress, it falls under the Wordpress GPL.
      This is absolutely wrong.

      1. If you go look at the WordPress plugin repository guidelines, they require you to use a GPL compatible licence to be listed on the site. This means both that you can have a non-GPL plugin listed on the site, and that you can have an incompatible licence off the site. Otherwise, this rule would not make any sense.

      2. Properly written plugins can run independent of WordPress, on any system which implements the WordPress API. The WordPress API, like all public APIs, cannot be subject to licence. Anyone who wants to implement the same API and make all the WordPress plugins work on their own software can legally do so, and their software does not have to be GPL. This is why so many open source programs will use PhotoShop filters: because Adobe cannot legally stop them. Don't mistake "nobody does this" for a condition where nobody CAN do it.
      Signature
      "The Golden Town is the Golden Town no longer. They have sold their pillars for brass and their temples for money, they have made coins out of their golden doors. It is become a dark town full of trouble, there is no ease in its streets, beauty has left it and the old songs are gone." - Lord Dunsany, The Messengers
      {{ DiscussionBoard.errors[5636625].message }}
      • Profile picture of the author pbarnhart
        Originally Posted by CDarklock View Post

        This is absolutely wrong.

        2. Properly written plugins can run independent of WordPress, on any system which implements the WordPress API. The WordPress API, like all public APIs, cannot be subject to licence. Anyone who wants to implement the same API and make all the WordPress plugins work on their own software can legally do so, and their software does not have to be GPL. This is why so many open source programs will use PhotoShop filters: because Adobe cannot legally stop them. Don't mistake "nobody does this" for a condition where nobody CAN do it.
        You are absolutely correct, I meant to include that in my discussion and got carried away with my train of thought. The Wordpress API falls outside of GPL and I meant to expand on that. In fact, for my last project I used wp_remote_get function and as part of my deliverable specifically justified why this did not put the app under GPL in response to a similar question. Its boring and I won't bore anyone here with it.

        However, there is considerable disagreement with enforceability and warranty status of incompatible licences in case of redistribution and most people would not have the resources to fight that battle.
        {{ DiscussionBoard.errors[5637180].message }}
  • Profile picture of the author joshuatcraig
    This is all very interesting.

    Also, I should take a moment to say hello, and I look forward to posting here. I am new to this forum and this is my first post.

    This topic caught my attention. I'm still thinking about how I feel about this issue.

    I do have a question though regarding themes. Since you are using code from wordpress to make a theme then the theme falls under GPL right?

    So, if someone is making and selling premium themes does that mean that legally people could pay to download a theme and then give it to their friends and pass it along? Or someone could find a place online to download the premium theme and not pay for it at all?

    That doesn't seem right, but it seems that legally people could do that since it's under GPL. Just wondering because a buddy and I are working on some themes that we are going to sell online and I've never really looked to far into what GPL means regarding how my work could be distributed. I'm thinking about it now.
    {{ DiscussionBoard.errors[5636818].message }}
    • Profile picture of the author CDarklock
      Originally Posted by joshuatcraig View Post

      I do have a question though regarding themes. Since you are using code from wordpress to make a theme then the theme falls under GPL right?
      Well, IF the code you use from WordPress is IN THE THEME, then this is possible.

      But if the WordPress code stays in WordPress, and you just use "include" or "require" to get it into your theme's scope, then your theme doesn't fall under GPL.

      Thesis copied large amounts of the WordPress code into their theme, so they didn't have to "require" the whole library that included the functions they wanted. This made their theme a lot faster than other themes which, being commercial, didn't want to fall under GPL - and therefore could not legally do this. That's the real core of the Thesis debacle; they cheated. Rather than follow the rules to stay non-GPL, they broke those rules, then refused to honour the licence and GPL their theme.

      It is worth noting that WordPress does this sort of thing deliberately. They make it very difficult to keep your plugins and themes from falling under the GPL, because they want your code to be under the GPL. Then they get to strip-mine it for their own programming efforts.

      This is, of course, entirely within their rights. But they are still a bunch of conniving, thieving doucheballs.

      Just wondering because a buddy and I are working on some themes that we are going to sell online and I've never really looked to far into what GPL means regarding how my work could be distributed. I'm thinking about it now.
      It's a complicated subject. Chances are you will do something that brings your theme under GPL, simply because the pitfalls are numerous and many of them are deliberate. Even if you don't, chances are people will think your theme is GPL and act like it is anyway. Don't worry about it. Make your theme, let it end up however it ends up, and just stick a buy button on it. If you make good themes, there's plenty of market even if you are GPL.

      Meanwhile, this former professional software developer won't develop WordPress plugins because the GPL is dangerous and has unacceptable consequences far beyond one plugin or theme.
      Signature
      "The Golden Town is the Golden Town no longer. They have sold their pillars for brass and their temples for money, they have made coins out of their golden doors. It is become a dark town full of trouble, there is no ease in its streets, beauty has left it and the old songs are gone." - Lord Dunsany, The Messengers
      {{ DiscussionBoard.errors[5637096].message }}
    • Profile picture of the author pbarnhart
      Originally Posted by joshuatcraig View Post

      . Just wondering because a buddy and I are working on some themes that we are going to sell online and I've never really looked to far into what GPL means regarding how my work could be distributed. I'm thinking about it now.
      Several theme sellers, such as the folks at Pro Photo, steer a middle ground here that I think works commercially.

      If you grabbed one of their themes from a third party, it will actually function. However, there is a great big NAG in the admin prompting you to register it. Also, the theme is very robust and coded well, which means inevitably that WordPress upgrades may very well break functionality in some way (usually minor). In order to get their auto updates and upgrades, you must be registered.

      They coded a call back home, and use it to engage in ongoing interaction with their users. Including nags and prompts for unlicensed users.

      Another key area is support. It is inevitable that with the horde of plugins most people use, that something will break due to poorly-coded or buggy plugin code. You want into the very active forum to get help? You must have a licensed copy.

      They also monitor usage. That's why they modified their license to allow for a development environment for example.

      Pro Photo has built a great business around excellent templates. Ongoing interaction and support with great value. They built a business model first, then used the 80-20 rule to solve their technical issues.
      {{ DiscussionBoard.errors[5637240].message }}
  • Profile picture of the author CDarklock
    There are four major ways people make money with open source.

    1. Installation
    2. Documentation
    3. Customisation
    4. Support

    In other words, a commercially viable open source product is complicated to install, difficult to use, lacks popular features, and frequently doesn't work. This forces your users to give you money.

    Don't get me wrong, open source is wonderful. But it isn't a business model, and when you try to use it as one you will inevitably end up becoming a massive dickhead that nobody likes.
    Signature
    "The Golden Town is the Golden Town no longer. They have sold their pillars for brass and their temples for money, they have made coins out of their golden doors. It is become a dark town full of trouble, there is no ease in its streets, beauty has left it and the old songs are gone." - Lord Dunsany, The Messengers
    {{ DiscussionBoard.errors[5637322].message }}

Trending Topics