6

Recently, I wanted a certain functionality that can be difficult to implement due to many special cases and subtle details in technical specifications. So I did a websearch and quickly found existing implementations. One of them said in the header:

I place this code in the public domain (CC0)

Fine. But further, the header said

This code is nearly the same as in [some other open source library]

When looking at the "other library", I saw that it was published under the 3-clause-BSD license.

This led me to the question:

Who is responsible for code being in the public domain?

Note that the question is not about who is "responsible for the code". It is about who is responsible for the fact that the code is available under a certain license. Particularly, I could now copy the code that was said to be in the public domain, without any attribution - and ignore the fact that it might have been copied from a BSD-licensed software without proper attribution.

Of course, one could trivially say: The first person who omitted the BSD header, and stated that the code is in the "public domain" is responsible here. Others, who have copied this "public domain" code cannot be held responsible for this, because they had to rely on the statements of the other authors.

But I wonder how this should work in practice. Someone could copy arbitrary code, remove the license information and declare it as public domain. Others could then use the code without attribution - or worse, may even suggest that they wrote it, and publish it under a more restrictive license, with their name in the copyright statement.

Once such a Pandora Box of public domain is opened, it is basically impossible to figure out who was the culprit. And eventually, this would lead to the question of whether there is any reasonable way to withdraw code that was once placed into the public domain - be it erroneously or intentionally by others.


Side notes:

I slightly reworded the statements from the header. I do not want to accuse anybody in particular, and I do not even want to suggest that any particular author might have done something wrong. I just wanted to set the stage for my question.

I know that one has to be careful with the wording here, and that things like "copyright" and "license" are only remotely related. To my understanding, the border between them is blurred in the public domain / CC0 case, but I am not a lawyer.

3
  • Do you have URLs for the code in question? Jan 14, 2017 at 19:59
  • @PhilippeOmbredanne As I said in the footnotes: I'd like to avoid even suggesting that the particular author (intentionally or accidentally) violated a license, and the particular code should not be relevant for the question in general. Unless there is a reason to do so, I'd not point my finger at someone.
    – Marco13
    Jan 14, 2017 at 20:34
  • Fair enough: I suggest that you contact the author though. In 99% of the cases this is done not out of malice but rather out of ignorance.... Jan 14, 2017 at 22:20

1 Answer 1

8

You can never assume that the software that you receive is properly licensed. It is your responsibility to check that you are indeed allowed to use it under said license. Therefore if someone put someone else's code in the public domain without authorization, the public domain license would be void and you would be infringing the rights of the original author by using the code.

Not many people check this of course, but large companies such as Intel do. They have both lawyers and technical tools to do so. In particular, they try to identify all the contributors to some code in the same way that a university will try to analyze an essay for plagiarism.

Now, does putting something in the public domain allow someone to claim that they wrote it? I don't think so. Could you claim that you wrote Shakespeare's plays? No, but they are in the public domain. As for countries which define a moral right, this is inalienable and it includes paternity.

6
  • When you search for a code snippet, you may find it 10 times saying "public domain", and once under the BSD license. I think it's impossible to determine whether the BSD one was the "first" publication, or who was the first one who erroneously declared it as PD. This would mean that nobody could use PD code, because nobody can prove that it really is PD - except for companies with lots of lawyers+tools+time, but even they could never be 100% sure. (Most obviously when closed source is leaked into the public domain).
    – Marco13
    Jan 14, 2017 at 14:56
  • For the last paragraph, as a rough example: This may apply to 100 lines of PD code that are (unattributedly) contained in a library with 1000 lines of code, that (as a whole) is under BSD. It's not possible to identify the PD part (and, AFAIK, it's not necessary to declare this part as being PD).
    – Marco13
    Jan 14, 2017 at 14:57
  • @Marco13: I agree with you. I just told you what the law would generally say, but it does not prevent most open source developers and small companies to use open source / public domain code without doing this kind of checks. In practice, you don't really need to worry whether a code is BSD licensed or in the public domain because who would sue you anyway? Not the BSD developer!
    – Zimm i48
    Jan 14, 2017 at 15:00
  • Additionally, for larger developments it's much simpler to find out what is the original work.
    – Zimm i48
    Jan 14, 2017 at 15:02
  • True: Hardly any private open source dev. would go to court. There simply is nothing to gain (except for being mentioned in a file header). But anticipating this undermines the purpose of permissive licenses (BSD, MIT). Personally, I think that it's at the very least a form of courtesy and respect to obey the license and properly state it. But it turns into a problem when the open source developer is sued by a company, because he used code of which he reasonably assumed that it was in the PD (because someone published it under that). This could lead to some interesting trials...
    – Marco13
    Jan 14, 2017 at 15:10

Your Answer

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

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