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

Earnie Boyd earnie at users.sourceforge.net
Fri Sep 7 11:58:55 UTC 2007

Quoting Karoly Negyesi <karoly at negyesi.net>:

>> That alone makes the module a derived work of Drupal.
>> But if your program and the other program are linked, even if it is done
>> only at runtime, and make function calls to each other and share data
>> structures, your module is a derivative work of the other program as well.
> AAAAAAAAH! Finally somebody explained this whole situation clearly.
> So if I am writing a bridge to run with Drupal that's GPL because of 
> Drupal and because it's considered a derivative of some non-GPL code 
> that means I am breaking some clause in the *other* code licence and 
> we know there is such a clause *because* it is non GPL compatible. So 
> the issue looked cloudy because we know the bridge breaks some rule 
> but it can not be told what without studying the other licence. This 
> makes sense to my obsessed-with-math-logic mind. For the first time, 
> this debacle makes sense even if not a pleasant one.

Yes, but you could also be breaking a clause in the GPL (the most 
likely scenario).  Yes, you must compare both licenses to determine if 
they fit together.

> However, there seems to be an escape! 
> http://forum.joomla.org/index.php?topic=190545.0 this ends with "the 
> LGPL would allow someone else to derive code based on it without any 
> restriction you can make a LGPL bridge to buffer your proprietary 
> extention (such as SMF) to a GPL program."

I don't buy into it.  The GPL and the LGPL are the same except that 
LGPL gives others the right to use the binary version of your API 
without GPL viral infection.  If you provide no API then the exception 
is worthless.  And the statements of the GPL state that you must GPL 
the combined work so you can't just apply the LGPL exception to your 
module because the Drupal license doesn't allow for it.

> So, if this holds up then we should allow LGPL code in our repo and 
> ask the bridge module authors to LGPL their code. This is a ton 
> easier than, say, changing the licence of Drupal core.

The license of the Drupal core license is the one that rules in this 
situation.  Since I must use Drupal API I must GPL accordingly.  The 
only option is that the Drupal core license provide exceptions for the 
use of third party libraries.  Note the LGPL here isn't sufficient 
(check out the FSF libstdc++ exceptions) since *source* code for the 
API must actually be included.  The LGPL exception is for the *binary* 
use including the declaratives for the API but not code that is 
included by other files such as you might find in a C++ header or a PHP 
include file.  It's not L'ibrary'GPL it is L'esser'GPL.

Earnie -- http://for-my-kids.com/
-- http://give-me-an-offer.com/

More information about the development mailing list