[Twisted-Python] Twisted & Qt

Jonathan twisted-python at 2xlp.com
Tue Sep 26 19:42:57 EDT 2006

if this helps at all:


Both copied below.


If a library is released under the GPL (not the LGPL), does that mean  
that any program which uses it has to be under the GPL?

Yes, because the program as it is actually run includes the library.

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 binding mechanism; libraries that are accessed in this way are  
linked dynamically with the Java programs that call them. These  
libraries are also linked with the interpreter. If the interpreter is  
linked statically with these libraries, or if it is designed to link  
dynamically with these specific libraries, then it too needs to be  
released in a GPL-compatible way.
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.

More information about the Twisted-Python mailing list