[PyKDE] Which license applies to portable python scripts?

Phil Thompson phil at river-bank.demon.co.uk
Sat Apr 19 21:55:00 BST 2003


On Saturday 19 April 2003 4:13 pm, Gerard Vermeulen wrote:
> On Sat, 19 Apr 2003 08:31:23 +0100
>
> Phil Thompson <phil at river-bank.demon.co.uk> wrote:
> > On Saturday 19 April 2003 5:03 am, Toru Furukawa wrote:
> > > In Qt Non Commercial License v1.0, I found
> > >
> > >  4. You are as an individual granted a personal, non-exclusive
> > >  non-transferable license, in a non-commercial setting, to develop
> > >  application programs, reusable components and other software items
> > > that link with or in any other way require the Software. These items,
> > > when distributed, are subject to the following requirements:
> > >
> > > Suppose, I write a Python script (say hello.py) with PyQt for Windows,
> > > under Non-Commercial license.  This licese applies to the distribution
> > > of hello.py, because hello.py does "import qt", i.e. requires the
> > > Software in a way.  If hello.py is portable so that you can run it on
> > > Windows, Linux and whatever with PyQt, which license applies to
> > > hello.py?
> > >
> > > Or those licese cover only a complete form of a software, not a script
> > > as protion of software?  (hello.py does not run alone, while PyQt and
> > > hello.py make a single application)
> >
> > Trolltech consider PyQt as just another way of using Qt so the question
> > is the same as if your application was written in C++. So your
> > application must also be licensed under the non-commercial license, and
> > your users must also conform to that license.
> >
> > So, while the code might be portable, the license may not be. Your users
> > may only use your application in a "non-commercial setting". Your users
> > may not use the GPL version of Qt (or PyQt) to run your application
> > (because that contravenes the GPL).
>
> Phil, you made me feel a bad guy with respect to PyQwt-win-nc, but now I
> think you are wrong on both points.
>
> (1) The second paragraph of term 0 of the GPL starts with:
>
>     Activities other than copying, distribution and modification are not
>     covered by this License; they are outside its scope.  The act of
>     running the Program is not restricted, and ...
>
>     So, it is perfectly legal to feed proprietary scripts into bash or
>     proprietary programs into gcc. Why not the Python interpreter?

Because, as far as Trolltech is concerned, the Python interpreter and PyQt are 
irrelevant layers between your application and their software. Over the past 
few years they have modified their licenses to include "(or a scripting 
wrapper)" at various points as a way of making sure that PyQt doesn't provide 
people with a way around their licenses. Therefore questions like this tend 
to be easier to answer (because it's a more familiar question) if you imagine 
your application is written in C++.

The exact wording of the licenses may contain loopholes as far as the above 
view is concerned. However, if anybody were to push/abuse it, then you can be 
sure that the Qt licenses would be tightened up. In the worse case scenario 
this would disallow "scripting wrappers" completely.

Legal loopholes aside, I think the intent of what the Qt licenses are trying 
to achieve is very clear and I fully support that intent.

> (2) Points 4a, 4b and 4c of the Qt-Non-Commercial license do not imply that
>     the programs may only be used in a non-commercial setting. This is
>     clarified in the 'terms of use' section at
>     http://www.trolltech.com/download/qt/noncomm.html :
>     C++ programs developed with Qt-NC (or python scripts made with PyQt-nc)
>     can be released under almost any open source license (a tiny exception
> for the GPL).

Yes, I wasn't keeping the Qt license and the application license separate in 
my mind. I may receive (at no cost) a PyQt application from an author who 
developed it with the non-commercial version. If I have a commercial license 
then I am allowed to modify it in a commercial setting.

So, going back to the original question, and as it says on the above web page, 
you can use most open source licenses. But you can't use the stock GPL - you 
have to add an exception.

Phil




More information about the PyQt mailing list