4 ms·
What about the users of the software you provide via the network, don’t they have the freedom to run, modify and study the software they are using? If you stop
by aflag 6y ago
What about the users of the software you provide via the network, don’t they have the freedom to run, modify and study the software they are using? If you stop providing the service, don’t they have the freedom to run it somewhere else and keep using it as they did? When it comes to remote use of software, the freedom to copy and run is even more critical. Microsoft can’t prevent me from running windows 95, but google can sure prevent me from using gmail in future.
- sneak 6y agoAssuming I'm an "evil ASP" in this model: I am not providing software via the network. I'm providing JSON (or protobuf or whatever), in response to questions. Distributing software and providing a service via an API are not in any way the same thing. One is a noun and one is a verb!
- aflag 6y agoSure, they are not the same thing. I’m just pointing out that the freedom in free software is all about users having the freedom to do with the software they use as they please, not about the freedom of people hiding parts of how the software works. You are not evil, you’re just restricting your user’s freedom, which is neither wrong nor a crime.
- sneak 6y agoThe users have no rights to software that hasn't been provided to them. There's no "freedom" involved. Imagine a situation where I provide a human based service: someone comes to me and asks me to add two numbers together. I return the next day and tell them the sum. They are not entitled to know whether I used pen and paper, computer, software, whatever. That's private information, and it's my freedom not to share information that's not relevant to that business transaction. It actually has nothing to do with software. I theorize that the AGPL isn't actually enforceable as a result. I don't know of any actual AGPL enforcements against service providers.
- R0b0t1 6y agoEr, what? There's nothing that seems unenforceable. Basically, if you run the software and people interact with it you must share with them what they are interacting with. You can still have trade secrets. You just can't have a trade process. Realize in most cases, you run up against this because you took someone else's code and are running it for profit.
- aflag 6y agoI don’t understand the analogy very well. But software is very different to the material world because it’s fungible and copying it is essentially free. I think a more appropriate analogy would be the mechanic that fixes your car explaining what they did so that you can fix yourself when you need. Anyway, you’re not entitled to modify, copy, etc even if the software is distributed to you. Copyright exists exactly to guarantee that the creators have a monopoly over their creations and can more easily profit from them. It is just a consequence of that that users do not have the freedom of running, modifying, studying, etc the software they use as they see fit. You have to give them that freedom, if you want. By default you’re not required to do so, and you don’t want to, which is fair enough. AGPL is there for those who want to give the users even more freedom than the GPL gives them. I don’t know if AGPL is enforceable or not. Using software remotely can be seen as a form of distribution, that’s what needs to be proven in court, I suppose. I don’t think it’s clear cut. Something like gmail using AGPL software seems a lot more likely to be a breach of the license than if someone publishes some graphs that were generated by a batch job linking to AGPL libraries.
- pritambaral 6y ago> They are not entitled to know whether I used pen and paper, computer, software, whatever. You do realise that the AGPL does not apply to every software you could possibly ever use, and only to software whose copyright is held by someone else, that you downloaded, modified, and then used to answer such a question over a network, right? Sorry, I'm just bewildered at what you think the AGPL does, given your other responses in this thread so far. But to use your very example: if you used another person (instead of pen and paper or whatever), asked them the sum of the two numbers you were given, and they said they'd give you the answer, but only if you introduce them to whoever originally asked you the question when you respond to them with the answer, and you said "Yes" to them (thus entering into an oral contract), and then went back privately to the original asker and gave them the answer, without introducing the two people to each other, then you're in breach of contract.
- jack_h 6y ago> I am not providing software via the network. I'm providing JSON (or protobuf or whatever), in response to questions. That's one way to look at it, but I think it's a distinction without a difference. Take as an example a GPL library wrapped with a thin IPC interface (that is open sourced) which is used by a separate proprietary program running in its own process. Is this okay? What if they're running on two separate and independent microcontroller cores connected over the same memory bus? What about over a serial link? Add a few more OSI layers and you get to the AGPL. In the end it's a matter of degree and its up to the author to decide where they want that line drawn for their project.
- aflag 6y agoI think the point is that, if you don't send the GPL + IPC layer to user, then it is not counted as distribution. Certainly there is a distinction between distributing the full software and allowing network access to it, otherwise there would be no need for AGPL, as GPL would cover that too. The question is whether that requirement is actually something that's protected by law. I lean more towards it being protected. Otherwise, running a pirated version of some software and exposing it on the web wouldn't be considered ilegal either, and I'm pretty sure it is.
- jcelerier 6y agoIf I type something on my keyboard, and as a result a computer at the other side of the world performs a computation to give me an answer, then I am definitely running software. Else you could say that the only software you're ever using is your computer screen, keyboard and mouse's firmwares - it's just making requests via a protocol (usb) to a cpu "somewhere" and the CPU answers on the screen via another protocol (hdmi)