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,3ec90d7920bdc8e8 X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Newsgroups: comp.lang.ada Subject: Re: Ada and licensing + how to keep the RTL license from propagating :-) References: <1190014387.975202.55530@57g2000hsv.googlegroups.com> <1190032323.899346.97800@50g2000hsm.googlegroups.com> From: Markus E L Date: Fri, 21 Sep 2007 23:46:24 +0200 Message-ID: User-Agent: Some cool user agent (SCUG) Cancel-Lock: sha1:JX/ruLtLS6uGgaivD8UnWDcPkQQ= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii NNTP-Posting-Host: 88.74.58.55 X-Trace: news.arcor-ip.de 1190410888 88.74.58.55 (21 Sep 2007 23:41:28 +0200) X-Complaints-To: abuse@arcor-ip.de Path: g2news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newspeer1.nwr.nac.net!newsfeed.freenet.de!news.unit0.net!newsfeed.arcor-ip.de!news.arcor-ip.de!not-for-mail X-Original-Bytes: 8164 Xref: g2news2.google.com comp.lang.ada:2085 Date: 2007-09-21T23:46:24+02:00 List-Id: Simon Wright wrote: > Markus E L writes: > >> Simon Wright wrote: >> >>> Jacob Sparre Andersen writes: >>> >>>> Simon Wright wrote: >>>>> Ole-Hjalmar Kristensen wrote: >>>> >>>>>> I suppose you could also compile with GNAT, and send a library >>>>>> to your customers. Still no RTL involved. >>>>> >>>>> I think that would be the same as distributing an executable. >>>> >>>> Not quite. >>>> >>>>> Not aware of anyone having discussed this, but as far as I can >>>>> see a .o file would be GPL'd just as much as the .exe's built >>>>> from it. >>>> >>>> No. The GPL is on the run-time library. And .o files are not >>>> linked, and thus not infected with the license of the run-time >>>> library. >>> >>> No. If that were the case, the LGPL could apply. >> >> That's the old "using an interface or including a header already >> makes it a derived work" hypothesis. I'm not sure how well that >> would hold up under pressure and from a software engineering point >> it's certainly nonsense (even if copyright law would provide a lever >> of enforcing this point of view). I've always held that people >> trying to push that agenda should be punished for crimes against >> proper software engineering. (Mind you, nothing against you >> personally, I'm refering e.g. to those that want to make all Linux >> kernel modules GPL because those -- nolens volens need to read the >> kernel header files during compilation). > > I think that if your code had > > pragma Restrictions (No_Generic_Instantiations); > > (is there such a beast?) *and* if your compiler vendor released a > sharable image of the rtl under the LGPL you could probably get by. > So far as I know libgnat.so and friends aren't released under the > LGPL. Oops sorry. Perhaps I didn't understand what you meant by "If that were the case, the LGPL could apply". It seemed like an attempt to contradict " "And .o files are not linked" (and thus don't constitute a derived work. I didn't talk about libgnat specifically. But to that (perceieved) contradiction I had to reply, that I've seen both positions, specifically with regard to including header files (which is mor like deriving than reading an interface) and AFAIK (and I might be wrong) in the Linux world the position has prevailed that including headers is not deriving a work. But I might be completely wrong, again. And my last point, of course was, that from an SE position I get annoyed every time I hear that using an interface should be equivalent to creating a derived work. That point of view sucks, even if it is / would be supported by the GPL. And if copyright law actually works this strongly, I fear that using a protocol (SMB) might actually influence the license of the product (Samba). > But it was always Robert Dewar's view that generic instantiation > effectively imports the library's source into your binary -- hence the > GMGPL. Ah, yes. It was _his_ _view_. I mean, I understand now whence the GMGPL came, but I'd like to emphasize that this is (a) still only a perhaps professionally backed, but still an interpretation, based on US copyright law, that might not completely hold to scrutiny world wide (which is moot, because the GMGPL holds, I'm only talking about "generic instantiation is inclusion") and (b) it would still be (philosophically speaking as an SE) be wrong, because now (again) a compiler implementation detail influences the license: What looks like use (of interface) to the casual user is now suddenly derivation. > And hence my suggestion that a .o could inherit (GM)GPL-ness > from the library. But have the unlinked modules already included relevant parts of the generics (their body, not their interface)? If so, wouldn't that mean that truly independent compilation is not possible with GNAT? Something else: I could add the following at multiple other places in the thread, but since I've already taken the effort to write a message, I'll add it here: What hasn't been mentioned yet, is the ultimate GPL circumvention device (it has been hinted at, though) and that is the contract between developer and customer: - Sell them closed _proprietary_ code and absolutely bind them contractually not ever to redistribute that code. - Seperately sell them a maintenance contract for a Gnat installation (even and especially take GPL Gnat: Not forbidden to sell a mini-maintenance contract for that to other people) and install Gnat at their site. - Offer them a third service contract for maintaining software packages at their site, specifically by compiling and packaging the software in question at their site. Since bespoke customers will insist on getting source anyway, exactly in this case you'll get maximal protection and none of the spill over of the license from the runtime. Since I assume AdaCore stripped the linking exceptions because they thought they got pulled over the table by free riders among their big customers (they can't seriously hope for small software houses and small projects to pay their buy-yourself-out-ofGPL maintenance fees), this is rather amusing: It's especially those cases in which (a) distribution of the better Gnat within the organization cannot be controlled effectively (as long as enough people keep mum and don't snitch to AdaCore) and it's exactly those customers that won't want to redistribute[1] but keep their source close, so will be happy with GPL Gnat[2]. These people won't pay to get rid of the GPL, but rather to get maintenance so the buy-and-get-linking-exception incentive won't work for them. (Notes: [1] Well, there is a snag, but I won't tell :-). [2] Until the flight software get's deployed, and a real vehicle is being sold to customers. It's probably not worth the troubled, but I wonder about the source for the flight software included in the embedded boards ROM, w/o comments of course. More realistically they need perhaps only buy a minimal "license" for the production build. 1 seat, once. ) And if the bespoke customer want's to use the software inhouse, there is no reason at all to make the source open ... So I (still) wonder what the purpose of stripping the linking exception was, except to make it uncomfortable to small groups deploying small numbers of binaries (typical bootstrap scenario) to walk-in or phone-in customers. Things like a security utilities, hardware testers, shells for CD burining or somehow else controlling your personal computer come into mind. OK, this all just to plumb for how far the GPL really goes. Everything I said must be flagged with magic spell IANAL and "you're better of checking this with your lawyer". And I can see some holes in my arguments above, but I'm sufficiently certain they could be plugged. Regards -- Markus