There is an open source library which I would like to add to my own software repo. However, it is licensed under CC BY-NC-ND 3.0 which does not allow derivative works.

I do not modify the library's sources in any way, I just include them in my project, and would like to host them in one repository.

Does using a library already constitute a derivative work, meaning I would not be allowed to do that?

  • 9
    Who... who in the world licensed their software library under BY-NC-ND?? Is this real life?
    – apsillers
    Sep 18, 2017 at 18:27
  • Especially since Creative Commons doesn't recommend using their licenses for software creativecommons.org/faq/….
    – eques
    Sep 18, 2017 at 19:57
  • 1
    Regardless of whether your project would be derivative of the library, you cannot use it because of the non-commercial constraint: All FSF- and OSI-approved licenses allow usage for any purpose including commercial usage. You therefore do not have the right to choose a license allowing commercial usage because that would violate the library's license. CC-ND and CC-NC license variants are unsuitable for open-source software and are only used to restriction to the gratis version in a freemium business model.
    – amon
    Sep 19, 2017 at 7:13
  • @amon "All FSF- and OSI-approved licenses allow usage for any purpose including commercial usage." He could use a custom open source license. For example MIT with the addition of non-commercial. Sep 19, 2017 at 8:24
  • @amon I disagree a little -- couldn't you simply apply a permissive license to your code and keep the NC-ND license on the library? Obviously, no one could use the combined software a whole for commercial purposes (use would be limited by the most restrictive terms that exist anywhere within the project as a whole), but placing "commercial use allowed" software next to "no commercial use allowed" software doesn't seem like a problem to me. If it's not a derivative, then its an aggregate of two works whose licenses don't directly interact.
    – apsillers
    Sep 19, 2017 at 16:12

2 Answers 2


Does using a library already constitute a derivative work, meaning I would not be allowed to do that?

Merely using an unmodified library would generally not be considered creating a derivative work but the devils is in the details! For instance, calling a GPL-licensed library may subject the caller to the GPL copyleft.

Now the CC-BY-NC-ND is a rare, complicated and non-open source license choice IMHO and therefore the author may have a strong opinion on what derivative means ... and this should not be discounted.

I would suggest to contact the author for some alternative open source friendly licensing terms. I would personally shy away from using such library in any context.

  • 3
    + particularly for the observation about the author's likely opinion Sep 18, 2017 at 18:53

The CC-BY-NC-ND license allows you to

Share — copy and redistribute the material in any medium or format

That means, you can surely add it to your repository as long as the license stays intact. That means that your repository cannot be a pure open source repository anymore. Please make sure you associate the right parts of it with the right licenses.

If you ask Creative Commons how they define an adaptation they tell you it depends on the applicable copyright law (therefore depends on location). It may be hard to determine the status for code, since CC is not thought to be used with code. I would argue that the usage of the library should be allowed, so linking to it must be allowed too but there are still some problems. For example your own open source licenses code using this library might require also the library to be open source. However, you as the author, are not bound by your own licenses and can do whatever you wish, but others may not. It could become a mess.

The likely intention of the author of the library was to keep some control. However, that also makes it more difficult to use their work in meaningful contexts. I personally do not think that use of such a library constitutes a derivative work but rather constitutes use of the library, but you also have to check that the licenses of the other work in your repository are compatible with this. CC licenses should, in general, not be used with code. Just to be on the safe side I recommend to avoid using of CC licensed code if possible.

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.