I am working on a (GitHub) project that I want to open-source with BSD 3-clause license and I am using some code parts and files from Apache 2.0 licensed projects. So I have three questions:

  1. Is this possible? Is Apache 2.0 license allows the use in BSD 3-clause projects? (This looks like a basic question but somehow I couldn't find any answer for this.) If it is not possible should I just use the Apache 2.0 license?
  2. I have some files taken from an Apache 2.0 licensed project (not the whole project) and I modified those files. As far as I understand, I need to indicate my changes at the beginning of those files. So how should my boilerplate notices be? Is the following correct? Or should I put the Apache 2.0 notice to the top and add BSD's and my modifications?:
//BSD 3-clause boilerplate notice
//A summary of my modifications
//Apache 2.0 boilerplate notice of the original project
  1. I have a submodule inside my project which is an Apache 2.0 project that I forked and made some changes. Again, what should I do for this?

This is a bunch of questions which we need to look at in their parts.

i) the BSD-3 license is not the most recent version. You should consider the BSD-2 license, which is GPL-compliant. This will help with the re-use of your code.

ii) The Apache 2 license has restrictions, which are stricter than any BSD license. Therefore you cannot just copy code from an Apache 2 project and insert it into your BSD-licensed files. That would be a violation of the Apache license. Instead you could license your entire project under the Apache 2 license. You can, however, mix files under BSD-2 or BSD-3 licenses with other files under the Apache license in your project. This is messy and depreciated, but not forbidden.

iii) for the requirements w.r.t. the notice files there is a nice answer here

iv) For the sub-module which is forked from an Apache project, I suggest you keep everything in the Apache license. This is by far the most obvious and easiest path forward.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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