Comments (17)
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.
from mozzi.
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.
from mozzi.
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.
from mozzi.
Would be great if this could be worked out as esp32 support would be fantastic.
from mozzi.
What's the reason for the ESP8266 port not requiring ESP8266Audio but the ESP32 requiring it?
from mozzi.
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.
from mozzi.
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...
from mozzi.
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.
from mozzi.
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.
from mozzi.
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.
from mozzi.
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).
from mozzi.
from mozzi.
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).
from mozzi.
from mozzi.
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.
from mozzi.
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.
from mozzi.
Mozzi 2.0 moved to LGPL. Closing.
from mozzi.
Related Issues (20)
- mozzi_rand cannot go full range HOT 7
- AVR PWM range is not actually 0-488 ("8.5 bit"), but effectively 0-400 HOT 6
- Minor / infrastructure: Avoid duplicate workflow runs on pushes to PRs HOT 1
- I2S dac with a nano. HOT 12
- VS10XX as DAC HOT 38
- RFC: Analog input scaling - what's the best approach HOT 3
- Allow to disable twi_nonblock HOT 5
- Review uses of "int", and "long" data types.
- Optimization of `Oscil::phMod()`
- GP0 io issues on RP2040 HOT 7
- Force PWM mode for power supply on GPIO, or suggest it in documentation
- I2S dacs config in Mozzi2 HOT 9
- A question, not an issue per se: lgt8f328p HOT 2
- RP2040 is out of tune HOT 5
- URL to webpage in _About_ section is wrong HOT 2
- Port for PY32f002 - PY32F003 -PY32F030? HOT 2
- HTML styling not rendering in the Github's Readme HOT 8
- Teensy (3.6 and 4.1) CI jobs are failing HOT 1
- AudioInput does not compile with Mozzi 2.0
- ESP32 21:58:07.296 -> E (200) ADC: CONFLICT! driver_ng is not allowed to be used with the legacy driver HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mozzi.