The Corona Dual-license

Hi everybody.

The GPL license is very very precise. It explicitly says :

  • A GPL module may never be inside a private software : never
  • A private module may never be inside a GPL software : never
  • Any modification of a GPL module or software must be published under the GPL license :  always

A software protected by the GPL license is protected globally , and for ever.

Now, assume that someone who completely agree with the GPL Copyleft clause, decide to build a nice plugin for Corona. He can do this because he knows that his work is completely protected by the GPL license. Lets us pretend that this guy is me, and that the software he wants to work is called Mi-Corazon. Mi-Corazon will be free, protected by GPL and for ever.

One day, someone (you for example), decide to modify one of the Corona modules used inside Mi-Corazon.

He (you) will say that it is OK to do this because he (you) say that this module is under the Corona dual license and you choose the private option. You will say that, because this module is private, you can do without any GPL requirement. You will say that because your module is private you must no have to publish your modification under the GPL license.

At this time, Mi-Corazon (which is a GPL software) will have one of its module modified and not covered by GPL. This is completely un-allowed by GPL.

You will say that because one of Mi-Corazon module can be modified without the GPL copyleft feature, then Mi-Corazon may not be GPL.

I will say that because Mi-Corazon is copyleft, thanks to GPL, you are in complete infringement with the GPL.

Who win ? (except lawyers who will never settle on this case) ?

The reality is that the Corona dual-license is founded on a major contradiction, and that GPL is completely incompatible with any private clause.

@larpoux, I feel like you are taking a somewhat adversarial stance with many of your posts. I suspect that your apparent knowledge in the your question topics and the way how you form your questions leave many, myself included, uncertain and somewhat unwilling to respond to them. As I am not even 100% sure if I’m understanding your points correctly, I spent some time thinking whether or not I should reply at all.

Now, @Rob and others, do correct me if I am wrong, but if I’ve understood the license that @larpoux is referring to correctly, then this entire thread should be a moot point.

The GNU General Public License v3.0 under which Corona is licensed does not extend to any external plugins for Corona. Whether a plugin developer decides to disclose the source code to their plugin or not, to charge money for the plugin or make it free, is all up to them and GNU GPL is not in any way concerned with this.

If the plugin developer were to instead download Corona’s source code and began to create a custom version of Corona where the plugin is included, i.e. not an external plugin but a part of the core, then we’d enter into the area where the dual license comes into play, to which I quote:

A commercial license is available that will allow you to build commercial products based on the Corona source code. You will need to enter into an agreement with Corona Labs to get rights to uses source code as commercially licensed. Example of when such a license is required is to customize the engine to a specific commercial game.

Alternatively, you choose to use Corona under GNU General Public License version 3 (GPLv3). This license is available to everyone, but all products built on top of code licensed this way must retain the same license and become open source themselves. Example for using this license is in non-commercial open source games, educational purposes or to contribute to the engine.

Source: https://coronalabs.com/faq-opensource/

So, again, correct me if I am wrong, but if someone just wants to develop a plugin for Corona, then that plugin and its developer need not concern themselves with either license. You only need to care about the license IF you start modifying Corona’s source code. Even in this case, you could just see about making a pull request and adding it to the master branch (and it’d become a part of the core), in which case those licenses wouldn’t be needed again.

GPL v3 license: Download the Corona source code and change how the Corona core works.

Commercial license: Download Corona and use the Simulator with or without plugins. No need to release any of your source to the public. You are Using Corona, not “building Corona”

Commercial license: Download Corona and use Native (Xcode, Android Studio, Visual Studio) to build apps. As far as Corona is concerned, you’re using a commercial license. If you choose to use GPL v3 libraries or sources in your native projects, that’s for you to figure out. 

Commercial license: You want to download the Corona source, make a change to how Corona’s core works and release a new engine named Solar Flare and you want people who use your engine and not force them to open source their apps, then you need to negotiate a commercial license with us.

Commercial license: You want to download the Corona source code, fix bugs, add features and issue pull requests back to use to merge into our core.  Since these will now be in daily/public builds, those are all commercial licenses.

Gray area: You want to download the Corona source code and change it and even if you did a pull request that was accepted, but you choose to use the version of the Corona source you modified (i.e. you didn’t go download a new daily build). You are technically using the GPL v3 license unless you negotiated a commercial license. 

So to be clear, if you use a downloaded binary version of Corona from our daily or public build pages, you are commercially licensed and you can use Native to extend your app, make plugins and so on. You do not need the Corona source to make plugins (beyond what we put in the template). 

You only need the Corona source if you want to change how the Corona core works.

Rob

@larpoux, I feel like you are taking a somewhat adversarial stance with many of your posts. I suspect that your apparent knowledge in the your question topics and the way how you form your questions leave many, myself included, uncertain and somewhat unwilling to respond to them. As I am not even 100% sure if I’m understanding your points correctly, I spent some time thinking whether or not I should reply at all.

Now, @Rob and others, do correct me if I am wrong, but if I’ve understood the license that @larpoux is referring to correctly, then this entire thread should be a moot point.

The GNU General Public License v3.0 under which Corona is licensed does not extend to any external plugins for Corona. Whether a plugin developer decides to disclose the source code to their plugin or not, to charge money for the plugin or make it free, is all up to them and GNU GPL is not in any way concerned with this.

If the plugin developer were to instead download Corona’s source code and began to create a custom version of Corona where the plugin is included, i.e. not an external plugin but a part of the core, then we’d enter into the area where the dual license comes into play, to which I quote:

A commercial license is available that will allow you to build commercial products based on the Corona source code. You will need to enter into an agreement with Corona Labs to get rights to uses source code as commercially licensed. Example of when such a license is required is to customize the engine to a specific commercial game.

Alternatively, you choose to use Corona under GNU General Public License version 3 (GPLv3). This license is available to everyone, but all products built on top of code licensed this way must retain the same license and become open source themselves. Example for using this license is in non-commercial open source games, educational purposes or to contribute to the engine.

Source: https://coronalabs.com/faq-opensource/

So, again, correct me if I am wrong, but if someone just wants to develop a plugin for Corona, then that plugin and its developer need not concern themselves with either license. You only need to care about the license IF you start modifying Corona’s source code. Even in this case, you could just see about making a pull request and adding it to the master branch (and it’d become a part of the core), in which case those licenses wouldn’t be needed again.

GPL v3 license: Download the Corona source code and change how the Corona core works.

Commercial license: Download Corona and use the Simulator with or without plugins. No need to release any of your source to the public. You are Using Corona, not “building Corona”

Commercial license: Download Corona and use Native (Xcode, Android Studio, Visual Studio) to build apps. As far as Corona is concerned, you’re using a commercial license. If you choose to use GPL v3 libraries or sources in your native projects, that’s for you to figure out. 

Commercial license: You want to download the Corona source, make a change to how Corona’s core works and release a new engine named Solar Flare and you want people who use your engine and not force them to open source their apps, then you need to negotiate a commercial license with us.

Commercial license: You want to download the Corona source code, fix bugs, add features and issue pull requests back to use to merge into our core.  Since these will now be in daily/public builds, those are all commercial licenses.

Gray area: You want to download the Corona source code and change it and even if you did a pull request that was accepted, but you choose to use the version of the Corona source you modified (i.e. you didn’t go download a new daily build). You are technically using the GPL v3 license unless you negotiated a commercial license. 

So to be clear, if you use a downloaded binary version of Corona from our daily or public build pages, you are commercially licensed and you can use Native to extend your app, make plugins and so on. You do not need the Corona source to make plugins (beyond what we put in the template). 

You only need the Corona source if you want to change how the Corona core works.

Rob