I have some doubts about source code re-distribution and GPL

I wrote DummyLib, a library that includes AmazingLib (third-party lib, released under GPL) and links against ProprietarySDK (no source, only an API heade).

ProprietarySDK <--> DummyLib <--> AmazingLib(GPL)

Now I want to share DummyLib:

  1. I can't distribute DummyLib.dll for sure, because it would mix ProprietarySDK and AmazingLib
  2. I guess I can't distribute all the source code (ProprietarySDK.h + DummyLib/src + AmazingLib/src) either
  3. My question is: Can I distribute only my DummyLib/src code? i.e. my own code that has calls to both AmazingLib functions and ProprietarySDK functions but that won't work unless you get AmazingLib/src and ProprietarySDK.h code yourself and then compile it for yourself?

I would imagine I cannot because it'd seem like a trick to actually use GPL code everywhere. On the other hand I have the feeling that the key thing with GPL is re-distribution, so if I don't release back any of the GPL code it should be ok, right?

Thanks for reading

  • Are you making DummyLib available according t o the GPL? If I build a binary (using ProprietarySDK), I am allowed to redistribute that binary according to the GPL?
    – Brandin
    Dec 5, 2019 at 6:56
  • @Brandin If possible, yes I'd distribute DummyLib/src under GPL. On your second question, I guess you can't release any binary either (see point 1. of the original question).
    – arthur
    Dec 5, 2019 at 17:43
  • Are the different components libraries (like .so/.dll) that form a single program, or are they clearly separate programs (like microservices)? The GPL may apply to the entire program, which won't work if you can't publish the entire corresponding source for that program. If you were the sole copyright holder you could issue a GPL exception, but you cannot add such an exception for AmazingLib.
    – amon
    Dec 7, 2019 at 21:23
  • @amon The components are bundled into a single library (which can then be used as a plugin for Proprietary application).
    – arthur
    Dec 8, 2019 at 18:36
  • The GPL only applies when you distribute GPLed code / binaries built from that code. You can distribute your code however you like. The question is, what the users, who need to combine the codes, are allowed to do.
    – allo
    Dec 20, 2019 at 10:09

1 Answer 1


No. If your code works with the GPL program, then the whole program must be released under GPL, which you can't do because ProprietarySDK is non-GPL.

There is a similar issue with including ProprietarySDK in your program: you will have to check what their licence allows.

The FSF's position: "If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program."

Your question is very similar to these:

And has been answered in more detail there.

Also see: What are the arguments for considering dynamic links to constitute derivative works?

Your Answer

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

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