3

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?

Zizouz212
  • 6,449
  • 4
  • 36
  • 75
goelakash
  • 133
  • 5

3 Answers3

5

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?

vonbrand
  • 5,267
  • 1
  • 13
  • 30
  • 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 06 '16 at 21:39
  • @MadHatter, OP specifically talks about libraries. – vonbrand Mar 06 '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 07 '16 at 06: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 07 '16 at 09:40
  • There is considerable evidence that courts look to the intent of the licensor when deciding what a licence has granted. If, on the other hand, you have evidence of courts ruling that linking - dynamic or static - doesn't create a derivative work, please post it. Otherwise, the clear tendency of courts to honour the expressed desires of licensors - and the FSF's feelings on this are made, as you say, very clear - suggests pretty strongly that their outlook would prevail. – MadHatter Mar 07 '16 at 10:24
  • 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 07 '16 at 18:38
  • According to wikipedia, "In 2002, MySQL AB sued Progress NuSphere for copyright and trademark infringement in United States district court. NuSphere had allegedly violated MySQL's copyright by linking MySQL's GPL'ed code with NuSphere Gemini table without being in compliance with the license... After the hearing, FSF commented that "Judge Saris made clear that she sees the GNU GPL to be an enforceable and binding license"" This issue specifically involved linking, and the court seems to have thought it had merit. – MadHatter Mar 08 '16 at 16:10
  • @MadHatter, what was the outcome of that lawsuit? Anybody can sue, the FSF will obviously applaud what goes in their line. – vonbrand Mar 08 '16 at 16:46
  • Settled out of court. The relevant points are that (a) the suit was not summarily dismissed, and (b) the judge opined that the licence had merit in the context of the case; had linking been as obviously non-copyright-controlled as you feel it is, she would not have done so. If you're aware of any counter-cases, where courts have held, or even opined, that linking isn't covered by copyright, please feel free to post them. – MadHatter Mar 08 '16 at 19:42
2

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]).

0

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.

Prahlad Yeri
  • 1,005
  • 9
  • 12
  • I don't know much about it, but it looks like LGPL libraries can also be statically linked without copyleft applying to the main application, but you must provide your application source code in object form (but not necessarily source form) to allow re-linking with a different library. See http://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic – apsillers Mar 08 '16 at 16:28
  • I see (http://stackoverflow.com/a/1994038/3285138) – goelakash Mar 08 '16 at 17:19