CC0 Licensing – Does It Allow Sublicensing of Derived Works?

copyrightcreative commonslicensingopen source

I want to release all my future FOSS projects under a "public domain" license such as CC0. This is in order to avoid the requirement for attribution present in most FOSS licenses, mainly when the code is compiled into a binary, but also when somebody decides to copy a small portion of my code into their own open source project.

So suppose somebody copies a method from my code into their own, which they are planning to release under an MIT license. In order to release the code under MIT, they must claim copyright of the code; but can they claim copyright of the whole if a portion of the code was not their creation? Is that what it means to claim copyright of a derived work?

It may seem strange that somebody could take a piece of public domain code, modify it, and apply a new license to the modified version that imposes further restrictions on its usage, such as the attribution requirement of MIT. But since their additional restrictions would apply only to the modified version and not the original version, this seems legitimate.

My main concern is maximizing the ways in which people can utilize my code, without worrying about licensing requirements, and also to avoid a viral effect where any derivative works have to be themselves licensed under CC0.

Best Answer

#include <ianal.h>

Document style licenses are often a poor fit for source code. Of these, the ones that are a gift (and that is a word with legal implications) are the most problematic.

Public domain, as seen in the US, is a gift. In particular, a gift may be revoked for any reason. This makes something that is in the public domain possibly treacherous for open source - when the gift is revoked, it suddenly has back its full copyright protections.

There are also countries that don't recognize public domain at all. According to a creative commons survey countries such as Belgium, Denmark, France, Germany (and the list goes on and on) don't recognize public domain at all, or only recognize it after the copyright has expired. Of the countries that do recognize public domain, many allow the revocation of it if the copyright hasn't expired.

There are anecdotes (I can't find it at the moment) of an open source project that was completely released under public domain that wasn't useable at all in those countries - and so for people there to use and modify the source, they had to get a commercial license (which cost $$$).

So, on to CC0. The key to CC0 is that it has some wording in there to make it a license rather than a gift.

To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver").

Note the 'permanently' and 'irrevocably' words being used. CC0 cannot be revoked. It also goes on to state that the heirs cannot revoke it either (an issue with public domain).

Background reading: http://www.rosenlaw.com/lj16.htm


As to the core question of if CC0 can be sublicensed? GNU.org lists licenses that are compatible with the GPL on Various Licenses and Comments about Them lists the GPL as a compatible license. They also list public domain as being compatible tough note the issues that I raised in the first part... I'm sure that GNU has good lawyers who will fight if something is revoked or there are issues in those countries (on the other hand, I don't and would be vary wary of accepting public domain donations to an open source project).

All that said, CC0 still strikes me as awkward in that the license is different for different countries recognizing different parts being contrary to local law (I know that Creative Commons has done a great job to the best of their ability in crafting this). There are places where parts of the permissive license for CC0 would have difficulty (France - Right to withdrawal or reconsider I am still not a lawyer, much less one versed in French law written in English).

The thing is, programmers who are going to be caring at all about the license already know how to deal with the MIT, or BSD, or GPL. Other licenses require some legal reading for the project as to if you can include them or not.

I'd also point to http://choosealicense.com/licenses/ - scrolling down to the bottom for the "public domain" one, note that the unlicense allows for sub licensing while CC0 does not.


So suppose somebody copies a method from my code into their own, which they are planning to release under an MIT license. In order to release the code under MIT, they must claim copyright of the code; but can they claim copyright of the whole if a portion of the code was not their creation? Is that what it means to claim copyright of a derived work?

Give http://www.rosenlaw.com/lj19.htm a read for background (note that this reading of derative works is in conflict with the GPL's understanding - but since we're not talking about the GPL the reading of it is much more common sense).

There are several ways to address the approach. You could put the function in another library and point out that library is a derivative work, licensed under however it was obtained (which is compatible with the rest of the project). The copyright of the rest of the project is not a derivative work (GPL questions of static and dynamic linking aside - they try to make the derivative work extend to as many things as possible).

For example, if code snippet foo was from an BSD licensed work, you could stick foo in its own library. That would be a derivative work of an apache product and licensed under BSD license. Then the rest of your code would be MIT licensed (for example) and not a derivative work. And since the BSD and MIT licenses are compatible, thats the end of the story.

I just used BSD as an example for your license, but really it could be anything as long as it was compatible with the license I'm using. And while CC0 is compatible with everything - there are other, better understood licenses for software that are similarly nearly universally compatible. The BSD 2 clause or MIT, or Apache 2.0 licenses are ones people understand.


To get the widest use of your code, you should use a license that people know and understand. If you chose something that is less well understood programmers may be less likely to use it because of the possible legal implications that they'd have to ask a lawyer about. If you have to check if CC0 is sub licensable or not, you don't use it. If you see a BSD license, you know what you can do with it.


You could always go with WTFPL.

I am still not a lawyer.

Related Topic