Now that work has officially begun on Plone's fork of Zope2, we need to talk about licensing and naming of all of this code.
@polyester has been doing a lot of legal research to find out what we can and cannot do with the Zope and CMF codebases. What follows is a compilation of what he's found out:
There is no legal need to rename packages with just CMF in their name, but there is a practical need in order to be able to release them on PyPi. Those can just go under the plone.* namespace, there is no legal claim to CMF in any form.
For the same PyPi release reasons, we'll need to rename packages that we fork that have "Zope" in their package name. If we bring them under the plone.* namespace, but we have to be extra careful to keep the licensing intact. A separate third-level namespace (plone.appserver.*, maybe) might help there. As you're renaming, Do NOT do a rename just by blind 'search and replace' in a repo; there may well be phrases in some docs that say "Zope is a trademark of the Zope Foundation" or the like, that must stay untouched.
Packages currently under ZPL must stay under ZPL, and must stick to the license (i.e. keep a CHANGES.txt, keep the original copyright Zope Foundation note but add copyright Plone Foundation on top of it for the modifications).
Remember, we are not banned from using the word Zope, we just cannot put stuff out pretending we were the Zope Foundation or Zope Corp.
As we're merging things, all code that goes FROM a GPL-licensed package TO a ZPL-licensed package will have to be explicitly re-licensed by the Board, from GPL to ZPL. That can be done, but is a minor hassle. So best to do that only when we're really, really sure that is the best place for it. Think of it
as a rather expensive operation that you would not want to revert
anytime soon.
All Plone Contributor Agreement signees could contribute to ZPL packages; the Plone Foundation has the right to license under ZPL
The Plone Foundation's preference is always GPL over ZPL. So, if we can keep it GPL, do so. If we, for instance rewrite something from scratch, make it GPL.
There are some skeletons in the Zope closet, but those are Zope Foundation skeletons, not ours; we're working on those.
In summary:
- New code: Use GPL
- GPL'd code -> ZPL'd code: via PF Board, needs explicit re-licensing.
- ZPL'd code -> GPL'd code: No, not in any way.
- ZPL'd code -> ZPL'd fork: Just fine.