On Sat, 2002-08-24 at 00:41, Donald J Christensen wrote:
> Richard Antony Burton wrote:
> > This also means that you can not link dynamically
> > both to a GPLed library and a proprietary library because the licenses of
> > the two libraries conflict."
>
> This, on the other hand, does not make any sense at all, and I bet that
> it would not stand up to a legal test (but IANAL). The GPLed library is
> not required to make the proprietary library function.
AFAIK you are correct. The GPL can not, and does not prevent the use of
proprietary libraries by the author of a GPL program. In fact, the GPL
itself does not mention libraries at all.
(http://www.gnu.org/licences/gpl.html).
> The license of the proprietary library makes no restrictions on other
> libraries that might also be linked to the executable.
Actually, a licence can do just about anything that the licensor can get
the licencee to agree to. See for example MS's exluding the use of GPL'd
*tools* with it's winCE SDK. No grepping in this source!. However, for
the case *in discussion* I haven't read the NVidia licence, but assume
that it is friendly enough to permit use with linux :}, and therefor
this project.
> I can't see how
> the GPL can extend from a library up into an executable and then down into
> another library. In a sense, the two libraries are not being linked
> together, they just happen to both be linked to a common executable.
The GPL doesn't try to extend intoo the other library. (assuming use of
a GPL library, not a new author deciding what to do): The GPL only has
power over code *you* create. It can't influence something a third party
has created. What it can do is prevent you from violating the
only-use-this-code-if-you-release-your-own rule that applies to the GPL
library. Specifically, see section 3 of the GPL. (I won't quote here for
brevity.) If you are unable to provide the full source for the
executable excluding *normally distributed components of the OS*, then
you can not use the GPL'd library XOR you cannot 'distribute' the
product (because it is a derived work from the library - yuck). This
means that if that proprietary library that you want to use, is not part
of the OS... it's going to prevent you complying with section 3 UNLESS
you get an excemption - see below. Note: under no circumstances does the
GPL ask that the licence on the proprietart library be changed, only
that the code author make a choice.
> As someone else said, if the GPL does try to do this, then it is broken.
> I suspect there are no end of examples of GPLed code that links to the
> proprietary C libraries of various systems.
These are covered by 'normally distributed components'.
> IIRC, gcc linked with the
> system C library for a long time before the Gnu C library was an
> adequate replacement.
There is an important thing to add here: The author of any given work
can create an excemption in the GPL to allow linking with specific (or
generic) proprietary libraries. There was some relicencing fuss with GPL
projects that use libssl for just this reason recently IIRC.
cygwin1.dll, which is a GPL C-and-a-bit library for win32, creates a
specific excemption to the GPL for and 'open source compliant' licence
(ie the X licence).
For the code that will use the Nvidia blob, the author can create such
an exclusion. If no one here will be that author, or it will be a
derived work, or need pure GPL, non OS standard libraries available,
then you need to write to the original author(s) and get an excemption.
http://www.gnu.org/licenses/gpl-faq.html may be of interest to you folk.
Or you could email RMS and get a specific answer for what you want to
accomplish.
Rob
|