(no title)
tobiasu | 4 years ago
Unlike other parts of GCC, GNAT copyright is held by AdaCore due to some special arrangement with the FSF.
For the compiled CE releases on their website, AdaCore strips the runtime exception:
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception, --
-- version 3.1, as published by the Free Software Foundation. --
So yes, binaries compiled with that particular compiler are de-facto under GPLv3, and you have to abide by its terms (eg. if a customer using these binaries requests the source code)You are of course free to build the compiler yourself, or use the Ada compiler that comes with your distro.
The sources are available, you just don't get a tag that tells you which exact combination of files AdaCore used to build and verify their binaries.
This is a strategic PITA, and AdaCore have in recent years made some moves to improve the situation, with being active on github and responding to issues in general.
Rochus|4 years ago
> Unlike other parts of GCC, GNAT copyright is held by AdaCore due to some special arrangement with the FSF.
Adacore holds at least the copyright of their own contributions and therefore can decide whether they want to release their version of GNAT with or without the runtime library exception; the FSF version eventually inherits also the contributions of Adacore, but the Adacore version is more current.
> So yes, binaries compiled with that particular compiler are de-facto under GPLv3, and you have to abide by its terms
This doesn't have anything to do with source or binary version. The reason is that the binaries provided by Adacore are compiled from their (most recent) source version which they publish under GPL without the runtime library exception. For this (and only this) reason you create a "combined work" when you link your code with the Adacore version of the runtime library. This doesn't change in any way if you compile the GNAT version of Adacore by yourself; you still don't have the runtime libary exception which only Adacore can give for their contributions.
tobiasu|4 years ago
So do I.
> Adacore holds at least the copyright of their own contributions and therefore can decide whether they want to release their version of GNAT with or without the runtime library exception.
Indeed.
> the FSF version eventually inherits also the contributions of Adacore, but the Adacore version is more current.
AdaCore contributes to GCC, with some contributions copyright FSF, some copyright AdaCore.
AdaCore retains full rights on the later, limited by whatever private agreement they have with the FSF.
Whether it is more current or not is not relevant to the discussion, and given that GNAT CE has release cycles of 1 year it stands to reason that FSF GNAT gets bugfixes that GNAT CE will only get in 2022.
> This doesn't have anything to do with source or binary version.
I'm now pretty convinced you're reading things that I didn't write.
You seem to be under the impression that dual licensing only works because AdaCore GNAT contains newer files.
However, AdaCore can download stock upstream gcc, remove the linking exception from files they hold copyright over, and distribute this result in source and binary form on their website.
This is due to their unique status with the FSF, something that other companies and private contributors can not do.
Finally, I have never suggested recompiling AdaCore GNAT CE sources will result in a GNAT compiler with runtime exception.
Instead I've pointed out the mechanism of how they achieve this dual licensing: A) unique status as copyright holders alongside the FSF B) strategic inclusion or removal of the runtime exception in each and every file they hold copyright over.
spamizbad|4 years ago
Rochus|4 years ago
tobiasu|4 years ago
bachmeier|4 years ago
You'll be violating the terms that allow you to use the compiler if your source code isn't GPL licensed. That doesn't mean your source code is automatically converted to GPL. It just means you don't have a right to use the compiler or to distribute the binaries you've produced with it.