[SciPy-user] Re[2]: ANN: Veusz 0.5 - a scientific plotting package

Robert Kern rkern at ucsd.edu
Tue Apr 19 05:40:36 CDT 2005

Prabhu Ramachandran wrote:
>>>>>>"Robert" == Robert Kern <rkern at ucsd.edu> writes:
>     >> Maybe it would be possible to dual-licence the code if anyone
>     >> would like to use it??
>     Robert> Depending on how you and Trolltech and Riverbank Computing
>     Robert> interpret the situation, the Qt-specific parts can
>     Robert> probably only be considered GPLed.  For users of the GPLed
>     Robert> versions of PyQt, this shouldn't pose a problem as their
>     Robert> code would have deal with the GPL license of PyQt
>     Robert> regardless.  Users of the non-GPL versions would be in a
> [...]
> I don't completely understand this. 

No one does.  :-)

> Lets say I subclass a PyQt class
> called QWidget and call it SomeQtWidget, I also use a bunch of other
> PyQt widgets but don't extend them.  Lets say I define this class in
> sqw.py.  Can I legally distribute sqw.py separately under the BSD (or
> some GPL compatible license)? 

It's less clear than the situation I defending because those classes 
really do need PyQt.

I was referring to the case where bits can be separated from PyQt (tick 
spacing algorithms, the non-Qt outputs formats, and the like). The 
language in the GPL is rather explicit about this case.

For sqw.py, I would say, yes, but IANAL.

Like I said, for users of the GPLed versions of Qt and PyQt, it makes 
little difference if sqw.py is BSD or GPL. They still have to deal with 
the underlying GPL licenses of Qt and PyQt. It only makes a difference 
to the users of non-GPL versions of Qt and PyQt. Trolltech seems to want 
to keep the GPL developer population separate from the non-GPL 
population. They would rather that both you, author of sqw.py, and the 
person using sqw.py in his proprietary program to buy developer licenses 
for Qt.

> My impression is that any extension to
> a GPL'd library *must* be GPL and therefore sqw.py must be released
> under the GPL?  Right or wrong?  

The modified work *as a whole* must be released under GPL terms. 
Individual components can have their own GPL-compatible licenses. I'm 
not entirely sure that sqw.py is an individual component, per se. If 
there are generally applicable pieces of code inside sqw.py that can be 
used without Qt, then I think that those pieces, certainly, can be 
released under other licenses.

> Now, given the segment of the GPL that you quoted, if I did have a
> 'model' class (in the MVC world-view) separate from the SomeQWidget
> then I could release the model code under any license I choose.
> Right?

More or less. You could only release it with the Qt-specific code under 
a GPL-compatible license. This is clearly a case where the quoted 
section applies.

> However, if you look at sqw.py it isn't clear that sqw.py is really
> modifying PyQt.  The "linking" really happens at runtime.  There are
> no header files, nothing in PyQt is really "modified" or copied, no
> binary program that links to PyQt.  So why should sqw.py be
> distributed as GPL code in the first place? 

Some interpretations of copyright law (e.g. Larry Rosen's) say that no, 
it doesn't have to. The FSF's, Trolltech's, and Riverbank's say 
otherwise. To my knowledge, there is no case law in this area to 
determine which is the right interpretation. Until such a case does come 
through in your jurisdiction, it's usually wise (and courteous!) to 
follow the wishes of the copyright holder (inasmuch as they aren't 
blatantly unrelated to the actual text of the license).

> How then does the GPL
> differ from the LGPL in this context?

Under a Rosen-like interpretation, not much.

See Rosen's book for more details.

Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter

More information about the SciPy-user mailing list