1

I typically release the projects I create under the BSD-3-Clause license, but also don't generally create a project which is "mine" using substantial parts of someone else's code. (Contributing to someone else's project is different; it's theirs, so they get to use whatever license they want, even for the code I contribute to them.)

This time, however, I want to take some code released under the BSD-2-Clause license, heavily modify it (but not what it fundamentally does), and incorporate it into a new project with a similar-but-different purpose. To keep things simple, I want to release the entire project under just one license.

My question is, am I able to use the BSD-3-Clause as that license? If it isn't permissible to re-release BSD-2-Clause code under the BSD-3-Clause license, I'll release my modifications (and the rest of the project) under the BSD-2-Clause, but it would be nice to stick with my preferred license.

I've done a bit of web searching on the subject, but turned up almost nothing. I appreciate any help or insights you can provide!

1 Answer 1

4

Kind of, but the old code remains covered by BSD-2-clause and that requires you to keep that exact license version around.

The BSD-2-clause license has as condition 1:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Note the words “retain” and “this list of conditions”. You cannot modify or augment the list of conditions by inserting an extra clause.

You are of course free to license your modifications (and the resulting project as a whole) under whatever license you want, including BSD-3-clause, but you still have to comply with the licenses for the other parts that you incorporated.

In practice, it's fairly rare that some software only involves a single license. It is totally normal that different parts are covered by different licenses. In case you want to track this in a machine-readable manner, I'd suggest including SPDX-License-Identifier lines in your files, or by creating a .reuse/dep5 file.

A comment regarding your aside:

(Contributing to someone else's project is different; it's theirs, so they get to use whatever license they want, even for the code I contribute to them.)

No, your contributions are yours. You hold the copyright for them, and you alone decide how your contributions are licensed. The general expectation is “inbound = outbound” licensing, that contributions to a project are covered under the same license that the project is offered to others. Just as you are the project's licensee for the original version, the project maintainers become your licensee for your modifications. When projects want to receive your contributions under a different (usually more permissive) license, you'll typically have to sign a Contributor License Agreement (CLA). Full copyright transfers are very rare in the Open Source world, outside of some GNU projects.

1
  • Thank you for your detailed answer! It's good to have a concrete answer, and your interpretation certainly makes sense to me. I always forget about SPDX, though, and hadn't encountered the REUSE spec before, so I'll definitely be taking your advice and making use of those.
    – Ben Blank
    Oct 23, 2022 at 19:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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