6

I have a code that is dynamically linked to a GPL library. When I distribute my code in binary form, I do not distribute it with the GPL library, and provide instruction for the user to acquire this external library.

Is my code required to be GPL ?

I know the topic is debated (https://en.wikipedia.org/wiki/GNU_General_Public_License#Linking_and_derived_works), but I wanted to know wether bundling the GPL library during distribution is a relevant factor or not.

7

EMBLEM writes as if the matter were definitively resolved, but the honest answer is that noone knows. If dynamic linking makes a derivative work, then you are indeed required to publish your code under the GPL. If it doesn't, then you may publish your code under any licence you like; moreover, you may distribute the GPL library along with your application as mere aggregation, provided that you comply with the GPL's obligations with respect to the GPL library.

Whether dynamic linking makes a derivative work is, of course, the important question. My earlier answer here addresses the question in more detail, but the upshot was - and remains - that until courts of significance start ruling on this issue, we don't know for sure what constitutes a derivative work.

FAOD, let me be clear: I think the GPL is a good licence, and you will certainly simplify your position - and enrich humanity - if you decide to licence your work under the GPL also. But whether you are required to do so is not yet as cut-and-dried as some would have you believe.

  • 1
    Well spoken. @vkubicki, be warned that if the copyright holder does sue you, the Free Software Foundation will take its side as they believe that dynamic linking creates a derivative work. – EMBLEM Aug 12 '16 at 6:28
  • The fsf is very selective in what they get involved in legally. – bmargulies Aug 14 '16 at 22:31
  • Thank you all for this information. This concerns a professional project with many aspects to take into account in the decision making. Your answers will help us a lot ! – vkubicki Aug 16 '16 at 8:43
  • @vkubicki I'm glad to hear it, but remember that IANYL (in fact, IANAL at all) - you shouldn't balance too much on the unsupported opinion of an internet user! – MadHatter Aug 16 '16 at 9:43
  • We will take the most conservative approach and suppose that the work is derived by linking. – vkubicki Aug 17 '16 at 14:33
2

While the MadHatter does have a point, please make note of two important factors:

  • being (at best) grey area is not so much different (from legal liability standpoint) from outright breaking the license. That is, only way to proceed safely is if there is no doubt whatsoever that it is completely legal. The burden on determining beyond doubt that it is completely legal (and/or legal consequences of failing to do so) is on you as a distributor. Even some doubt in legality of it is in practice almost as bad as fully knowing it is illegal (note you could claim not being sure or not knowing in either case, with same results)

  • good way to determine if something is derived work is to ask yourself "could I have built this same binary with same funcionality if I never had any access to any part of library code (including headers, .so files, etc.) but just docs?" If the answer is "yes", you're most probably not infringing. If the answer is "no", there is very very big chance your code is derived work (at least in most jurisdictions), and you thus have to licence accordingly.

  • FSF would contend that just reading the documentation describing how to use the library already makes your work derivative, as it couldn't work without it. No binding ruling by any court on the matter, as far as I know, though. Also check the case of readline (GPL library) vs libedit (BSD drop-in replacement)... – vonbrand Feb 20 at 11:24
  • @vonbrand I myself would not presume on FSF opinion without it being published by them. Can you link to readline vs libedit court case, I am not aware of that and can't seem to find it. Copyright is AFAIK supposed to only protect specific implementation, not the design. But even for copyrightable stuff, you can always opt for clean room reimplementation which gets you off the hook (but which is vastly more resource-intensive) – Matija Nalis Feb 21 at 13:49
1

Your code is required to be under the GPL. The rights of distribution and the GPL's copyleft are unrelated mechanisms. That you are distributing the libraries separately is irrelevant; your code is still a derivative work of the GPL library and is therefore subject to its copyleft.

In general, when in doubt, you will never be in the wrong to license your work under the GPL.

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.