Relicensing VCV Rack to GPLv3 with freeware/commercial exceptions?

I am considering relicensing all VCV Rack source code to the GPLv3 license before the release of Rack v1.

What about open-source plugins?

All open-source plugins currently in the Plugin Manager are licensed under GPL-compatible licenses, so binary builds of them already satisfy the GPL.

What about freeware plugins?

I will add an exception to the Rack license text of the form:

All VCV Rack plugins that do not follow the GPLv3 license (e.g. closed-source, freeware, GPL-incompatible licenses) are permitted to be distributed non-commercially in source and/or binary form.

What about commercial plugins?

A commercial license will be included in all future VCV Store contracts, and all existing commercial plugins sold in the VCV Store will be “grandfathered in” and granted a license in writing before the release of Rack v1. The Rack license text will state something like:

All VCV Rack plugins (e.g. commercial) are granted an exception to the GPLv3 license for units willingly distributed by VCV (e.g. sold on the VCV Plugin Manager). Email contact@vcvrack.com for other licensing options, such as selling plugins outside of the VCV Plugin Manager.

Why?

This decision serves two purposes. It prevents commercial modules from being sold without supporting the VCV project, and it prevents unlicensed commercial clones of VCV Rack itself that do not support the VCV project.

This decision follows the Mission Statement of VCV to deliver a zero-cost, open-source, unlimited platform for modular synthesis, and I believe the change is important for ensuring the project remains active in the next decade or two.

VCV Rack will not use GPL libraries not owned by VCV, to allow the above exceptions to be legal and to be able to sell/license commercial forks, such as the upcoming “VCV Rack for DAWs”. The Rack codebase is (currently) not open-contribution, but any contributions regardless will need to transfer the copyright ownership of their contribution to VCV.

Update:

Draft license statement posted at Relicensing VCV Rack to GPLv3 with freeware/commercial exceptions? - #24 by Vortico

14 Likes

This decision is not final yet, so I am opening this thread for questions, concerns, and debate.

1 Like

Desde el punto de vista de la protección de VCV de los clones, creo que es una decisión que vale la pena, si la licencia otorga todas la ventajas que espera el autor. El tema complejo quizás será poner de acuerdo a todos los autores de complementos para ceñirse de forma uniforme a esta opción, pero sí creo que se pueda lograr.

Google Translate:

From the point of view of the VCV protection of the clones, I think it is a decision that is worth it, if the license grants all the advantages that the author expects. The complex issue may be to agree with all the authors of supplements to stick to this option uniformly, but I do believe that it can be achieved.

So the idea here is to limit commercial plugins to the official store exclusively, and to use the revenue from those to keep VCV Rack itself free?

I don’t wish to prevent commercial plugins from being distributed outside the VCV Plugin Manager, but I do wish to have some control over them, e.g. commission of sales, apply terms to modules which negatively affect the VCV project, etc.

2 Likes

Maybe you want to use GPLv3 and dual license to a proprietary license when it’s a matter of proprietary plugins support. And the GPLv3 (plus plugins) version would be always open.

So the free software (plus free software plugins) version will deliver a “zero-cost, open-source, unlimited platform for modular synthesis”

If I understand correctly (sorry, tiring day :slight_smile: ) Keeping the GPLv3 with an exception for freeware, sounds against your mission statement to keep a zero-cost, open-source (bold intended)

The proprietary (dual licensed) version could work with freeware / other proprietary plugins at the rules that you would decide.

Keep in mind that when you will have contributions to VCV Rack you would have to have a copyright transfer from the contributors if you would want to dual license.

my 2 cents and always IANAL (I Am Not A Lawyer)

Thanks for VCV!

2 Likes

This seems like a savvy move to help keep VCVRack cohesive and community-driven. Commercial modules should be subordinate to the project as a whole.

1 Like

That’s what this is. See the exceptions to the GPLv3 license in the post.

The existence of freeware plugins does not affect the existence of open-source plugins or the VCV Rack project. Classic “if you don’t want it, don’t download it” idea.

I addressed this in the last sentence in my post.

Thanks. Sounds like a good plan (and move) to me! I guess you have already consulted a real license expert

Good stuff, for what is worth thumbs up :+1: from my side

1 Like

Your “What’s the point of GPL if you have a freeware plugin exception?” question is a good one. The answer is:

