As I understand, Cheerp is a tool in a similar way it is GCC, licensed with GPLv2. The license applies to the work reached by the copy rights, but not for use restrictions.

So, as long as one does not distribute it (as code or object) with the programs created, the resulting program is not restricted.

My confusion arieses with the text in the page:

As parts of Cheerp are licensed under GPLv2, a copyleft license, if you distribute your application you must provide your users access to its sources under the same license.

That is true if the application is a derivative work of a GPLv2 work, Cheerps in this case. But it is not the case.

So, the following addition looks like a violation of GPLv2, because adds up use restrictions to the license:

If you are using Cheerp for developing closed-source, commercial applications you must purchase a commercial license.

And if you don't distribute a GPLv2 program with the same license (pure GPLv2, without additional restrictions), you are violating the license.

TL;DR: I think that you can't add a use restriction to a GPLv2 licensed program.

Edit 26/08/2018: What is beyond this question is if it can be used to create applications without restriction (as I understand that @MadHatter said). Or if it is not (like @curiousdannii said), what it is necessary to accomplish that if there is something that can be done.

  • 1
    Note that a compiler will link your binary with standard and runtime libraries, if these are under GPL then so is your binary. GCC provides a runtime library exception for its bundled libraries, Cheerp may not.
    – sambler
    Aug 10, 2018 at 11:15
  • So, if that's the case, should I make my own Cheerp-based (GPLv2 licensed, of course), without links to Cheerp GPLv2 code? I say, in order to can compile code without license restrictions.
    – ESL
    Aug 26, 2018 at 3:35

1 Answer 1


Having read the original page (and as a side-note it would be helpful if you were to provide links in your questions), what is going on is not a licence violation, but dual licensing.

They say

Cheerp is distributed as a Free and Open Source Software under the University of Illinois/NCSA Open Source License (core compiler) and under the GNU General Public License v2 (libraries).

As I understand it, the people distributing cheerp are also the copyright holders to the entire project. They will let you have it under a combination of NCSA/Illinois and GPLv2, but they remind you that if you get it on that basis and you want to develop a derivative product, then the GPLv2 bits of cheerp and derivatives thereof have to remain GPLv2 in your derivative. NCSA/Illinois is a weak copyleft licence, and doesn't have a similar requirement.

They also say that if you want to develop a closed, proprietary product based on cheerp, that they have a commercial license that you can buy from them, which (presumably) will permit that. A number of big free-software projects run on this basis; it may not be universally loved, but it's perfectly respectable.

Edit: in response to your comment above: normally the licence on a program doesn't control the output of that program, because copyright law doesn't consider the output of a program to be a derivative of that program.

This is not always true in the case of compilers, which often include some significant part of themselves in the output. As sambler notes above, gcc does, and so it comes with a licence exception to release compiler output from the licence requirements of the compiler itself. GNU Bison behaves similarly, and has a similar exception.

Presumably, the cheerp compiler also does, but they ask you to pay for the exception those other compilers give for nothing. This is a perfectly lawful business model. If I were going to compile code into a binary that I intended to release under a proprietary licence, I'd think long and hard before using cheerp: but the details of that internal discussion are off-topic for this site.

  • In advance, thanks for the answer (and sorry for omitting reference, I was tired). But they are not talking about a compiler derivated from Cheerp, they never say that. They start the paragraph talking about developing "ANY APPLICATION" using Cheerp, and continue that saying that if you want to distribute "YOUR APPLICATION" you "MUST PROVIDE" the code.
    – ESL
    Aug 26, 2018 at 3:23
  • Or maybe is like you said and it's just the text that is (intentionally or not) confusing. Anyway, I add a note to my question.
    – ESL
    Aug 26, 2018 at 4:58
  • If you find the above has now answered your question, please consider accepting it. Otherwise, precise clarification of exactly what you're trying to do would be helpful.
    – MadHatter
    Aug 27, 2018 at 6:45
  • I will expand later, thanks for the reminder.
    – ESL
    Sep 11, 2018 at 2:48

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.