Use of GPLed Python extension modules

Tim Churches tchur at
Sun Nov 23 21:19:42 CET 2003

On Sun, 2003-11-23 at 22:48, kk wrote:

Thanks, I completely overlooked this section of the FAQ. It
unequivocally gives the FSF's view on this issue - that a GPL license
must be used for Python programs which import and rely on other, GPLed
Python modules. So that's teh moral question answered. In the absence of
clear case law, it seems that it is impossible to say whether the FSF's
view would prevail in court, but clearly there is some chance that it
would, and hence in order to minimise legal risk it would be prudent to
abide by the FSF's wishes as clearly expressed in this section of the
GPL FAQ. Sorry for stirring up a hornet's nest, but it does indicate how
much confusion and disagreement exists over the licensing of Python
extension modules.

> If a programming language interpreter is released under the GPL, does
> that mean programs written to be interpreted by it must be under
> GPL-compatible licenses?
>     When the interpreter just interprets a language, the answer is no.
> The interpreted program, to the interpreter, is just data; a free
> software license like the GPL, based on copyright law, cannot limit what
> data you use the interpreter on. You can run it on any data (interpreted
> program), any way you like, and there are no requirements about
> licensing that data to anyone.
>     However, when the interpreter is extended to provide "bindings" to
> other facilities (often, but not necessarily, libraries), the
> interpreted program is effectively linked to the facilities it uses
> through these bindings. So if these facilities are released under the
> GPL, the interpreted program that uses them must be released in a
> GPL-compatible way. The JNI or Java Native Interface is an example of
> such a facility; libraries that are accessed in this way are linked
> dynamically with the Java programs that call them.
>     Another similar and very common case is to provide libraries with
> the interpreter which are themselves interpreted. For instance, Perl
> comes with many Perl modules, and a Java implementation comes with many
> Java classes. These libraries and the programs that call them are always
> dynamically linked together.
>     A consequence is that if you choose to use GPL'd Perl modules or
> Java classes in your program, you must release the program in a
> GPL-compatible way, regardless of the license used in the Perl or Java
> interpreter that the combined Perl or Java program will run on.

Tim C

PGP/GnuPG Key 1024D/EAF993D0 available from keyservers everywhere
or at
Key fingerprint = 8C22 BF76 33BA B3B5 1D5B  EB37 7891 46A9 EAF9 93D0

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the Python-list mailing list