[development] Modules that integrate non-GPL PHP apps violate the GPL.
Thomas Barregren
thomas at webbredaktoren.se
Thu Sep 6 22:28:37 UTC 2007
Darren Oh skrev:
> The argument being made is that distributing a module that allows
> Drupal to use separately distributed third-party code would make the
> third-party code a modification of Drupal...
Assume you write a module for Drupal. Any meaningful module to Drupal
implements at least one hook. That alone makes the module a derived work
of Drupal.
The law prohibits you to modify or distributing a work or its derivative
works, unless the holder of the Intellectual Property Rights grants you
permission to do otherwise. GPL grants you such rights *if and only if*
you comply to certain terms and conditions. No one force you to accept
these. But as stated in § 5 of the license: "nothing else grants you
permission to modify or distribute the Program or its derivative works."
So, if you distribute your module, either you have accepted the GPL or
you are committing infringement on the intellectual property rights. I
presume you are law-abiding, and hence indeed have accepted the GPL. :-)
As a consequence, your module must also be distributed under the GPL.
Now, suppose your module also make use of another program. If your
module just invokes the other program's main function with some options
and waiting for it to return, for instance by using fork and exec, there
is nothing to worry about. 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.
Since you already have accepted to distribute your module under GPL and
nothing by GPL, the license of the other program must allow its
derivative works to be licensed under GPL. A license which allows that
is said to be compatible with GPL. Examples of compatible licenses
include the revised BSD and the MIT licenses. If the other program's
license is not compatible with GPL, then you cannot distribute your
module. It is as simple as that.
There is however a way out. Drupal.org could add an exception to the
license. Examples of such exceptions are described in the GPL FAQ:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLIncompatibleLibs
* http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#LinkingOverControlledInterface
> If that is really what the FSF is claiming, I too would question the
> reliability of their interpretation.
Some reading sugestions:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLAndPlugins
* http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLIncompatibleLibs
* http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#FSWithNFLibs
Best regards,
Thomas
More information about the development
mailing list