For some bizarre reasons, we link in libstdc++, which is LGPLed on gcc 
Linux. We currently do this dynamically, which is the standard, but 
causes major problems during distribution (the user has the have the 
exact same version of the lib installed that wer eon the build system) 
for other bizarre technical reasons. Bug 79681 proposes to link the lib 
statically, but cls raised a concern that this might force Mozilla to be 
under the (L)GPL, i.e. be illegal.

My response: My understanding of the LGPL 
<http://www.gnu.org/copyleft/lgpl.html>, sections 5 and 6:

Linking (dynamically or statically) changes the executable to be a 
derivative of the LGPLed lib. But that fact solely doesn't force the 
whole binary to have a GPL-compatible license. Rather, the executables 
have to follow some restrictions the GPL imposes, outlined in Section 6. 
One restriction seems to be that the user must be able (legally and 
practically) to use a new/changed version of the LGPLed lib. (Another 
restriction might be the copyright notice, see below.)

With /dynamical/ linking, this is trivial. Replacing a /statically/ 
linked lib would require the user to have the object code or source code 
of the non-GPL portion, and exactly that is what the LGPL requires the 
distributor to provide.

In the case of Mozilla, the user has the source -> can recompile and 
relink -> LGPL terms are fulfilled. That might not be true for vendors 
which mix Mozilla code with proprietary code - they would have to supply 
object code (.o files) for the proprietary parts, if they are linked 
statically with Mozilla code. The latter seems to be the only new 
restriction when statical linking is used.

Again, all said here is only my guess. I don't know the GPL too well.

Some nit-picking:

> You must give prominent notice with each copy of the work that the 
> Library is used in it and that the Library and its use are covered by 
> this License. You must supply a copy of this License. If the work 
> during execution displays copyright notices, you must include the 
> copyright notice for the Library among them, as well as a reference 
> directing the user to the copy of this License.

Strictly, does this also apply to a dynamically linked libstdc++? Even 
it's not actually used? There's an exception:

> However, as a special exception, the source code distributed need not 
> include anything that is normally distributed (in either source or 
> binary form) with the major components (compiler, kernel, and so on) 
> of the operating system on which the executable runs

but it only speaks about the source code.

Reply via email to