GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Posted Jun 9, 2021 17:39 UTC (Wed) by Wol (subscriber, #4433)In reply to: GCC drops its copyright-assignment requirement by matthias
Parent article: GCC drops its copyright-assignment requirement
> Actually, the license itself is an abstract thing that is described in the COPYING file.
Okay, but the COPYING file is the documentation that describes the licence.
> > The LICENCE ITSELF is the statement in the COPYING file, which says "GPL2+", or "GPL3+" or whatever.
> > Alice grants a licence to her code.
> > Bob modifies the evidence.
> > Carol is given a copy by Bob (which as per version 2, or version 3, or whatever) grants Carol a licence from Alice ...
> This is fine. But is the license granted to Carol identical to the license granted to Bob?
Carol has evidence (from Alice) that it is. Plus Alice did not give Bob permission to change it.
> > The only real complication is that Carol may, in *practical* terms, be unable to comply with some of her choice of available licences - to give the aforementioned example > if Bob distributes a binary that is dual-licenced MIT/GPL, then Carol has the *right* to distribute it under the GPL, but not the *ability*.
> If Bob distributes according to MIT terms, then why should Carol have any right to distribute it under GPL? GPL terms do not apply at all in this case. Thus also the clause stating that Alice automatically grants a license to Carol does not apply.
Because if it's DUAL-licenced, then Alice gave Carol those rights, and Bob does not have the right to change them. The fact that Carol only has a binary and cannot comply with the GPL is unfortunate, but she still has that right because she has the EVIDENCE that Alice gave her that right.
> What you're missing, is that now I've clarified my thoughts (thanks :-), the "GPL2+" is NOT a COLLECTION of licences, it is a SINGLE LICENCE with a collection of alternative "terms and conditions". Once you get your head round the thought that "the GPL is not the licence itself, it is the terms of the licence", it all makes sense.
> It is not really important whether we see GPL2+ as a collection of licenses (each with its own set of terms) or a collection of terms. In both cases, we have to determine the license given to Carol.
Actually, when we're arguing about the jots and tittles of the law, it's VERY important :-) Seriously. PJ would eat you alive for a statement like that ...
> In Section 0 of GPL3 it is clearly stated that "This License" anywhere in the GPL3 terms refers to GPL version 3 (not anything else). And in Section 10 it is stated that Alice grants "This License" to Carol.
Again, being pedantic, it does not. It says that Carol gets this licence from Alice, not Bob. That's actually a very important difference ...
> Thus if Bob is distributing according to terms of GPL3 (which Bob is allowed to do), the license granted from Alice to Carol is GPL Version 3, even if the license Bob has is of a different type (GPL2+). Of course, Alice is free to also grant version 2 and version >3, but this is not according to the terms of the GPL and not automatic.
And this is why that difference is important! Carol GETS her GPL3 licence from Alice, but Alice GRANTED her GPL2+. Clause 10 has nothing to say about any ADDITIONAL rights that may come along with the GPL3 licence, but the GPL actually has a lot to say about Bob being allowed to choose whether or not to pass them on. By default, the law says he can't choose what he's going to pass on because he's not allowed to change them. Plus, in fact, the pre-amble says he must pass them on because if he received GPL2+, he received the freedom to choose, and he must pass on all the freedoms he received, including the freedom to choose.
> And of course in Section 4 it is only required to keep intact the notices referring to "This Licese", i.e., GPL version 3. If other notices (dual licensing, version 2) are removed, this is not against the terms of GPL3 and thus allowed by GPL2+, as GPL2+ allows Bob to choose to distribute under the terms of GPL3.
Yup, GPL3 only talks about preserving itself. That's fine. But it operates WITHIN the law, and if Bob was not given permission to change Alice's grant (and he wasn't), then editing the COPYING file is called "tampering with the evidence", and it's illegal. Each version of the GPL *must* be self-contained - it can only refer to itself. But the licence Alice handed out is outwith the GPL - the GPL cannot refer to that licence because it doesn't know what that licence is, and crucially, it does NOT give anyone permission to *change* that licence.
> > Remember, courts require *evidence*. The *only* evidence is Alice's statement that the licence is GPL2*PLUS*.
> This is not the only evidence. Bob's statement that he distributed according to the terms of GPL3 is also evidence.
And what if Carol is woolly and doesn't have a clue where the CD came from with the program on it? All she knows is that a friend gave her the CD and it appears kosher, with all the licences, grants, etc intact.
> And without the evidence that Bob distributed to Carol, there would be no evidence at all that Carol has any rights to the code. And taking both evidences together, we get that Bob is allowed to use terms of GPL3 and that the License granted from Alice to Carol is GPL3 (by the terms of GPL3 which have to be applied according to the choice of Bob).
I'll say it again. The licence Carol RECIEVED from Alice included, AS A MINIMUM, the GPL3. But the licence GRANTED by Alice was GPL2+.
More woolly thinking. When discussing the law, jots and tittles matter. Whether permission is GIVEN or RECEIVED matters.
> Somewhere else in the thread, you said that this interpretation would be a nightmare, as all the different licenses have to be passed on individually. But in practice it will work without problems, because it is quite unlikely that someone just distributing the source will change the COPYING file.
Because they have no right to ...
> And if the COPYING file is unchanged, the source is distributed simultaneously under all the license terms stated in that file. Also if the code is only copied and not modified, Carol can always get the full set of license terms by getting a copy somewhere higher in the supply chain.
Except, for a collaborative project, SHE CAN'T. Take a project I've contributed to. LibreOffice. WHERE IS UPSTREAM??? Is it my PC, where I keep a copy of the source? I own some of the copyrights, so it's most definitely *A* definitive upstream. Is it Michael's PC? He seems to be lead developer, I'm sure he owns a load of copyrights, he's definitely *A* definitive upstream, but not for my code! That's the point - under your model THERE IS NO HIGHER AUTHORITY because Alice, Anne, Antonia, Anastasia, all have a valid claim to be upstream. What's definite, is that Bob is no authority at all!
> Problems arise when forks distribute under a more restricted set of license terms. This code cannot be used upstream without restricting those license terms as well. But thess problem are there anyway.
:-)
Cheers,
Wol
Posted Jun 9, 2021 21:28 UTC (Wed)
by matthias (subscriber, #94967)
[Link] (3 responses)
Alice gave no rights to Carol, as Carol did not receive the code from Alice. According to MIT license, Bob has the right to sublicense to Carol. Thus if Bob distributes to Carol under the terms of MIT license (allowed because dual licensed to Bob), then Bob exercises his right to sublicense and the terms of GPL saying that Carol will get some license from Alice have no effect.
> > This is fine. But is the license granted to Carol identical to the license granted to Bob?
Carol will not get evidence from Alice. She will get evidence from Bob saying that she can distribute according to GPL3. Carol will receive her GPL3 license from Alice, but all the evidence Carol gets is from Bob. Also Bob never changes a license given from Alice to Carol. Before Bob distributes to Carol, Carol does not have a license at all. As soon as Bob distributes to Carol according to GPL3 terms, the GPL3 terms come into effect that say that Carol will get a license under GPL3 terms from Alice. If you want to be pendantic than please do not speak of changing a license, but talk about the terms of the license that is newly created in the moment Carol receives the code.
>> Thus if Bob is distributing according to terms of GPL3 (which Bob is allowed to do), the license granted from Alice to Carol is GPL Version 3, even if the license Bob has is of a different type (GPL2+). Of course, Alice is free to also grant version 2 and version >3, but this is not according to the terms of the GPL and not automatic.
No, Alice granted GPL2+ to Bob. And once Bob distributes according to GPL3 terms, the GPL3 specifies that Alice grants a GPL3 license to Carol. The license granted to Carol is thus not identical to the license granted to Bob. That is fine according to copyright law. Clearly I can create a license foo (GPL2+) that states every third person who will receive the code will get a license bar (GPL3).
> Clause 10 has nothing to say about any ADDITIONAL rights that may come along with the GPL3 licence, but the GPL actually has a lot to say about Bob being allowed to choose whether or not to pass them on. By default, the law says he can't choose what he's going to pass on because he's not allowed to change them. Plus, in fact, the pre-amble says he must pass them on because if he received GPL2+, he received the freedom to choose, and he must pass on all the freedoms he received, including the freedom to choose.
By default, Bob is not allowed to distribute at all and even if some license just says Bob is allowed to distribute, Bob is not allowed to pass any rights on (as long as not additionally stated). The GPL nowhere says that all freedoms must be passed on. Do not read to much into the preamble. The preamble only gives a very high-level description of what the GPL wants to achieve. These high-level ideas are phrased out very specifically in the GPL terms itself. These specific terms apply. And in these terms it only says the the freedoms according to GPL3 have to be passed on. Section 0 says that every reference of "This License" has to be replaced by GPL version 3. And (after this replacement), Section 10 clearly says that Carol is granted a GPL version 3 license from Alice in the moment Carol receives the code under the terms of GPL version 3. If there would be no clarification what "this license" should refer to, your interpretation might be valid. But the GPL is very specific that "This License"always means GPL version 3 (and not the GPL2+ license given to Bob in the COPYING file). Section 0 of the GPL clearly says that your interpretation what "this license" refers to is wrong.
> Yup, GPL3 only talks about preserving itself. That's fine. But it operates WITHIN the law, and if Bob was not given permission to change Alice's grant (and he wasn't),
> then editing the COPYING file is called "tampering with the evidence", and it's illegal. Each version of the GPL *must* be self-contained - it can only refer to itself. But the licence Alice handed out is outwith the GPL - the GPL cannot refer to that licence because it doesn't know what that licence is, and crucially, it does NOT give anyone permission to *change* that licence.
As said above, the license is not changed. The COPYING file Bob receives is the evidence that Alice granted rights according to GPL2+ to Bob. If Bob decides decides to distribute according to GPL3, he will change the COPYING file to make clear that he only distributes according to GPL3 terms and thus only a GPL3 license is granted from Alice to Carol, as this is what is stated in GPL3 Section 10.
Of course, Alice never explicitly gave out a license saying GPL3. But the terms of GPL3 (which Alice allows to apply to the code) state that Alice will grant a GPL version 3 license to anyone who receives the code according to the terms of GPL3. If Alice is not happy with that she should not allow to distribute under GPL3 in the first place.
Cheers,
Posted Jun 9, 2021 23:38 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (1 responses)
WORDS MATTER! Where in the GPL does it say that Alice GRANTS a licence TO Carol? It says that Carol GETS a licence FROM Alice. That's not the same thing at all! And seeing as the only licence Alice has granted is GPL2+, that is the licence Carol gets. For her to get anything else, she must have received that licence from Bob, which the GPL explicitly says DOES NOT HAPPEN.
Plus, how come Bob has not forwarded to Carol the right he had to choose ANY licence allowed by GPL2+? The GPL itself says that that is what the GPL seeks to enforce. And if the GPL explicitly states its intent, then a Judge is likely to say that is a requirement, pre-amble or no.
The wording of the GPL ensures that if Alice receives it under GPL3, she is guaranteed the right to distribute under GPL3, otherwise Bob is breaking the terms of the licence.
Cheers,
Posted Jun 10, 2021 6:31 UTC (Thu)
by matthias (subscriber, #94967)
[Link]
No, it uses the word RECEIVES, again a word with a completely different meaning. Or not so different at all? How do you get a license? By a grant!
And the important thing is not whether Carol gets, receives, or is granted a license. The important hing is which license she gets. And the GPL version 3 is very specific about that: Carol gets a license GPL version 3.
> And seeing as the only licence Alice has granted is GPL2+, that is the licence Carol gets.
Why? Just because Alice did never grant before a license GPL3? How can you conclude that she will not in the future? She definitely has the right to do so. And the terms of her chosen license terms (GPL2+) state that exactly that will happen once the code is distributed under GPL3.
> For her to get anything else, she must have received that licence from Bob, which the GPL explicitly says DOES NOT HAPPEN.
No, she can receive that anything else from Alice. And the GPL says she will get it from Alice. No problem there.
> Plus, how come Bob has not forwarded to Carol the right he had to choose ANY licence allowed by GPL2+? The GPL itself says that that is what the GPL seeks to enforce.
It does not say this. The GPL3 (int the very license terms) only says that the freedoms according to the terms of GPL3 have to be forwarded.
> The wording of the GPL ensures that if Alice receives it under GPL3, she is guaranteed the right to distribute under GPL3, otherwise Bob is breaking the terms of the licence.
Probably, you mean Carol. I think, we agree on this. But I do not see how this is broken if Bob replace GPL2+ by GPL3. Carol can still distribute under GPL3.
> But in this case, Bob has *changed* *the* *licence*.
Again, Bob did not change any license. The licence Carol gets from Alice is specified by GPL3 and the existence of this license only starts, once Carol receives the code. How can you change something that does not yet exist?
> And again, where in the GPL does it say Alice GRANTS a licence? I've looked at clause 10 and it uses the word GET, which is a completely different word, with a completely different meaning.
See above. And did you really look at clause 10? How did you miss that it says RECEIVES and not GET? ;)
Best,
Posted Jun 9, 2021 23:41 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
But in this case, Bob has *changed* *the* *licence*. This is called sub-licencing, which the GPL does not permit. And again, where in the GPL does it say Alice GRANTS a licence? I've looked at clause 10 and it uses the word GET, which is a completely different word, with a completely different meaning.
Cheers,
GCC drops its copyright-assignment requirement
> Because if it's DUAL-licenced, then Alice gave Carol those rights, and Bob does not have the right to change them. The fact that Carol only has a binary and cannot comply with the GPL is unfortunate, but she still has that right because she has the EVIDENCE that Alice gave her that right.
> Carol has evidence (from Alice) that it is. Plus Alice did not give Bob permission to change it.
>And this is why that difference is important! Carol GETS her GPL3 licence from Alice, but Alice GRANTED her GPL2+.
Alice grant was only to Bob. Alice only grants to Carol once Carol gets a copy of the code. Thus it is impossible that Alice's grant to Carol is changed as it does not yet exist. Alice's grant to Carol is only because the terms of the GPL3 state that Alice gives a grant to Carol. And the terms of the GPL3 (which does not care about other licenses) specify that this new grant to Carol is of type GPL3. The COPYING file does not document the grant given from Alice to Carol, it documents the grant given from Alice to Bob.
Matthias
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Matthias
GCC drops its copyright-assignment requirement
Wol