My goals are not parallel to the Free Software Foundation, but their GPL license is ideal for my goals regardless. If someone makes a fantastic Rack fork, I’d be unable to merge their changes into Rack (without a copyright reassignment from them) because of my proposed license exceptions and the upcoming commercial Rack fork project. But over the last two years I’ve realized that I’ll likely never want to do that anyway because I can do everything I want in-house given enough salary.

1 Like

As a user only, I’m all for anything that helps or the pushes the project forward. Anything that is good for the community as a whole. I’m a firm believer in VCV and hope it will go on for years to come and most surely will.

I’ve already bought most of your plugins including other ones from 3rd parties and will continue to do so.

1 Like

Yup, all fine. It’s your baby!

Although I would suggest to consult a license expert if it would be possible (if you did not do it already!)
Just to double check the GPLv3 with the exception for freeware/proprietary non commercial plugins.

1 Like

I’m reading the license but it’s a bit difficult to tease out the full ramifications of how this would affect the program.

Wondering what the key differences/takeaway …versus how things have been conducted until now are… ?

I’ve explained a lot in the “What about…” sections. What do you want to know more about specifically?

I am not a license expert at all. I am wondering about the consequences of that if I used part of my code in VCV plugins (open source as well as commercial through the VCV store) and also in commercial non-VCV plugins (VST, or possibly for other modular hosts), or even in microcontroller based hardware modules.

I think this is a smart way to meet your goals as stated, and if you did it I would switch my plugin from Apache 2 (which is kinda a default license I pick) to GPL3 for them. And the new rack project I’m working on is GPL3 already. I also agree that the risk of another free fork is low.

The one technical issue that comes to mind is
https://www.gnu.org/licenses/gpl-faq.en.html#OOPLang

If you subclass rack::Module you contage GPL3 into your code according to that FAQ. Technically subclassing a GPL3 class makes you a derived work.

And you have to subclass rack::Module to do anything.

Does this mean that it would be impossible to have (say) MIT or BSD 3-clause licensed plugin software that used Rack? I understand your statement about binary distribution with compatible licenses, but are you sure that there’s not a source contagion into folks who have more permissive open licenses than GPL3?

1 Like
  • If your plugin’s open-source license is in the list of GPL-compatible licenses (3-clause BSD, MIT, CC0, zlib, GPL of course, etc), then you can freely distribute binaries, as before.
  • If you sell your plugin through the VCV Plugin Manager, a commercial license will be included, so there are no additional details to worry about.
  • If you sell your plugin outside of the VCV Plugin Manager, you’ll need to contact me for licensing.
  • If you use part of Rack’s code in other projects that aren’t Rack plugins, you’ll either need to follow the GPLv3 by licensing your code under GPLv3 or contact me about licensing. None of the proposed exceptions to Rack’s licenses permit anything special to software that are not VCV Rack plugins.
2 Likes

No need to relicense your plugin. The Apache v2 license is compatible with GPLv3.

Yes, compiling a binary that can be loaded by VCV Rack makes your binary a derived work of Rack, so it needs to follow Rack’s license.

MIT and 3-clause BSD are also GPLv3 compatible, so a plugin released under those licenses are permitted by the GPLv3. No need to relicense any plugins to GPLv3. See the “What about open-source plugins?” section of my original post.

1 Like

Oh yeah. I would relicense just because gpl3 is better.

And yeah totally get it on binary distributions. My only point was the gnu faq says if you subclass gpl3 code your source is derived. That may have consequences which require people to split code into, say, mit source which is included by their module indirectly rather than in their code. Or do you read the gnu faq differently?

But most importantly: thanks! The world having better open software is wonderful and I appreciate you for making it happen!

1 Like

I am almost certain this is not what GPL compatible means. You can use compatible code in your GPL software, not the other way around. See this part of the FAQ. All current plugins would need to be released with the same GPL version as Rack.

I think the proposed exception would provide the escape hatch for this, but I don’t know what legal implications that would have for downstream code. Seems like it might get messy mixing more permissive licenses with a GPL with exceptions.

Another thing to consider would be current contributions to the code base. There appears to be 8 contributors on Github that are not you. Have they all agreed to transfer ownership? I think your last paragraph is hinting at this, but I’m not sure.

I am definitely not a lawyer, so I think some real legal council would be wise.

3 Likes