How the GPL works, or not
July 6th, 2009
I have to say that at one point I really liked the GPL license and the idea behind it. I always thought that it is weird to call it viral.
According to the interpretation of the Software Freedom Law Center the GPL might be viral after all.
Consider their statement on WordPress themes:
The PHP elements, taken together, are clearly derivative of WordPress code. The template is loaded via the include() function. Its contents are combined with the WordPress code in memory to be processed by PHP along with (and completely indistinguishable from) the rest of WordPress. The PHP code consists largely of calls to WordPress functions and sparse, minimal logic to control which WordPress functions are accessed and how many times they will be called. They are derivative of WordPress because every part of them is determined by the content of the WordPress functions they call. As works of authorship, they are designed only to be combined with WordPress into a larger work.
I’m not a lawyer, but if using a proprietary API makes something a derivative work, wouldn’t that mean that something written to a proprietary API covered by the GPL also has to be redistributed under the terms of the GPL? At what point wouldn’t something be a derivative work anymore? Is there even a point where it’s no longer considered a derivative work?
Do I even want to bother with this when writing code or should I just choose to work with a license that I can actually understand without a team of lawyers?
July 8th, 2009 at 1:23am CEST
The main points are at the end of the quoted paragraph: they are “determined by [WordPress]” and “designed only to be combined with WordPress”. Without WordPress they could not be used for anything else.
The statement refers only to the PHP elements in WordPress themes. All other components (styles, images, layout, transformation code) are not considered derivative of WordPress and can be used in a lot of different contexts.
But the problem you are referring to in general is very true: it is important to think about how your code uses other modules and vice versa. Just calling an API covered by the GPL does not necessarily mean your code has to be licensed under the GPL, but there is indeed some gray area.
Kariem
July 8th, 2009 at 8:29am CEST
@Kariem: My main concern was that anything using a specific proprietary API will be “determined by [Program]” and “designed only to be combined with [Program]“.
Just think about eclipse plug-ins and things like that.
Although if the main problem in this case is “They are derivative of WordPress because every part of them is determined by the content of the WordPress functions they call.” that’s not such a huge deal as most plug-ins or kernel modules programmed to a specific API, while being designed to work with a specific program will not be detremined by the content of [Program] functions they call as there would be no value in doing something like that. – That might be the distinguishing factor for this case.
It would be interesting to see a case made for WordPress modules. I guess that would clear up confusion… or not ;-)
July 13th, 2009 at 3:51pm CEST
@gpoul: is there any confusion whether wordpress modules have to be GPL’ed or not?
July 13th, 2009 at 7:03pm CEST
@earl: yes, there is confusion, at least for me. Not that I’d not write a WordPress module if I need one, because I still believe that something based on an API can not be a derivative work, but that is my interpretation alone and if I have the choice I’ll go with something that has another license.
I’m also not the only one. Looks like others have this confusion too and understand the issues even less than I do. :-/
July 13th, 2009 at 7:18pm CEST
you might want to read example 4.0 in this document: http://www.law.washington.edu/lct/swp/Law/derivative.html – very interesting…
Looks like I was “assuming” that things work as they’re handled with linux kernel modules where there are binary-only modules in existence and nobody ever sued anyone.
I realize that assuming things is always worse than asking a lawyer, though. :-)