2

I'm a bit confused on how CDDL interfaces with other licences.

If I want to modify an existing CDDL project, by introducing an extension — implementing a certain feature in a new file — can I affix my copyright statement in such a new file on top of a BSD licence, instead of a CDDL header?

Can I publish the result as a single downloadable work?

If I submit such file to the original maintainer for inclusion in their project (since my licence is less restrictive than theirs), can they publish it as such, or do they have to require re- or double- licensing, in order to protect their own rights?

1

Whether a project maintainer will accept BSD (only) licensed files to be included in the official upstream CDDL source is not covered by licenses but based on a personal decision. So you have to ask the upstream maintainer.

If you personally like to know whether you may redistribute the CDDL project together with your BSD enhancements, this is easy to answer:

  • If you put the BSD code into a separate file, there is no problem

  • CDDL based projects define a "work" limit that is file based, the CDDL only applies to those files that are already published under the CDDL or to files you put under CDDL.

  • If you are the Copyright owner of the BSD code, you may or may not (this is your personal decision) dual license it.

  • If you are not the Copyright owner of the BSD code, you are not allowed to add the CDDL as license for the code as the BSD license does not permit relicensing.

1

It is possible to do this because BSD is a permissive license. If a permissively licensed file is included in a non-permissively licensed project (like CDDL), it is possible for that file to remain under the permissive license. Depending on the project license, that file may have to also be available under the project license, but CDDL has a weak per-file copyleft, so permissive files don't have to be dual-licensed as CDDL. For example, if a BSD-licensed file is included in a GPL-licensed project, that file must be available under both BSD and GPL. In the BSD-in-GPL case this is possible because BSD is GPL-compatible, but other permissive licenses may not be GPL compatible making this combination legally impossible (e.g. the original 4-clause BSD license).

By the way, this answer applies to including any permissive-licensed file in any copyleft project.

The SFLC contains a document containing recommendations on how to include permissively licensed code in a GPL project. The same guidance mostly applies to BSD-in-CDDL:

  • The recommended way is to keep the permissive and GPL code in separate files. The goal is to clearly separate the permissive and GPL licensed code. To that end, the best method is to include the short license text at the top of each source file. If you're not doing this and instead using the approach of maintaining a single top-level COPYRIGHT or LICENSE file, you will need to clearly state which files are under which license, including authorship. Note that modern version control systems can help you attribute authorship, so long as it's clear which authors contributed under what license.

  • When included on a per-file basis, the permissive licensed files remain available under the permissive license. If the project's license is a strong copyleft one like GPL, it also must be available under GPL. Where CDDL is different is that CDDL has a weak, per-file copyleft, so permissive licensed files in CDDL projects don't have to be under CDDL.

  • Be very careful about future contributions to permissive licensed files; it is common for contributors to assume that all their contributions will be under the project's license, so they may inadvertently cause permissive licensed files to become mixed with non-permissive licensed code. In a mixed file, it is legally very tricky to determine which portions are under which license. Ideally the contributors should make it clear which license they wish their contributions to be under, preferably permissive also so that the file remains unambiguously permissive.

Because of the last point and the additional complexity introduced in any mixed-license scenario, you may face resistance from the maintainers. You could explain that this is not only legal but desirable (since the permissive licensed portions can be shared with other projects even if the project licenses are incompatible), by pointing them to this document, but they may still decline because of the hassle.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.