I've created a Java project based on a C# sample application that was published under the Code Project Open License (CPOL) which sounds to me quite similar to MIT.

As I was the only user of this library for a while I didn't care too much about the concrete licensing. However, I was asked recently to choose one so others might reuse it. I'm in favor of the MIT license because of its simlicity though I'm not sure if I'm allowed to switch as the Java port is some kind of derivative work.

Do I have to stick with the CPOL license or am I allowed to switch to MIT?


I've created a Java project based on a C# sample application that was published under the Code Project Open License (CPOL)

There are two key parts to your question.

I've created a Java project

If you create a project, you usually own the copyright. You are permitted to license it however you please. (exception outside the scope of this question: work-for-hire, which is usually the case when you are paid to create intellectual property).

based on a C# sample application

...unless it is a derivative work. Then the path forward is less clear. In general if you create a clean room implementation you may be making software the interoperates with other software, or is conceptually based on other software. However, if you do not actually use any intellectual property, you generally own the copyright to the new work. Ask a lawyer who specializes in intellectual property law in your jurisdiction to be sure.

If your work is a derivative work, you must comply with the licensing terms of the original work, or negotiate different terms with the copyright owner of the original work.

In summary:

  1. Determine if your work is an original or derivative work.
  2. If it is a derivative work, review the license with a lawyer or contact the original author for special licensing terms or to grant you full copyright control over your derivative work.
  • I have contacted the original author now as this is probably the safest solution. As this is a non-profit, open source project I think including a lawyer is like shooting a cannonball onto a fly and may produce monetary costs I'm not very keen on. The tricky part here is, at what point does a derivative work may become non-derivative? If the initial design was based on some other design and a rework changed the code but still reuses portion of the old code, is it still derivative? I think there is no fine line here which makes things overly complicated IMO – Roman Vottner Nov 4 '16 at 9:59
  • @RomanVottner odds are nobody cares and you are in the clear. But stranger things have happened, and it is always a good idea to be proactive and play it safe. – user22815 Nov 4 '16 at 13:33
  • The origin author responded quickly and was fine with me changing the license to MIT. I hope that this may even last infront of a courtyard but as both licenses are quite similar I think it should be fine – Roman Vottner Nov 4 '16 at 13:57

I'd prefer to ask the author of the original package. He may grant you any type of license beyond the original license.

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.