I found a GPL v3 licensed library, that I can compile for various architectures and use in the code for a BSD licensed project. This means that I probably have to distribute the binaries with it.

Does this violate the GPL terms of use?

  • 1
    So you would like to take GPL binaries, and release the final product under BSD? – Zizouz212 Mar 6 '16 at 18:29
  • Yes. The original project is BSD licensed. – goelakash Mar 6 '16 at 18:41

You can not distribute anything linking against GPL code as anything other than GPL. At least, that is the FSF's position, there is no firm legal determination one way or the other. In case of doubt, use GPL if you don't want to volunteer for the fun of being at the center of the lawsuit deciding this. Maybe there are non-GPL alternatives?

  • 2
    I think it's a little disingenuous to hold that "there is no firm legal determination one way or the other". A number of courts in various countries have been clear that the GPL is enforceable, and I think the GPL makes it pretty clear that if you release something containing GPLed code, it must itself be GPLed. Could you perhaps clarify your position? – MadHatter Mar 6 '16 at 21:39
  • @MadHatter, OP specifically talks about libraries. – vonbrand Mar 6 '16 at 23:13
  • Yes, so what? Libraries are code, like any other code; if you link other code into them to make a product, you have created a derivative work of both, no less than if you combined two code bases of any other kind. If you're aware of any instance where a court has held otherwise, it would be most interesting to know about it. – MadHatter Mar 7 '16 at 6:35
  • 2
    @MadHatter, today's libraries are more often than not dynamically linked, i.e., the (rather tenuous) "combination" happens when the program starts on the user's machine. – vonbrand Mar 7 '16 at 9:40
  • 2
    @MadHatter, if you look at the law, what it describes as examples of "derived work" doesn't include anything like "linking". To link to a library I don't need to even look a the code, it is a purely mechanical process without any creativity. That the FSF would like to (re)define "derivative work" is their problem. It is a gray area. – vonbrand Mar 7 '16 at 18:38

In general you should fulfill the license of every code you use, so if you are distributing a GPL library or a modified form of it (e.g. as binary), you need to fulfill the GPL license, which has some requirements on the final package redistribution.

About linking: this is a gray spot. Some judges have ruled that also API is copyright-able, OTOH some people think that simply linking doesn't make a project derivable.

IMHO, if you code some functionalities around a library, your code is also derived from such library. If you link to a generic library, and then you change the library, it doesn't make it derivative (assuming: you are distributing separately the two things, the generic library is not derived from the other library [e.g. a stripped down version]).


As the other answer suggests, linking against a GPL library by non-GPL code is not a legit way. There are precedents where GNU GPL has been legally enforced in the past. So basically, here are your options:

  1. Try and see if the BSD-licensed code has any GPL alternative. If possible, ask the author if you can create a GPLed fork out of it. Though the BSD license terms are liberal enough that you can do it yourself, its still better to ask if possible.

  2. Alternatively, try and see if the GPL library can be additionally licensed under LGPL. Unlike GPL, LGPL licensed libraries can be dynamically linked to by non-GPL code. If you go this route, you should obviously take care not to link it statically from your BSD licensed code.

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.