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

Thomas Barregren thomas at webbredaktoren.se
Sun Sep 9 23:35:50 UTC 2007


David Metzler skrev:
>> f your code link to another code and call functions and share data 
>> structures with that other code, your code becomes a derived work of 
>> the other code.
>
> You keep insisting this, but I don't agree its that cut and dry.

I believe that legal issues never are cut and dry. GPL is no exception. 
It is always possible to construct circumventions to the intent of GPL. 
Tivoization is a good example.

> Current literature on the subject suggests otherwise when calling code 
> that is "designed as a library".  Regardless as to whether it is 
> statically linked or otherwise.  Creating a derivative work is not a 
> technical definition, it's a legal one.  Most of the reading I've done 
> outside of the GPL FAQ agrees with this.

I agree that code that links to a library, which were *designed* and 
*intended* to be used as a library, not necessarily makes the code a 
derived work of the library, but just a collective work. But as I 
understand it, that is not the subject matter. We are talking about 
modules that bridge Drupal with third-party software. Let me elaborate 
on my arguments:

Drupal is not *designed* nor *intended* as a library. It is an 
application. A module, which links to Drupal, calls functions in Drupal 
and shares data structures with Drupal, can therefore not be said to 
merely using Drupal. In fact, the very purpose of the module is to 
modify how Drupal works. Therefore, Drupal and the module, as a whole, 
is a derived work of Drupal. And as a such, it must be under GPL.

Now, suppose we develop a module that bridges Drupal with another 
application. The very need of a bridging module implies that the 
application is not *designed* nor *intended* as a library. As a bridge, 
the module must obviously link to the application, call functions in the 
application and share data structures with the application. In fact, the 
very purpose of the module is to be a proxy for the application. 
Therefore, the application and the module, as a whole, is a derived work 
of the application. And as a such, it must be under a license compatible 
with the license for the application.

Thus, the module can only be licensed if and only if the license of the 
application is compatible with GPL. Q.E.D. :-)


> Drupal's strength IMHO relies on its community, and defining the risks 
> we're willing to take in terms of technical semantics feels like a 
> step in the wrong direction.  I agree, that the SMF bridge case takes 
> it too far.  Distributing non-gpl code using the drupal infrastructure 
> would be a step backward for us also.  I think we should continue to 
> feel free to distribute code that says it's GPL, no matter what, but 
> not try and second guess lawyers on what is considered a derived work 
> or not.

I think your position is naive. Every time someone is downloading a 
contrib module, Drupal.org is distributing that module. By copyright 
laws, that is absolutely prohibited without permission. The GPL gives 
that permission. Now, suppose the module violates the GPL. A failure to 
comply with the conditions in the GPL will mean that downloading is no 
longer exempted from infringement of  copyright. Ouch! Therefore it 
should be important for Drupal.org to make whatever is reasonable to 
control that the modules they distribute really do comply with GPL.

Lack of such control can be utilized by unscrupulous. For an example, 
suppose a closed source company in the CRM business wants to put and end 
to its worst competitor: Drupal. They engage a decoy who check in a 
module bridging Drupal with their own closed source licensed CRM. Next, 
they sue Dries, in his capacity of owner of the drupal.org domain, for 
copyright infringement... Okay, it is not likely to happen (I hope), but 
it is an illustration why copyright and licensing should not be taken 
easily.


Best regards,
Thomas


More information about the development mailing list