3

I have an question about my understanding of Linking Proprietary software to LGPL libraries.

Based on my understanding, one can link his/her software to LGPL lib via:

  1. Statically: Proprietary & LGPL parts exists in 1 executable file.
  2. Dynamically: Proprietary part exist in 1 executable file, and connect/calls to another binary file (aka Shared library) that contains LGPL part.

If the programmer used method-1 (& wants to share the software), he/she must also give the Source-code of the program. (Users must be able to change said LGPL library, and recompile the program). If the programmer doesn't want to share source, he/she should use method-2.

When dynamically linking proprietary and LGPL-library, programmer can share only binary/executable of his/her proprietary part. And give instruction about how to install LGPL-library. (those files are usually .so files right?).

Is my understanding correct? and Are there any things that I'm missing out (& beware of it)?

1
  • Please use code markup only for things which are actually code, not for all technical terminology. Dec 5, 2022 at 18:05

1 Answer 1

3

The rule of thumb is that the end user must be able to modify the LGPL-covered components, and to run your software with their modified LGPL-covered component. If the LGPL-covered component is a dynamically linked library (such as an .so file on Linux), this is typically straightforward.

If the LGPL-covered code is statically linked, then you must make it possible for the end user to relink the application with their modifications. You can satisfy this requirement by providing your source code, though it need not be under an Open Source license. Alternatively, you could provide the object code for your components, e.g. the .o files on Linux. In any case, you should also provide the necessary build scripts to recompile or re-link the application.

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.