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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,3e26dfa741e64e5f X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!newshub.sdsu.edu!logbridge.uoregon.edu!canoe.uoregon.edu!newsfeed.news.ucla.edu!newsfeed.berkeley.edu!ucberkeley!newsfeed.pacific.net.au!nasal.pacific.net.au!not-for-mail Newsgroups: comp.lang.ada Subject: Re: GNAT GPL 2005 Edition is now available From: David Trudgett Organization: Very little? References: <432919be$0$10539$4d4eb98e@read.news.fr.uu.net> Message-ID: User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux) Cancel-Lock: sha1:kqwPMrqiR9dgsKtO2OPPMKrM6SI= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 16 Sep 2005 18:36:02 +1000 NNTP-Posting-Host: 61.8.46.44 X-Complaints-To: news@pacific.net.au X-Trace: nasal.pacific.net.au 1126860038 61.8.46.44 (Fri, 16 Sep 2005 18:40:38 EST) NNTP-Posting-Date: Fri, 16 Sep 2005 18:40:38 EST Xref: g2news1.google.com comp.lang.ada:4779 Date: 2005-09-16T18:36:02+10:00 List-Id: Jeff Creem writes: > David Trudgett wrote: >> The GCC compiler is also licensed under the GPL, which allows the >> development and distribution of proprietary software using that >> compiler. Could you please explain here on comp.lang.ada how the same >> licence can have two different effects, one for GCC, and another for >> GNAT? > > We will have to wait and see if they respond but in general questions > like this to AdaCore usually come back (correctly) with "consult your > own qualified legal council for advise"... It has been little more than 24 hours since I made my reasonable request for a public explanation, and I expect that they are still working on a suitable reply. "Consult legal counsel for advice," would not be a reasonable reply, because I am not asking for legal advice, I am asking them to publicly justify their action. Being unable or unwilling to publicly justify what they have done would, I speculate, have a negative impact upon their image as, for example, it might justifiably be interpreted as a snub to the Ada community (or at least that section which frequents c.l.a). If AdaCore were to respond citing only a pure technical reason for the difference between GCC and GNAT, along the lines that the C and C++ run-time licenses give freedom to developers, but the GNAT run-time has had this freedom revoked, then AdaCore may find themselves in a little spot of bother. This is because in that case it would be quite apparent they are unwilling to explain their motives, and people will be left to draw conclusions about that which will probably be negative. If AdaCore responds with silence, the result will be somewhat similar, though less decisive. So, if I were AdaCore and had something to hide about my motivations, then I would definitely fail to reply. The explanation AdaCore comes up with must explain how restricting the freedom of developers to license their own work in the way most suitable to them, does not prove contempt of the very principles of freedom that the GPL is supposed to be defending. Maybe they have such an explanation, and (for all of us) to find out what it is, is the purpose of my enquiry. > > > But the short ** non-qualified ** answer is that whether programming > in C,C++ or Ada, there is generally some run-time library that one > links against for any non-trivial programs (ok..there are probably > non-trivial programs that can be 100% run-time free.)... > > In any case, with GCC for C one usually links against the the OS libc > which is non-GPL (or at least has that option) > > For C++, the GCC runtime library has a "special exception" clause like > the GNAT-3.15 runtime used to have. > > For Ada, the runtime (and supporting libraries) which are extensive > used to be GPL with the special exception that prevented having to > apply the GPL to programs that "make use of" the library. > > In this AdaCore version, they have removed the exception. One can only > assume Avoiding assumptions is a good reason for my question to Jamie. > that they negotiated this with the FSF (who is the copyright > holder on most of this even though it was mostly developed by > AdaCore). FSF probably would not have a problem with it anyway since > the more "Free" it is the more they like it. On the contrary, it is demonstrably less free. Previously, there were no restrictions on what a GNAT developer could produce. Now, a GNAT GPL developer will be restricted to producing GPL products. Too bad if the developer wants to license under some other Free licence (for instance). Anyone can easily see that we are going from more free to less free in this sequence of events, and, furthermore, that this reduction in developer freedom does not increase the protection of the compiler or run-time against those who would like to make proprietary versions of them. It seems to me (correct me if I'm wrong) that libgnat is pretty useless in practice without the GNAT compiler. It further seems to be, therefore, that libgnat and GNAT are effectively, for all practical purposes, parts of the same product. Although there is no problem in licensing different parts of the same product differently (should that be useful, and create more freedoms), by licensing libgnat under the GPL (without the exception that is under discussion), AdaCore is, ironically, trying to use the GPL to violate the intent of the GPL. In particular (section 2 of the GPL, version 2): Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. At the beginning of the same section: You may modify your copy or copies of the Program or any portion of it, _*thus*forming*a*work*based*on*the*Program*_, and copy and distribute such modifications or work under the terms of Section 1 above, provided that [... etc.] (my emphasis) Linking one's program into a compiler's run-time library *should* not and *does* not in itself constitute a derivative work, nor a collective work. I am not modifying my copy of the compiler or the run-time. I am not extending or enhancing the library, and nor am I bundling the library within a collection. I am certainly not doing any of this with respect to the compiler itself. When I write a program and compile it with a compiler, and I use no libraries besides the run-time library that comes with the compiler, then I am (and I claim that any programmer can plainly see it) producing a work entirely by myself. This is what everyone understands by this phrase. Otherwise, the only works one would be able to produce entirely by oneself would be machine code programs. No one's programs run from source code (interpreters effectively compile to machine code on the fly). AdaCore, in fact, seems to tacitly admit this point when they use the word 'guarantees' in the following sentence: The GMGPL guarantees that executables generated by GNAT Pro can be distributed under customer-specific terms and conditions. -- https://libre2.adacore.com/dynamic/gnat_faq.html#licensing This wording would seem to mean that the GMGPL merely provides a _guarantee_ over a GPL that could otherwise perhaps be misinterpreted. It would be unnecessary to _guarantee_ it unless the right might already exist nevertheless under the plain GPL. Of course, further down, they claim that the GPL "guarantees" that executables compiled by GNAT GPL will be Free Software. So they could just be using the word 'guarantees' in a sloppy way. What they really mean by this is that they intend to *force* (this is not freedom) developers who use GNAT GPL to licence their own software under the GPL. This goes way beyond protecting the Free status of one's own software and enhancements to it, and firmly steps across the line into gratuitous control of the actions of others by restricting their freedom. Needless to say, using the GPL not to enhance, but to gratuitously restrict the freedom of others, is quite distasteful, if not hypocritical. Notice that these points remain valid even if lawyers determine that the GPL technically allows them to get away with it. > Note I am only > speculating that this requires FSF approval. There is a copyright > assignment process that one goes through when submitting code to the > FSF GCC tree but it is not clear to me what unique rights the original > copyright holder might retain. > > > > The runtime files in the FSF tree still have the special exception so > I would guess AdaCore has written some script that they run when > packaging the GPL version that strips out the special exception > portion of the header and again has cleared this with the FSF. I don't believe that it is necessary to clear that with the FSF. It is my understanding that exceptions to a GPL licence can be removed by any distributor if they wish. [1] A distributor, however, is prohibited from adding additional restrictions. One could say that telling developers they must license their own programs under the GPL is an additional restriction. [1] When other people modify the program, they do not have to make the same exception for their code--it is their choice whether to do so. -- http://www.gnu.org/licenses/gpl-faq.html > > This does muddy the water a little even for free SW developers that > want to use this compiler version since it makes it (a little) more > difficult to release the code under a non GPL but still free > license. GPL software, or modifications to it, can only be released under the GPL: i.e., not BSD, not X11, not LGPL. How is "impossible" the same as "a little more difficult"? :-) > However, it really has no effect for people creating > libraries that they distribute as source code under the GMGPL (with > the old exception clause). GMGPL is not the GPL. GPL licensed programs can't be distributed under the GMGPL (unless the original copyright holder says they can). As a final comment, I would add that I am not against the GPL in any way except where it is used to gratuitously limited other people's freedoms. The purpose of the GPL is to protect the freedom of software, not to force other people to produce free software. A compiler is a special class of program that allows the GPL to be abused, because the *purpose* of a compiler is to facilitate the production of programs that are *not* derivative works, but original works, yet parts of a compiler, especially but not exclusively, the "run-time", must necessarily form part of the output of the compiler. GPL'ed compilers, by their very nature and purpose, contain and embody by implication an exception to a literal interpretation of the terms of the GPL that do not allow GPL'ed code to be incorporated into non-GPL'ed code. Can a licence really negate the raison d'etre of the software it is supposed to be protecting? And can it do this while negating its own raison d'etre of promoting freedom? A more perverse situation is hard to imagine. David -- David Trudgett http://www.zeta.org.au/~wpower/ For in a Republic, who is "the country?" Is it the Government which is for the moment in the saddle? Why, the Government is merely a servant - merely a temporary servant; it cannot be its prerogative to determine what is right and what is wrong, and decide who is a patriot and who isn't. Its function is to obey orders, not originate them. -- Mark Twain