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

Jakob Petsovits jpetso at gmx.at
Thu Aug 30 12:02:05 UTC 2007


On Thursday, 30. August 2007, Jeff Eaton wrote:
> 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.

My understanding was that non-GPL software may not be a derivative work of
GPL code, but that it can go the other way round. As David Strauss mentioned, 
it is indeed possible to write GPL software by using the Win32 or Cocoa API.

Following this reasoning, it would mean the following for Drupal modules:
- Drupal modules are based on Drupal, so they are GPL in any case.
- Thus, modules may not incorporate code that make the integrated software
  derive (call functions) from Drupal or the module itself.
- Whereas it should be possible to call functions from the integrated software
  from the module.

For example, that would mean no authentication in the integrated software that 
is based on Drupal users and passwords. Or displaying any information that 
comes from Drupal.
But it should be possible to manage and display stuff from the integrated 
software from Drupal. Like is done with Apache, for example (which uses the 
GPLv2 incompatible Apache license). I'm sure there are lots of other good 
examples.

Would this make sense?

> 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.

David's argument that the GPL only covers distribution, not usage, is a good 
counter argument to this point of view. Of course, this is somewhat of a 
difficult issue, quite comparable to the kernel module blobs for the ATI and 
nVidia graphics card drivers which are widely considered a legal gray area.

Also, you could extend the issue not only to PHP code but also to XML-RPC 
calls, where you do not even know if the software that you communicate with 
is GPL or not.

That is, I'm a big fan of the FSF and their views, but I think their opinion 
on this specific issue is a tad too radical, and not legally binding as well.

Regards,
  Jakob


More information about the development mailing list