Open Source street signFrom time to time the topic “Mixing GPL software with non-GPL software” crosses my www ways, and I often find there is a lot of misunderstanding about what GPL open source is about (as opposed to other open source software license models). This is not surprising, given that the GPL is probably one of the most complex software licenses around. Time to clarify some fundamentals…

Two typical situations when you start asking yourself questions about GPL-compatibility are these:

A) You happen to simply not like the GPL, so you’d like to select an alternative, less restrictive license. This was the case with me several years ago, and the original inducement for me to dive into GPL’s mysterious ways.

B) You want to implement a commercial extension (i.e. a plugin) for a GPL’ed platform. Now the GPL does not explicitly forbid selling software, but it explicitly guarantees the recipient the right to freely copy and redistribute the software. Hell, you can’t even add an extra clause that restricts its use to non-commercial, because that restriction is not compatible with the GPL.

But are you allowed to make your plugin non-free?

The surprising answer is: Yes you can!

The clue is: The GPL does not restrict usage (if it did, it wouldn’t qualify for a free license). What it does restrict is distribution. You can run GPL and non-GPL1 software together, but you cannot distribute GPL and non-GPL software in one package.2

Ever wondered why some software websites sometimes require you to separately download pre-requisite or additional software, and they say it’s because of licensing issues? Well, this is exactly the reason.

Let’s see what this means to the prospect WordPress plugin author.

It means, as long as you don’t package WordPress with your plugin (and why on earth would you do that?), you can use whatever license you want.

Better yet, the “GPL-ness” of the underlying platform now works in your favor. Whew, how that? Read on…

One of the major “leaks” where WordPress plugins “go” is in websites created by freelance website “developers”, who build a business around quickly putting together a website on top of WordPress and the plethora of plugins around it. (I know mine are used a lot, and I never see a dime for it.)

However, when they compile/develop a WordPress website and give it to their client, they are effectively distributing the code. And that’s where GPL jumps in.

If your plugin is non-GPL1, but the platform is, the platform’s license will prohibit the (obviously illegal) addition of your plugin. Strictly speaking, the only way for the final recipient to use your plugin legally is to purchase a copy from you.

Of course, this doesn’t mean your software will not be bootlegged. But at least it gives you some level of legal foundation to fight back.

If you are interested in details about mixing GPL and  non-GPL1 software, here’s some further reading

  1. For the sake of conciseness I’m using the term “non-GPL software” for software put under a license incompatible with the GPL. [] [] []
  2. You can however put GPL and non-GPL software on the same CD/DVD and distribute the disk. []

3 Responses to “Making Money With WordPress Plugins – Mixing the GNU License With Others”

  1. You make a good point, but it doesn’t adress the question of whether plugins are “derivative works”. If they are, they still have to be GPL-licensed even if not distributed together with WordPress.

  2. W-Shadow, basically the main (and actually only) argument that a plugin is “derivative work” is that it is calling platform code. IMO that’s a misconception. I just commented on the topic elsewhere, so I’ll simply quote myself here: :-)

    Calling WP functions is essentially executing code, not deriving from it. You build every software in the context of some knowledge, and in case of WP plugins it is the knowledge about the WP API. That doesn’t mean you derive your plugin’s functionality from that of WordPress. That would be a ridiculous statement, no matter the lines of code. It would mean that interfacing with 3rd party software is “deriving” from it. Or that coding a PDF reader from scratch is work derived from Adobe’s PDF code, just because you rely on the PDF format definition (which IS your interface in that case).

    The point is, plugins are not derivative work (except they are indeed a variation of some WP code, and are not merely interfacing with it), even if they are dependent work.

    I’m not a lawyer though…

Trackbacks/Pingbacks

  1. The Journey of Custom Plugin Design for WP | The Shopping Network

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Please ignore these 2 fields: