From kragen@dnaco.net Sun Jul 19 13:02:02 1998 Date: Sun, 19 Jul 1998 13:02:01 -0400 (EDT) From: Kragen To: clug-user@clug.org Subject: Questions I asked RMS about GPL and got no answer to Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Keywords: X-UID: 619 Status: O X-Status: This is patched together from several emails. I've wanted to know for some time how closely linked two pieces of code must be for them to be part of the same program (for GPL purposes). If I run GPLed Lisp code on my non-GPLed Franz ACL Lisp system, does that constitute linking the Lisp code into Franz Lisp, and thus violate the GPL? Suppose I run GPLed Lisp code and non-GPLed Lisp code on the same ACL Lisp system, in different threads and different environments. These are different programs, operationally, just as much as an emacs process and a vi process running on the same Unix system are. But suppose they share an environment? Suppose they share a thread, each one calling the other, passing around data? Suppose I dump the image of my running Lisp system in such a way that I can reanimate it at a future time. Are any two pieces of code that are dumped into the same image `part of the same program'? Suppose I load a non-GPLed device driver as a module into my Linux system. (I'm not really knowledgeable about the subject, but my understanding goes as follows: The .o file for the device driver gets mapped into memory, resolving some symbols in it with addresses in the kernel, then passing control to an entry point in the file in kernel context. Normally, the code in that entry point calls some kernel functions to arrange for other code from the module to get called later on, then returns.) Does this constitute a violation of the GPL, in your interpretation? How about a Netscape plug-in? Is it a violation of the GPL to load a GPLed Netscape plug-in into Netscape? (This works analogously to loading a Linux device driver.) How about running a GPLed program on non-GPLed MS-DOS? Does it make a difference if I switch from calling MS-DOS services by raising interrupts to directly calling the places the interrupt vectors point at inside the MS-DOS code? > On an MS-DOS system, is it a violation of the GPL to load a GPLed TSR? > > I understand your point of view; I appreciate that you are very busy. The reason I think these theoretical possibilities need considering is that they are happening, and on a large scale; as you know, gcc has been ported to Win32 (where it links with the libraries that constitute much of the OS); there are numerous non-GPLed device drivers for Linux; gcc has been ported to MS-DOS. What's more, they will continue to happen in the future; it seems that providing a function-call interface for your software -- rather than an interface with sockets, pipes, and signals -- has come back into vogue. Knowledge of whether or not the GPL barred this could significantly affect people's decisions on whether or not to GPL their software; knowledge of whether or not you interpret the GPL to bar this could significantly affect people's decisions on whether or not to sign their software over to the FSF. I suspect that not thinking about these issues will tend to incline people more toward signing their software over to the FSF, so your refusal to spend time on it would be understandable from a purely selfish point of view. I've never known you to be a selfish man, though. Kragen