Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been warned that LGPL v3 forbids any kind of modifications that would prevent reverse-engineering, including software protection such as obfuscation.

In practice, does this license make it illegal to use something like SecureSWF, or simply a JavaScript minifier, when linking a program with a LGPL-licensed library?

share|improve this question

migrated from Mar 9 '12 at 21:55

This question came from our site for professional and enthusiast programmers.

I don't understand your question. Do you think that the LGPL forbids reverse-engineering, or do you think that it forbids obfuscation? – Philipp Wendler Mar 9 '12 at 16:03
@PhilippWendler Updated the question. I mean: using obfuscation makes it impossible to reuse the LGPL part of the Combined Works, so it makes linking illegal, right? – Warren Seine Mar 9 '12 at 17:12
up vote 3 down vote accepted

GPL requires that you make any modifications to the GPL'ed work, or any derived work, available as GPL.

GPL v3 clarifies this to say you can't take GPL'ed work, modify it and make the source available but ban someone from actually using it - by patents or code signing etc.

LGPL allows you to link the LGPL'ed code to your propriety code without releasing your own code. But you have to allow someone to swap the LGPL'ed code for another version so that they can modify it.
If your app checked for a particular LGPL library (by code signing etc) then it would not be acceptable - somebody would be unable to take the LGPL lib that they had written and change it while continuing to use it with your app. You are taking their work and not allowing them the freedom they demanded in return.

You can of course do anything you want with your app's code - you just have to let them change their work in the LGPL lib

share|improve this answer

For legal purposes, JS minifiers can be treated as compilers. They take readable input and produce logically equivalent, but more efficient output. It follows that using a JS minifier on LGPL sources is allowed, iff you do make the un-minified sources also available.

Obfuscation is pointless as the (L)GPL requires you to also make the source available in a reasonable (un-obfuscuated) format.

share|improve this answer
If a proprietary program A uses LGPL library B, obfuscating the whole combination, while making B available in a readable format, is legal then. – Warren Seine Mar 13 '12 at 14:35
You would need the ability to replace B, i.e. it must retain its library character. If you obfuscuate A and B together such that the result is inseparable, then the result is equivalent to that of statically linking in LGPL library B, i.e. disallowed. – MSalters Mar 13 '12 at 14:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.