I'm quite confused about what are the obligations of GPL libraries in the context of plugin based software.

Let's say I want to distribute & sell a plugin based app as closed source providing to the users a set of closed source core plugins as well.

Here's the thing, if both the plugin framework and core plugins are not using any GPL deps and assuming they're not violating license terms of possible deps should not be mandatory to open source any of the code.

Now, here's my question... what happens if some of the plugins (be it plugins either created by the company or by users) use GPL dependencies... Would the GPL dependencies only affect to the plugin(s) or would also infect the host and other closed-source plugins?

Common sense suggests that only the source code of plugins using GPL deps should be opened but considering GPL is virical & nasty I'm not sure anymore.

In fact, if that was the case (which would be crazy), as a user, you could argue companies to open source a whole host app in case you've added a plugin that uses GPL code on a plugin for that host... couldn't you?

Hypothetical examples:

  • You've created a driver for windows that uses GPL code, would Microsoft be forced to open source the OS?
  • You've created a plugin for SublimeText/VisualStudio/3dsMax/(whatever closed source plugin based software goes here) that uses GPL code, would these companies be forced to open source the hosts?

Summing up, could anyone clarify here which type of code GPL libraries would infect directly/indirectly?

Ps. Reason I've opened this thread is because I've found this answer and I found it pretty confusing, specially the part where he says:

(b) If you do distribute YOUR APPLICATION, and you used something GPL as part of your application (even if only linking at run-time to a library) - and even if you do not charge money - and even if you do not change that GPL s/w in any way - then you MUST make the source of YOUR APPLICATION available.

how would you interpret that statement?

  • IMHO GPL "infects" the host system only if the host can not be used without the GPL software. In both your examples that's not the case. May 27 '19 at 21:26
  • @Martin Schrôder So the fact those plugins with GPL deps are using the host SDK would "infect" the host as well? What do you mean "if the host can not be used without the GPL software". For instance, let's say the visual studio text editor is a plugin that uses behind the curtains a standalone GPL text editor widget. Without that plugin visual studio couldn't be "used"... so... could you please elaborate what you mean here? When you say "IMHO"... are you referring to the actual GPL license agreement or it's just pure speculation? :)
    – BPL
    May 27 '19 at 22:09
  • 5
    Possible duplicate of Can plugins for closed source software use GPL'd libraries? May 28 '19 at 1:28
  • GPL is commercial. see gnu.org/philosophy/words-to-avoid.html#Commercial The GPL is not nasty. Read some proprietary licences if you think it is. May 31 '19 at 8:23

To answer the question of the form "You've created a plugin for X with GPL'd libraries; can you force X to be open sourced?" -- absolutely not.

Instead, what may be true (see the final paragraph for the corresponding "might not") is that that plugin cannot be legally distributed in combination with the main program unless the main program is also under the GPL. However, the logical implication "[Distribution of combination is allowed] implies [combination licensed under the GPL]" does not itself compel the right-hand side of the implication: it simply means that the left-hand side can't be true (i.e., distribution being possible) without the right first being true. (To put it in equivalent contrapositive terms, "[Combination NOT licensed under the GPL] implies [distribution of combination is NOT allowed]".)

You are right that if GPL obligations were to extend to the nonfree main program, distribution would only be possible by GPL-licensing the main program, but this is only a problem for the person who wishes to distribute the combination, not for the author of the nonfree main program who has no intent to distribute your plugin.

However, this problem only arises in the case that the GPL requirements inherent to the plugin extend to the main program at all. Depending on how the plugin system is architected, it is quite possible that a plugin is legally separate work from its main program, even when distributed in aggregate with its main program. For closely-related discussion of this topic, see Can plugins for closed source software use GPL'd libraries?

  • 1
    Thanks, you've brought some interesting facts to the table. One thing still remains unclear to me is this section https://www.gnu.org/licenses/gpl-faq.en.html#GPLPlugins, for instance, let's say X, which it's a PE/Elf executable invokes compiled python plugins (.pyd, .so) through __import__, not exec/fork as stated in that link. Why do they just mention exec/fork syscalls? Really diffuse those license terms, they leave a lot of room for interpretation :/
    – BPL
    May 28 '19 at 21:30
  • 1
    @BPL The GPL only specifes what is required whenever you modify a work under the GPL. Under what conditions two pieces of code form a single work under copyright law (versus remaining separate works, which may each independently have obligations under the GPL or not) is up to the local jurisdiction's understanding of derivative works. The GPL merely uses this legal concept; it does not define it. The GPL FAQ tries to offer a broad summary of how a U.S. court might rule on the subject.
    – apsillers
    May 28 '19 at 21:53

First GPL is commercial (see https://www.gnu.org/philosophy/words-to-avoid.en.html#Commercial )

Now to answer the question:

A third party, can not affect the licencing of your code. That is if a 3rd party, writes a plugin, then you have not done anything wrong.

However if you create a plugin system as a way to get around the GPL, then you have not got around it, you are in violation.

  • 1
    When you say "A third party, can to affect the licencing of your code", do you mean they can or cannot? Asking cos then you say "That is if a 3rd party, writes a plugin, then you have not done anything wrong." so it feels a little bit contradictory. Would this mean the plugin developer should be responsible of being GPL compliant? But... assuming that plugin is using the host SDK as well... isn't that infected then? What do you mean "as a way to get around the GPL"? This answer is too diffuse and it didn't clarify too much any of my concerns tbh
    – BPL
    May 27 '19 at 22:05
  • Sorry. I fixed the spelling error. May 28 '19 at 23:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.