This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
First my little bit of legal guesswork (naturally with no precedent to back it up nor any guarantee should it be wrong): If a propriety application offers to its user the facility to link with ANY dynamic library (using dlopen() or similar) then there is nothing to stop the user deciding to link with a GPL library. In such a situation it seems to me impossible to attempt to stop either the propriety application or the user from persuing this path. If a propriety application actually finds and links with GPL libraries automatically then pressure on the application developer may discourage this behaviour. For example, Microsoft Visual Basic has the facility to declare VB functions by specifying the function interface and the DLL file where ther function code lives. Using this facility, a VB programmer can easily make use of any GPL libraries that can be compiled into DLL form. Can we prevent VB programmers from doing this? I don't think we could or even should. Can we prevent Microsoft from providing linking facilities? Not even a slight chance since most of their code depends on this ability. In simple terms the line has to be drawn somewhere or else we are all going to look silly at some future point. It is my belief that if the user initiates the linking process without help from the application then that must be regarded as kosher. If the application encourages the user to link to GPL libraries by doing it automatically then that is not kosher. (plodding enough?) Now to be more specific... On Mon, Feb 15, 1999 at 11:21:12PM -0500, Richard Stallman wrote: > It might be reasonable to divide what is now Guile > into a part that carries the license exception, and a part > that is not relevant to writing most extensible applications > and does not carry the exception. > > If we do this, it would be reasonable for the part that does not > carry the exception to use Readline. I completely agree. My suggestion is that libguile be exactly that, a library. In particular, it should provide NO REPL facilities at all! Most applications that use libguile will want a scripting language and that is what it is designed to do. Providing REPL facilites is a sideline that happens to make useful debugging. However large ammounts of both the ice-9 code and the libguile code are devoted to providing a REPL environment. A separate REPL application should be written that links in readline and libguile and brings the two together. This can be a GPL application. There are (aside from the legal issues) some excelent technical reasons to do this. Firstly because it would force the guile developers to see things from an application writers point of view. The whole world does not revolve around a command prompt REPL and libguile should be equally suitable for taking it's expressions from an arbitrary input. Secondly, it would remove one dependency from the guile linking which is (in my opinion) more complicated than it needs to be. Libraries should in principle be as independent as possible. Thirdly, in the current situation, if I wanted to release a propriety program in binary form that used libguile I would find that it runs on some systems and not on others depending on exactly how guile was configured on those systems. This is because each application must be linked against EXACTLY the same libraries as libguile was for the thing to work at all. At the moment, guile might as well be GPL because the only viable distribution method for application programs is via source code (or statically linked monoliths). This is no problem for me because I distribute source. Serious propriety developers would not touch something like guile with a barge pole. > However, if we do this, we must carry it out very carefully, labeling > the parts very clearly, so that users won't fail to notice the two > different parts. This is very important, and perhaps we should go so > far as to release the two parts as separate tar files. >From an application developer's point of view this makes sense. You can then tell people that in order to use your application that they need to download the LIBRARY component of guile. When they do so (and compile and install it) they get a LIBRARY -- they are not forced to get stuff that they are not going to use. - Tel