[PyKDE] Fwd: Re: [Issue N6078] allowed distribution methods

Phil Thompson phil at river-bank.demon.co.uk
Fri Sep 20 00:36:01 BST 2002

On Thursday 19 September 2002 8:49 pm, Greg Fortune wrote:
> On Thursday 19 September 2002 10:28 am, Phil Thompson wrote:
> > On Thursday 19 September 2002 5:41 pm, Greg Fortune wrote:
> > > In reference to the discussion going on right now about licensing...
> > > Yes, the qt dll can be distributed.  Thus, PyQt can be distrubuted
> > > allowing that you are not using the new commercial version of PyQt. 
> > > The end user, of course, would not be allowed to use qt in a
> > > development fashion such as fixing bugs in your application.  I think
> > > this means that if you develop an PyQt application that is meant to be
> > > run on windows, you can *not* license it under the GPL because the GPL
> > > requires that modification to the source is allowed, at least in my
> > > understanding. That kinda sucks in a big way... GPL apps for windows
> > > cannot be developed with Qt.  And yes, Trolltech's license is in the
> > > way here, but Phil's license is not helping things out...
> > >
> > > From the GPL, "You may modify your copy or copies of the Program or any
> > > portion of it, thus forming a work based on the Program, and copy and
> > > distribute such modifications or work under the terms of Section 1
> > > above, provided that you also meet all of these conditions: "
> > >
> > > Anyone want to make me really happy and point out where I'm wrong?
> > >
> > > btw, trolltech, I would certainly like to hear the official stance on
> > > developing GPL applications in Qt in Windows.  It appears that even
> > > though I've paid a chunk of money so I can develop commercial
> > > Windows/Linux applications with Qt, I cannot license anything under the
> > > GPL if I use Python/PyQt in any fashion (because it's crossplatform
> > > itself and would be expected to run on Windows) and cannot develop
> > > *any* Qt application for Windows that would be licensed under the GPL.
> >
> > This is from memory, but it's the GPL that prevents you from developing
> > GPL applications with Qt on Windows. A GPL application cannot be linked
> > against closed source libraries that don't come with the machine. This
> > excludes commercial Qt on Windows but includes commercial Qt on the
> > Zaurus.
> >
> > > Does this mean that PyQt previous to the new license Phil implemented
> > > was violating the Qt license agreement.  Of course, this is a little
> > > silly, but all the implications are in place...
> >
> > The previous PyQt license was based on the X11 license which doesn't
> > impose the restrictions that the GPL does.
> Which makes the conversation even more intersting.  The X11 license does
> not require I release my source, right?  So I could still develop an
> application in Python with PyQt and release pyc files or something. 
> Regardless, I must distribute pyqt in addition to my application so any end
> user instantly has the ability to develop Qt applications in Windows
> without obtaining a license.  This isn't an issue with the qt dll because I
> think you still need to headers to be able to compile an application.

If you are talking about an old version of PyQt then you are free to do 
whatever you want when it comes to PyQt. But PyQt does not include Qt. You 
still need a commercial Qt license and you still need to conform to that 
license, ie prevent your users using the Qt API.

> So does the PyQt license need to explicitly state that the user can never
> ever open up an interactive python interpreter and type "import qt" ???? 
> Or develop a python application that uses the PyQt library?

The commercial PyQt license makes the same statements as the commercial Qt 
license in terms of users not being licensed to use the Qt API.

> Furthermore, let's say that all was a moot point because the license takes
> care of it...  Consider a commerical application that distributes only the
> .pyc files (ie, as close to "compiled" as you can really get for Python)
> import some_module #some pyc module distributed as part of my app
> some_module.some_var = 'some value'
> #some_var just happens to be a qt widget or a flag for manipulating a
> widget or etc....
> import the_main_module #some pyc module that launches the app
> So just like that, they've made modifications on the fly to my app which is
> written in a dynamic, interpreted language.

And "just like that" they have broken the terms of their EULA with you.

> And what about a line that allowed users to execute arbitrary python
> (through exec() or eval()) on my PyQt program?  Am I obligated to insure
> that they don't execute any code that could control Qt in any way?  Or am I
> obligated to include something in my license that says "While it's possible
> for you to be a bad person, please don't."

I assume the latter because that's what Trolltech do. See their FAQ on PyQt.

> I think the possibilities here are pretty endless, so the question is what
> am I resposibile for when developing applications using Python and Qt with
> regards to licensing?  I've got an application that I'm developing using a
> commercial license of Qt and need to know my obligations.  I clearly didn't
> understand or consider all the nuances before today.

My belief is that you are responsible for getting a committment from your 
customers (via an EULA) that ensures you can meet the committments you have 
already made to Trolltech. Obviously, to be sure, you need to check with them 
- but the precedents (the FAQ answer, them not saying anything to the 
contrary in 4 years, and also the BlackAdder Business Edition license) 
support this.


More information about the PyQt mailing list