This echoes of the kind of v3 fuckery Linus Torvalds complained about in his GPLv3 objection recorded at DebConf '14. [0]
I'm a long-time Free/Libre software user and advocate, but "if the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term." strikes me as a very strange thing for the license to include.
The copyright holder clearly has the authority to use whatever licensing terms they wish. If they added restrictions, this clause is in direct conflict with their intentions. Of course the court sided with the plaintiff. I don't understand what the FSF was trying to do here, it seems obviously underhanded like Torvalds touches upon in[0].
> This echoes of the kind of v3 fuckery Linus Torvalds complained about in his GPLv3 objection recorded at DebConf '14.
I feel like this is another topic. What Linus is criticizing in the part you cite is the "or later" mechanism, where as a licensee you can take some program licensed under "License version N or later" and release a modification under "version N+1 only", preventing the original authors to take back the modifications. I understand (and sympathize with) the intent of the "or later" mechanism, and why Linus does not like it (and agree with him). He also thinks the FSF wrongly took advantage of the "or later" clause by releasing a new version of the GPL that is not in the same spirit and he thinks that this is sneaky. One can agree or not.
This "or later" mechanism seems like it would hold in court, contrary to the discussed clause (deemed invalid here) that prevents an author from adding a restrictive clause next to the base license. Hindsight is 20/20, but it does seem like the authors of the AGPL could have anticipated this court decision [that author have all the rights to impose all further restrictions they want withing copyright laws and license authors cannot do anything about it] and don't put this clause, or just clearly write that licensees cannot add further restrictions to the original license.
> I feel like this is another topic. What Linus is criticizing in the part you cite is the "or later" mechanism
The "or later" mechanism was always there, this facet was old news, it's not the substance of what he's taking issue with in v3. He's just appreciative of having the presence of mind to fix his kernel at v2 and not leave the v2+ option, because v3 is terrible.
Listen to the entire clip I linked. He's complaining about tivoization restrictions, he's complaining about the dishonesty surrounding the freedom to ignore those restrictions. This is the same kind of v3 nonsense as TFA, is it not?
I'm familiar with this clip and listened to it several times. He doesn't like the GPLv3 for the reasons you give, and from what I understand, what he finds sneaky is not the GPLv3 itself (he recognizes that the GPLv3 can suit some people and is fine with this), but the fact that the GPLv3 has been written as a revision of the GPLv2 while it should have been an entirely new license (that would not interact with the "or later" mechanism and impact existing software with this or later clause). He says this in the sentence just before your citation.
From what I understand, he would have been fine with a revision to the GPLv2 that fixes some issues but does not change its spirit.
Now, that the GPLv3 is not in the same spirit than the GPLv2 is an opinion, and he does a good job of arguing his opinion on the matter.
> This is the same kind of v3 nonsense as TFA, is it not?
No, I don't think so.
edit: oh, ok, I understand what you mean. The nonsense you are speaking about is the FSF people telling Linus Torvalds that he can use GPLv3 without the tivoisation clause and still be compatible with the GPLv3, which indeed seems non nonsensical. The GPLv3 itself is not sneaky though, it's how it was sold to Linus IIUC.
Having the Linux kernel as part of the GPL/FSF brand is critical marketing for the FSF. Linux is the thing that is the GPL in most people's minds in business and tech. They know that and are willing to break their own rules to keep it.
> that author have all the rights to impose all further restrictions they want
But, then, why did they distribute it under a license that directly conflicts with that? The authors have sent two conflicting messages: that you can remove additional restrictions and that you are bound by them. How is the user supposed to act when given permission by the authors to do something the authors prohibit?
I'm not disagreeing with you, as an author I would not have risked something like this, but let me try:
- maybe the authors wanted the "AGPLv3 look it's open source!" label
- maybe the authors liked the restrictions that come with AGPLv3 (if you use a modified version on a server, we want the modified source code "back")
- maybe the authors wanted to built upon a license they perceive as strong and solid
- maybe the authors haven't thoroughly checked the AGPLv3 and weren't aware of this particular clause, or actually decided they could add limitations anyway
- writing a license is hard so maybe they didn't want to roll their own
I personally think the Commons Clause license is a bad thing with a bad name, and is only going to wreck havoc and muddy the waters. Widespread open source / free software licenses are complete, self-contained work and internally coherent, adding stuff on top of them is only going to be fragile.
> - maybe the authors liked the restrictions that come with AGPLv3 (if you use a modified version on a server, we want the modified source code "back")
It's not a restriction, and it's not about the upstream author: the modifications are available to every user (so they can be sure what is done with their data, as one example). As any GPL, this is about user rights, not developer rights.
> - maybe the authors haven't thoroughly checked the AGPLv3 and weren't aware of this particular clause, or actually decided they could add limitations anyway
I'm betting on this one. AGPL makes sense if you want to force anyone using your software to release their enhancements to their users. You, as the original author, retain the right to license it under a different license to your own users (so they don't get the exact source code to the services they are using remotely).
Picking a license is hard and should be done carefully, because the license you pick can have permanent effects on what you can do with your own software.
Larry Ellison, for instance, didn't realize he just couldn't kill MySQL just because he became its owner when he acquired Sun.
The GPL is a copyright work in and of itself and has its own license, which prohibits changing it.
Arguably adding extra clauses to the GPL is ‘changing it’, which violates the license to the license, and it implies that the plaintiff themselves have committed copyright violations by modifying and distributing the license. The FSF themselves would have cause to sue Neo4j.
Section 7 of AGPLv3 [0] is entirely about augmenting the license, it's certainly not clearly prohibited. What this decision demonstrates is that section 7 is legally problematic as-is.
that part says "this license document" and that refers to the very text in the document that is claimed to be the AGPLv3.
It does not mean it is not allowed to license a work under another license that makes references to the AGPLv3 and includes it, only that the included document should not be changed.
This doesn't preclude additional restrictions (or permissions) in a supplemental license file. Section 7 practically encourages augmenting the license.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
Above requirements include:
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
> 73 [...] Here we are particularly concerned about the practice of program
authors who purport to license their works under the GPL with an additional requirement
that contradicts the terms of the GPL, such as a prohibition on commercial use. Such
terms can make the program non-free, and thus contradict the basic purpose of the GNU
GPL; but even when the conditions are not fundamentally unethical, adding them in this
way invariably makes the rights and obligations of licensees uncertain.
It still doesn't sit right with me. Like the program authors should be allowed to license things however they want. A clause to contradict the program authors so as to not have them contradict the GPL is kind of strange to me.
I get the possibly "false advertisement" angle, like hey we're AGPL "caugh but not really". As a scheme to fool users into thinking they can use it freely. But still, I feel that be better to be on a user to read the additional terms and decide for themselves.
At least the court recognized you can't call a modified AGPL free and open source, so I guess the court established that and now this clause is no longer needed on the AGPL maybe?
The coercive behavior the FSF promulgates represents a narrow and openly ideological view of "freedom".
Thankfully, there are other ways to share open-source software, ones that don't restrict options or create burdensome obligations for users & contributors.
I personally consider being forced to open-source derivitive software (or software that merely uses it) to be burdensome enough not to use GPL projects.
The GPL's restrictions ensure that the end user maintains their freedom, at the expense of developer freedom to choose their own, more restrictive (to the end user but also potentially to other developers) license, if they want to incorporate the Free Software into their own software.
That is a tradeoff I'm cool with. I'm always a fan of ensuring end user freedom, including the right to repair.
I will also note that the GPL is explicitly not an end-user license. You can do whatever you want with it yourself. It only covers distribution.
> The Server Side Public License (SSPL) is a very strong copyleft source-available software license introduced by MongoDB Inc. in 2018. It is a modified version of the GNU Affero General Public License version 3.
It bears repeating, once again, that contrary to a frequent conceit of software engineers in particular (as evidenced by all the baffled hackers incorrecting each other in these threads), the law is not a programming language.
I think something that sentiment misses is that “it is not a programming language” because of vested interests intentionally corrupt the law code, especially over time.
For example; the US Constitution is a relatively clean OS. First law/loop should check for whether any particular issue of consideration is explicitly delegated to the United States Government (10th amendment), if not, then it is exited to states. The problem here is that the OS has been so corrupted by the vested interests that they’ve tried using the federal OS for everything under the sun and it’s corrupting and clearly breaking by making it do things it not only was never intended to, but the makers of the best OS in human history explicitly warned never to do any of the things that have been done and the documentation very clearly explains why not to do them because it will destroy the whole system that everything relies on that everyone takes for granted.
Alas, I must heartily disagree. Law has never been a programming language and oh-my-lord thank fuck for that, because it would be an inhuman unjust catastrophe that we'd have to throw away and replace with something else.
With regards specifically to that US system; not being an American, I am not infested with the exceptionalism of the flag-saluters, and from the outside looking in the US constitution (especially with the Bill of Rights) looks like it was inevitably going to spawn the vast, sprawling shitshow that is the US code today. The fundamental difference being the positive construction of freedoms, which thereby ensured any right not strictly guaranteed is (irrespective of rightly or wrongly) perceived as fair game by just about every other entity jostling for position, who then spend inordinate amounts of energy whittling away at them.
All humans, other than a few ascetic hermits, have vested interests, so it's essential that any system of laws assumes this rather than trying to push an avalanche back uphill whilst complaining about all the snow.
Ethereum isn’t “ready”, so obviously they need to fairly regularly perform hard forks in order to implement new features.
But I suppose you aren’t actually talking about that, but are referring to hard forks to roll back smart contract hacks. If so, it’s only happened once. In 2016. (And never gonna happen again)
English is not a programming language, but it’d be immensely beneficial if laws were defined in some sort of language that didn’t allow any ambiguity or undefined behaviour
It would be horrifying, not beneficial, and what's more it'd be by definition incomplete, and therefore unsuitable for any but the most banal proceedings.
I'm a long-time Free/Libre software user and advocate, but "if the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term." strikes me as a very strange thing for the license to include.
The copyright holder clearly has the authority to use whatever licensing terms they wish. If they added restrictions, this clause is in direct conflict with their intentions. Of course the court sided with the plaintiff. I don't understand what the FSF was trying to do here, it seems obviously underhanded like Torvalds touches upon in[0].
[0] https://www.youtube.com/watch?v=PaKIZ7gJlRU&t=147s