On 27 Aug 2009, at 11:12, Saso Kiselkov wrote:
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.
David