So far in our Open Source Software License FAQ series, we have covered your top 10 questions about the GPL, the Apache 2.0 License, and the Microsoft Public License.
Today, we have compiled a list of your top 10 questions about the Common Development and Distribution License.
Common Development and Distribution License (CDDL) is an open source license published by Sun Microsystems to replace the Sun Public License (SPL). The CDDL license is considered by Sun (now Oracle) to be SPL version 2. It is inspired by the Mozilla Public License (MPL). Sun used to release its free software / open source projects under its Sun Public License (SPL) before it turned to rely upon the CDDL in 2004. CDDL is often dubbed as a cleaned up version of the MPL and is made to facilitate reusability.
You’re free to reproduce and distribute any original or derivative works of any software licensed under the CDDL. However, you must not remove or make any changes to any copyright, patent or trademark notices contained in the software.
You must also retain any notices of licensing or any descriptive text giving attribution to any contributor or the initial developer.
When you distribute your software in an executable form (any form other than source code), you are required to make the source code available as well under the CDDL. The executable form may be released under the CDDL or any CDDL compatible licenses.
The source code that you have to make available includes your contributions as long as they are addition to, deletion from or modification of the contents of a file containing the original software – or new files that contain parts of the original program. That means that if your additions are made in separate and independent files that do not contain the original code, you do not have to release it under the CDDL. You may do that if you choose to, but you’re not obliged.
In addition, you must include a copy of the CDDL with any source code that you distribute. For each modification that you make, you must identify yourself as the modifier by including a notice in your modified files.
The CDDL is considered a weak copyleft license.
A copyleft license, like the GNU GPL, the MPL or the Eclipse License, requires that you give down-the-stream users of the program the same rights that you yourself received. For that purpose, you are required to distribute the program – including any modified and extended versions of it – under the same license. This means that using such a copyleft licensed component in your code, will require you to release your entire program as an open source. Essentially, it means to distribute the original or modified software under the same license that it originally carried.
The CDDL requires you to release the source code of only the CDDL licensed components that you use or modify in your code under the CDDL. If you distribute your software in its executable form, you are bound to include the source code form but the executable can be distributed either under the CDDL or under a compatible license.
Yes, it does. Any contributor grants you the right to use the patents that his contribution embodies. CDDL takes a very clear stand on patents — you can use, modify, and redistribute CDDL licensed components without any concerns about any patents that the code contributors might hold on the contributed technology.
The CDDL discourages patent litigations against developers by terminating the usage rights to of anyone who initiates a patent claim against a developer about the code that h/she has contributed.
CDDL version 1.1 was submitted a year after the first draft in early January 2005. It includes some corrections that prevent the CDDL from being in conflict with European Copyright law and to allow single developers to use the CDDL for their work.
The GNU GPL requires that you subject to it any program that is a derivative work of the original software. That means that you have to make its source code available. This is considered strong reciprocity. The CDDL takes a software approach. As we have seen, if your additions are made in independent files that do not contain any part of the original program – then these files are not subject to the CDDL. It means, amongst other things, that you do not have to release these files’ source code.
Furthermore, the GPL takes a tough stand on changing the license’s terms and conditions. While certain additions are permitted under GPL 3, the general rule is that no other changes can be introduced. As opposed to that the CDDL only subject the source code version of the software to its provisions. The executable version can be distributed under the terms of any other license that you choose, provided that it is in compliance with the terms of the CDDL and that the license for the executable does not attempt to limit or alter the recipients’ rights in the source code form of the program.
Due to these differences, the CDDL is not considered compatible with the GNU GPL.
The CDDL is based on the Mozilla Public License (MPL) version 1.1, but it has made few changes to make it more accessible to developers, and the MPL version 2.0 was also significantly modified.
The two main differences between the two licenses are GPL compatibility and simplicity:
The Apache and BSD licenses are permissive open source licenses. You are not required to make your modifications and additions available under these licenses when you choose to distribute a program that they cover. CDDL, as noted above, subjects some of your contributions to its terms and conditions. In addition to that, both Apache 2.0 and BSD are considered compatible with the GNU GPL, unlike CDDL. However, the CDDL is compatible with both the Apache and the BSD licenses.
Yes. You can use CDDL licensed components in a commercial product. You can even sell and resell software with CDDL licensed components. However, when you do any of these, make sure to release any original or modified CDDL licensed components contained in your software under the CDDL only and meet the other terms and conditions of the license mentioned above.
Yes. The CDDL is designed to be reusable. So you can license your software under the CDDL. In fact, when the MPL was modified to draft the CDDL, it was deliberately kept simple so developers will adopt it and reuse it easily.
CDDL licensed components can be mixed with components licensed under other licenses, whether open source or proprietary. If compiled with other open source licensed components, then these licenses must be compatible with the CDDL. It is always recommended to take special care and – if necessary – consult an attorney when you combine free software with proprietary code or even with other open source licenses.
So these are ten of your top Common Development and Distribution License (CDDL) questions answered. Do you have any more? I would be happy to find the answers for you.
The author of this blog is not a lawyer, and you should not interpret this as legal advice of any kind. Information is provided on an as-is basis. For a legal consultation, please contact your legal advisor.