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

Jeff Eaton jeff at viapositiva.net
Thu Aug 30 07:08:56 UTC 2007


For quite some time, it has been commonly understood in the Drupal  
community that non-GPL software (like a third-party PHP message board  
system) can be integrated into Drupal legally by using an  
intermediary 'bridge' module. After some in-depth emails with the  
Free Software foundation's license gurus, it's become clear that this  
is NOT the case.

Before going any further, I want to make clear that I'm not  
expressing approval or disapproval of this: I'm just relaying the  
conclusions that were reached after several days of discussion and  
questioning with the FSF.

Why do these modules violate the GPL?

1) Under the FSF's accepted interpretation of the GPL, if a module is  
integrating Drupal and another PHP script, by calling one's APIs when  
triggered by the other for example, its purpose is to make a single  
unit of software out of those parts.

2) If multiple programs are operating together and functioning as one  
unit, all the pieces must be GPL'd.

There are a lot of angles to approach the question from, but that's  
what it boils down to. From a developer's perspective, if  
debug_backtrace() can ever include functions from both Drupal and an  
external program, you've turned them into a single program.

There are some potential solutions, though none of them are ideal.

1) Add a notice to Drupal's license that clarifies that writing such  
modules IS explicitly allowed. This is problematic, however, because  
that would make Drupal non-GPL'd itself, a GPL variant, and we would  
require explicit relicensing permission by the authors of any GPL  
code we wish to include.

2) Remove modules that integrate with third-party non-GPL code from  
the CVS repository, even if they do not *include* the aforementioned  
non-GPL code.

3) Continue on as we are, and don't try to police these issues as  
there are NOT likely to be any real complaints. (No one that I know  
of is trying to SELL modules that integrate with non-GPL resources,  
for example.)

This is an important question for us, and other GPL'd projects, to  
work through. Many GPL CMS's rely on integration components for  
critical functionality (message boards and mass mailing are two  
common examples). I can provide some detailed snippets from the  
correspondence to those who want them, but I'm not sure it would be  
useful for me to spend any more time corresponding. I exhausted my  
list of questions, and I'm just summarizing what I found out.

--Jeff


More information about the development mailing list