In the Java world, its the nature of the linkage that's key. Cast
your mind back to the way we used to load a SAX parser. We used to
set a system property for javax.xml.parsers.DocumentBuilderFactory and
use DocumentBuilderFactory.newInstance() in the code.
This allowed your Java to not import the implementation, but only to
import the API. Thus, you can have a commercial (or other GPL
incompatible) app, and *use* a GPL parser, without linking to it. You
could even ship it in that way (while honoring source availability
requirements for GPL bits). This is the the same as the ABI case that
others have made in this thread.
If you're importing it (Java) or using it (C#) then its linkage.
If you're naming the class in a String then doing some form of
loadClass on it and casting it to some API that's in some other jar
with some other license, then it's not linkage (its the same as Java's
original XMLParser load capability above).
Of course, Ruby having 'require' and being a dynamic language adds
more questions. Has the FSF explicitly grouped Ruby's require in the
same place as Java's import ?
- Paul
Charles Oliver Nutter wrote:
Wayne Meissner wrote:
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.
Yeah, Conrad and I discussed that aspect of it too. And this is
purely my supposition, but I don't think it would be hard to argue
in court that *any* library dynamically linking to another could be
claimed to expect only that library's ABI, and that since said ABI
could potentially be reimplemented, GPL would again not apply. Or
at least, that sounds logical in my head.
It also seems difficult to believe that companies shipping
libreadline (like Apple) haven't already been over this, or aren't
at least comfortable that the "linking clause" is ambiguous enough
that they don't need to worry about it. Last I checked, OS X was
not GPL, and it both ships and links to libreadline.
Before going any further, take a look at RMS arguing about this here
(specifically about the ABI for readline, and so on):
http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/Why-CLISP-is-under-GPL