Markdown

CDDL

CDDL is the Acronym for Common Development and Distribution License

Sun Microsystems published the first Common Development and Distribution License in 2004 as a weak, file-level copyleft modeled on the Mozilla Public License. Oracle later became the license steward after acquiring Sun. The SPDX License List dates version 1.0 to 24 January 2004. Version 1.1 keeps the same core bargain: files that contain Original Software or Modifications stay under the CDDL, while a Larger Work may combine those files with code under other terms, including proprietary ones. It is a free and open source software (FOSS) license. The Free Software Foundation lists CDDL 1.0 as free software, and it is also treated as open-source software (OSS).

SPDX describes 1.1 as the same license as 1.0, except that §4.1 names Oracle rather than Sun Microsystems, Inc. as steward, and it adds a patent-infringement settlement clause as §6.3. The 1.1 text also carries a Section 9 notice placing related litigation in the Federal Courts of the Northern District of California and the California state courts, with venue in Santa Clara County. Oracle’s archived GlassFish tree publishes that 1.1 text dual-licensed with the GPL and a Classpath exception.

File-Level Copyleft and the Patent Grant

Copyleft stops at the file. New files that do not contain Original Software are not Modifications, so they need not be published under the CDDL even when they ship in the same product. That is the MPL 1.x pattern the CDDL inherited.

  • Covered Software stays on the CDDL. Section 3.1 requires any Covered Software distributed in executable form to be made available in source form as well, and that source may be distributed only under this license. Section 3.4 forbids extra terms that alter or restrict the CDDL on that source.
  • Executables and Larger Works are looser. Section 3.5 lets you ship the executable under a license of your choice if you still honor the source rules. Section 3.6 lets you combine Covered Software with other code and distribute the combination as a single product, so long as the CDDL’s requirements remain fulfilled for the covered files.
  • Patent grant is express and narrow. Sections 2.1(b) and 2.2(b) grant a worldwide, royalty-free, non-exclusive license under Patent Claims infringed by making, using, or selling the Original Software or a Contributor’s Modifications. Section 2.1(d) withholds that patent license for deleted code, for infringement caused by your modifications, and for combinations with other software or devices.
  • Patent suits can revoke the grant. Section 6.2 terminates licenses from a Participant if you assert a patent-infringement claim against that Participant’s software and do not withdraw it within 60 days. Version 1.1’s new §6.3 says that if such a claim is resolved (for example by license or settlement) before litigation starts, the reasonable value of the licenses granted under §§2.1 and 2.2 must be counted in any payment or license.

The GPL incompatibility

The FSF classifies CDDL 1.0 as a free software license that is incompatible with the GNU GPL:

This is a free software license. It has a weak per-file copyleft (like version 1 of the Mozilla Public License) which makes it incompatible with the GNU GPL. This means a module covered by the GPL and a module covered by the CDDL cannot legally be linked together.

Free Software Foundation, Various Licenses and Comments about Them

Software Freedom Conservancy’s 2016 analysis of ZFS and Linux walks through the same collision in the license texts. CDDL §3.1 requires Covered Software source to be distributed only under the CDDL. GPL requires a combined binary’s corresponding source to be licensed as a whole under the GPL, and forbids further restrictions. Those duties cannot both be satisfied for one binary work.

  • OpenSolaris and ZFS. Conservancy records that Sun released ZFS under CDDL 1.0 as part of OpenSolaris. Linux is GPL-2.0. ZFS on Linux therefore lived as an out-of-tree kernel module rather than in the mainline tree, because a combined Linux+ZFS binary would have to satisfy both licenses.
  • Debian’s source-only path. Conservancy notes Debian’s choice to keep source-only ZFS in contrib: the code is acceptable under the Debian Free Software Guidelines, but its default use can create licensing problems for downstream users. Debian did not distribute a binary zfs.ko.
  • illumos. The illumos FAQ describes the project as a fork of the former OpenSolaris OS/Net consolidation. The bulk of that source remains under the CDDL.
  • NetBeans and GlassFish. By 2006, Sun published NetBeans sources under the CDDL, replacing the earlier Sun Public License. Oracle’s GlassFish LICENSE file is CDDL 1.1 side by side with GPL-2.0; the dual license (plus Classpath exception) is how that tree offered a GPL-compatible path the CDDL itself does not.

Compared with neighboring copyleft licenses

MPL kept file-level copyleft and added the compatibility path the CDDL never grew. Mozilla’s §3.3 lets you additionally distribute covered files under a GNU secondary license when you combine them with existing GNU-licensed work, unless the files are marked Incompatible With Secondary Licenses. The FSF treats that as indirect GPL compatibility. EPL remains GPL-incompatible unless the initial contributor designates GNU GPL version 2 or later as a secondary license. GPL-2.0 is the strong copyleft that those weaker licenses collide with: the work as a whole, not only the touched files, must stay under the GPL.

TermCDDL-1.1MPLEPLGPL
Copyleft reachFile-level (Covered Software)File-levelWeak copyleft; optional GNU secondary licenseStrong: the work as a whole
Mix with GPL-2.0IncompatibleAllowed via Secondary License unless opted outIncompatible unless GPL is designated as a secondary licenseSame license
Patent grantExpress grant in §§2.1(b) and 2.2(b); suit can terminate itExpress grant (MPL family)Express grant (EPL family)No separate patent section in GPLv2
Proprietary Larger WorkYes, if CDDL files stay on the CDDLYes, if MPL files stay on the MPLYes, for EPL-covered modulesNo

Teams that still ship CDDL-covered files (ZFS ports, illumos distributions, GlassFish-era Java trees) treat the license as a file boundary: keep those files intact, publish their source on CDDL terms, and do not merge them into a GPL-2.0 work as a single binary. Relicensing the CDDL side, or dual-licensing it the way GlassFish did, is what actually clears the clash.