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.