The Python license

Terry Reedy tjreedy at udel.edu
Wed Dec 4 23:09:55 EST 2013


On 12/4/2013 10:17 PM, musicdenotation at gmail.com wrote:
> The third clause of the PSF license requires you to include a brief
> summary of changes in Python-derived software.

"In the event Licensee prepares a derivative work that is based on or 
incorporates Python 3.3.3 or any part thereof, and wants to make the 
derivative work available to others as provided herein, then Licensee 
hereby agrees to include in any such work a brief summary of the changes 
made to Python 3.3.3."

A program written in Python uses some Python interpreter to execute but 
is not a derivative work of any of them, as meant above. (Similarly, a 
Standard C program is not a derivative work of any of the numerous C 
compilers.)

Examples where the above does or might apply:

Stackless Python 2.7 is based on CPython 2.7, but it alters the core 
interpreter a bit to make some things work (or work better). In the 
process, I believe that some 2.7 code is broken. So it should explain 
how the 'Stackless 2.7' language is slightly different from 'Python 2.7' 
(beside any bugfixes not ported back yet). (For one thing, we don't want 
bug reports like "I ran this code on Stackless and it worked. When I ran 
it on CPython, it failed. Please fix CPython.")

ActiveState Python x.y is CPython x.y, including the stdlib, plus some 
3rd party modules, plus propriety code, including a package manager for 
Windows. They *should* explain that, both to promote their distribution, 
and to avoid misunderstanding about what is included with the PSF 
distribution of CPython.

Some Python applications bundle the exact Python interpreter they work 
with. If they alter the bundled Python *and expose it to users*, as a 
scripting language, then they should explain the language changes. If 
they do not alter the bundled Python, there is nothing to explain (other 
than the version), even if it is exposed. For instance, Libre Office 4.0 
included a *nix-style copy of Python 3.3.0 for scripting purposes.

So the clause is needed, appropriate, and almost certainly not 
applicable to you.

-- 
Terry Jan Reedy




More information about the Python-list mailing list