Common Development and Distribution License (CDDL)
Description and High-Level Summary of Changes
We have carefully reviewed the existing OSI approved licenses and
found none of them to meet our needs, and thus have reluctantly
drafted a new open source license based on the Mozilla Public License,
version 1.1 (“MPL”). We do appreciate the issue of
license proliferation, however, and have worked hard to make the
Common Development and Distribution License (“CDDL”) as
reusable as possible. Additionally, we have attempted to address the
problems we perceived in existing open source licenses that led us to
conclude that reusing those existing licenses was impractical.
We chose to use the MPL as a base, since it already had a number of attributes we were looking for in a license:
- Requirement that the source of modifications be made available; this helps encourage code reuse and a vibrant community.
- Requirement that the source of modifications be shared under the open source license; this helps encourage that open source remains open source.
- Ability to distribute executables under a different license; this gives businesses more flexibility in licensing their derived works.
- A “files based” definition of modifications and covered software; this makes it easy to combine code with code distributed under different licenses.
- Explicit patent license; this makes it easier for businesses to use the software without concerns over patent rights.
- Provision for termination of rights in response to patent claims (i.e. “patent peace” provision); this helps discourage patent litigation amongst the community, which we felt to be A Good Thing.
The MPL came closest to meeting our needs. We felt that it had a
number of issues, though, which prevented us from simply using that
license or one of its variants.
Once we embarked down the path of creating a new license, we
focused on certain high level goals. We wished to create a license
that was simpler, less burdensome for contributors, clear and
consistent in the use of terms and language, and that was as reusable
and general as possible. In addition, we made a number of specific
improvements, a few of which are highlighted here.
- Fixed the “Effect of New Versions” problem. We
added an option to make Covered Software available under a
specific version of the license, rather than allowing the use of
future license versions. This change was made to make the
license more reusable by others: it addresses the concern that
the license steward could change the terms of the license in
ways that are not compatible with a community's (and the Initial
Developer's) values and objectives.
- Focused the “patent peace” provisions to cover
only software released under this license. We felt that this
would make the license more acceptable to a diverse community of
contributors, whether large or small. We strengthened the the
penalties of the remaining provision, however, since we do
believe that “patent peace” has an important role to
play in open source licenses.
- Simplified many of the Required Notices (or in a few cases,
removed the requirement) since they seemed overly specific and
- Clarified the definition of Modifications, to make it easier
for readers to understand what is covered by the license and
what is not.
A more detailed list of changes made to create the CDDL license
along with the associated rationale can be found here.