From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1efdd369be089610 X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: gnat-3.10 Date: 1997/07/01 Message-ID: #1/1 X-Deja-AN: 253901335 References: <5o3p39$f2o$1@orion-fddi.rz.uni-ulm.de> <33B014E3.3343@no.such.com> <5oqp9s$7vj$1@news.nyu.edu> <33B13BF6.79C7@no.such.com> <5os9i9$o32$1@goanna.cs.rmit.edu.au> Organization: New York University Newsgroups: comp.lang.ada Date: 1997-07-01T00:00:00+00:00 List-Id: Dale asks <<...and there I think is a major issue that needs explaining (to me at least!). What does "contains" mean? If I write a GUI front end for Gnat, does that constitute containment? I could distributed it separately, and have it just make system calls to Gnat? What about a program that is linked to some of the GNAT parser routines? What about a system that dynamically loads Gnat in as a DLL? Is the calling convention what determines the "contains" relationship? >> First of all you need to look at the GPL itself, not some summary of it on CLA, and interpet the language there. Generally, if two parts of the same system are separate Unix processes, with relatively thin interfaces, the requirements will be met. Linking to some parser routines is obviously past the line and is not allowed, dynamically loading GNAT will generally be fine, writing a GUI will certainly be fine. As is the case with any legal document, you have to look at the contract terms, and look at the specific case to make sure that you are not violating the contract. If you are in doubt, you can consult your own lawyer, or you can ask the copyright holder, who may or may not enlighten you (the holder of the copyright is under no obligation to give you advance notice of what might or might not violate the copyright, and may well not be willing to give you such advance notice if it is a dubious case). As an example of a dubious case, trying to make a compiler by having the GNAT front end write a file containing the tree, and a separate proprietary backend reading the tree is probably dubious, and Richard Stallman, as representative of the copyright holder, has been unwilling to give an opinion as to whether this does or does not violate the conditions of the GPL (he would of course show more interest in the subject if anyone actually did this!) On the other hand, a GUI front end for GNAT, such as the many ones that have already been created, seems absolutely fine for everyone, although so far, most of these GUI's have themselves been free software, which is certainly to be encouraged. How about a GUI for GDB? Well that's getting closer to the line, perhaps it is past it, because then the GUI becomes a fundamental part of the debugger, whereas a GUI for GNAT is not a fundamental part of the compiler at least not usually. If all this makes people a bit nervous about what is and what is not allowed in attempts to use GPL'ed stuff as part of proprietary software, do not expect us or Richard Stallman to get too upset! If it encourages the production of more freely available software for the Ada community, that is a good thing. An example of this happening is the vendor who will be creating a new Ada 95 cross compiler using the GNAT front end and their own previously proprietary backend, which in its new incarnation will join the ranks of free software products. Two particular notes on all this with respect to GNAT. First, the ASIS interface has been specially designed so that it is suitable for generating third party products that need not be covered by the GPL. One of the functions we see for ASIS is providing this kind of insulation. Second, none of this discussion ever applies to programs *generated* by GNAT, since all units in question there are covered not by the GPL, but by the modified GPL that is specifically designed to allow such programs to be used without imposing GPL distribution requirements. It only applies to programs that actually want to use some of our copyrighted code directly.