I want to release to the public domain a software project that copies verbatim (with minor formatting) one function from another project licensed with a permissive license (this one):

Copying and distribution of the code, with or without modification, are permitted in any medium without royalty. This code is offered as-is, without any warranty.

I already attributed this piece of code to the legitimate author in the README file.

Can this be done in this particular case?

  • 5
    No. In general to relicense something (let's assume "public domain" is a sort of license), you must be the author. You can't relicense the portion that you copied. You can still put your own portions of the work in the public domain, if you want to do that.
    – Brandin
    Feb 16, 2018 at 12:40
  • @Brandin What are the options to handle the third party code? Feb 16, 2018 at 12:48
  • 4
    Since it is a permissive license, you can probably use it (according to the license) without a problem. You can't contribute "his" code to the public domain, though. You have to use it according to his license.
    – Brandin
    Feb 16, 2018 at 12:51
  • @Brandin But how can I release my work to the public domain and use his code without releasing it too? It's a single file of code and I want to keep this format. With a mention on the README/header telling that function X is licensed under other license will be enough? Feb 16, 2018 at 18:05

2 Answers 2


To dedicate a creative work into the public domain, you need to

  • be the copyright holder, and
  • be subject to a jurisdiction that even has a concept of “public domain”.

If you include a function from another project, you are not the sole copyright holder, and are therefore unable to dedicate your project to the public domain.

However, you may be able to dedicate parts of your project into the public domain. To keep this maintainable, I strongly suggest that this isn't done on a function-by-function basis, but either

  • by managing the license or public domain status individually for each file or folder in your project, and noting in your README that some parts are public domain whereas others are licensed,
  • or by not including that function in your source code, and rather linking to the non-public-domain code at build time.

In any case, the resulting executable code will not be in the public domain.

A few general notes about public domain works:

  • As some jurisdictions (especially, civil-law countries) do not have a concept of “public domain”, consider adding a fallback license such as CC0. This fallback waives any copyright and related rights you may hold.

  • A public domain dedication does not release all rights you have in the project. Notably, patents and trademarks are not affected. Mature licenses such as Apache 2.0 or GPLv3 also include a patent grant to ensure that users cannot just copy the code, but also safely use it.


Simplest way out (for you, and for potential users) is to just license everything under the same (permissive) licence. Just make sure you carefully consider David Wheeler's advise, "Make your open source software GPL-compatible. Or else." Perhaps you should contact any upstream for specific permission to (re)license under any terms you feel comfortable with.

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.