An analysis of GPLed code in Thesis
drewblas.com
drewblas.com
I can answer that. The quoted sentence is one of the biggest misunderstandings that developers make about the GPL. There is no obligation to make Thesis GPLed.
What's really happening rather, is that the author of Thesis is violating Wordpress's copyright. In order to fix the situation, they need to either stop using the copyrighted code, or reach some kind of agreement with the author of the code to obtain proper authorization. One way to obtain such authorization is by releasing their own code under GPL, but they could as well just negotiate a separate agreement.
GPL is not a virus that will force your code open without your consent.
In a lawsuit, could the copyright holder of a GPLed work force the opening of GPL-violating code as part of a GPL-violation settlement?
EDIT: I'm not a lawyer nor a student of the law. Presumably the copyright holder is entitled to some form of compensation, whether it's called a "settlement" or something else. Can the plaintiff dictate that the only form of compensation they will find sufficient is the defendant's release of the infringing code?
It's just tht opening GPL-violating code is probably a cheaper alternative than paying damages (and as far as I know, there's a legal precedent for a GPL violator paying damages to the authors of the pirated code).
Alternatively, a GPL violator could negotiate a proprietary license for the same code from the author(s) of the GPLed code they used - it's questionable whether (a) you can hunt down all the authors, since open source licenses specifically enable collaborative development of software and (b) whether all the authors would agree to such a deal, especially after the company in question tried to pirate their code without giving anything back in return.
That would only be true if Thesis was not distributed to the public. Since it is and it has GPL'd code in it, it must be GPL'd itself.
My view is that GPL infringements are no different than regular copyright infringements—the owner of the copyright is entitled to damages awarded by a court or an out of court settlement of some kind. This may or may not include GPL'ing the derivative work.
I've generally agreed with theme authors that just interoperating with GPL software via its API is not enough to require your work to also be GPL'd, but when your theme or plugin contains whole sections of modified GPL code you've pretty much lost the argument.
But, this still doesn't make it OK for Automattic to force all theme developers to move to GPL. As that guy rightly points out, by the same logic you should sue all closed source software on Linux that makes use of system calls.
GCC itself is GPL, but its libraries (along with glibc) have an exception that permits linking against non-GPL software.
That they consider it a derivative work is their -legal opinion-. Remember their license still doesn't supercede local laws and a court could invalidate Wordpress' legal opinion of what a derivative work is.
NOTE! This copyright does *not* cover user programs that use kernel
services by normal system calls - this is merely considered normal use
of the kernel, and does *not* fall under the heading of "derived work".
[1] http://github.com/mirrors/linux-2.6/blob/master/COPYINGThen there is still a problem with the exception. It only applies to code owned by the kernel developers. If I were to come along and contribute, say, a driver to the kernel, I'd have to agree tot he exception and license my driver as GPLv2 + exception. No problem.
But suppose as part of my driver, I needed some code for some data structure. I find that someone has already wrote such code and put it in a GPLv2 program. I'm using GPLv2, so I take their code and put it in my driver.
But wait! The author of that data structure code has not agreed to GPLv2 + exception. He's just released under GPLv2. I don't own the copyright, so can't relicense it under GPLv2 + exception.
If the kernel developers accept my driver, then the author of that data structure code could take action about people running non-GPL applications on Linux.
How careful are the kernel developers and maintainers about this? Do they make sure that anyone who contributes code, even indirectly, has agreed to allow the exception?
This in general is an issue with any code that uses a GPL + exceptions license, if the exception is actually needed. (Many feel that the Linux exception is NOT actually needed)
Such a practice is used in other projects ... e.g. the GNU Classpath exception ... http://www.gnu.org/software/classpath/license.html
BTW ... a piece of software X is considered a derived work of some software Y, if X is dependent on Y for functioning and Y can't be replaced.
Linux may not need that exception for many user applications, but without it you're in gray area.
The notion of a work "derived" from another work is a notion from GPL, not from copyright law. The copyright notion most closely corresponding to what GPL seems to mean by derived work is "derivative work".
Whether or not X is a derivative work of Y does not depend on whether or not Y can be replaced. For instance, if I sit down right now and write a Firefox plug-in, whether or not it is a derivative work of Firefox or not is not affected in any way by whether or not there is some other browser that also accepts Firefox plug-ins. The status of my plug-in depends entirely on the relationship of my code to Firefox's code. If I have copied copyrighted elements (literally or via adaption, translation, etc) from Firefox, mine is a derivative work of Firefix. If I have not copied copyrighted elements from Firefox, my work is not a derived work of Firefox.
A license is free to define whatever terms it wants, and require licensees to obey them. Hence, if I were to use GPL code in my plug-in, I would have to obey GPL, including going along with whatever rules they have on works "derived from" other works, however they define that.
However, if the author of software X is careful to stick within the limits of what copyright allows--he does not copy any copyrightable elements from Y, then the license of Y and whatever terms it defines are irrelevant to Y, at least as far as direct infringement goes. That is, X is safe from Y suing alleging that X violates Y's copyright.
If the people who actually use X and Y together would be violating Y's license, then Y could try to sue X for "contributory infringement". That's when party Z infringes Y's copyright, and party X is held to be responsible for causing or aiding that infringement.
A very important and basic fact about contributory infringement: there can be no contributory infringement without direct infringement. This pretty much rules out contributory infringement when Y is under an open source license, as almost all of these licenses allow Z to do whatever he wants on his own machine, include make derivative works that combine Y with non-free code. No direct infringement by Z means no possibility of contributory infringement by X.
Putting it all together, here's what I would recommend for someone writing some piece of software, X, that is meant to work with some other piece of software, Y, as a plug-in, enhancement, patch, wrapper, etc. Assume Y is under an open source license.
1. Look at the license of Y. Are you willing to use the same license for X? If the answer is yes, use that license. Go code. Don't worry about possibly copying code from Y. (Assuming Y is using an open source license, of course).
2. If you aren't willing to use the same license as Y, are you willing to use a license that is compatible with it? For instance, Y uses GPL and you are willing to use BSD. If yes, use a compatible license. Go code. Do not copy code from Y (directly or via translation, adaptation, etc). Go ahead and look at Y if you need to in order to figure out something.
3. If you are not willing to use a license that is compatible with Y's license, be careful. Do not copy any code from Y, directly or via translation, etc. Avoid looking at Y's code at all. If you need to know something, such as the interface to a function of Y, get it from the documentation. If the documentation isn't adequate, get somebody who is NOT going to work on X's code or design to look at Y and write a spec. Code from that spec.
What you are trying to do in #3 is to limit yourself to doing things that do not require permission from Y's copyright owner. If you can hit that zone, you have no copyright worries, and you can write X and release under whatever license you want.
"However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable."
http://ma.tt/2010/07/syn-thesis-1/#comment-481846 [source]
http://imgur.com/jNs7c.jpg [screen shot]
Chris could definitely make his business work by embracing the GPL rather than fighting it. Cut some sort of deal with Matt, accept code contributions to decrease development time and, generally, use Thesis to launch a million other non-GPL products.
He also seems worried about others stealing/selling his work, this is over-stated. Couldn't he just trademark the Thesis name to mitigate most of this risk? I would also bet that most of his customers would prefer buying the real thing over some unsupported knockoff. GPL or not, people who don't want to pay will find a way to get it for free.
> I’m not a lawyer, I’m a developer. My views here are my own and are based on TECHNICAL knowledge and experience with the GPL, not on the law (which astute observers will note often does not reflect real life)
I was not expecting much, therefore, in the way of accurate legal analysis, yet a couple paragraphs later he goes on to show the errors in the SFLCs analysis, and then goes on to correctly state what is required for something to be a derivative work, and then analyzes the theme in question to see if it is a derivative work.
If he had left off the disclaimer, and tossed in a couple of direct case citations in proper legal citation format (instead of just citing another blog that cited a major case), I'd have not guessed that he wasn't a copyright lawyer.
I ask, because Bison is distributed under a modified GPL for this reason, and Gnu.org addresses the question with respect to Bison and to CMS templates.
"As it happens, Bison can also be used to develop non-free programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction. We made the decision because there were other tools comparable to Bison which already permitted use for non-free programs."
- http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForN...
That document also addresses CMS templates specifically, stating that they basically shouldn't be GPL, for the same reason, as far as I can tell: "It is normally harmless to use copyleft on minor works, but templates are a special case, because they are combined with data provided by users of the application and the combination is distributed. So, we recommend that you license your templates under simple permissive terms."
- http://www.gnu.org/licenses/gpl-faq.html#WMS
Relatedly, I've been bothered by Drupal.org and the SFLC's stance that all Drupal modules and themes are GPL-covered for exactly this reason. [edit: for exactly the reason that the SFLC is claiming that Thesis is GPL]
Search for the third match of "Rick Beckman"
"I’m the one who contributed that particular chunk of code to Thesis. A lot of stuff in that particular file was done by me simply because at the time I didn’t know any better & I’m not sure if Chris & I had even discussed the GPL at that point or not."
Considering that he was already attacked when the guys from wordpress didn't even know if he was using code or not, I doubt it. Matt already stated that any themes or plugins fall under the GPL (even if you are only making function calls)
Take the code, filter out the abstract concepts, the purely functional expression, and finally the short words and phrases in what was left. Some other courts would impose a further filter based on fair use and interoperability.
Take a look at the diff and apply some of those filters in your mind. After all those filters, I am unsure what, if anything, would be left.
EDIT: I had thought that this might be a case of parallel development, but Rick Beckman (former dev for Thesis) just posted that there was copy-paste from WordPress core - he did it. (http://ma.tt/2010/07/syn-thesis-1/#comments, Rick Beckman @8:41) Although that doesn't make it completely open-and-shut, it makes it significantly more likely that Matt/WP would prevail.
That Thesis infringes on WP copyright by using some GPL code, or that add-ons like themes are truly derivative works?
The article seems to confirm the former, but not the latter.
This would reduce the amount of rhetoric, since we'll finally get an idea of where a US court stands on parts of the GPL. Settlements don't provide any clarification.
It would be interesting to see if more projects go with GPL or switch to other licenses like the MIT or Apache license.
Does anyone know why Wordpress is so defensive over this though?