[development] Modules that integrate non-GPL PHP apps violate the GPL.

Thomas Barregren thomas at webbredaktoren.se
Mon Sep 10 13:02:12 UTC 2007


Darren Oh skrev:
> In that case, Drupal modules that do not include third-party code are 
> legal, since they merely allow Drupal to be combined with "separate 
> and independent" programs. No work derived from the third-party code 
> is being distributed.

No, it is not as simple as that.

Suppose we develop a module that bridges Drupal with another program. If 
that is accomplished by just "using" the program, that is invoking the 
program's main function with some options and waiting for it to return, 
for instance by using pipes, sockets or command-line, then the module is 
not a derived work of the application. But, if the module "know" things 
internal to the program, that is the module links to the program, 
invokes functions and shares data structures, then the module and the 
program, as a whole, is a derived work of the program.

Since the module and Drupal, as a whole, is a derived work of Drupal, 
GPL requires that the whole combined program has to be released under 
the GPL. That is why I think the license of the other program must be 
compatible with GPL if (but only if) the module "know things" internal 
to the program.

> I know it's repetitive, but this discussion has been answering the 
> wrong question. 
The really question, as I see it, is whether d.o. should continue to 
expose itself for the risk of being challenged in court for copyright 
infringement, or do something about modules that link to third-party 
programs with licenses not compatible with GPL. I suggest the latter. We 
can either follow J! and cease the distribution of contaminated modules, 
or add a FOSS Exception, Linked Under Controlled Interface Exception or 
something similar, or both.

I think I have said everything I can in this issue. So I should really 
"rest my case" now. Seeing is believing. :-)

Best regards,
Thomas (IANAL)


More information about the development mailing list