Plone has always been published under the GPL, and will continue to be so in the future. However, as Plone's code base has become more and more componentized, other projects which for various reasons cannot or do not want to use GPL software are interested in reusing some of our core internal framework components. The purpose of this policy is to provide a way for us to enable limited re-licensing of selected Plone framework components, without compromising our ongoing commitment to Plone as a GPL product.
As many Plone community members know, the Plone codebase is owned by the Plone Foundation, a US-based 501(c)3 nonprofit, whose mission is to protect and promote Plone. The Plone Foundation is governed by a board of directors elected by the Foundation membership. The Foundation is the sole decision-making authority about Plone's intellectual property, licensing and trademark policy.
Framework Components Relicensing Policy
Beginning in May 2009, the Plone Foundation board of directors is willing to consider requests to license certain Plone framework components under the modified (aka. 3-clause) BSD license, in order to permit re-use in projects that cannot or do not wish to use GPL-licensed code. Our policy for such requests are as follows:
- Only products in the plone.* namespace are eligible for relicensing. Products in the plone.app.* namespace are not eligible for re-licensing, since these components have dependencies on core Plone code, which is GPL.
- The product must not have any imports from GPL-licensed code. This is both a requirement of the GPL and a Plone Foundation policy.
- Interested parties — such as the package author or maintainer — may make a request for re-licensing via email to the Plone Foundation board. This request should include a rationale for why a change of license is desirable and — if the interested party is not the product's primary developer/maintainer — a statement from the product maintainer that they are willing to maintain the product such that it does not acquire any dependencies on GPL-licensed code in the future. The board will consider these requests on a case-by-case basis at its regular board meetings.
- No code may be moved between GPL and BSD licensed products without explicit authorization from the Plone Foundation board.
- Can package authors choose whether to check in new packages as GPL or modified BSD?
- No. Package authors do not have the authority to choose a license at check-in time. If a package author believes that a new package should be released as BSD, he or she may submit a request before check-in to the Plone Foundation board as described above. Otherwise, all new code should be checked in as GPL-licensed.
- Can package authors change the license on a package they've already checked in?
- No. Only the Plone Foundation can authorize a license change on an existing package. Package authors can request a change as described above.
- Can people other than the original package author request a license change?
- Yes, but a request that doesn't have the support of the primary package author or maintainer is not likely to be viewed favorably by the Plone Foundation board.
- Can Plone code be relicensed under LGPL, ZPL or some other license?
- Not at this time.
- Can I move code from a GPL-licensed package to an BSD-licensed package or vice-versa?
- Not without explicit authorization from the Plone Foundation board.
- Can I request a license change for multiple packages in a single request?
- Generally, no — unless the packages are very closely related.
Framework Components Available Under a BSD License
The following packages have been relicensed under BSD:
- plone.openid, July 24, 2009
- plone.protect, August 16, 2009
- plone.keyring, August 16, 2009
- plone.scale, August 16, 2009
- plone.session, April 15, 2010
- plone.behavior, September 2010
- plone.memoize, September 2010
- plone.registry, September 2010
- plone.supermodel, September 2010
- plone.synchronize, September 2010
- plone.testing, September 2010
- plone.uuid, September 2010
- XDV/Diazo, November 2010
- plone.schemaeditor, May 2011
- plone.rfc822, May 2011
- plone.namedfile, May 2011
- plone.batching, January 2012
- plone.indexer, June 2012
- mockup and mockup.core, December 2014
- Ansible kit, February 2016