5 ms·
> The AGPL license permits free use, modification, and distribution of software, provided that distributed, derivative works of the software are released under
by kazinator 2y ago
> The AGPL license permits free use, modification, and distribution of software, provided that distributed, derivative works of the software are released under the same license.
Here is the rub: free software permits unconditional use.
The GPL without the A, or MIT or BSD licenses are not EULAs; they place restrictions or conditions on redistribution, not on use. (With regard to use, they have only certain liability disclaimer clauses.)
The AGPL restricts use; it is an EULA: end-user license agreement. The antithesis of free software.
- dafelst 2y agoGenuine question, how does AGPL restrict use? From my reading of it, it is only ensuring that any modifications to the source code must be made available if you "distribute" the software, where distribution now includes hosting it as a service. It seems more or less in the original spirit of GPLv2 but updated for a SaaS driven world. If you consider v3 restrictive then you must also consider v2 restrictive, just in a more narrow way.
- kazinator 2y agoRunning a program, as a service or not, isn't redistribution. It is use. The original spirit of the GPL is about identifying people doing bad things we don't like and trying to prevent them. All those bad things have to do with redistribution, not with using the program. The AGPL is still about identifying people doing bad things we don't like, except now those people are just running the program. This is no different from Adobe, Apple, Microsoft, ... identifying people using their software in ways they don't like, and crafting their EULA terms to turn those activities into a license violation. A free software license simply cannot dictate uses, like where and how you run the program, and who can access it from where. A free software license can only use copyright law, and only be concerned with copying. EULAs go beyond coypright; they try to connect non-copying activities to copyright by the doctrine that if the user engages in the forbidden activities, their license is terminated (and thus it becomes copyright infringement for them to continue to have a now unlicensed copy of the software).
- dafelst 2y agoI'm still not following - you're talking about restrictions on use, but what restrictions on use does AGPL apply? What can I not do with AGPL software? What are the forbidden activities you reference? The only caveat seems to be making the source code available to users of the software, which is also the case with GPLv2, just under narrower conditions. I have no dog in this race, nor any particular attachment to any particular license, I'm just trying to better understand what these restrictions are that you're referencing.
- kazinator 2y ago> which is also the case with GPLv2 No it isn't; under the GPLv2, the source code must be available to those to whom compiled code has been redistributed. Whether they are users doesn't matter. The restrictions are that if you violate the license, your use of the program is infringing. > What can I not do with AGPL software? You cannot change it and run it yourself, without hosting the source code. You cannot combine an AGPL program with proprietary code and operate it, because you cannot release the proprietary code.
- Avshalom 2y ago>You cannot change it and run it yourself, without hosting the source code. Yes I can. It's only if I let other people use my changed code that they become entitled to a copy. >You cannot combine an AGPL program with proprietary code and operate it, because you cannot release the proprietary code. hmm, gotta say that sounds like the proprietary code is the thing infringing on my usage.
- levkk 2y ago> The AGPL restricts use; it is an EULA: end-user license agreement. The antithesis of free software. This is a common misconception about Free software. It's not about freedom of its users or authors, it's freedom of the actual code to be available for others. For example, MIT license allows users to take the code and modify it without releasing modifications. This traps the new version of the software, possibly forever, inside a single organization.
- xboxnolifes 2y agoIt's my understanding that the MIT license has no such restriction on publishing modifications. The only restriction is that existing code must stay MIT licensed.
- kazinator 2y agoFirstly, GPLed programs with proprietary modifications can easily be trapped inside single organizations. The original MIT-licensed program continues to exist and be available regardless of the proprietary versions and embeddings. A copyleft license just asserts, using copyright power, that such things should not exist. MIT and BSD licenses just allow certain works to legally exist that copyleft advocates think should not exist. The copyleft is concerned with squelching the existence of things, whereas the MIT and BSD licenses mostly promote existence. (They are concerned with squelching the existence of plagiarism: an author's name and copyright notice removed from the source code work, and possibly replaced with another. Also, squelching the situation where the compiled work is accompanied by documentation which neglect to give attribution to the presence of that BSD-licensed code.)
- sfink 2y ago> The original MIT-licensed program continues to exist and be available regardless of the proprietary versions and embeddings. > A copyleft license just asserts, using copyright power, that such things should not exist. Well, a copyleft license asserts that proprietary versions and embeddings of the licensed software should not exist. GPL software doesn't assert anything about the existence of BSD-licensed software. Or at least, not unless you link them together into one thing. It is true that rms would prefer that such works not exist. (Or that's how he felt originally, at least.) But the GPL is silent on the issue, as it has to be. There's no clause saying "the author promises not to release any software with a non-copyleft license, nor to name a child Dorothy, nor to eat the flesh of an aquatic mammal."
- tivert 2y ago> Here is the rub: free software permits unconditional use. I think you're wrong. > The GPL without the A, or MIT or BSD licenses are not EULAs; they place restrictions or conditions on redistribution, not on use. The GPL, at least, puts restrictions on use: you can't use the software in certain ways (e.g. use in a binary firmware blob) unless you distribute it in source form to the end users. > The AGPL restricts use; it is an EULA: end-user license agreement. The antithesis of free software. The AGPL does exactly the same thing as the GPL, just with a stronger distribution requirement: if you distribute access to end users, you must distribute it in source form to the end users. The GPL was designed for the binary distribution age of software, the AGPL is the GPL for the SaaS distribution age. The GPL alone cannot satisfy Free Software goals in the new age.
- kazinator 2y ago> can't use the software in certain ways (e.g. use in a binary firmware blob) Yes, you can. You can combine a GPLed program with whatever you want; you just can't redistribute the result if the combination runs afoul of the GPL. redistribution is not use. Use is running the program, reading the program, trying changes and such. You can combine GNU Bash with proprietary code and let users remotely log in to your box to try it. > if you distribute access to end users There is no such thing. Copyright law does not recognize "distributing access". The program is not being redistributed when it executes and exchanges messages with remote stations. "Distributing access" also reminds me of the idea of someone hearing the sound of your coins jingling, or smelling your cooking: as in from the famous case of Ōoka_Tadasuke that circulates as a popular parable: https://en.wikipedia.org/wiki/Ōoka_Tadasuke#Famous_cases https://en.wikipedia.org/wiki/Ōoka_Tadasuke#Famous_cases
- olavgg 2y agoAGPL doesn't restrict use: "You are not required to accept this License in order to receive or run a copy of the Program."
- deleted 2y ago[deleted]
- kazinator 2y agoI would say that's an unhelpfully misleading statement in the license. There exist obvious circumstances of the program's use with which the license doesn't concern itself, and does not speak to, and so in those circumstances the user is not required to enter into the license. A redistributor must enter into the license because it's a derivative of the GPL, and so it has requirements related to distribution. A user who runs the program in such a way that visitors communicate with it from remote stations obviously is required to enter into the license also and comply with its requirements. The license is applied to programs for which this would be a typical use.
- kazinator 2y agoI looked at the context of this. It's in a section whose purpose it is to make it clear that you don't have to accept the license just have a copy of the program, but that if you convey the program your implicitly accepting with the license, that license being the only basis for your permission to redistribute.
- M2Ys4U 2y ago>A user who runs the program in such a way that visitors communicate with it from remote stations obviously is required to enter into the license also and comply with its requirements. Only if the user modifies the program. The remote network interaction provision of the AGPL is conditional.
- kazinator 2y agoClause 13 could as well require the provider to offer the code to the network visitors even if the code is not modified. That makes hardly any difference.
- rpdillon 2y ago> The AGPL restricts use; it is an EULA It does not. You can absolutely host AGPL software as a service, you just have to share any modifications you made with those that use the service.
- remram 2y agoAgreed. In other words, the terms restrict what you can do when you modify not when you run. It is also not directed at end users (the "EU" of "EULA") but at the developer or sysadmin.
- kazinator 2y agoSure, and you can absolutely use Photoshop, if you paid for it, and promise not to reverse engineer anything. Or, what do you think usage restrictions are or look like? If you don't share those modifications then you must not host that software such that it communicates with visitors; that's a restriction. The modifications that you are required to share cannot be any arbitrary modifications; anything you add has to be AGPL compatible. If the modifications combine the software with GPL-incompatible pieces, then you cannot share those modifications, which means there is no legal way to host that software for visitors.
- rpdillon 2y agoCopyright covers four rights. The right to copy, the right to modify, the right to distribute, and the right to perform publicly. The GPL places restrictions on a combination of the modification and distribution aspect, which says that if you modify the software and distribute it, then you must also include source code. AGPL is more strict and says even if you just want to modify it and use it, you must supply the source code to the people who are using it. The important point here is that this is not triggering on use of the software (as EULA implies). It is only triggered after modification. And modification is something that is covered by copyright.
- kazinator 2y agoIt's triggered on use of the modified software. Not just any use but use in such a way that network visitors interact with the software. If you don't use the software that way, the requirement doesn't apply even if you modified it. If you've not modified the software, interested visitors can just get the source code from the same upstream, so why would it be required of you to host it. However the following situation could arise and I don't see how the license addresses it. You visited a site running some AGPL service which was modified by those site operators. You decide to clone your own instance using their modified code. Since you're not modifying anything yourself you're not required to host that code. Now suppose that original site shuts down and disappears. The upstream for that modified code is no longer available. Are you on the hook for hosting it now? You've not modified anything yourself.
- purpleidea 2y ago> The antithesis of free software. Those who oppose the GPL are precisely the people it was designed to protect against. I think we found a good example of your wishes here. You are against the GPL if you have an ulterior motive to make something proprietary and avoid contributing back!
- kazinator 2y agoMy comment was about the AGPL, not about the GPL. Though I don't favor the GPL for my own code, I would not call it "antithesis of free software". The GPL does not impose any use restrictions, and meets a reasonable definition of a free license in other ways also.
- tzs 2y agoIt also seems to violate criteria #10 of the OSI's Open Source Definition: > 10. License Must Be Technology-Neutral > No provision of the license may be predicated on any individual technology or style of interface. It has provisions that only apply to people who are interacting with the software remotely over a computer network. If they are interacting using some other technology those provisions do not apply.
- sfink 2y agoI think you're 90% right in what you say here and in following comments, but I think you're skewing things in a way where I end up disagreeing with your conclusions. > Here is the rub: free software permits unconditional use. Why are you using the term "free software" here, when it has a well-defined meaning that is very much what you get with copyleft and the GPL and not what you get with BSD/MIT? I think you mean "open source", specifically open source as opposed to free software. Your terminology makes a lot of the conversation here unnecessarily hard to follow. > The AGPL restricts use; it is an EULA: end-user license agreement. The antithesis of free software. I don't see the AGPL as the antithesis of OSS at all, even though I agree that it is activated by a condition that pertains to use, not just redistribution. But that's the mechanism, not the goal. Just like the GPL relies on copyright law to have its effect, AGPL relies on what you're calling a EULA. (I don't disagree, and to me a EULA is a contract, but whether it's exactly the right term doesn't seem important.) GPL isn't alone in depending on copyright; the BSD license does just as much. > Running a program, as a service or not, isn't redistribution. It is use. Agreed, but "redistribution" vs "use" is a mechanism argument. The intended purpose of the GPL was to allow a developer to write software whose future evolution is freely shared. The redistribution mechanism doesn't even accomplish this 100%: in particular it allows branchless twigs off of the evolutionary tree as long as they are indeed branchless (i.e., not distributed to anyone else who makes further modifications). That goes counter to the goal of free software, but is an acceptable loss because those twigs are irrelevant to the rest of the evolutionary tree. But there's a loophole here when the GPL is applied to server software: if the software only runs server-side, then the redistribution mechanism no longer works. You could modify your copy, and give that modified copy to someone else who also modifies it. You would have to share your modifications with that person, but not to anyone else. Your twig can grow branches. Neither of you are redistributing the software to anyone else, so you aren't bound by the GPL to make your changes available to anyone else, and certainly not to the original authors. The AGPL attempts to plug that hole using an extra mechanism: adding a restriction saying that you have to make your changes available not only if you're redistributing the software, but also if users are talking to the running code[1]. > This is no different from Adobe, Apple, Microsoft, ... identifying people using their software in ways they don't like, and crafting their EULA terms to turn those activities into a license violation. Sure. Those same companies depend on copyright law as well. But the purpose of the AGPL has nothing to do with people using the software in ways that the license chooser doesn't like; its purpose is wholly concerned with the evolution of the software and therefore the changes being made to it. That purpose is achieved via the mechanism of adding conditions based on usage. > suppose that some government service website is using AGPL software. What do you gain by downloading the software and running your own instance? That's not where your data is; you can't use that cloned instance to communicate with the service agency. That is correct. AGPL does not solve this problem. If you're locked into a service, then having the full version of the AGPLed code does you very little good. That is described as "Service as a Software Substitute (SaaSS)" in the AGPL explainer at https://www.gnu.org/licenses/why-affero-gpl.html https://www.gnu.org/licenses/why-affero-gpl.html The free software folks had to punt on that problem. They "solve" it by saying: don't use those services. Which is hardly a satisfying answer, but nothing else is currently possible. Any solution would require regulation and legislation (eg data portability laws). > I understand the social problem that the AGPL is trying to combat, whereby visitors are held captive by saas applications over which they have no visibility or control. Incorrect (see above). Though I think some AGPL supporters did (and probably still do) think that the AGPL helps with that. I guess it does, in trivial cases. > Also one issue is that the AGPL doesn't actually solve anything. Visitors having the source code to my evil saas platform doesn't solve the problem that they're locked to it. It doesn't solve the problem that I can change the code at any time and they cannot. Or that I can shut it down and wipe out their data, or share it with third parties. An AGPL conforming application also need not provide visitors with any way to export their data. This is all correct. Well, except the first sentence, because the AGPL does solve one thing: it ensures that the evolution of a piece of software is freely accessible. Or maybe two things, though the second was not part of the original intention afaik: the ElasticSearch/OpenSearch situation. The original author develops something that their business depends on and does not want to end up competing with their own code. AGPL ensures that nobody can take their code, add some features to it, and then win their customers with the enhanced proprietary version. The original author will at least have access to all of the modifications that anybody makes, so competition will need to be on a different basis. [1] It seems like it would have been more straightforward to keep the AGPL conditions based on redistribution, and say that you have to release your changes to everyone if you distribute your version to anyone. Would that even work? You'd have a transaction from A->B that induces a requirement on A->the world. But it would have avoided making conditions based on use rather than just redistribution. I dunno, IANAL. It would still allow someone to change the version that they're running without releasing the changes, unlike the current AGPL, but that's no worse than the situation with GPL'd client-side software and doesn't seem like a problem worth solving.
- sneak 2y agoThank you for pointing this out. It is logically obvious that the AGPL is a nonfree license. I have been saying this for some time. It is a very unpopular thing to say.
- kazinator 2y agoAnd others. https://news.ycombinator.com/item?id=24861043 https://news.ycombinator.com/item?id=24861043