Sometimes my first attempt to express my thoughts confuses people. For those who are still confused, I hope this is clearer: The viral nature of the GPL means that an app that uses Drupal is automatically licensed under the GPL, whether or not the developer of the app says so. That's exactly what we want, and it's the reason Drupal is distributed under the GPL. This discussion has established the illegality of attempting to circumvent the GPL. It would be against the spirit of the GPL for a developer to write an app designed to work only in the presence of Drupal, integrate it using a module, and claim that the GPL applies only to the module. I see no reason why we would want to enable developers to do this. Based on the evidence presented in this discussion, it would not be against either the spirit or the letter of the GPL for a developer to distribute a module that integrates an existing third-party app that does not use Drupal and to which the developer does not own the rights. (Of course, the app can't be distributed with Drupal, but we already prohibit third-party apps from being included in Drupal's repository.) Therefore, it is incorrect to say that "if debug_backtrace() can ever include functions from both Drupal and an external program," the external program must be distributed under the GPL. That test is applicable only if the developer also owns the external program. And remember, if the external program uses Drupal, it is already under the GPL. I repeat, this discussion has been a case of right answer, wrong question. Module developers can stop worrying and go back to making Drupal better. On Sep 3, 2007, at 4:47 AM, Jeff Eaton wrote:
On Sep 2, 2007, at 9:43 AM, Darren Oh wrote:
So far this whole discussion seems to be a case of ask the wrong question, get the wrong answer. I have seen no evidence to suggest that one cannot write some code that depends on non-free software, release it under the GPL, and have the GPL apply to that code. What would be against the spirit of the GPL would be to write code that depends on GPL software and to release only a compatibility layer under the GPL, keeping the main functionality non-free. Since 1) the third-party apps that are being integrated do not depend on Drupal and 2) the module authors do not own the rights to the code in the third-party apps, this issue is irrelevant to the situation under discussion.
I used to take this position as well, but it's apparent after quite a bit of research that this is based on loose use of the phrase "depends on" to define the terms of the discussion. The GPL doesn't use those words. It doesn't recognize a difference between a piece of software that *uses* a library, and the library that *is used by* another program. It simply sees those two programs being combined to form a single work if they interoperate in certain ways.
As such, if they do not share compatible licenses, they can't be distributed together. And if one component is clearly designed to work *only in the presence of the other component* it is an implicit violation of the GPL. (According to the FSF).
That's their official interpretation.