clone45 / voxglitch

Modules for VCV Rack
GNU General Public License v3.0
101 stars 16 forks source link

Proper licensing of other code? #123

Closed squinkylabs closed 2 years ago

squinkylabs commented 2 years ago

I notice some of my code is in your repo. But you don't seem to have any acknowledgement (that I can find) of this. You might consider following the example of VCV, where they use a separate license-dist file for that stuff. That's what I do, too. Here's theirs: https://github.com/VCVRack/Rack/blob/v2/LICENSE-dist.md

clone45 commented 2 years ago

Thanks! Could you let me know where you saw this code? I'm happy to add attributions. I know that I used AudioFile.h and dw_wav.h. Are there other instances that you've seen?

squinkylabs commented 2 years ago

I noticed DrawTimer.h and SqTime.h are mine. I I'm going to guess that there is VCV code in there as well? I think usually people credit VCV. Here's an example: https://github.com/MarcBoule/ImpromptuModular/blob/master/LICENSE-ext.md

Inline licensing like you do is not doubt legal. It's sort of easier to just put all the stuff in a dedicated file like many devs do, but totally up to you.

I probably go overboard. I'm going to guess that some of the things I've credited aren't in there any longer: https://github.com/squinkylabs/SquinkyVCV/blob/main/LICENSE-dist.txt

clone45 commented 2 years ago

Thank you for pointing this out. I've gone ahead and removed both DrawTimer.h and SqTime.h since neither library was being utilized and have submitted the patch to the user library. I'll do my best to create a LICENSE-ext.md file and include centralized attributions for other libraries that I'm using.

squinkylabs commented 2 years ago

Oh, no need to submit to the library. thanks.

falkTX commented 2 years ago

Related to this, you are using GPL licensed code with https://github.com/clone45/voxglitch/blob/master/src/Common/AudioFile.h But your project is listed as BSD-3-Clause. This breaks GPL licensing, as by using GPL you are required that project itself is also GPL. You can keep your individual/self written code in whatever license you want, but the final project binary needs to be GPL. So at least https://github.com/clone45/voxglitch/blob/master/plugin.json#L5 needs an update to reflect that.

clone45 commented 2 years ago

Thanks @falkTX, software licenses is oblivious not my forte. Could you give me more detail about what I need to add to plugin.json?

Also, I have plans on writing my own audio library to replace AudioFile.h, so hopefully this won't be an issue in the future.

falkTX commented 2 years ago

Changing your plugin set to GPL (using GPL-3.0-or-later or similar) will obviously make it compatible with GPL licensed code. The alternative is to simply not use code that is GPL if you do not want your code to be GPL as well. But if you are fine with GPL as a license, then having your project as GPL means you can pretty much use any other code that is also GPL. Just needs attention regarding versions on that case, with GPLv2+ vs GPLv2-only and GPLv3+ etc.

clone45 commented 2 years ago

I agree that changing my code to GPL is a good idea. It appears that VCV Rack itself uses GLP (https://vcvrack.com/manual/PluginLicensing) Thanks for the heads up! I'll include this update in the next release.

clone45 commented 2 years ago

@falkTX I spent about an hour trying to find a good template for a GPL license but nothing jumped out at me. Do you happen to have one floating around that I can modify for my own uses?

falkTX commented 2 years ago

Template? you mean something to put on the readme? ChowDSP-VCV has one that is simple enough.

License ChowDSP VCV Modules (both artwork and code) are licensed under the GPLv3 license. Enjoy!

This is enough as-is. Then place GPL-3.0-or-later as the license string in the plugin.json file and have a copy of the GPLv3 as your LICENSE file, as-is, in the root of the repo. Of course you adjust as needed, what applies to your projects is up to you to decide. We can only guide you.

clone45 commented 2 years ago

Oh, that's easy enough! Thanks!

falkTX commented 2 years ago

The points I raised are covered by df225f3e7df531dd71bd36f1a20acbd05a5f4b5c So on my side seems all good

squinkylabs commented 2 years ago

Issues like that that have been resolved can be closed. Will make it easier to examine (truly) open issues. I notice that most of the issues here seem resolved?