Charles Oliver Nutter schrieb:
Wayne Meissner wrote:
2009/2/18 Conrad Meyer <[email protected]>:
I was under the impression that non-GPL code could not link
statically or
dynamically with GPL libraries, and that this was one of the major
differences
between the GPL and LGPL. This is certainly Stallman's opinion (he cites
That correct, with a small wrinkle. Where there is an ABI compatible
library, which can be used as a complete replacement, and the binary
is dynamically linked, then it could be argued that the code is
intended to link with the ABI compatible library, and not the GPLed
variant.
Given that libeditline is BSD licenced, and provides the same api as
libreadline (indeed, on MacOS, it _is_ liibreadline), then the GPL
would not apply - at least as far as using readline via FFI.
Actually, I was confused a bit here...Wayne meant that on OS X
libreadline is actually libedit, so my point about Apple shipping GPL
stuff doesn't apply. But that does help seal the deal for readline at
least; they ship something that looks like it and tastes like it, and
they're comfortable linking "libreadline" to it, so we should be cool.
After all, we're just loading "the library that on a given system goes
by the name of 'libreadline'" and hooking it up.
to give my two cents here...
In the C-World you can link statically and dynamically. statically means
the library will become an integragl part of your program. If in this
case the library is GPL or LGPL, then your program has to be GPL or LGPL
too as soon as you want to distribute it. At home in your room you can
do what you want of course. dynamic linking doesn't free a program from
not depending on a lib. If a GPL lib is *needed* to run your program,
then your program has to be under GPL, even if you link only
dynamically. It doesn't matter if you use a hard-coded String in load
class for this or even if that String comes from a default configuration
file... it has to be GPL. And even if your program does not depend
solely on that GPL lib, if you distribute your program along with the
GPL lib, you will still have a problem if your program is not under GPL.
Exactly that's why LGPL exists, which allows you dynamic linking as
additional option.
If you distribute your GPL incompatible program without the lib and the
user is required to install that lib to run your program then GPL
nethusiast will most probably still say your program has to be under GPL.
To argue that there could exist a ABI compatible program doesn't count,
it has to exist.
The output of most/many GPL programs is not covered by the GPL, so using
the ouput of another program run in a different process might be
allowed, but frankly you are still not in the white here. Even if the
output is not under GPL, if your program depends on a certain GPL
program in any way and that part is not exchangable or is dsitributed
with it as one program, then you still violate the GPL if your program
is not under the GPL.
in short: better not use readline ;)
Besides that... what are the issue you have with jline that caused you
to fork it? We are using that as well, so I am interested to know.
bye blackdrag
--
Jochen "blackdrag" Theodorou
The Groovy Project Tech Lead (http://groovy.codehaus.org)
http://blackdragsview.blogspot.com/
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email