9

I'm considering using a project from http://www.codeproject.com that uses the CPOL license. Section 5e says:

"You may distribute the Executable Files and Source Code only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute and ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply to such Executable Files and/or Source Code. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute the Executable Files or Source Code with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License."

Is not clear to me if I should include their source code with my executable or not. Or even worse, if I should make my own source code available such as with GPL license.

The reason why is not clear to me is because I'm not sure if by compiling their source code together with mine I'm "distributing" either their "Source Code" or "Executable Files"?

  • I am not a lawyer, but the license does not say that you are required to distribute any source code. That distinction is found primarily in the GPL, a copyleft license. If the author wanted copyleft characteristics, they would almost certainly have used the GPL, not the CPOL. – Robert Harvey Jul 5 '11 at 17:23
5

Legally, compiling is like stapling. If you staple a copy of a DVD of your wedding to a copy of a DVD of The Phantom Menace, it is legally both your wedding and The Phantom Menace. If you deliver the two DVD's stapled together, you are distributing The Phantom Menace.

Compiling cannot produce a derivative work because a compiler is not creative. Legally, only a creative process can produce a work (with a few exceptions created specifically by statute, none relevant here).

However, if your source code contains protectable expression from the other work, then your source code is a derivative work. When you compile it, it's still a derivative work. I have read the license twice, and I see no place that it requires you to distribute the source code of derivative works like the GPL does.

Oddly, and for absolutely no reason (it's not legally necessary) the license requires you to get your users to agree to the terms of the license. That's awkward.

  • Interestingly enough the co-founder of codeproject seems to think otherwise: codeproject.com/suggestions.aspx?msg=4614773#xx4614773xx – Tim Pohlmann Oct 26 '16 at 8:08
  • @TimPohlmann People not intimately familiar with IP law frequently get it wrong, largely because the law no longer makes sense. This isn't because the people who created it were fools, it's because it originated a long time ago and only slightly evolved over time. For example, when the laws on derivative works were written, translation was considered fundamentally a creative process because, at the time, it was. Now, machines can do translation without any creative input, but the law has not caught up. That's just one example. You can't reason what the laws are or should be, they're weird. – David Schwartz Oct 26 '16 at 8:32
  • So what you're saying is that COPL is not actually doing what the codeproject co-founder intended it to because he misunderstood the law? That would make sense...still a weird situation. – Tim Pohlmann Oct 26 '16 at 8:35
  • @TimPohlmann If you read what he says literally, he's quite correct. Maybe you're thinking he said something he didn't say. "If you're redistributing the code then you need to include license information and a link to the original code" I agree, and that applies whatever form you distribute the code in, including compiled. "but if you're building an executable from the source code then no, you don't." Right, since that's not distributing anything. Only if you read him to be talking about distributing executables does he contradict what I'm saying and become, IMO, wrong. – David Schwartz Oct 26 '16 at 8:39
  • You are right, I assumed he is talking about distributing executables. That's not exactly what he is saying, though. Judging by the context, I would still assume that's what he wanted to say and therefore contradicting with your statement. That's just my interpretation, though. – Tim Pohlmann Oct 26 '16 at 8:42
1

You don´t have to include source code, but you have to provide a link to the CPOL and let the users agree to it in your terms and conditions. Also see CPOL section 5.e:

... You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute and ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply to such Executable Files and/or Source Code. ...

Code project has summarized the most important facts about their licences here: CodeProject´s License Information.

It mentions inter alia the following points:

  • Can be used in commercial applications: True
  • Can be used in proprietary (closed source) applications: True
  • Bug fixes / extensions must be released to the public domain: False
  • Is a viral licence: False
  • But when he uses the project, does he have to include the source code? You did not address that specific question in your answer. – Jay Elston Nov 13 '15 at 14:28

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.