Dual-license with GPL?
mangtronix opened this issue · comments
Is it possible to make Mozzi available under GPL license? That would make it possible to combine with GPL licensed code. The CC-BY-NC-SA is not compatible with GPL.
Creative Commons itself "recommends and uses free and open source software licenses for software."
I want to publish ESP32 support for Mozzi using the ESP8266Audio library, which is GPL licensed. Mozzi could add the GPL as an option in addition to the existing license.
My understanding is that if your application is non-commercial you can share Mozzi under CC-BY-NC-SA. What is the hurdle to combining with GPL code?
If you have a commercial application, we can negotiate a license.
I believe the problem is the following:
- If you create a work using ESP8266Audio, then you must license that under GPL.
- If you are create a work using Mozzi, then you must (in be absence of another agreement) license that under CC-BY-NC-SA.
- Although the two are similar in spirit, they are not compatible, thus you have no option to create a work using both ESP8266Audio and Mozzi.
One way out would be, if Mozzi would optionally allow you to distribute your derived work under GPL. I'd be sympathetic to that idea, but clearly it's your call, alone, to make.
I will add that the GPL does not preclude commercial use. All it says is that you must offer your source code under the GPL.
Would be great if this could be worked out as esp32 support would be fantastic.
What's the reason for the ESP8266 port not requiring ESP8266Audio but the ESP32 requiring it?
That comment was before support for the ESP32 was added to Mozzi (very recently). Neither port requires ESP8266Audio. Only the code the OP seemed to have in mind, did. The problem about a license clash if using both libs in the same project still stands.
Hi, it's taking a while but I've been looking at licenses and I don't really understand how a dual license works, or how to present it with a project. Is there an example somewhere? Thanks...
The cases I know are products which are dual licenced GPL and a commercial licence. In those cases the customer can decide to use the GPL version for free, or, if they need to use the product in a commercial product that they don't want falling under the GPL, pay a licencing fee to obtain a non-GPL version. Some GPL products are kind of dual licenced as well, as they are licenced under "Version 2 of the GPL or any later version", at the choice of the user.
I believe the standard procedure is to provide separate license files (i.e. LICENSE.GPL and LICENSE.CC-BY-NC-SA) for the respective "standalone licenses". Then you'd create a third file LICENSE which contains something like
This work is dual-licensed under the terms of the CC-BY-NC-SA or alternatively under the terms of the GPL 2.0 (or any later version). Copies of these are distributed with the Mozzi sources as LICENSE.GPL and LICENSE.CC-BY-NC-SA, or can be found at upstream-license-url. You may use Mozzi according to either of these licenses as is most appropriatefor your project. (For - paid - commercial licensing options contact @sensorium.)
That short text (refined at bit) what also be included in the places where the license is stated right now, importantly file headers and README.
See also https://softwareengineering.stackexchange.com/questions/181040/how-to-document-a-dual-open-source-license , which has further variants and links to examples.
I just posted here as well: #208
In short: CC-BY-NC-SA is not only NOT a proper open source license, it is fully incompatible with GPL and almost certainly incompatible with LGPL. The Arduino top-level is LGPL and certain other elements are GPL.
This means that in all probability it is a license violation to use Mozzi in an Arduino project. That ain't good.
A dual license won't cut it: you simply cannot use CC-BY-NC-SA with the Arduino. Please relicense Mozzi with a proper open source license, I personally suggest Apache 2.0, but GPLv3 would work fine.
To clarify, I do not see a reason why it should be illegal to use an LGPL licensed lib from within Mozzi or to use both Mozzi and an LGPL lib in a project. The latter would then have to inherit CC-BY-NC-SA, though.
Things that do not currently work (and I agree, that is bad):
- Mixing Mozzi in any which way with GPL-only libs / projects
- Using Mozzi in a project or lib that is not CC-BY-NC-SA licensed -> makes it hard to build anything on top, even free stuff
I will add that "non-commercial" may in fact not be the boundary that really counts: Suppose you want to sell a fully open (hardware+software) DIY-kit for a customizable synth based on Mozzi. That's not currently allowed. My feeling is that "open" is the important thing, not "non-commercial".
Finally, yes, dual-licensing (or triple-, quadruple-) does help. It allows the user to pick the suitable license among the offered options. Should any of the offered licenses not be usable in the resulting combined work, this is not a problem at all: Dual-licensing means to allow a logical "OR", not force a logical "AND".
In fact, should the decision be to move to GPL, dual-licensing will be mandatory, in order not to break existing (law-abiding) projects which are forced to use CC-BY-NC-SA, and may or may not be capable of switching. (Should the decision be to move to LPGL or APACHE/BSD, whatever, it would not be strictly necessary to keep CC-BY-NC-SA among the set of licence options).
I believe, we're drifting away from the (valid) topic, but:
But that requires changing the LGPL code's license to CC-BY-NC-SA, which is not permitted.
No, it does not. It requires using CC-BY-NC-SA as the license of the derived work, which is allowed by the LGPL (assuming no modifications in the LGPL-code, itself).
Mozzi simply needs a better license.
I don't disagree on that.
Regarding compatibility with (LPGL) Arduino core/license, see their FAQ: https://support.arduino.cc/hc/en-us/articles/4415094490770-Licensing-for-products-based-on-Arduino : "If you developed a sketch based on Arduino and you want to publish it as an open-source project in source code form, no restriction applies."
(As, however, Mozzi does impose restrictions, CC-BY-NC-SA is currently the only possible license available, in this case, as things stand. As for your - far reaching - theory that this would somehow need to extend to the upstream LGPL source code, too, do differentiate carefully, between what CC-BY-NC-SA calls "Adapted Material" and the more narrow scope of where "Adapter's License" is imposed.)
As for distribution in compiled form, this is in fact more complicated (but not impossible, IMO), and some (but not all) of this complexity would be eased by a different choice of license.
It's worth mentioning that the FAQ statement does not apply to Mozzi projects: CC-BY-NC-SA is not an open source license by OSI standards, and since it is viral, your project is likewise not open source. It may be free, but this FAQ item would not apply to it.
Mozzi 2.0 moved to LGPL. Closing.