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

Reply via email to