Our situation - LGPLv2.1 Libraries = LGPL for whole work?

Our distribution Package contains libraries which are licensed GNU LGPLv2.1

jquery.form - dual licensed GNU-LGPL-2.1+ - MIT,

* triggeredAutocomplete (jQuery UI autocomplete widget)
 * 2012 by Hawkee.com ([email protected])
 * Version 1.4.5
 * Requires jQuery 1.7 and jQuery UI 1.8
 * Dual licensed under MIT or GPLv2 licenses
 *   http://en.wikipedia.org/wiki/MIT_License
 *   http://en.wikipedia.org/wiki/GNU_General_Public_License
  • tinymce.js - GNU-LGPLv.2.1,
  • HTMLPurifier - GNU-LGPLv2.1,

both licensed LGPLv2.1

           Version 2.1, February 1999

The LGPLv2.1 writes in 2c,d

  1. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

    (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.


What exactly does that mean for our case and the whole application which is using libraries licensed under LGPLv2.1?

  1. Do we have to license our whole work under LGPLv2.1 when we use these libraries?
  2. Can we license our work under another GNU GPL license instead of LGPLv2.1 i.e. AGPLv.3?
  3. Would it be good to license our whole work under another license than LGPLv2.1 to avoid that people now a.) include our work into their proprietary works or b.) link dynamically to it.

Our Conclusion until now

A conclusion which might be wrong so please correct our view if necessary but please explain us why in an understandable example.

  1. Because we use those LGPLv2.1 libraries and distribute them together with the rest of our application we have too license our work under at least LGPLv2.1 but we could license the whole application we distribute in one package also as GNU GPLv.2 or later, GNU GPLv.3 or AGPLv.3 because of the compatibility of GNU GPL Licenses but we can't license our whole Application under a proprietary license which isn't 100% compatible with any of the GNU GPL licenses.
  2. We think that licensing the whole application under AGPLv.3 would give us the still the biggest control over the code we have created and initiated as all others would need to publish their code too who build on the code we have created by ourself. We would always be a bit ahead of other "copies".

As an explanation, our script is a social network script and will be used in networks, perhaps even as SAAS.

  1. It would not be advised to invest to much energy to change now those libraries as already a complete Versions of the whole application Code which include those libraries had been distributed until Version 3.0. And before even also GNU GPL code and libraries were part of it which had meanwhile been replaced with another MIT licensed library with similar functionality.
  2. Even if we would now change all libraries to MIT and no more GNU GPL libraries our code we distributed until now would be licensed und LGPLv2.1 and because of the previous included GNU GPL code even GNU GPL.

Our view might be wrong but we can cope with the results I think but really need help to find now the correct license for our whole work.

The application itself is also using "Smarty", which is licensed under GNU LGPLv.3 where the parts mentioned in 2c,d are not existing (or we missed them).

  • 3
    Is your application code of your own which is linked to the LGPL libraries, or have you modified those libraries to create your own code, and/or taken code from them and incorporated it into your own code?
    – MadHatter
    Apr 28, 2021 at 6:12
  • The question was more in general as we work with several social media scripts. some are licensed AGPL others GPL and LGPL or with the Envato Dual License which ensures 100% compatibility with GNU GPL, which means that all php, html, and js code has to be GNU GPL or a compatible license while other parts like content images can have an own license as they won't depend on the programs code itself. We are an educational institution which tries to find limits and boundaries as well as benefits of different Open Source Licenses. Until now no code even had been published on any repository. May 28, 2021 at 19:26
  • Is your application code of your own = the one of each single student of ours or have you modified those libraries to create your own code = depends on on each student they code themselves of us/reuse GNU GPL, AGPL, LGPL or with a GPL compatible licensed existing or modified code = taken code from them and incorporated it into your own code. We analyzed a social media script an the libraries it is using - it is licensed with the Envato Split License which is 100% GNU GPL compatible - those are the libraries we mentioned above - so the next part would be to find an appropriate license for it. May 28, 2021 at 19:46

1 Answer 1


Because we use those LGPLv2.1 libraries and distribute them together with the rest of our application we have too license our work under at least LGPLv2.1

As long as your software has some application component that contains no LGPL-licensed code (but depends on an LGPL library), you may distribute that application component linked to LGPLv2.1-licensed libraries and license it under nearly any terms you like.

This is described in sections 5 and 6, reproduced partially below:

5 . A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.


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.

In view of this allowance to chose any terms you like (so long as they allow reverse engineering and combination with modified libraries), you do not have to choose a GPL-family license for your own code, though you may still do so, if you like.

  • Thanks for the answer @apsillers and if we include also php-gettext which is licensed under GNU GPLv2+ can we still use a proprietary license and also you wrote would apply too to the combined work when you distribute all together - the LGPLv2.1 parts as well as the GNU GPLv2+ php-gettext and some MIT and Apache2 licensed parts - could we still use our own license for that combined work? Somehow what you write is contradicting what is written in LGPLv2.1 writes in 2c, especially in 2d and that is the actual confusing part! - These requirements apply to the modified work as a whole - it says!! May 28, 2021 at 19:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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