5

I have searched around but I don't seem to be able to get a clear answer on my questions that I understand. I want to use the Xuggler library in my application, which is licensed either GPL or LGPL depending on whether I compile it myself. I don't intend to edit the library

If I compile it myself and thus get a LGPL version of the library, can I use it in a commercial application without having to distribute the source code of my application? Furthermore, do I have to give my application the LGPL license as well? What other problems might using this library give me?

Jacob
  • 61

2 Answers2

2

In simple terms, as I understand things (I'm not a lawyer, but the licenses aren't that hard to read):

LGPL - You can use and distribute the library with your application, with the stipulation that you have to mention the GPL and LGPL and the library in your notices, and that you have to make the LIBRARY source available to anyone that you sell or give the application to. This includes building the library into your program. Note that if you change the library, you'll need to make that modified source code available.

GPL - you pretty much can only use a GPL library in a GPL program. If you distribute a GPL program, you pretty much have to distribute the source (including any modification you made).

Michael Kohne
  • 10,146
1

Disclaimer

IANAL. Assuming LGPL 2. God help you with version 3.

Answer

You do not need to license your code that uses the library as GPL or LGPL, but you need to permit modification of the combined work (meaning your code and the library together) as well as reverse-engineering for debugging such modifications. You still have to honor the other aspects of the LGPL for the library which uses it (not for your code that uses the library).

Justification

Section 6 of the LGPL v. 2.0 says,

you may also compile or link a 'work that uses the Library' with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

I believe that when they say, "modification of the work" they mean the combined "work that uses the library" which means you have to permit modification of the combined work as well as reverse-engineering for debugging such modifications.

Additional Thoughts

The company I work for specifically does not want to permit modification or reverse engineering of their proprietary code, so we do not distribute any LGPL code with our application. Neither will we distribute any GPL code unless it specifies the Classpath/Linking Exception.

The GPL 2 with the Classpath/Linking Exception is similar to the LGPL, except it does not impose those restrictions on a combined work. The last section of that Wikipedia article backs me up on this.

In my mind, the GPL 2 with the Classpath/Linking Exception has roughly the same intention as the Apache 2 license, but the Apache license is much clearer about it. I believe that the GPL 3 is worded to prevent the Classpath/Linking Exception.

GlenPeterson
  • 14,950