[Twisted-Python] Twisted & Qt

James Y Knight foom at fuhm.net
Tue Sep 26 13:01:50 EDT 2006

On Sep 26, 2006, at 12:12 PM, glyph at divmod.com wrote:

> On Tue, 26 Sep 2006 11:42:18 -0400, James Y Knight <foom at fuhm.net>  
> wrote:
>> On Sep 26, 2006, at 9:45 AM, glyph at divmod.com wrote:
>>> I've gotten in touch with Riverbank Computing, the copyright   
>>> holders on PyQt, and they are of the opinion that any Python  
>>> code  that imports "qt" is, in fact, a derivative work and  
>>> therefore  beholden to the GPL.
>> The only issue here is that we don't want to confuse people by  
>> having  part of Twisted (qtreactor) be GPL.
> Twisted is ostensibly a derivative work of all of the parts of  
> Twisted.

More than ostensibly, since code has been _literally_ copied all  
around the codebase from file to file.

>> But wait, the MIT license is compatible with the GPL.
> And that's your professional legal opinion?

It is a statement of indisputable fact that you can take MIT licensed  
source code and combine with GPL licensed source code and create a  
GPL licensed executable. We distribute MIT licensed source code.

Apparently RMS said the following to a gnome mailing list circa 2003.  
I can't find the original message, but I have no reason to doubt its  
> This exception would be redundant, because simple non-copyleft
> licenses such as X11 and BSD are compatible with the GPL already.
> So if you want to write a non-copylefted application, release it under
> the X11 license, and link it with a GPL-covered library, that is
> allowed. The linked executable would be covered by the GPL, of
> course, but the app source code would be covered by the X11 license
> alone.

And let's take the example of Python itself, which has a readline  
module, distributed under the python license. Again, similar  
circumstance. If you actually make use of the readline module, your  
program will need to be distributed under the GPL. But the source  
code is still Python licensed.

> It may be that riverbank and trolltech agree with this  
> interpretation.  The response I received wasn't entirely clear.   
> However, you are making a number of assumptions about intellectual  
> propertly law which are both outside your expertise and, to my  
> knowledge, still undecided by any case law.

If you think that twisted is in imminent danger of a lawsuit from  
Riverbank or Trolltech, then by all means simply remove qtreactor  
completely. Even presuming we are not doing anything wrong, it would  
still not be worth a lawsuit to determine that. However, I don't  
think anybody is about to sue Twisted for including qtreactor. But,  
if we're not about to be sued, case law is much less important than  
accepted existing practice in the open source world.

> I've asked the fellow at Riverbank for a clarification of his  
> intent before reviewing and committing the removal.  However, the  
> impression I got from my first exchange is that Trolltech regards  
> the QT API as their intellectual property, so the presence of  
> phrases like "QObject.connect" and "QSocketNotifier.__init__" would  
> make qtreactor a derivative work of their intellectual property,  
> much like simple mentions of a fictional character's name in a  
> short story can also classify as a derivative work.

Please don't use the phrase "intellectual property". It is  
dangerously misleading and worse than meaningless. I assume you mean  
copyright, in which it is my unprofessional opinion that it is  
ridiculous to talk about copyright in the phrase  
QSocketNotifier.__init__. If it is truly their position that the  
textual source code of qtreactor is a derivative work of PyQT, I  
think they are quite confused.

There are numerous instances of programs using Qt (take KDE for  
example!) licensed under non-GPL terms. Parts of KDE are under LGPL,  
BSD, and Artistic licenses. See http://developer.kde.org/ 

If it's good enough for KDE, I don't see how it's not good enough for  
us. I'm sure many more people with actual legal experience have  
looked over the situation with KDE.


More information about the Twisted-Python mailing list