Say there is a commercial product that I have licensed, I have written my own plugin that integrates with a GPL licensed program. The program works fine and since it's personal use, I have not violated any licenses.

Now say, I just want to give the plugin away so that anyone else can use it:

  • I don't want any money for it.
  • I don't care if its binary and/or source code (someone else can compile it if necessary).
  • I don't care what license is applied to the code.

If I am reading this question/answer correctly: How can GPL terms apply to distribution of a proprietary plugin? Even an uncompiled source file would be considered a derived work.

So there is literally no way to even give the source code to someone else without violating the GPL? (since I don't have the source to the commercial program).

This does raise an interesting question of when does it become a derived work? for example is the idea of integrating product X&Y a derived work? How about a flow chart which outlines the high level design of the integration?

If I edit the code to remove all calls to the commercial application and in their place leave a natural language comment // TODO: Call feature X

The code now no longer has a dependency on the commercial application so can I distribute it under the GPL now?

Would just commenting out the calls to the commercial app be sufficient ?

  • Please explain more about the interfaced between the different parts. Is there a defined interface (e.g. REST, CLI) by which the parts communicate, or will the parts be compiled together (unusual for a plug-in)? There are ways to create combinations by separating things sufficiently, so that they are not considered a 'derivative work'. May 12 at 8:48
  • 1
    For the sake of this argument lets say both the GPL and commercial apps are written in C and one of them is a library that is loaded into the process space of the other one.
    – DavidT
    May 12 at 11:03
  • The programming languages of the parts are irrelevant for the assessment. The interface(s) between the parts are relevant. Usually, a plug-in interface allows for categorization of the parts as 'mere aggregation', but the information you provided so far is insufficient for confirmation of that assumption. May 13 at 6:15


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.