Licensing rules with the Zope2/CMF forks

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.

Thanks to everyone that's helping work through these issues. I know it's not a personally rewarding chore. But it needs to be done, and we owe you all some beers.

Indeed. Thanks for facing this important step!

Reading this, and the Alpine City Sprint report, seems really promising for the future of our loved CMS :grin:

What about this two scenarios?

  1. Moving code-parts of Products.PlonePAS (ZPL under Plone Foundation ownership) to Products.PluggableAuthService (ZPL under ownership Zope Foundation) currently forked to github plone organiation?
  2. Also we move parts of Products.PlonePAS (ZPL, Plone Foundation ownership) to Products.CMFPlone (GPL2, Plone Foundation ownership). Is this ok or does it need relicensing?

@jensens please contact me (cc @esteele) off-forum on specifics for these cases; it can all depend, needs proper care, and this is not the ideal place for those kind of deliberations.