> In other words, you'll have to use GPL for your app. Remember, that
> GPL linking requirements only work from library -> app, i.e. if you
> link to a GPL library, your app has to become GPL. If, however, your
> app is GPL and you link to a non-compatible/proprietary library,
> that doesn't force the library to become GPL. As an example,
> consider compiling a GPL app against Solaris' proprietary libc -
> that doesn't force the libc to become GPL. That means, you don't
> have to remove the NVIDIA Cg dependency if you don't want to.
This is not the case. You may link a GPL'd application against
Solaris' or Windows' libc because there is an explicit exemption in
the GPL for system libraries. From clause 3:
> 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, unless
> that component itself accompanies the executable.
This clause would not apply to Cg, for example, because it is not
usually shipped with an OS. Is PRNG an important dependency? If you
could make it optional and fall back to the standard C/POSIX
pseudorandom number functions then this would make your life, and the
lives of people wanting to use your code, simpler.
If you are linking against a GPL'd framework, you do not have to make
your code GPL'd, you have to release your code under a GPL-compatible
license. The final product (your library, the application it links
against, and so on) must be distributed under the GPL.
Thomas, please read the relevant licenses before you make a decision.
The world would be a much better place if people read FSF licenses
before releasing code under them.