Continuing this question:
I want a license L which is generally like GPL, but allows us to do the following:
License our software under both L and a commercial license.
Require that every patch (or more generally, every change, or at least publicly distributed change) by a third party is both available to general public as L and available to us to license it commercially as a part of our commercial version of the software.
I will not prevaricate: The main purpose of this project is to earn money (however the money are used to support other more generous free projects). But it would be nice also to create useful OSS software under this project.
I also want this option: The license L should be compatible with GPL in the sense that GPL software can incorporate L-licensed software.
Oh, well, it seems for me that the "option" contradicts to my other requirements: If it can be incorporated into GPL software, then it can have GPLed patches and we cannot incorporate these patches into our commercial version. So, is it possible to do it with the "option"? Well, I don't expect that people would often change the license from our OSS license to GPL when making patches. So it (the "option") should work in practice even if it is not required by the license.
Oh well, it is also required that if a Python module licensed under L, then every Python script or module importing it is also licensed under L. (See also this question.)
Maybe, Mozilla Public License?
Also note that our product is a Python library. Please provide any advice you can on licensing such libraries. Particularly, if we want it to be wide-spread among FOSS community, do we need to license it under GPL? Which other licenses are good choices for this?