[ale] GPL [ was Topic for discussion ]
Michael D. Hirsch
mhirsch at nubridges.com
Fri Oct 31 09:43:44 EST 2003
On Thursday 30 October 2003 10:01 pm, Joe Knapka wrote:
> "Doug McNash" <dmcnash at charter.net> writes:
> > >Does use of dlopen() == Linking?
> >
> > Yes, next question?
>
> From a technical point of view, certainly. From a legal point of view,
> things are unlikely to be so straightforward. (IANAL but) I don't
> think that even for GPL purposes anyone* would want dlopen() == link,
> for the following reason:
>
> If you write a closed-source plugin for some proprietary program, and
> then someone comes along and writes a GPL clone of that program, your
> closed-source plugin will now "link" to the GPL'd clone. Do you want
> this fact to force you to release your plugin code under the GPL?
> Contrariwise, if you're the vendor of a closed-source program that
> accepts plugins, do you want to prohibit GPL'd plugins for your
> program? After all, loading one might constitute "linking to GPL'd
> code".
This is essentially the argument I've seen advanced for why the GPL is more or
less meaningless when trying to apply it to dynamic linking. As I recall,
back when I started using GNU software (mid eighties) there really wasn't
such a thing. Libraries were statically linked. If you wanted to change the
libraries you had to relink the code entirely. I remember reading a detailed
explanation from RMS about how the LGPL lets you link proprietary code to
open libraries.
So consider a GPLed (not LGPLed) library like readline. Stallman has pointed
out that you can't write proprietary code that uses readline. But readline
is now a DLL and anyone could write a new library that presents the same
interface and link that in to their proprietary code, and this would be
perfectly legal. Then someone else might change their library path so the
code now runs against readline.
Who broke the rules? Certainly not the original coder, nor the author of
readline, so it must have been the person who changed the library path. But
it is hard to argue that by changing the library path a derivative work has
been created. The work is unchanged, only the environment it runs in is at
all different. Good luck convincing any judge or jury that that makes a
derivative work.
Michael
More information about the Ale
mailing list