From 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
- My original discussion with Martin Bayer on mixing GPL and non-GPL code
- Martin Bayers excellent further elaboration on GPL licensing issues and the fork phenomenon
- For the sake of conciseness I’m using the term “non-GPL software” for software put under a license incompatible with the GPL. [↩] [↩] [↩]
- You can however put GPL and non-GPL software on the same CD/DVD and distribute the disk. [↩]

August 8th, 2009 at 2:02 pm
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.
August 8th, 2009 at 2:45 pm
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:
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…