Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GPL/LGPL and Static Linking [closed]

I have read on the web that following combination exists :

Proprietary Source code + GPL Source code - > GPL Source code ( All code has to be released under GPL)

Proprietary Source code + LGPL Source code - > Proprietary Source code ( All code remains Proprietary )

Now how does statically/Dynamically linking GPL and LGPL code works with the above combination?

like image 372
Raulp Avatar asked Apr 12 '12 19:04

Raulp


People also ask

Can I use LGPL in closed source?

TL;DR A component licensed under LGPL can be used by closed source, proprietary software, both internally used and distributed, for free, with no effects on the software using the component. LGPL is not “contagious” in the same way as GPL, so it only affects the component under LGPL.

Does LGPL require dynamic linking?

LGPL does not force you to use dynamic linking. You can instead, for instance, provide object files for your software that the user will be able to link (statically) to any version of the library.

Can LGPL license be used commercially?

The LGPL License (both versions) allows users of the licensed code to: Use the code commercially: Like GPL, LGPL imposes no conditions on using the code in software that's sold commercially.

What is the main difference between the GPL and the LGPL licenses?

In brief: GPL is mostly for programs while LGPL is limited to software libraries. Whenever changes are made under GPL license, source codes are required and changes must also be licensed under GPL, while LGPL may allow non-GPL programs to link to libraries but must still provide source codes.


1 Answers

If you want to distribute a combined work, you'll have to use the following license;

Proprietary Source code + GPL Source code

  • Either static or dynamically linked: You must release both parts as GPL.

Proprietary Source code + LGPL Source code

  • statically linked:
    • Either you must release both parts as LGPL.
    • Or provide everything that allow the user to relink the application with a different version of the LGPL source code. In this case the other requirements are the same as if it was dynamically linked.
  • dynamically linked: LGPL code stays LGPL, you can keep the proprietary code proprietary.

See also executing a (L)GPL program from proprietary Source code.

Update (November 2014): A Comprehensive Tutorial and Guide contains a clear an detailed description of the (L)GPL and its usage, including distribution. I recommend it for more details.

like image 113
wimh Avatar answered Sep 19 '22 15:09

wimh