6

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

5
  • 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

3

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."

Another relevant section from the FAQ: "I'd like to modify GPL-covered programs and link them with the portability libraries from Money Guzzler Inc. I cannot distribute the source code for these libraries, so any user who wanted to change these versions would have to obtain those libraries separately. Why doesn't the GPL permit this?."

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?

2
  • The question was whether he could distribute his source code. This answer is about distributing the corresponding executable. So it doesn't really answer the question asked. Feb 12 at 22:14
  • @DavidSchwartz I included another relevant section from the FAQ 16 hours ago

Your Answer

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

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