rorywalsh / cabbage_v1_old

Framework for developing virtual instruments using the Csound audio synthesis programming language.
http://www.cabbageaudio.com
115 stars 15 forks source link

Steinberg VST not compatible with the GPL #5

Closed acrisci closed 10 years ago

acrisci commented 10 years ago

Steinberg has terms in their VST SDK license that forbids anyone to redistribute it. In order to build this project, you need some header files from the SDK. Under the terms of the GPL, if you distribute a binary built from GPL'ed code then you must distribute the source. This would involve redistributing the SDK which would violate the terms of Steinberg's license.

acrisci commented 10 years ago

Here are the includes that are compiled into the project:

./JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:86:#include <public.sdk/source/vst2.x/audioeffectx.h>
./JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:87:#include <public.sdk/source/vst2.x/aeffeditor.h>
./JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:88:#include <public.sdk/source/vst2.x/audioeffectx.cpp>
./JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:89:#include <public.sdk/source/vst2.x/audioeffect.cpp>
./JuceLibraryCode/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:56:#include "pluginterfaces/vst2.x/aeffectx.h"

Steinberg owns the copyright on these files and their license forbids their redistribution by third parties.

From section 6 of the included license (GPLv3)

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of [several ways].

Where:

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

falkTX commented 10 years ago

the author is allowed to do as he pleases with the its own code. the binaries don't have to be released under the GPL.

A lot of us devs know about the issues of VST vs GPL, but there's not much we can do. Do you really prefer we stop releasing VST plugins?

vlazzarini commented 10 years ago

Is that code part of Cabbage or part of JUCE? If the latter is the case, I suspect you're barking at the wrong tree: you should open an issue at https://github.com/julianstorer/JUCE.

acrisci commented 10 years ago

I am just a hobbyist trying to determine whether or not I can use or contribute to this project. If you know about the issue and are not concerned, you can close this as "wontfix".

@falkTX

the author is allowed to do as he pleases with the its own code. the binaries don't have to be released under the GPL.

If the included portion of JUCE was licensed to you under the GPL, then your project must have a GPL-compatible license which means that the terms apply to the binary.

The same goes if contributors license code to you under the GPL. If you want to release binaries under a different license then you must have a contributor agreement that makes clear what people's rights are over their contributions.

@vlazzarini

Is that code part of Cabbage or part of JUCE? If the latter is the case, I suspect you're barking at the wrong tree: you should open an issue at https://github.com/julianstorer/JUCE.

The legal issue only comes about when you distribute binaries. As far as I know, JUCE does not distribute binaries. Other projects such as Audacity resolve this issue by simply not offering compiled versions that support VST and asking people to compile it themselves.

I think this project is a great idea and I want you guys to do well. I'm doing you a favor by bringing this up now. The best solution for everybody would obviously be if Steinberg had a more liberal license that was compatible with GPL projects.

cabbageaudio commented 10 years ago

I agree with you. Things would be a lot less confusing if Steinberg just added a more liberal license.