Situation
I have two software packages for which I need to choose a license and I'm not sure if they get along with the PyQt licensing schema (which uses the GNU GPL).
- Package A uses PyQt in a sense that it subclasses several of its components. It does not provide any means for direct interaction with a user interface based on PyQt. Whoever uses this package would need to write their own applications which in turn can use the classes of this package.
- Package B subclasses components of PyQt as well as provides a script for running a user interface which is based on
PyQt
.
Intention
- I don't care how Package A is used, that is I want to be as permissive as possible.
- I care very much about the source code of Package B and any derived works to be freely available forever.
I do not intend to distribute the packages as commercial applications nor do I want to close their source code. I also do not intend to distribute PyQt itself. Whoever receives a copy of the packages need to install PyQt by themselves in order to use them.
Question
Can I release Package A under the 3-clause BSD license?
Can I release Package B under the GNU Affero GPL?
Research done so far
I've read through Riverbank's license FAQ as well as scanned through the GPL FAQ. My best hints were the following:
http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL
If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?
Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL. [...]
http://www.gnu.org/licenses/gpl-faq.html#OOPLang
In an object-oriented language such as Java, if I use a class that is GPL'ed without modifying, and subclass it, in what way does the GPL affect the larger program?
Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed class.
Those two pointers are from the GPL FAQ and sound like I have to license my packages under GPL itself. That would exclude the possibility for the BSD license for Package A but in case of Package B I'm still not certain as the Affero GPL also comes from the GPL family.
This answer at softwareengineering.stackexchange mentions that if you don't distribute PyQt itself but only source code which uses it then there are other licensing options. However I couldn't find the mentioned GPL_EXCEPTION.TXT
in the source code of my PyQt version (which is PyQt4_gpl_x11-4.12
).