Java and a few java libraries provide a "classpath" exception. To me, this seems similar to the LGPL's linking exceptions. What is the difference between the GPL with a classpath exception and the LGPL?

1 Answer 1


The LGPL and GPL + the Classpath exception share the property that if you link code under these terms into your program, the resulting derivative work does not have to be made available as free software. Instead you can copy and distribute the resulting binary executable under terms of your choice. This means that the source code does not have to be provided to downstream recipients.

However, the LGPL 2.1 says (sec. 6):

As an exception to the Sections above, you may also combine 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.

While LGPL 3 says (sec. 4):

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: [...]

I.e.: the LGPL permit modifications of the combined work and reverse engineering for debugging such modifications.

That is not much freedom, but apparently some people did not like the explicit permission to do modify the work and to make use of reverse engineering, so GPL + the Classpath exception does not contain such a permission.

  • so am I correct (being you are not a lawyer), that the modifications allowed are only to the library that is LGPL? for example, if I distributed a war file, one could extract and modify the LGPL library in that code, and put it back, so long as they otherwise obeyed the LGPL. Aug 1, 2015 at 14:55
  • @xenoterracide The way I read the license, The LGPL goes beyond that. It allows you to reverse engineer and modify the entire derivative or combined work and not only the library (the license text says "work" and not "library"). But the example you give: yes, modifying ths war-file is allowed under LGPL. Aug 1, 2015 at 15:58
  • well I meant just modifying the LGPL library in the war. seems frustratingly ambiguous to me what modifications are allowed for debugging... which seems to be the only real allowance. For example if I have an LGPL library (say a crypto one), and it's consumed by proprietary library that does DRM (yes DRM stupid and evil) can someone modify the consuming library to disable the DRM legally even though the DRM library is not open source? (note: not referring to modifying the crypto library to noop, which would be legal via LGPL) Aug 1, 2015 at 16:20
  • @xenoterracide As I read the LGPL, you can do whatever you like to the combined work, except demand that you're given a copy of the source code. I don't find this ambiguous at all. Aug 1, 2015 at 16:26
  • 1
    @xenoterracide I think all GPL licenses allow you to modify the code for debugging purposes? Surely the license restrictions only come into place if you distribute your modifications? As long as you undo any changes you make once you've finished debugging, then I think you're perfectly safe. Sep 2, 2015 at 23:56

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.