GCC drops its copyright-assignment requirement
This change is consistent with the practices of many other major Free Software projects, such as the Linux kernel." Initial discussion suggests that some developers were surprised by this change and are yet to be convinced that it is a good idea.
From: | David Edelsohn via Gcc <gcc-AT-gcc.gnu.org> | |
To: | GCC Development <gcc-AT-gcc.gnu.org> | |
Subject: | Update to GCC copyright assignment policy | |
Date: | Tue, 01 Jun 2021 10:00:06 -0400 | |
Message-ID: | <CAGWvnyme6cQUGb+G4=tesNYqLYBSGnDYb95LH2zVUgxovHU7kw@mail.gmail.com> | |
Archive-link: | Article |
GCC was created as part of the GNU Project but has grown to operate as an autonomous project. The GCC Steering Committee has decided to relax the requirement to assign copyright for all changes to the Free Software Foundation. GCC will continue to be developed, distributed, and licensed under the GNU General Public License v3.0. GCC will now accept contributions with or without an FSF copyright assignment. This change is consistent with the practices of many other major Free Software projects, such as the Linux kernel. Contributors who have an FSF Copyright Assignment don't need to change anything. Contributors who wish to utilize the Developer Certificate of Origin[1] should add a Signed-off-by message to their commit messages. Developers with commit access may add their name to the DCO list in the MAINTAINERS file to certify the DCO for all future commits in lieu of individual Signed-off-by messages for each commit. The GCC Steering Committee continues to affirm the principles of Free Software, and that will never change. - The GCC Steering Committee [1] https://developercertificate.org/
Posted Jun 1, 2021 18:19 UTC (Tue)
by foom (subscriber, #14868)
[Link] (2 responses)
I wonder what they plan to do about the GFDL issue, now that the FSF won't be the copyright holder, and thus will not have the power to unilaterally allow relicensing between GFDL and GPLv3, as was previously done.
Posted Jun 10, 2021 18:23 UTC (Thu)
by khim (subscriber, #9252)
[Link] (1 responses)
Sigh. What I find really crazy in all that discussion is complete ignorance of the very simple fact which happened decade ago to GFDL at Wikipedia. When Wikipedia wanted to change their license from GFDL (back then 1.2, I think) to CC-BY-SA. They asked FSF to do that and it was done: FSF issued GFDL 1.3 specifically changed to allow Wikipedia to switch from GFDL to CC-BY-SA. Note: no copyright assignments were ever requested by Wikipedia. And work of thousands of people was relicensed simply because they gave that power to FSF. You can open GFDL even today and you would see all these talks about “Massive Multiauthor Collaboration Site”, August 2009 deadline and so on… what you can't see is any mention of GFDL on Wikipedia pages. Thus… If FSF would want to switch GCC from GPLv3+ to GPLv4 or APL or MPL or GFDL … it can. New license would have to be “similar in spirit” but nobody knows what that means, so that's pretty weak limitation. In particular the fact that CC-BY-SA doesn't allow one to out-out of “forced license upgrade” when GPL gives you that option (and people are using that option) makes then quite “dissimilar in spirit” to me… but FSF decided that it's quite minor difference… and that was it.
Posted Jun 11, 2021 19:36 UTC (Fri)
by Wol (subscriber, #4433)
[Link]
If it doesn't seek at least to enforce "The Four Freedoms", then I suspect it would be a slam-dunk at court to have it declared "not similar in spirit".
Cheers,
Posted Jun 1, 2021 18:20 UTC (Tue)
by josh (subscriber, #17465)
[Link]
Posted Jun 1, 2021 18:48 UTC (Tue)
by Gaelan (guest, #145108)
[Link] (98 responses)
Posted Jun 1, 2021 18:54 UTC (Tue)
by corbet (editor, #1)
[Link]
Posted Jun 1, 2021 19:43 UTC (Tue)
by madscientist (subscriber, #16861)
[Link] (96 responses)
They don't have the ability to relicense GCC. There is much confusion around this even on the mailing list. GPLv3+ doesn't mean someone can relicense GCC. It means that if the FSF releases a new version of the GPL, anyone can elect to use it under EITHER the old license OR the new license. That is not the same thing as relicensing.
Worrying about the FSF relicensing GCC is not the problem; I don't think any serious person thinks that the FSF will publish a GPLvN which undermines free software. The problem is actually the opposite: once they start accepting code that is not copyright FSF, now you can NO LONGER change the license to GPLv4+ if you wanted to without getting permissions from all copyright holders. And even if you assume good faith by all contributors, once the first GCC contributor dies or disappears you're screwed unless you want to throw out all their code and rewrite it from scratch. This is not theoretical, it has actually happened in some projects.
Consider this: suppose some case goes through the U.S. court system that blows a huge hole through the middle of GPLv3 and the license needs to be updated to resolve that problem. This is a far more likely scenario than the FSF publishing a "poison pill" GPL version, but too bad, there's no remedy. You can make it more painful (for everyone) by saying some new code is GPLv4+ but it's ugly and will become a mess.
There are also a big pile of open questions about this change that have no answers (yet): it's not clear if they were considered or not. So far I give the GCC steering committee more or less the same grade for their handling of this announcement that I gave the FSF for their handling of the RMS announcement earlier this year... and that's not good. Especially because they didn't have the excuse of someone jumping the gun on them at an event.
Posted Jun 1, 2021 19:57 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Posted Jun 2, 2021 5:48 UTC (Wed)
by madscientist (subscriber, #16861)
[Link]
Posted Jun 1, 2021 20:15 UTC (Tue)
by Lonjil (guest, #152573)
[Link] (75 responses)
Posted Jun 1, 2021 22:19 UTC (Tue)
by pm215 (subscriber, #98099)
[Link] (33 responses)
This is a non-theoretical issue for the v2-vs-v3 split -- because binutils relicensed wholesale to v3-or-later, QEMU (which is v2-only) could no longer take bugfix or new-feature updates to disassembler code that it had copied from binutils, so it has some pretty out-of-date versions of some of the disassemblers.
Posted Jun 1, 2021 22:30 UTC (Tue)
by ldearquer (guest, #137451)
[Link] (22 responses)
If it is the first, I don't see any difference, as "distributing under" and "re-licensing" are pretty much synonims
Posted Jun 1, 2021 23:45 UTC (Tue)
by rgmoore (✭ supporter ✭, #75)
[Link] (19 responses)
Only the copyright holder can formally change the licensing terms. As long as the software is licensed under GPL3+, nobody else can change it. What they can do is to add code under a license that still allows the code under the two different licenses to be distributed. In that case, the combined project will only be distributable under the combination of the licenses.
As an example, suppose someone contributes code under GPL3 only to a project that's currently licensed GPL3+. That is compatible, but the GPL3 only code couldn't be combined with code under a later version of the GPL, so the combined code base would be effectively GPL3 only. Similarly, a GPL3+ project could be combined with GPL4+, but the GPL4+ code wouldn't be compatible with GPL3 only code, so the project would effectively become GPL4+. The most common example of combining licenses is actually combining code under a permissive license with code under a copyleft license like the GPL. In that case, the combined codebase can only be distributed under the copyleft terms. In all of these cases, the code can only be distributed under the combined licensing terms because the license explicitly allows it to be combined with code under a different license; if it didn't, the combined code couldn't be distributed at all.
Of course a project is under no obligation to accept a contribution under licensing terms they don't agree with, so they wouldn't take the code unless they wanted the licensing result. If a project somehow accidentally accepted code under an undesirable license, they would have to remove it to avoid the undesired licensing effects. If the amount of code was substantial, replacing the code under the wrong license would be a major project.
Posted Jun 2, 2021 11:15 UTC (Wed)
by ldearquer (guest, #137451)
[Link] (18 responses)
But this one seems to me a different topic than mere license compatibility. I think the term is "multi-licensing"
Let me bring the typical wording of an "or later" clause:
So, 1) You need to comply with copyright law, which (probably in your jurisdiction) forbids you to make copies etc etc
Not talking about re-licensing/distributing under a different license (yet) :)
So I could choose to apply the set of rules GPLv3. Not because I am doing any change (yet), only because the copyright owner told me that I can choose. Comply with GPLv3, and you are OK.
Now, have a look at GPLv3, 5.c)
<<
So if I distribute it under GPLv3 only, I am complying with GPLv3. Which is one of the options given by copyright owner.
Now you can see this as changing the copyright owner terms -he meant the work to be GPLv3+! But my point is that referring to "GPLv3+" as a license, is a mistake on itself. It is a set of licenses, which you can choose among. And when choosing, you leave the other options behind.
GPL is not revocable, so whatever has been published as GPLv3+ will remain as such. There is no way a downstream recipient is changing what has already been published.
But if a recipient makes a fork, he/she can choose to relicense every file (even if it is not modified) with one of the options given by the copyright owner. Precisely because copyright owner allowed to do so.
Posted Jun 2, 2021 16:09 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (16 responses)
> <<
Now are you misguided? Or trolling? Seriously!
Classic trolling because we're talking about copying, and you ARE NOT!
Section 5 is all about conveying MODIFIED versions.
In which case, you are a copyright owner and you CAN relicence "the work as a whole". That still does NOT give you permission to relicence other people's code. It just means that *your* code is GPLv3, and that can change the licence of the "work as a whole" - note that it "does not invalidate such permission" if you have received the original source under a different licence.
Cheers,
Posted Jun 2, 2021 20:39 UTC (Wed)
by ldearquer (guest, #137451)
[Link] (15 responses)
...which is what a fork ends up being quite often, anyway.
But you are missing my point. What I was trying to discuss, or ask, is if you can re-license some code, be it verbatim copy if you want, in the case that the copyright owner allows you to do so.
Forget about GPLs and "or later" clauses.
If you are given some work, can the copyright owner give permission to you, as the recipient, to change the license, and distribute it under that other license? Could he/she say, "here, you got this work under license A, but if you plant 5 trees you can relicense it to license B"; is this valid under copyright law?
> Now are you misguided? Or trolling? Seriously!
Probably terribly misguided, but definitely not trolling
Posted Jun 2, 2021 21:06 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (5 responses)
I think there is *ONE* Open Source licence which allows you to relicence the code. Apache 2.
If I've got this right, the terms of Apache 2 are not properly compatible with GPL 2. Because they wanted Apache 2 to be compatible, the licence itself explicitly gives permission to mix it with GPL code, which because of the terms of the GPL means it has to be relicenced to GPL.
Cheers,
Posted Jun 2, 2021 21:11 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (3 responses)
The only thing to watch out is that European law has the concept of "creator's rights". These inalienably belong to the creator - they cannot be sold, given away, renounced, or anything. But this is also tied in with laws like "passing off" - if you didn't create the work then any attempt to claim you did is deception, fraud, lying, call it what you like ...
Cheers,
Posted Jun 3, 2021 18:50 UTC (Thu)
by ldearquer (guest, #137451)
[Link] (1 responses)
These all came in reply to madscientist:
> Worrying about the FSF relicensing GCC is not the problem; I don't think any serious person thinks that the FSF will publish a GPLvN which undermines free software. The problem is actually the opposite: once they start accepting code that is not copyright FSF, now you can NO LONGER change the license to GPLv4+ if you wanted to without getting permissions from all copyright holders. And even if you assume good faith by all contributors, once the first GCC contributor dies or disappears you're screwed unless you want to throw out all their code and rewrite it from scratch. This is not theoretical, it has actually happened in some projects.
My say on this is, even without copyright assignment, the FSF can relicense GCC to GPLv4+. This may be, formally, not a very straight forward process, but can be done.
I think you (and others) are right when saying this is not automatically done, because you are given the option to choose between GPLv3 or any later version. But "any later version" is not a license on itself, and you have to actually choose a real license.
But the FSF has this special power of creating a new license. So if GPLv4 was created, and it contained a provision such as (imprecise wording follows, but you get the point):
"If you received this work under a 'GPLv3 or later' clause, you may redistribute this work under a 'GPLv4 or later clause'"
Note this is not the same as choosing GPLv4+ as a subset of GPLv3+. You'd be choosing to comply with GPLv4 only, which is valid as long as it exists. And GPLv4 is granting you permission to relicense as GPLv4+
So the FSF can grant itself (and anyone really) the permission to relicense as they wish to, as long as it is published in GPLv4. I am not saying this as a bad thing, I think if you want to protect your code against future unforeseen loopholes in your license of choice..., you have to trust somebody
Posted Jun 3, 2021 22:12 UTC (Thu)
by Wol (subscriber, #4433)
[Link]
Actually, it's very simple ...
> I think you (and others) are right when saying this is not automatically done, because you are given the option to choose between GPLv3 or any later version. But "any later version" is not a license on itself, and you have to actually choose a real license.
Notice that NONE of the different GPLs themselves contain the wording "any later version". The accompanying blurb suggests you use that wording - but that goes into the GRANT of licence, the COPYING file.
> But the FSF has this special power of creating a new license. So if GPLv4 was created, and it contained a provision such as (imprecise wording follows, but you get the point):
> "If you received this work under a 'GPLv3 or later' clause, you may redistribute this work under a 'GPLv4 or later clause'"
The GPL1, GPL2, LGPL2.1, and GPL3 don't contain this wording, so I would be extremely surprised if GPL4 contained it. And it would be extremely divisive, because it would forbid GPLvX-only, like Linux is GPL2-only.
But ANYBODY could easily convert "GPL3+" to "GPL4+". You're reducing the list of available licences to a subset of the original, and all you need to do that is to make a copyrightable change to GCC, which gives you the right to change the COPYING file, and you can then change GPL3+ to GPL4+ there. Or you could change it to 3-only, or 4-only, or whatever you like so long as it's a subset of the original.
But if you do that, don't expect upstream to accept your changes unless they agree with it.
And a word of warning - if you try and slip such a change in un-noticed, either (a) your changes will be stripped out of upstream, or even worse (for you), (b) it's quite possible that upstream could go to a Judge and say "you tricked us into accepting it but it's against our licence policies, please will you relicence it to our standard"! If someone pulled that stunt on me, I'd certainly be prepared to try that if I could afford it!
Cheers,
Posted Jun 3, 2021 19:15 UTC (Thu)
by ldearquer (guest, #137451)
[Link]
Posted Jun 3, 2021 10:59 UTC (Thu)
by kpfleming (subscriber, #23250)
[Link]
Posted Jun 5, 2021 10:18 UTC (Sat)
by nim-nim (subscriber, #34454)
[Link] (8 responses)
In copyright law a license only applies to direct A to B relations, there is no such thing as A to B to C chain, the license is a property of the A to B (or B to C) transaction not a property of the software being licensed.
To create an A to B to C chain A needs to authorize (license) B to emit a new license to C, and there is no legal requirement or default setting that B to C has to be identical to A to B.
When you “buy” a license to use closed software the seller is selling you one use license among a stock he received from copyright owners, selling you this license diminishes his stock he does not get to sell the same license to someone else. That’s why in that case the original license moves from buyer to seller unchanged.
Copyleft is different, B is retaining the software and his own license to use and modify the software, you are not getting the license A gave to B, you are getting a *new* *different* license A authorized (and required) B to emit in his own name.
Posted Jun 5, 2021 10:34 UTC (Sat)
by nim-nim (subscriber, #34454)
[Link] (7 responses)
1. emit a license to use and modify his software to B, with one set of conditions attached to B’s use of the software, and also
2. emit a license to B to emit a license to use and modify the same software to C under a different set of conditions,
3. conditioning B’s license to emit a license to C to the planting of 5 trees
Posted Jun 5, 2021 12:30 UTC (Sat)
by Wol (subscriber, #4433)
[Link] (6 responses)
A emits a licence to B that says GPL2+.
B uses GPL4 to give a copy to C.
B emits a NEW licence FROM A that SAYS GPL4.
That's weird! The only licences that A actually handed out are GPL2+, but NONE of the licences handed out on A's behalf are GPL2+ ???
Plus, of course, if B gives an UNmodified copy to C, then C is in possession of the COPYING file that contains proof of A's original grant of GPL2+! So you're saying that C only has a GPL4 licence, despite being in possession of a (valid) document that tells him he has a GPL2+ licence?
As I keep on saying (although I guess I might have got the wording wrong), you need to think about the GRANT of licence, and I'll rename it, the CONDITIONS of licence, separately.
So should the COPYING file be considered the licence itself, and each individual version of the GPL is a set of optional conditions? So when the GPL (any version) tells you to pass the licence on, they are telling you to pass the COPYING file on ...? that would make MUCH more sense. And if, by "licence", we mean the terms set down by the copyright owner, then this is very much the COPYING file and not the GPL text.
Of course, this still doesn't address farnz's concerns that two versions of GPL might require passing on different items, so it is - in practice - impossible for someone receiving under one version to pass on under a different version.
Cheers,
Posted Jun 5, 2021 21:03 UTC (Sat)
by nim-nim (subscriber, #34454)
[Link]
B is granted software under the GPL2 “or later”. That authorizes B to avail himself of “or any later version” of the GPL, and each of those versions separately authorizes him to emit new licenses.
That means it is B’s choice to avail himself of all or just some versions of the GPL or later range.
If B does not avail himself of at least one version in the range he has no permission to use and distribute the software → B goes to jail.
If B avails himself of some specific GPL versions only, he can only emit those specific versions to others (B is not the copyright holder who can emit any license he wants unconditionally).
IMHO, there is a legal hole in the current GPL, when stating
> Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License
It should state either that the recipient can also avail himself of future GPL versions if you were given this possibility, or at least allow you to pass this possibility if you were given it.
So right now passing GPL “or later” to others requires you to comply with the conditions of all the GPL versions in the “or later” range, and it is dubious if you’re allowed to pass versions not written yet to others.
The root problem is that a license is a set of benefits and obligations. The FSF could not mandate the use of the most recent GPL (first, some people disagreed with the GPLv3, and second, the most recent GPL today, is not the most recent GPL tomorrow, and it would be quite illegal to mandate today obligations not defined yet).
Therefore, it had to make the use of a “later” version an optional benefit (the law allows offering benefits not defined yet).
However, it seems to me all the focus on keeping or later optional prevented ironing out or later propagation. Not a problems with a understanding judge but all judges are not understanding.
Anyway, you want licensing to be regular and symmetric, and repeatable. But licensing does not work that way. Licensing was invented by broken kings to finance their armies and palaces. It was very clear for those kings they did not want to make others kings in their stead, that any permission (license) they gave was very transient and would extinguish itself fast, forcing beneficiaries to beg for new licenses after a while (financing new armies and palaces).
The legal licensing framework is designed to be asymmetric, transient and non repeatable. The GPL has to work very hard against it to achieve its objectives.
Posted Jun 5, 2021 21:12 UTC (Sat)
by matthias (subscriber, #94967)
[Link] (4 responses)
That actually works, if you see GPL2+ as a set of licenses. Thus A handed out licenses GPL2, GPL3, GPL4, ... all at the same time.
> Plus, of course, if B gives an UNmodified copy to C, then C is in possession of the COPYING file that contains proof of A's original grant of GPL2+! So you're saying that > C only has a GPL4 licence, despite being in possession of a (valid) document that tells him he has a GPL2+ licence?
Let's just assume for a moment that B distributes an unmodified copy of the source together with a modified copy of the COPYING file that reflects that B distributes using GPL4 (and not GPL2+). If B really wants to restrict to GPL4 this would be the only sensible thing to do. And I hope we at least agree that the COPYING file is not part of the program's source code, even if it lives in the same folder. Whether this is legal has to be determined by the lincese terms of GPL4 (which we unfortunately do not know at the moment). So let us have a look at the text of GPL3 instead. And actually this example should work for switching from GPL2+ to GPL3 as well.
I already cited the relevant part elsewhere in the thread:
So we should keep intact notices that say that this license (GPL3) applies to the code. I would say B complies with this phrase when distributing with a modified COPYING file that states GPL3.
> So when the GPL (any version) tells you to pass the licence on, they are telling you to pass the COPYING file on ...?
The GPL (version N) nowhere says to pass the license (or all the licenses) the program was received under on. It only says to keep all notices that GPL version N applies to the code. The phrase "this license" in section 4 of GPL3 refers to GPL3, not anything else. If you remove notices referring to other licenses (or other versions of the GPL which are in fact other licenses), this is no violation of the terms of GPL version N. And only those terms matter if you distribute exclusively under the terms of GPL version N.
> Of course, this still doesn't address farnz's concerns that two versions of GPL might require passing on different items, so it is - in practice - impossible for someone receiving under one version to pass on under a different version.
If you just see it as a set of licenses, this is not a problem. If it is not possible to distribute under the intersection of the terms of all versions, you can only distribute under some subset that has no conflict.
And of course this is all very theoretical. If C redistributes under GPL2+ who would sue? B cannot, because B does not have copyright. And A will not, as A intended the source to be distributed under GPL2+.
Posted Jun 5, 2021 23:15 UTC (Sat)
by Wol (subscriber, #4433)
[Link] (3 responses)
And actually, I think this whole problem is because we have all been arguing about "what is this elephant thing" while we've all been blindfoldedly feeling a camelopard ...
What something IS, and what it CALLS ITSELF, are not necessarily the same thing!
In Anglo-Saxon law, THERE IS NO SUCH THING AS A LICENCE. All we have is a contract, which is "a meeting of minds between two (or more) persons".
Now what we think of as a contract is usually a *mutual agreement*, but there is also "unilateral offer" - commonly called a licence or "offer to treat". If I walk into a shop and see "Linux Today" with £6 price sticker, it's a licence that says "if you give the shop keeper six quid, you can walk out the shop with me". (If I offered the shop-keeper a fiver, and he said "yes", then that's now a mutually negotiated agreement :-)
In this case, the licence IS the contents of the COPYING file, it IS "GPL2+" or whatever. In this interpretation, the GPL2 (or 3, or 4) can NOT be a licence, because it is not a contract. It's a "list of terms pursuant to a contract".
So if A licences "the work" (*his* work) to B with a GPL2+ licence, then that means that B can choose to comply with the list of terms that is the GPL2, or the list of terms that is the GPL3, or the GPL4, etc etc. But because the LICENCE A GAVE was GPL2+, that means that when B gives a copy of "the work" to C, then C *must* get GPL2+. Because in order for there to be a meeting of minds, well A gave a GPL2+ licence therefore if C only gets GPL2 that is NOT a meeting of minds therefore there is no contract therefore there is no licence!
It all hinges on the LEGAL meaning of the term "licence", and imho the GPLv2 (or 3, or 4 ...) IS not, and CAN NOT legally be a contract/licence. It is a list of terms persuant to a contract.
Given that the law (and seeing that the GPL any extant version says that any new licence must come from the original licensor) requires a meeting of minds, I fail to see how the actions of B can change that licence. Bear in mind in this interpretation the GPL (any version) is not itself the legal licence, the requirement that you must pass on the licence clearly does not mean you pass on the terms of the version you used. So you have to pass on the version that the copyright holder gave you, which is GPL2+.
(That still doesn't fix the problem that complying with one version of the GPL may not give your downstream what they need to comply with a different version :-)
Cheers,
Posted Jun 6, 2021 5:48 UTC (Sun)
by matthias (subscriber, #94967)
[Link] (2 responses)
The license from A to C is not changed but newly created when B passes on the software. If B chooses to distribute a GPL2+ source under GPL3 then the terms of GPL3 apply. And these terms state that the original licensor automatically licenses the new copy under GPL3. Section 10 of GPL3 says:
> Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License.
This License again refers to the GPL3, not anything else. The license granted from A to C does not need to be equal to the license granted from A to B. A hypothetical license foo can state that whenever the source is passed on to C, then C gets a license of type bar. The license GPL2+ lets B choose whether the source is passed under GPL2, GPL3, GPL4, or ... If B chooses to distribute under GPL3, then the license terms specify that the newly emitted license from A to C has to be of type GPL3. If B chooses to distribute under GPL2, then this new license will be of type GPL2. And if B chooses to distribute under GPL2+ (which is possible, as long as each GPLn allows to distribute under GPLn), then C will get a shiny new license of type GPLn for any n>=2 from A.
> Bear in mind in this interpretation the GPL (any version) is not itself the legal licence, the requirement that you must pass on the licence clearly does not mean you pass on the terms of the version you used. So you have to pass on the version that the copyright holder gave you, which is GPL2+.
If the GPL would be interpreted in that way, then mixing GPL2+ code with GPL3 code would be illegal. The license from GPL2+ would require to pass on GPL2+ for the combined code, which obviously is not possible for the parts of the code under GPL3. Or do you want to tell me that the phrase "this license" does mean a very different thing in Section 5 of the GPL than in Section 4 and Section 10?
Posted Jun 6, 2021 15:34 UTC (Sun)
by Wol (subscriber, #4433)
[Link] (1 responses)
Actually, yes I do ... because, from an anglo-saxon viewpoint, the GPLv2, or GPLv3, (or any explicit text for any version), is not legally a licence! The actual, legal, licence (or rather, in English law I believe it is called an "offer to treat") is the contents of the COPYING file - what the copyright holder has offered!
And there's no problem mixing GPL2+ with GPL3 code, because what you are passing on is the copyright holder's original offer - after all, all extant versions of the GPL text say the licence comes from the copyright holder!
And your interpretation is actually a serious hindrance to forking - or even shared development! Because if every time the code is passed on, it crystallizes down to ONE PARTICULAR VERSION of the GPL, it's only got to be passed round a couple of times and you'll be mixing GPL2 code with GPL3 code with LGPL2.1 code ... if any downloading deletes the "plus" nature of the copyright grant, you've basically trashed the ability to do shared development of any "plus" project!
But if you say that the licence is what the copyright holder ORIGINALLY INTENDED (and that's the intuitive understanding, anyway), then all these problems go away. It's just hard to get your head round the fact that a document that calls itself a licence, isn't. It's just a document detailing a set of terms and conditions of a contract. Which after all is true of any contract. The signed piece of paper we call a contract, isn't. It's just the piece of paper which documents the "meeting of minds". It is well established in England that a contract can just be a handshake. But you need that document to make it clear what you shook over.
Cheers,
Posted Jun 6, 2021 15:43 UTC (Sun)
by Wol (subscriber, #4433)
[Link]
Only when the copyright holder makes clear the legal link between the project and those documents do you have a licence.
The licence is not the text of the GPL. It is the copyright holder's statement linking it to the project. And note that the FSF's guidance tells the copyright holder they have to do just that, because without that, the plain text of the GPL is just random garbage as far as the project is concerned.
Cheers,
Posted Jun 25, 2021 14:34 UTC (Fri)
by immibis (subscriber, #105511)
[Link]
Step 1. You receive some code under "GPLv3 or later"
That person has no permission to perform step 5, unless specific parts of your program say so. They received the code under GPLv5.72 and they have no right to use it under some other arbitrary license. Unless you left in the header that says "this file may be used under GPLv3 or later" - because that would give them permission.
They may hunt down the original "GPLv3 or later" copy and use that copy. Or, if they have proof that the *exact* code was released under "GPLv3 or later", they may copy-paste it from your program and nobody will ever know (don't ask me if it's legal). But they certainly can't assume it's "GPLv3 or later" just because it was in a GPLv5.72 program, unless it actually says so.
In step 3, you do have permission to delete the header that says "this file may be used under GPLv3 or later" and replace it with one that says "this file may be used under GPLv5.72" because that is valid according to GPLv5.72, which is the license you have chosen to obey for that file.
Posted Jun 2, 2021 8:10 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (1 responses)
NO IT CAN'T.
The *Copyright Holder* has placed it under "GPL3+". ONLY THEY CAN CHANGE IT.
You as distributor can NOT distribute under any "plus" licence because there is no such thing. You can distribute under GPL3, or this new hypothetical GPL4 or whatever, but you have to *choose* a licence that exists.
And the choice that YOU make has no binding on the people that you give it to - if the copyright holder said "GPL3+", the fact that you chose GPL4 does not force that choice onto your recipients.
That said, providing you're mixing compatible licences, this is rarely a problem. Only when you have things like the aforementioned GPL2/GPL3+ mess-up does it matter.
Cheers,
Posted Jun 25, 2021 14:39 UTC (Fri)
by immibis (subscriber, #105511)
[Link]
Posted Jun 1, 2021 23:01 UTC (Tue)
by rgmoore (✭ supporter ✭, #75)
[Link] (1 responses)
I suspect this will not wind up making much difference in practice. Once new contributions are required to be under the new license, it will quickly become so painful to figure out what license any particular piece of code is under that nobody will bother; they'll just go back to the final release under the old license. I assume this is the underlying reason why GCC is willing to give up copyright assignment; it just isn't as important in practice as people believed it would be. It's more important to lower the barrier to entry for new contributors.
Posted Jun 1, 2021 23:28 UTC (Tue)
by pm215 (subscriber, #98099)
[Link]
One effect of dropping the FSF copyright assignment is that it's no longer quite so predictable what a future decision will be -- I'm pretty sure the FSF view would always be "full relicense to newest version of the GPL", but the GCC project might make a different decision depending on whatever the circumstances in this hypothetical future are.
Posted Jun 2, 2021 1:31 UTC (Wed)
by mjg59 (subscriber, #23239)
[Link]
Posted Jun 2, 2021 12:58 UTC (Wed)
by wtarreau (subscriber, #51152)
[Link] (6 responses)
And actually that's the main problem with all these restrictive licenses: most patch authors really do not care about the license of their patch, provided the patch gets merged. Regardless, it's applied to a file under a subset of opensource licenses, and from this point it automatically excludes other software pieces from being fixed, very often without the original author even being aware of it.
The FSF did something really wrong with GPLv3 in that they didn't offer provisions for being compatible with at least the previous version. This would have left options for other project developers to observe and wait till its release before marking themselves as GPLv2-only, and would have allowed those on GPLv2-only to backport fixes from GPLv3 until GPLv4 appeared, leaving enough transition time to address all this. But instead they managed to make new GPL incompatible with older one and preventing one from applying a fix that was written for a file that was never touched since it was adopted, this is a total non-sense.
To avoid all this mess which blocks users down the chain (funny when you think about the original goal of the GPL), I now tend to license most of my devs under MIT which is way more permissive and allows fixes and backports to flow downstream. For large projects where GPL remains relevant to protect the final user against unpublished changes in the middle of the chain, I find GPLv2+ more protective of the final user's interests than v3+.
Posted Jun 2, 2021 13:06 UTC (Wed)
by pizza (subscriber, #46)
[Link] (5 responses)
Given that the entire raison d'etre behind GPLv3 was to fix weaknesses in GPLv2, what would be the point in a GPLv3 if you could just ignore its changes and use GPLv3 stuff under GPLv2 terms?
Posted Jun 2, 2021 13:41 UTC (Wed)
by wtarreau (subscriber, #51152)
[Link] (4 responses)
Posted Jun 2, 2021 17:03 UTC (Wed)
by rgmoore (✭ supporter ✭, #75)
[Link] (3 responses)
The point of the GPL v3 was to add a bunch of new terms to the license that FSF thought weren't adequately dealt with by GPL v2. The biggest ones were an explicit patent license and the anti-Tivoization clause. If those things matter to you, you probably need to use GPL v3 rather than GPL v2.
Posted Jun 2, 2021 18:45 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (2 responses)
In the old v2 days, that meant you distributed source and binary together on CD or tape, or you forced the user to download everything in a single bundle, if you didn't want to trigger that requirement. Under v2, if you had source and binary as two separate downloads, it triggered the requirement to keep the source available for three years.
Under v3, if you make source and binary available as separate downloads, and the user doesn't bother downloading the source, it's their lookout if you take the site down.
There's another such bugfix that I know of but can't remember ...
Cheers,
Posted Jun 3, 2021 21:00 UTC (Thu)
by pbonzini (subscriber, #60935)
[Link] (1 responses)
Posted Jun 3, 2021 22:16 UTC (Thu)
by Wol (subscriber, #4433)
[Link]
But yes, that is a convenient change.
Cheers,
Posted Jun 1, 2021 22:46 UTC (Tue)
by Wol (subscriber, #4433)
[Link] (40 responses)
Apart from the law saying they are COMPLETELY DIFFERENT, of course ...
Simple example: There's a bunch of code licenced GPL3+. I distribute it to my friends under GPL4. They distribute it to their friends under GPL3. ALL PERFECTLY LEGAL.
There's a different bunch of code, licenced GPL4+. I distribute it to my friends under GPL4. They distribute it to their friends under GPL3. THAT IS ILLEGAL.
NO FREE SOFTWARE LICENCE ALLOWS YOU TO RELICENCE SOMEONE ELSE'S CODE.
(In my first example, I CANNOT change the GPL3+ licence, which is why my friends can use the GPL3 licence. In the second example, GPL3 is not an option, not for me, not for my friends.)
Until you get your head around that fact you will continue making elementary legal blunders like this, unfortunately this meme is so embedded in the free/open software mentality that it's unlikely ever to go away. And for the most part, the implications are irrelevant, but if you want to do things right, you have to get things right from the ground up - you can't build a working superstructure on rotten foundations.
Cheers,
Posted Jun 2, 2021 5:05 UTC (Wed)
by matthias (subscriber, #94967)
[Link] (39 responses)
No, this is not legal. You got the code under a licence that explicitly allows you to give licenses under GPL3 or any later version. Thus you are allowed to distribute under GPL4. But your friends only got the code with a license allowing to distribute under GPL4. Thus they are not allowed to distribute under GPL3. If they want to distribute under GPL3 they first need to obtain a license allowing them to do so. Of course this is usually not a problem, as there will be enough GPL3+ copies flowing around. And if your friends only distribute code that was not modified by you, then (a) you cannot sue as your copyright is not involved and (b) it will be close to impossible to prove that they violated a license, because there are of course GPL3+ copies of the same code freely available.
Not all licenses to the same code have to be the same. What you can do with a piece of code is not determined by the license the original copyright owner gives to some random person, but the very license you obtained the code under. In the free software world these licenses are usually the same, but they do not have to.
> In my first example, I CANNOT change the GPL3+ licence, ...
What you cannot do is change the license terms you got the code under. So your copy of the code will still be GPL3+. But you can choose to distribute copies under GPL4 because the licence allows this. And the persons who get code from you under GPL4 are not allowed to change back to GPL3, because their license (obtained from you) does not allow this.
Cheers,
Posted Jun 2, 2021 5:47 UTC (Wed)
by madscientist (subscriber, #16861)
[Link] (7 responses)
That is not correct. What you cannot do is change the license terms in the code, full stop, *regardless* of where you got it from (unless the license itself allows this, which the GPL doesn't).
If you get code under a dual GPL/Apache license and you decide to distribute it following the terms of the GPL, the person who you distribute it to still has the exact same license on their copy of the code that you had. You can't change that unless you're the sole copyright owner for the code. The recipient can turn around and distribute it to someone else under the Apache license and that's perfectly fine.
Posted Jun 2, 2021 6:11 UTC (Wed)
by matthias (subscriber, #94967)
[Link] (6 responses)
What do you mean with changing license terms in the code? The license is not in the code but is distributed together with the code. The suggested phrasing of the FSF for GPL3+ licensed programs is:
>> This program is free software: you can redistribute it and/or modify
This is part of the license I get. Just adding a copy of the GPL to the code folder does not assign any license to the code. It clearly states that I may distribute under any later version. Thus it is perfectly fine for me to distribute it under GPL4, exchange 3 by 4 in the above text and add a copy of GPL4 to the code. The text in the license (above) explicitly allows me to do this.
Going further, the suggested phrasing of the FSF also implies the the license terms are not in the code:
Posted Jun 2, 2021 8:00 UTC (Wed)
by nim-nim (subscriber, #34454)
[Link] (2 responses)
And, that is not easily revertible (downstream actors in the supply chain are stuck with your subsetting even if they don’t agree with it).
If you do not change anything downstream actors are also legally bound by your subsetting *but* can bypass it if they manage to source from higher in the supply chain.
Enlarging the licensing range is never legal unless you are the copyright holder of all the parts for which the range will be increased.
Posted Jun 2, 2021 8:21 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (1 responses)
REDUCING the licencing range is never legal/effective unless you are *A* copyright holder. In your scenario, you are not.
Cheers,
Posted Jun 2, 2021 18:50 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
Cheers,
Posted Jun 2, 2021 8:19 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (2 responses)
NO IT DOES NOT. This looks like trolling to me!
The licence does NOT allow you to change the terms of the licence. The GRANT OF LICENCE allows you to distribute under GPL4, but if you are not the copyright holder you cannot change the LICENCE to GPL4+
The licence, and the grant of licence, are two different things!
Cheers,
Posted Jun 2, 2021 13:13 UTC (Wed)
by mathstuf (subscriber, #69389)
[Link] (1 responses)
Posted Jun 2, 2021 16:28 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
You need to separate the licence itself, GPL3, or GPL4 - but most definitely not GPL3+ because there is no such thing - from the grant of licence.
All this stuff about "any later version" goes in the COPYING file, which you have no right to change unless you yourself have modified the software and have a personal copyright interest in the software.
If I distribute UNmodifed GPL3+ software to you, using the GPL4, that means you have the COPYING file which gives you permission to distribute under GPL3.
The lawyers can argue "color of bits" till the cows come home, but the fact remains that if I give you an UNmodified copy, you are in possession of a file, WRITTEN BY THE COPYRIGHT OWNER, that gives *you* permission to copy under the GPL3.
Oh - and even if I modify the software, and distribute it under GPL4, if I leave the COPYING file saying GPL3+, then I have given you permission to copy my code under GPL3 even though I used GPL4.
Cheers,
Posted Jun 2, 2021 9:39 UTC (Wed)
by farnz (subscriber, #17727)
[Link] (13 responses)
It's worth calling out that when people say "distribute under licence X", what they mean is that they get their permission to distribute (that copyright requires) by following the terms set out in licence X.
So, when Wol says he distributes GPL3+ code to his friends under GPL4, what he means is that he takes code licenced under GPL3+, and ensures that he has permission to copy from the copyright holder by following the terms of GPL4. His friends still get the code with the GPL3+ licence, and when they distribute, they can ensure they have permission by following GPL3 terms instead, as long as Wol's compliance with GPL4 allows them to do that (e.g. if GPL4 changes the list of additional terms allowed under section 7, and Wol applies a term allowed under GPL4 but not GPL3).
The code itself remains under GPL3+ terms, even if Wol complies with GPL5 terms in his distribution of it - as long as you comply with the licence you have to it, Wol's licence terms don't matter. This can get tricky, because outside the Free Software world, Wol's licence may allow him to distribute code to you as long as your licence to distribute the code Wol gave you is restrictive.
Posted Jun 2, 2021 12:45 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (12 responses)
Bear in mind, I can ONLY apply extra GPL4 terms IF I MYSELF AM A COPYRIGHT HOLDER!
So if all I am doing is copying as allowed by the GPL4, I can NOT change the terms such that my recipients are prevented from copying as per GPL3.
Cheers,
Posted Jun 2, 2021 13:53 UTC (Wed)
by farnz (subscriber, #17727)
[Link] (11 responses)
But the copyright holder has already said you can use GPL3, or a future GPL4. We don't know what the GPL4 looks like (because it doesn't exist yet), and it's entirely possible that clauses will change such that you can distribute under GPL4 and leave the recipient with something they can distribute under GPL4, but not GPL3 because of the changes in clauses (e.g. because a change to section 6 allows you to distribute object code under GPL4 in a way that GPL3 forbids, and the recipient does not take up their option to grab source code for GPL3 section 6 compliance within the GPL4 rules on that).
Indeed, you can get into a similar already with a GPL2+ program; if you use your rights under GPL3 section 6e to let someone torrent a binary you built from source stored at fsf.org, and then the FSF takes the source distribution down, your recipients can no longer distribute under GPL2 terms at all (no matching source available to offer). You distributed legally under GPL3 terms, but your recipients no longer have the access they need to distribute under GPL2 or 3 terms.
Posted Jun 2, 2021 16:45 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (10 responses)
As for the FSF taking down the source, and thereby stopping you distributing the binary, I'm not sure ... so long as you distribute EXACTLY WAHT YOU RECEIVED, there is an argument that it is not your actions that "broke the licence" therefore you still have a licence under GPL3 to distribute. Someone else's actions have dropped you in it, you now need to find an alternative source for the source :-), and you can carry on distributing because you are sharing everything you have ...
At least one of the bugfixes to the GPL in version 3 was to prevent the actions of others retrospectively altering the terms of the licence as they applied to you ...
Cheers,
Posted Jun 2, 2021 19:12 UTC (Wed)
by farnz (subscriber, #17727)
[Link] (9 responses)
You can't change the terms, but you *can* (depending on the text of GPL4) make it impossible for your downstreams to redistribute under GPL3 terms even though the code is GPL3+ licensed, by using a GPL4 term that results in them not having what they need to distribute under GPL3.
And in the GPL3 language, if your source server goes down, you must cease distribution of binaries until you find an alternate source - but you've got time to restore compliance and be retroactively covered. GPL4 could change that in interesting ways, and could open up ways to distribute in compliance with GPL4 but not GPL3 (e.g. you can distribute binaries even if the source server is down permanently if you are doing so non-commercially and received them with a link to the source server).
Posted Jun 2, 2021 19:47 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (8 responses)
Yes, but you're still missing my point - if I'm just copying and don't have copyright in the work, I can't add GPL4 terms. I have NO RIGHT to do so ... and I can't see any way of such a change being legal outwith a change in the law ...
Cheers,
Posted Jun 3, 2021 8:56 UTC (Thu)
by farnz (subscriber, #17727)
[Link] (5 responses)
No, I get your point - the original copyright holder has added GPL4 terms by saying that it's licenced under GPL3+ terms, where 4 is one licence the original copyright holders chose via the "or any later version" language.
Because I can't change the terms, the people I distribute to still get the code under GPL3+ terms, even though I complied with GPL4 terms to get the code to them. However, it is possible that I pass on the code as-is (complete with GPL3+ terms) in a way that leaves the recipients able to comply with GPL4 for further distribution but not GPL3. The code is still GPL3+, and if another party gets involved to share the code, then they can use GPL3 terms, but they can't redistribute what they got from me under GPL3 terms because they have no way of meeting those terms.
This is more obvious with code dual-licenced under the original 4 clause BSD or GPLv2; if I comply with the GPLv2, the advertising clause doesn't kick in (because that's not a GPL term), but downstream recipients can add the required advertising and comply with the BSD terms instead of GPL. If, however, I distribute binaries only and comply with the 4 clause BSD licence, while you have the right to distribute under GPLv2 or 4-clause BSD licences, you can't exercise your GPLv2 rights without further intervention because you don't have the corresponding source to offer.
Posted Jun 3, 2021 22:20 UTC (Thu)
by Wol (subscriber, #4433)
[Link] (4 responses)
In other words, my ability to distribute has been compromised by the action of others ... imho (as you see from my comments elsewhere) this is a bug, but there you go ...
Cheers,
Posted Jun 4, 2021 8:37 UTC (Fri)
by farnz (subscriber, #17727)
[Link] (3 responses)
The interesting thing is that it's a bug that comes out of having multiple licences. Each of the individual licences the copyright holder offers you is set up such that if you have received the code under the licence, then you are in a position to distribute under that self-same licence (and is thus "bug-free" in this sense. The fun only comes in when licences with differing terms are on offer, and your upstream distributor can choose which terms to comply with; they can choose terms such that you don't have what you need to comply with alternative terms.
And, of course, a practical lawyer will not let you change your choice of terms if you can at all avoid it - if I gave you a binary under 4-clause BSD or GPLv2, and you got the "corresponding source" from elsewhere, how do you demonstrate that the source you have corresponds to the binary you have? At least if you got corresponding source from me, you have a legal argument around provenance and good faith action that will protect you from the worst consequences of a mismatch; if you get them via separate routes, then the consequences of a mismatch are all on you.
Posted Jun 4, 2021 16:08 UTC (Fri)
by nim-nim (subscriber, #34454)
[Link] (2 responses)
If you distribute things under X AND Y the clauses of X AND the clauses of Y apply simultaneously.
If you distribute things under X OR Y (as it the case with GPLx OR later), the clauses of X are totally independent from the clauses of Y, choosing one MAY invalidate the other, and there is NO reason for both to survive a distribution step.
Which is why X AND Y is a single license and X OR Y are two independent documents.
If you want X OR Y to survive distribution, you need a SEPARATE license that basically says “distribution of this material is subject to X OR Y with the aditionnal restriction that further distribution must also be subject to X o Y”.
Which would be tricky to do with the GPL because of its “no further restriction” clause.
Posted Jun 4, 2021 16:16 UTC (Fri)
by nim-nim (subscriber, #34454)
[Link]
Which is why, X OR Y does not survive distribution and it is likely pointless to try to make it survive distribution.
Posted Jun 4, 2021 16:58 UTC (Fri)
by rgmoore (✭ supporter ✭, #75)
[Link]
As long as you are the original copyright holder, you are free to create whatever license you choose for your own software. You are, as you say above, effectively creating a new license, and that means you can add whatever terms you like. The problem with the "no further restriction" clause will only matter if you try to combine your code with someone else's code that's only under the GPL.
Posted Jun 3, 2021 8:58 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (1 responses)
If you distribute under conditions sufficient to satisfy GPL4, but insufficient to satisfy GPL3, you are in the clear.
Your downstream recipients can not force you to also satisfy GPL3. If distributing themselves under the GPL3 requires something you did not pass on (because GPL4 does not require it) they are also practically bound by GPL4.
That is why it is very dubious to argue you can use GPL3 “because it was originally released as GPL3+” without sourcing from someone that actually distributed as GPL3+, and most lawyers will have none of it. They know how easily things can go wrong when switching licensing. Also, while free software licenses will make sure to be transitive, there is no such transitiveness commitment with other free software licenses (as BSD-ists know very well).
Subsetting from the range of licenses allowed by your provider is always safe (for free software licenses that ensure transitiveness). Enlarging requires legal analysis.
Posted Jun 3, 2021 9:17 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link]
Also , depending on the amount of differences between GPL3 and a future GPL4, it would not necessarily be unethical to change licensing documents to GPL4+ or GPL4 only if you know your distribution mode will never comply with the GPL3 (without any other change). Downstream users always have the choice to source higher in the delivery chain if they don’t like your choices.
International IP law is enough of a mess, simple and unambiguous is better than license tinkering.
Posted Jun 2, 2021 19:40 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (16 responses)
Except that's called sub-licencing. And the GPL does not permit this.
Let's quote the GPL pre-amble. Okay, it's not black-letter law, but Judges won't look kindly on you breaking it ...
> For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
You've just FAILED to pass on the right that you received - to distribute under GPLv3. NOT ALLOWED.
And this is actually made explicit in section 10
> Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
YOUR downstream receives their licence from UPSTREAM, and NOT from you (unless, of course, you are upstream because it's your copyright). Which means if you try to change the licence from GPL3+ to GPL4+ well, that's not the licence that applies downstream ...
Cheers,
Posted Jun 3, 2021 9:44 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (15 responses)
Except that this specific paragraph means, that someone receiving software under GPL3 only, automatically receives his GPL3 license from upstream *not* any other license.
The GPL3 does not ensure that the recipient of software originally licensed under MIT or GPL automatically gets its MIT license thanks to the GPL3 (that’s something the MIT license has to take care by itself).
If the FSF, for whatever reason, ignoring its past pledges, ever released a GPLx version, that did not contain this provision (and if the legal system let it pass notwithstanding estoppel) it would be perfectly legal to distribute GPL3+ software under this GPLx and the recipients of this distribution would receive *no* license from upstream as part of this distribution.
And because people have a problem understanding concepts they strongly wish not to exist, a less controversial event might be the disbanding of the FSF in favor of a Software Liberty Institute (SLI), with the last GPL4 version published by the FSF changed to
> The Software Liberty Institute may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
> Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Software Liberty Institute. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Software Liberty Institute.
And people receiving software under the GPL4+ would have no authorization to use GPL6 terms, should the FSF change its mind and publish a GPL6, without the SLI publishing a GPL5 first that restored "or later" understanding to apply to GPL versions published by the FSF.
Posted Jun 3, 2021 22:27 UTC (Thu)
by Wol (subscriber, #4433)
[Link] (12 responses)
> Except that this specific paragraph means, that someone receiving software under GPL3 only, automatically receives his GPL3 license from upstream *not* any other license.
Except that the licence grant by upstream was "GPL3+". So you are NOT passing on what you received. NOT ALLOWED.
And the *evidence* of that grant is the COPYING file, which still says GPL3+. (And you can't edit the COPYING file, because then you are actively taking away your downstream's rights - SERIOUSLY not allowed!!!)
Cheers,
Posted Jun 4, 2021 6:04 UTC (Fri)
by matthias (subscriber, #94967)
[Link] (11 responses)
You are only looking at the preamble and not the actual text of the GPL. If the preamble would be all that matters, there would be no need for the rest of the license. Actually, the GPL has a section which very specifically says what you have to do if you provide verbatim copies and which clarifies what is meant with the pass on of the rights you have received mentioned in the preamble:
> You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
So you have to keep intact all notices that the GPLv3 applies to the code. No need to keep intact notices that other licenses apply (e.g. GPL2 or Apache if dual licensed).
Do not read anything into the license which is not there. There are projects that dual license under GPL and a proprietary license that allows binary distribution without source. Do you want to say that a holder of such a proprietary license must pass on the right to distribute binary without the source if (s)he chooses to distribute the soure? Just because (s)he has received the right. This would actually be illegal.
The phrasing "you must pass on to the recipients the same freedoms that you received" refers to the freedoms granted by the license (GPLv3) and not to any freedoms received by any other means (e.g. a grant of an additional license). As you see with the example of the proprietary license this would otherwise lead to quite contradictonary results.
Cheers,
Posted Jun 7, 2021 16:18 UTC (Mon)
by Wol (subscriber, #4433)
[Link] (10 responses)
Except, as you may have noticed, I have changed my mind with respect to whether the GPL is a licence. *Legally*, it ISN'T. It is a list of terms that the distributor must comply with.
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 can't sue, he's not got skin in the game (no copyrights).
And actually, Alice can probably sue Bob for faking the evidence ...
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*.
> Do not read anything into the license which is not there. There are projects that dual license under GPL and a proprietary license that allows binary distribution without source. Do you want to say that a holder of such a proprietary license must pass on the right to distribute binary without the source if (s)he chooses to distribute the soure? Just because (s)he has received the right. This would actually be illegal.
And here, you're reading stuff into the licence that doesn't exist. Let's take Qt. I have a GPL licence to the source, and a licence that allows me to distribute binaries. Thing is, they are two SEPARATE licences. Trolltech have granted ANYONE a GPL licence. They have granted ME a binary licence. If I avail myself of the GPL licence, it doesn't force me to pass on any other licences I may have.
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.
Remember, courts require *evidence*. The *only* evidence is Alice's statement that the licence is GPL2*PLUS*.
Cheers,
Posted Jun 9, 2021 7:44 UTC (Wed)
by matthias (subscriber, #94967)
[Link] (9 responses)
I noticed this and I agree with this.
> The LICENCE ITSELF is the statement in the COPYING file, which says "GPL2+", or "GPL3+" or whatever.
Actually, the license itself is an abstract thing that is described in the COPYING file.
> The LICENCE ITSELF is the statement in the COPYING file, which says "GPL2+", or "GPL3+" or whatever.
This is fine. But is the license granted to Carol identical to the license granted to Bob?
> 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.
> 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. 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. 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 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.
> 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 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).
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. 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.
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.
Best,
Posted Jun 9, 2021 11:58 UTC (Wed)
by james (subscriber, #1325)
[Link] (3 responses)
Or if Alice, as copyright holder, published:
Posted Jun 9, 2021 16:42 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (1 responses)
This is exactly my point. If Matthias agrees that the GPL text is not legally a licence, when it requires that the licence be passed on, it CAN NOT be referring to itself.
But more importantly, as I said, COURTS REQUIRE EVIDENCE. If the only evidence available is Alice's statement that she granted GPL2+, then that's what the court will agree with. And yes, Bob's thoughts don't matter, because Alice did not give him permission to speak on her behalf ...
Cheers,
Posted Jun 9, 2021 23:27 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
Cheers,
Posted Jun 9, 2021 20:50 UTC (Wed)
by matthias (subscriber, #94967)
[Link]
If it is dual licensed by MIT, then Bob has rights. The MIT license explicitly grants Bob the right to sublicense. And if Bob sublicenses to Carol according to MIT than Carol never got a license from Alice and thus cannot claim the rights under GPL. Carol only gets the GPL license from Alice if someone distributes to Carol under GPL terms, because these terms state that Alice will automatically license according to GPL terms.
Posted Jun 9, 2021 17:39 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (4 responses)
> 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.
> 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,
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,
Posted Jun 3, 2021 22:39 UTC (Thu)
by Wol (subscriber, #4433)
[Link] (1 responses)
Except the "or later" wording is nothing whatsoever to do with any currently extant GPL licence.
I know I keep on banging on about the difference between the LICENCE, and the GRANT of licence, but the GPL licence itself is the work of the FSF. The *grant* of licence is the work of the copyright holder, and the FSF merely *suggests* that the copyright holder should use that wording.
So if *I* grant you permission to use "any version of the GPL version 3 or later", that has ABSOLUTELY NOTHING to do with the GPL itself.
And the demand of the GPL itself that you pass on all the rights that you received, requires that you pass on my grant of "v3 or later". That you personally chose v4 is totally irrelevant to the fact that you must pass on the v3 permissions. (I'm assuming that the GPL4 will contain the requirement to pass on all rights, but I think that is a fundamental tenet of the GPL - any version.)
Cheers,
Posted Jun 7, 2021 6:56 UTC (Mon)
by nim-nim (subscriber, #34454)
[Link]
Excerpt from the GPL3
> Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it,
So or later is defined in the license and is controlled by the program headers, and has it has already been explained to you the text of the GPLx only controls the headers of the GPLx (or any other license defined inside the GPLx text, open ended does not work because mandating something is available under license X is subject to that other license conditions, so the best you can do is allow the use of that other license text should the recipient want to).
The GPL has this property, should you want to avail yourself of any later… means ocus pocus, the COPYRIGHT text disappears and is replaced by the text of this other license, and so are ancillary elements like headers, otherwise the whole thing would not work.
And, the current GPL forgets to state what happens to the "or later" in headers in that case, the reasonable default is that it is invalidated like the rest (if it were an exception it should have been stated as an exception).
Posted Jun 1, 2021 22:12 UTC (Tue)
by rgmoore (✭ supporter ✭, #75)
[Link] (17 responses)
Yes, they do, or at least they did until this. A copyright holder always has the right to change the license terms for their software. With projects like the Linux kernel, where the copyrights are held by thousands of different contributors, it's effectively impossible to change the license. But if contributors are required to assign their copyright to a central authority like a foundation or company, that single copyright holder has the right to change the licensing terms. That was a major point of requiring people to assign their copyright.
In this case, I think GCC has decided that isn't necessary, since they were never going to relicense under anything but a later version of the GPL. But some companies have a dual license scheme that takes full advantage of this. The company maintains all the copyrights, either by not accepting outside contributions or by requiring contributors to assign their copyrights, which allows them to release a GPL version and a proprietary version. They support Open Source software and let programmers get used to their software through the GPL version, but they can still make money by licensing their software to proprietary software projects.
Posted Jun 2, 2021 6:01 UTC (Wed)
by madscientist (subscriber, #16861)
[Link]
Oops I was thinking about the GCC steering committee but the parent was clearly talking about the FSF.
Posted Jun 3, 2021 11:13 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (15 responses)
It is *not*. A license is a one time authorization to modify/copy/use software.
The copyright holder can distribute his work under as many licenses he want to as many entity as he wants, and the licenses can contradict one another, each recipient is bond by the one-time terms of the license he was distributed software under, and no other.
The genius of the GPL is that it allows and requires recipients to emit new autorizations under the copyright holder name, provided they abide by the licensing terms (think of them as free vouchers).
In the GPLx-or-later case the new authorizations can be any set of GPL versions within this range (GPLx, GPLx+z, GPLx+z or later, GPLx+z or GPLx+y and no other).
Emitting any other kind of authorization, however, needs and explicit act of the copyright holder.
Posted Jun 3, 2021 16:00 UTC (Thu)
by james (subscriber, #1325)
[Link] (13 responses)
If the copyright holder publishes that a particular work can be copied under x license, for example by "any person obtaining a copy of this software", then a recipient of that authorization may make what use they can of that license, because it is permission from the copyright holder.
That's true even if they received the software under another license.
So I don't think
As usual, IANAL.
Posted Jun 3, 2021 17:03 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (12 responses)
>> each recipient is bond by the one-time terms of the license he was distributed software under, and no other.
> is accurate once they have received permission to use an alternative license from the copyright holder(s).
Receiving permission is exactly what a license is legal-wise. So yes you can receive a license to re-license. And you are bound by the conditions attached to the license to re-license :).
Basically, licensing is a one-time per-distribution permission, you can not avail yourself of permissions given to others, that’s why legally there is no such thing as “but it was originally licensed as X”, the only thing that counts is the license you received during your own procurement.
Posted Jun 3, 2021 17:08 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (1 responses)
Posted Jun 3, 2021 17:12 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link]
most downstream obligations when emitting new licenses.
Posted Jun 3, 2021 22:44 UTC (Thu)
by Wol (subscriber, #4433)
[Link] (8 responses)
But if the original licence grant is GPL3+, and the GPL does not give permission to relicence, then me exercising my right to choose the GPL4 does not remove my downstream's to right to choose GPL3.
Cheers,
Posted Jun 4, 2021 17:10 UTC (Fri)
by nim-nim (subscriber, #34454)
[Link] (7 responses)
Each of those *disjoint* licenses will propagate itself like a cancer, if copyleft, requiring someone that exercises one of them to pass a clone of it to the next one
Blind copy is not a neutral act for the legal system, it’s one exercise of the license, that is why the GPL bothers emitting a new grant, so no lawyer can argue the previous one was consumed by the copy.
But, the GPL3 will only propagate itself, and baring new wording not present in current GPL licenses, the GPL4 will only propagate itself too, etc.
Practically, when you are granted a set of licenses, you can choose to exercise only some of them, and those are the only ones that require you to propagate them (if they are copyleft licenses, proprietary and permissive licenses do not require propagation as-is by design).
Moreover, should you avail yourself of conditions that satisfy, say, the GPL4, but not the GPL3, you are not exercising the GPL3, and therefore you have no right to pass the GPL3 to the next recipient since the GPL3 does not authorize you to emit new GPL3 licenses unless you meet its terms.
That means that legally, in a GPL3-or-later case, should you receive something under GPL4 provisions, you can not redistribute under GPL3-or-later unless the GPL4 explicitly allows you to emit GPL3 permissions under the original author name (the or-later part works because the GPL license actually states what happens in this case).
It is actually critical legally that each license in the set stays disjoint because that’s the only thing that allows drafting licenses with different properties.
You could *theoretically* write a license that required to pass a clone of this license *and* *all* *other* *licenses* you may have been granted for a specific piece of code to the next user.
However, that is not the GPL as it is written today, and that would make a very impractical license, because those other licenses would not necessarily allow this kind of cloning in the first place, and those who do (copyleft licenses) attach conditions to the cloning, so you’d end up triggering clauses in all the other licenses you try to propagate.
And now you understand why this stuff is best left to lawyer and mixing terms from different licenses is a dangerous exercise.
Posted Jun 4, 2021 17:19 UTC (Fri)
by farnz (subscriber, #17727)
[Link] (6 responses)
The lawyers I've spoken with give different advice to you (possibly a jurisdiction difference?).
In terms of the analysis, the difference I hear is that the copyright holder is offering any third party the opportunity to accept a grant of permission directly from the copyright holder via the licence agreement on offer. As long as I have the ability to comply with the terms of the licence agreement, my permission to copy is direct from the copyright holder, and not via the person who gave me a copy.
In other words, provenance of the copy I have doesn't matter in theory, as long as I have a sufficiently complete copy to comply with all the licence terms on the copy. In practice, provenance matters because it helps demonstrate that my copy is sufficiently complete, or in the alternative, that I was an unwitting victim, not an active infringer, reducing penalties.
Posted Jun 4, 2021 18:49 UTC (Fri)
by nim-nim (subscriber, #34454)
[Link] (5 responses)
However, the only thing that *allows* and *requires* the person that gave you a copy to offer you this permission in the name of the copyright holder is the license itself.
Simply put, in the case the person that gave you a copy got its own copy by exercising the GPL4, and the GPL3 and 4 differ enough you can satisfy 4 without satisfying 3, and assuming the wording of the GPL4 is similar to the GPL3:
- this person may have no right to offer you GPL3 terms (unless the GPL4 allows him to offer GPL3 terms, and why would it that would defeat licensing hardening like the one that happened between v2 and v3). The authorization to offer you GPL3 terms in the name of the copyright holder stems from the GPL3 and the GPL3 was not exercised at the previous step
- this person has no obligation to offer you GPL3 terms (again, unless the GPL4 mandates offering GPL3 terms in that case). He may offer them or not, he did not exercise the license that obligated him to offer them
The behavior of the person that gave you a copy is 100% constrained by the license he exercised and by no other legal document.
Of course should you manage to reach a legal representative of the copyright holder he will (probably) happily offer you GPL3 terms so there is little incentive to constrain the set of licenses offered to the next recipient.
Remember, however, that there is no obligation for the original copyright holder to offer specific terms, neither to everyone nor forever, he may not like you, he may have decided since the original publication the GPL was a bad idea, that’s why the GPL3 authorizes recipients to deliver the same license in the name of the copyright holder to others regardless of what the current copyright owner opinion is.
Thus, the only way to extinguish GPLx from a GPLx-or-later case (absent changes or mixing with code under another license), is to convince the copyright holder to stop offering it, and to convince all recipients to offer it under a GPLx-or-later subset that does not contain GPLx (the copyright holder has the choice to drop all GPL versions, the recipients can only choose which versions of the or-later they want to avail themselves of).
The hypothetical case where the middle link did not satisfy enough GPL3 conditions to be allowed to offer it is a bit worrying, though I am hard pressed to imagine how anyone would be willing to offer things under the GPL3 while not complying with GPL3 conditions WRT to its own upstream. But, from a legal POW, the ability to offer is a benefit of the GPL3 and you can not avail yourself of benefits of a license without complying with it (think, authorized vendor).
You have to remember that the copyright system was designed to force recipients to ask permission from the legal representatives of the copyright owner, it does not lend itself easily to recursive license passing.
Posted Jun 7, 2021 10:17 UTC (Mon)
by farnz (subscriber, #17727)
[Link] (4 responses)
I think I see where your analysis differs from the ones I've received from lawyers in the past.
Consider a piece of code that we're sharing without modification. The copyright holder, Cheryl, has released it under a set of licences that anyone can take advantage of (4-clause BSD, GPLv2, GPLv3 or later, whatever - the key is that the licence terms on offer are on offer to anyone, not restricted to Dave); one or more of those licences permits onward copying.
Dave then chooses a licence to comply with, follows its terms (which results in a grant of permission from Cheryl to Dave under that licence), and gives Eve a copy.
Eve then wants to give me a copy. This is where I believe your analysis differs from that of the lawyers I've spoken to. In the version I've had, Eve looks at the licence terms on offer from Cheryl, selects a licence she can comply with, and can distribute to me under that licence. Eve's permission to copy is direct from Cheryl, and Dave is not involved at all - he was merely an intermediary, and is out of the picture after he's distributed to Eve.
In your analysis, Dave is the person offering permission to copy to Eve for Cheryl's code, and can thus restrict it - Eve is not getting permission directly from Cheryl to copy her code, but is getting permission from Dave who got it from Cheryl. In my jurisdiction, that sounds like quite a stretch - not least because it would mean that (for example) a store selling me a book can put extra restrictions on copying from that book without the copyright holder's consent.
Now, if Dave modifies the source, he is the copyright holder on his modifications, and can add constraints that way - but then for Dave to distribute to Eve, Dave has to ensure that it is possible for him to comply with Cheryl's licence offer while distributing her code, and Eve has to ensure that the intersection of Dave's licence offer and Cheryl's is something that she can comply with when distributing to me.
Posted Jun 7, 2021 16:56 UTC (Mon)
by Wol (subscriber, #4433)
[Link] (3 responses)
Cheers,
Posted Jun 10, 2021 18:48 UTC (Thu)
by khim (subscriber, #9252)
[Link] (2 responses)
Also: remember that FSF have already relicensed code which haven't belonged to them. I wonder how you have forgotten all about that and claim that Apache 2 is the only license which allows you to relicense code. No. It's not the only one. GFDL is another. It specifically allows you to relicense code from GFDL to CC-BY-SA in certain circumstances. Wikipedia was moved from GDFL to entirely different license, CC-BY-SA. Compare some random article in year 2008 to what we have today. GFDL is not even mentioned, you need to dig deeply to even know it was ever there and then spend a lot of efforts to recover old, GFDL-licensed version. Note that while there was note among Wikipedia editors and majority have voted for the change thousands of editors voted against it. Yet their contributions were relicensed along with others. Simply because FSF had that right. How is that different from relicensing of GCC from GPLv3+ to GPLv4+ from practical POV?
Posted Jun 10, 2021 18:55 UTC (Thu)
by farnz (subscriber, #17727)
[Link] (1 responses)
In practical terms, what matters is that the copyright holders gave Wikipedia a licence under GFDL 1.2 or any later version, and Wikipedia used section 11 of GFDL 1.3 to relicense. Had the copyright holders only offered Wikipedia a licence under GFDL 1.2 (and removed the "any later version" bit), Wikipedia's actions would be a copyright breach, and the copyright holders could pursue Wikipedia for remedies under copyright law.
It's the multi-licensing that allows Wikipedia to say "GFDL 1.3 has this clause which we will use", and that licence was agreed to by the copyright holders, even if they did not want Wikipedia to use that clause.
Posted Jun 10, 2021 19:16 UTC (Thu)
by khim (subscriber, #9252)
[Link]
Well… GCC is also licensed under “GPLv3 or later” conditions. And there are no plans to change that.
Posted Jun 7, 2021 16:27 UTC (Mon)
by Wol (subscriber, #4433)
[Link]
Exactly. The licence YOU RECEIVED was GPL2+ (let's say). So whether you comply with the terms of the text of version 2, or the text of version 3, is irrelevant. You HAVE TO PASS ON GPL2+.
Of course, by adding your own code which you licence GPL3+, you take away the PRACTICAL ABILITY of your downstream to comply with GPL2, but that still means that the original code that you haven't touched is still GPL2+.
Cheers,
Posted Jun 7, 2021 16:21 UTC (Mon)
by Wol (subscriber, #4433)
[Link]
But the only EVIDENCE of such authorisation, is the copyright holder's statement of such, and thus these new authorisations MUST be IDENTICAL to the original.
Cheers,
Posted Jun 2, 2021 8:29 UTC (Wed)
by shorne (guest, #110879)
[Link]
I wonder how this changes things, can I now look at the original port code and copy some of it to GCC? I wouldn't do that though since my new port is much cleaner and better :).
Posted Jun 2, 2021 22:03 UTC (Wed)
by gnoutchd (guest, #121472)
[Link]
(Disclaimer: I'm the sysadmin at SFLC.)
Posted Jun 7, 2021 0:08 UTC (Mon)
by scientes (guest, #83068)
[Link]
Posted Jun 10, 2021 20:54 UTC (Thu)
by Hi-Angel (guest, #110915)
[Link]
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC
will continue to be developed, distributed, and licensed under the GNU
General Public License v3.0
I wonder if they really mean GPLv3, or GPLv3+? If it's the latter, the FSF still retains the ability to unilaterally relicense GCC.
It's still GPLv3+; that has been clarified on the mailing list.
License
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
At some point they can start requiring GPLv4+ on new code contributions. This is legal, because the old license is GPLv3+ which is compatible with any newer GPL.
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version.
But 2) If you want, you can do copies, modify, etc, as long as you comply with a set of rules I am giving you (license)
3) Normally this is a fixed set of rules (e.g. GPLv2, MIT), but in this case, I let you choose which set of rules to apply, and ignore the rest. I can give you 3 set of rules A,B,C, pick the one you want. So you can adhere to GPLv3 and totally ignore GLPv2
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
>>
GCC drops its copyright-assignment requirement
> c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
> >>
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Well, I guess anyone has this power...
I meant GPL license. As published by the FSF. By definition :)
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
> A emits a licence to B that says GPL2+.
> B uses GPL4 to give a copy to C.
> B emits a NEW licence FROM A that SAYS GPL4.
> That's weird! The only licences that A actually handed out are GPL2+, but NONE of the licences handed out on A's behalf are GPL2+ ???
> You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Step 2. You say (to yourself) "I'll take GPLv5.72 please"
Step 3. You put the code in a program that's GPLv5.72.
Step 4. Somebody else takes your program that's GPLv5.72.
Step 5. That person takes parts of your GPLv5.72 program and copies them into a GPLv3 program.
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Matthias
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
>> it under the terms of the GNU General Public License as published by
>> the Free Software Foundation, either version 3 of the License, or
>> (at your option) any later version.
>> You should have received a copy of the GNU General Public License
>> along with this program. If not, see <http://www.gnu.org/licenses/>.
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Which would be tricky to do with the GPL because of its “no further restriction” clause.
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
> > Except that this specific paragraph means, that someone receiving software under GPL3 only, automatically receives his GPL3 license from upstream *not* any other license.
> Except that the licence grant by upstream was "GPL3+". So you are NOT passing on what you received. NOT ALLOWED.
> And the *evidence* of that grant is the COPYING file, which still says GPL3+. (And you can't edit the COPYING file, because then you are actively taking away your downstream's rights - SERIOUSLY not allowed!!!)
>
> You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
Matthias
GCC drops its copyright-assignment requirement
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 ...
Alice can't sue Carol, because the only EVIDENCE is Alice's grant of GPL*PLUS*.
Wol
GCC drops its copyright-assignment requirement
> 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 ...
Matthias
GCC drops its copyright-assignment requirement
... And without the evidence that Bob distributed to Carol, there would be no evidence at all that Carol has any rights to the code...
I think that goes too far. The MIT license, for example, says:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction...
So the mere fact that Carol has a copy of the Software means she has a license, regardless of who she got it from or what license they used.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
then that is Alice licensing it to Carol (assuming Carol gets to read it), right there. What Bob thought doesn't matter (assuming Bob has no rights over the software): he has nothing to license.
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
> > 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 ...
Wol
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
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
They don't have the ability to relicense GCC.
GCC drops its copyright-assignment requirement
> Yes, they do, or at least they did until this.
GCC drops its copyright-assignment requirement
I think you've slightly contradicted yourself there.
GCC drops its copyright-assignment requirement
Emitting any other kind of authorization, however, needs and explicit act of the copyright holder.
That bit's true. The authorization just doesn't have to come with the software, and often doesn't (think about buying extra licenses to proprietary programs, for example).
each recipient is bond by the one-time terms of the license he was distributed software under, and no other.
is accurate once they have received permission to use an alternative license from the copyright holder(s).
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
Wol
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement
GCC drops its copyright-assignment requirement