[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