The Drupal licensing FAQ (http://drupal.org/licensing/faq) states:
"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.
I do not believe this is correct. Modules and themes are commonly written without copying or modifying any Drupal code. Derivative works involve copying, with or without modification. Here's an opinion from an attorney who specializes in this type of thing:
"The primary indication of whether a new program is a derivative work is whether the source code of the original program was used, modified, translated or otherwise changed in any way to create the new program. If not, then I would argue that there is not a derivative work. ...
"Derivative works are not going to encompass plug-ins and device drivers that are designed to be linked from other off-the-shelf, unmodified, programs. If Linux is designed to accept separately-designed plug-in programs, you don’t create a derivative work by merely running such a program under Linux, even if you have to look at the Linux source code to learn how to do so."
http://www.rosenlaw.com/lj19.htm
I commonly explain a CMS as being an "operating system for a website". CMS'es are modular in nature, and meant to be added on to. Drupal's stance is equivalent to saying that every program that runs under Windows violates Microsoft copyrights. Drupal is in fact invoking M$ libraries as I write this, interacting with their code, and under Drupal's position would be in violation of their copyrights.
If I ever develop any modules, I will release them under whatever terms I choose. I would also design them to be portable to other CMS's. Other GPL'ed CMS's benefit from the availability of commercial modules, and I wonder why Drupal has chosen such a minority, hard-line stance that will only hurt them in the long run. Don't get me wrong; open source is great, but I don't agree with this position.
If there is any case law that appears to conflict with my opinion, I would like to be made aware of it.
Comments
Well
Well a Drupal module definitely uses the Drupal source code to run - your module is nothing without it. And it is the opinion of the FSF that Drupal modules are derived works.
No, I suggest you reread the GPL FAQ.
The difference between running a program on Windows vs running a module inside Drupal is that PHP imports/includes the module source code into the same memory space as Drupals source code - both sets of source code are intermingled into the same function namespace. In terms of the OS or PHP itself the module is not a separate program - it is part of Drupal. This is the way PHP works.
This is analogous to the difference in requirements between GPL and LGPL for linked libraries in C code. Drupal isn't 'linking in' any MS libraries the same way it is 'linking in' your module.
Other GPL CMS's have a history of ignoring the ramifications of the GPL. Drupal's stance isn't hardline - it is just what the GPL says. The Joomla came to the same realisation about the GPL about a year ago after being in denial about it previously.
Other GPLed projects with a different stance probably should've chosen a different license (note Joomla couldn't choose a different license without rewriting it).
And whether or not it hurts Drupal is a matter of opinion. I personally believe that commercial only modules would do more to hurt the Drupal community than their absence. There is certainly no evidence of Drupal being harmed by the GPL.
--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal
This is a misunderstanding
Sorry, but, playing devil's advocate, I don't have to care a fiddle about the GPL FAQ or the GPL itself. If I have written a Drupal module entirely by myself - that is, I own the entire copyright to the entire thing - then I can distribute it under any licence I please.
All of which is of supreme irrelevance to the hypothetical me who wrote a Drupal module and released it under "mean-and-nasty licence X". I am not distributing GPL'd code. I am not subject to the GPL.
That is not the sense of the word "uses" that is relevant to copyright law. The relevant sense is if one "uses" some code as a source text for copying, translating, modifying, extending, etc. And I don't have to give a fig for the opinion of the FSF if I am not distributing GPL'd code. Furthermore, copyright explicitly excludes functional elements. The thing you are focussing on, namely what the code does, is worse than irrelevant for the case you are trying to make. Far from pulling anything into the sphere of the GPL, it actually pulls some code that is copied out of it. Code that must be as it is for functional reasons is not protected by copyright. For example, C header file definitions that set names equal to certain numbers because no other number will work. For example, let me add, anything that is necessarily as it is in order to achieve interoperability with the Drupal base code.
I don't believe that this is 'Drupal's stance', or that anybody is trying to be hardline. I think it is simply a misunderstanding of copyright law. I don't believe the Drupal developers intend the Drupal licence to be anything other than the GPL. The GPL is not the law of the state, it is merely a licence for using GPL'd code, and so if someone doesn't use any, or they use it in accord with the requirements of the GPL, then it can have no possible legal influence on the use of the author's own code. This is an important point: no one has to obey the GPL unless they wish to use GPL'd code. And since the GPL only places restrictions upon distribution of the GPL'd code, then anyone who doesn't distribute any simply cannot contravene the GPL.
There does seem to be a widespread mindset, however, within the free and open-source communities, that the GPL sets up some sort of rules that everyone must obey. That is incorrect. It is a licence, nothing more, which applies only to material released under it. Just as I don't have to pay Microsoft for Office if I don't have or want a copy of Office, so I don't have to pay the price of releasing my code under the GPL unless I wish to distribute other people's GPL'd code.
You're welcome to your own opinion of what the GPL means
and exactly what constitutes a derivative work, but I reckon it would be risky business to rely on it. When your opinion conflicts with the copyright holders opinion and the opinion of the organisation that wrote the license, surely you are leaving yourself open to potentially costly licensing problems in the future even if you end up being correct.
While the whole area of what makes a derivative work in the GPL sense is still a bit murky, courts do take into account the authors intent and Drupal has spelt out their intent. The rest of the industry (not just the open source community) seems to agree to those terms of the GPL - surely there is some legal opinion behind that. And I'm not aware of any court case invalidating the FSFs opinion of what the GPL means (corrections welcome). It seems overly risky to go up against that (and possibly have to prove yourself right in court) when you could just find a system with a more compatible license for what you want to do.
Note: I'm not a GPL zealot (if anything I slightly prefer BSD style licenses) and I personally have no commercial stake in Drupal or its IP defense at all.
--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal
But can you fault the logical thought process?
RTH's exposition of the reach of the GPL is the clearest and most concise I have seen. Where, precisely, do you think (s)he's wrong?
I certainly am!
You seem to be entirely mistaken about my purpose in explaining my view here. I have no intention of ever releasing any Drupal adjunct under any licence except the GPL. But that doesn't change the fact that the FAQ is overreaching and making a - let me say it frankly - obviously false statement about the limitations that can be imposed upon writers of such adjuncts.
Just as I don't pay Microsoft "dollar money" for using Linux simply because they make vague claims of patent rights over code they didn't write, similarly I don't pay "GPL obedience money" when I am not distributing GPL'd code.
As for your comments. Firstly, I echo aireworth's question: What, specifically, is wrong with my previous argument? Fear and timidity is a pretty poor substitute for reasoning.
Secondly, I will go so far as to add that, if (you seem to have missed that I was writing hypothetically) someone did release an entirely self-written Drupal module and if Drupal started a court case over it (which, again, I do not believe they would ever do - the FAQ is clearly just written poorly and encapsulates a mistake), then I would anticipate that the module writer would not only win, but also get a ruling that the suit was frivolous.
What copyright holder?! We are discussing a hypothetical person releasing their own unaccompanied original work. That person is the copyright holder, and the licence they choose is the only relevant one, not the licence of some other work distributed by someone else. You still seem to be under some confusion about the fact that the two lots of code interact together when executed. This is precisely the situation with Linux dynamically linked binaries. They contain only their author's original work, under any licence the author chooses - and yes, some are completely closed and proprietary - but when executed, they pull in all manner of libraries under the GPL and other licences, and all the code is as mingled as you could possibly want. But everyone agrees, including the FSF, that such binaries do not violate the GPL - for the simple reason that the case is a slam dunk.
There is nothing murky about releasing entirely self-created work under any copyright you please. That is the basic foundation of copyright law. And the GPL has no say in what makes a derivative work in the copyright law sense! Copyright law spells out what a derivative work is, and only copyright law is relevant in deciding what elements of a work are derivative. As for the intent of the Drupal developers, once again, any intent they might have that overreaches the rights granted to them in law is irrelevant. I can intend to rob you, but I doubt that any court will order you to hand over your wallet on that basis.
(And once again, so there be no misunderstanding, that previous sentence is intended only to make the logical point it makes, not to imply any illegitimate motivation to the Drupal developers, to whom we should all be very grateful for their untiring efforts. This discussion is about a simple mistake in the FAQ, and is not any kind of gripe with the Drupal developers who have given so generously to us.)
Actually, I am not aware of anything the FSF has said that contradicts what I am saying! - for the simple reason that they are not legal lunatics and they have good legal advisors. Distributing my original code and my code alone under my licence is so obviously my inalienable right that no trained and honest legal mind could possibly dispute it. If you are accusing the FSF and the Drupal developers of being extortionists along the lines of the RIAA, well, I disagree. Again, I have no intention of ever releasing non-GPL'd Drupal-relevant code - and I have released GPL'd Drupal code - the V5 upgrade of one module was done by me - I say merely that the GPL is compatible, not only with this, but also with the hypothetical release of original, commercial or other code as well. Making overreaching claims you can't substantiate is poor policy, and I recommend fixing the FAQ.
This is a legal opinion
styro's analysis in http://drupal.org/node/273663#comment-892019 is essentially correct. Drupal modules integrate into Drupal in order to function and become a single work. They are therefore subject to the GPL.
That position was reached after several weeks of consultation with our attorney at the Software Freedom Law Center. It is not an arbitrarily defined opinion but that of a copyright attorney working for a law firm specializing in open source law.
It is certainly true that two different lawyers can render different opinions of the same legal document. The Drupal Association is standing by the analysis provided by our attorney, which is that Drupal modules must be licensed under the GPL as they are a derivative work. The most compelling evidence for it is that no one has ever successfully challenged that understanding of the GPL. Such cases, when they come to court, have always been settled out of court when the would-be infringer realized that they couldn't possibly win. The GPL has been upheld in German court, however.
Please do not use the forum for such discussion, btw. There is a group on groups.drupal.org specifically for legal matters, although this question has already been hashed out, decided, rehashed, and reconfirmed by our attorney multiple times. :-)
--
Larry Garfield
Director of Legal Affairs for the Drupal Project, Drupal Association Board of Directors
http://www.garfieldtech.com/blog
http://www.palantir.net
--
Larry Garfield
http://www.garfieldtech.com/
Thinking Functionally in PHP: https://leanpub.com/thinking-functionally-in-php
We should certainly respect
We should certainly respect your request to take the discussion elsewhere. But briefly for those reading here, the cases coming to court concern distribution of GPL'd work other than in accordance with the GPL, not the hypothetical case discussed here of distribution of an original work by another author without any accompanying GPL'd work. I stand by my view that styro is entirely mistaken. You might like to run the specific hypothetical mentioned here past your attorney.
I promise this will be my last post here :)
I was under the impression that the MySQL vs Nusphere case (where Nusphere folded and settled out of court) didn't involve any distribution of MySQLs GPL code - only distributing something that linked to it. I seem to remember the case being strong enough for the judge to issue an injunction to stop Nusphere distributing their product. It's a shame that case was settled before a judgement could be made.
But if my memory is wrong, I don't care about continuing this discussion here any further. Nothing I do or code with Drupal hinges on this particular question - my code either stays on my server or it is GPL and hosted on cvs.drupal.org.
I have no need or desire to distribute non GPL modules or themes, and have no problem abiding by the Drupal communities stated intention (ie the FAQ). Abiding by the communities intention is more important to me that looking for legal loopholes to get around those intentions (even if they did actually exist).
--
Anton
New to Drupal? | Troubleshooting FAQ
Example knowledge base built with Drupal
from www.mysql.fr/news-and-events/generate-article.php?id=75
So the dispute centred on a genuinely derivative work, as in all the other cases where the GPL (rightfully) prevailed. This is because static linking includes the binary of the thing linked with.
BTW, I have written to Larry Garfield, Drupal's legal director, to continue the detailed discussion out of the general forum area, as per his wishes. I'll let you all know the outcome.
Over and Out
I've found this discussion interesting and challenging. Here's my responses to the comments:
My apologies, but I didn't discover that group or any other relevant threads upon my initial search. I don't see discussing this here to be so bad, as it's more visible than the special interest group. But since this has been hashed out, perhaps this thread will die out and serve to refer others to the legal group.
This indicates that styro did not take time to understand the posting by an expert in the field which I was quoting, which referred to using code to create the new program, not to run it. Also, the module could be run on a cleanroom implementation of a subset of Drupal's functionality, and still do its work. This fact alone demonstrates how silly the derivative work position is.
We are not bound by the GPL FAQ, we are bound by the terms of the license, which say nothing specifically about linking. The license gives me permission to use the software ("The act of running the Program is not restricted"), and since its purpose is to run modules, if I choose to use it to run a commercial module, that is my business.
If you go to the attorney's website which I referenced, you would be treated to an argument that the type of linking does not matter.
Perhaps not, but it's using them via a middleware layer (in my case, Firefox). So if someone wrote a middleware layer, your objections would disappear? This layer could also aid in porting modules to other CMS's (sorry, off topic).
No, it's the FSF's opinion about what it says. I obviously have a different interpretation, as would someone who takes the license at face value, spends resources developing something in hope of some reward, and then has to confront claims that the license doesn't mean what it says.
I found an interesting argument at http://lwn.net/Articles/287056/ :
This is compelling, but if the license says what I belive it says, than those who are concerned about this should have chosen a better license.
Absolutely. Note that Joomla!'s module repository, if info on their site is current, is based on a commercial module. They apparently chose to spend $120 of donated cash because a FOSS module wasn't available which could do the job. Also, one of the touted advantages of Mambo/Joomla! over Drupal is the availability of more modules, many of which are commercial. I would tend to release anything small that I produce, but any sizable project would have to be self-supporting. If this means propietary, so be it.
A good movie (I haven't yet read the book) for us freedom lovers is "The Fountainhead". This next bit could almost have been written by Roark himself.
Here's a box. Things created only by you are in this box. You have a right to control what you do with the things in that box. Here's another box. Things created only by me are in this box. I have every right to control what I do with the things in that box. You have no right my work unless I give it to you.
The GPL gives me an unrestricted right to use Drupal software, so contributors should not spite me for using it for its intended purpose, which is to run modules.
I agree. After further research it appears that this is the FSF's stance which the Drupal community is tagging along with.
I agree, and writing a module does not require redistributing Drupal.
An award in a case based on a good-faith misunderstanding of the terms of a license would likely be limited to actual damages, which would mean giving up your source & refunding your customer's money. I just hope that this issue gets settled without too much bloodshed, as we all need resolution. But realistically, given our judicial system, I don't see a knockout judgement for either side on this, probably it's ok to link under some circumstances.
The case in point involved static linking. Although the legal opinion above says it shouldn't matter.
Fine, and I'll try to play that way too. But I still think it's better to have more available stuff, even if it's not all free.
Two more issues to think about: is prohibiting commercial modules a restriction of competition, and therefor an antitrust issue? And since the code isn't linked until it's run, who's in violation, the developer or the person who installs and uses it?
In short, my opinion is that if the writers of the GPL wanted it to prohibit linking, they should have specifically prohibited it instead of relying on judicial interpretation. Then we wouldn't have to go through this.