3 ms·
> You're committing the same fallacy as a lot of software people: thinking that the law is a rigid computer program. Contracts are not executed like computer pr
by marcan_42 5y ago
> You're committing the same fallacy as a lot of software people: thinking that the law is a rigid computer program. Contracts are not executed like computer programs.
"Contracts are not executed like computer programs" doesn't mean you get to interpret contracts however you want, ignoring what is actually written. When I was working at Google, I had an argument with Chris DiBona about open source contributions that ended up with him banning me from that process, and telling me to "go to employment legal". I instead went back to my employment contract, and found that the wording was subtly screwed up; they got the Boolean logic wrong when transcribing wording sourced from California law into an Irish contract, and ended up turning an OR into an AND. And that meant I could contribute to open source in my free time at home with no worry of Google owning my code, so I did, and I'm absolutely confident no Irish judge would say "oh, you see, your contract says one thing, but clearly what Google meant was what's written in California law and so you're in violation". What matters is what's written down, not whatever the person writing it thought they were writing. This wasn't a case of a typo or an obvious correctable mistake; this was a change in the way the requirements for a clause applied, clearly with a different meaning from the original text, with no room for error. Whether it was an intentional change or not is not my problem.
If you dig deep enough into the history of the AGPL, you will find that not only am I right in my interpretation of it as a copyright license that applies to modifications, but that this was all completely intentional and amounts to a clever hack to try to give EULA-like powers to a non-EULA license, because the FSF knew they couldn't pass off an outright EULA as a free software license. And, like most clever hacks, it doesn't work properly in all cases, and the workaround I described is completely legitimate. And it's still nonfree, because instead of violating Freedom Zero it violates Freedom 1 (but they got that one to pass by without most people noticing, it seems).
- legalcorrection 5y agoYou're confused. It's true that the AGPL only applies to modifications, but programs that link to (A)GPL libraries are considered modified versions of those libraries for purposes of the GPL. So if you link to an AGPL'd JSON library and use it throughout your website's source code, your website is a modified version of that product. And as for your workaround, here is the text of the AGPL: >your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software You setting up a reverse proxy doesn't mean that users suddenly aren't "interacting with" the program. By the same logic, they aren't interacting with your program even without a reverse proxy, because they are actually interacting with their own computer, their own operating system, their own keyboard. No court would accept such a pedantic and useless definition of "interacting with" because it's clearly not what the contracting parties intended. Contracts terms are given their reasonable meaning, not unreasonable meanings. You also complain about e.g. MIDI not having a way of sharing source code. Here, you're again misreading the license. The license requires that "providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software". Notice what it doesn't say. It doesn't say it has to be offered over the exact same protocol. It just says you to offer it from A network server, through SOME standard or customary means. The license even goes onto say: "If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are MANY WAYS you could offer source, and DIFFERENT SOLUTIONS will be better for DIFFERENT PROGRAMS; see section 13 for the specific requirements." It's true that earlier it says you must "prominently offer all users users interacting with it remotely through a computer network" an opportunity to receive the source. But in cases where the protocol literally has no way of embedding that information, then there's no reason to think you can't fulfill this requirement by, e.g., prominently including a link to the source code wherever you advertise or document the network service.
- marcan_42 5y ago> You setting up a reverse proxy doesn't mean that users suddenly aren't "interacting with" the program. That doesn't matter, because again, what the clause actually says is: > your modified version must prominently offer all users interacting with it remotely through a computer network If the version, as modified, makes the offer, then you have met your obligations at the time of modification. The AGPL is out of the picture after the modifications are complete, as it is a copyright license, not a usage license. The clause triggers when you modify the software - adding the reverse proxy in front does not modify the software, and therefore the clause does not apply at that point. If your argument is that you are still bound by that requirement after the modifications, then all AGPL software authors are in violation of the license, at all times, since it would imply that the AGPL requires everyone who makes a modification to AGPLed code magically ensure that it always offers its source code to users, in all execution environments, no matter what reverse proxies are in front, operated by anyone, which is, of course, impossible. > Notice what it doesn't say. It doesn't say it has to be offered over the exact same protocol. If your users interact with the software via a certain protocol, then the offer obviously has to be made over that protocol, because there is no other way to make the offer. If I run an AGPLed DAW and hand a MIDI keyboard to a friend to play on, they are now a network user of the software, and the only way for them to be offered the source code is over that protocol. Of course the actual source code exchange could happen over a different protocol, but the offer has to reach the user (and prominently, as the clause requires) and that's not going to happen if you make the offer over a protocol the user isn't even using!
- legalcorrection 5y agoIt is a violation of copyright law to make a modified work without permission, and the permission here is the license—a contract. Again, using the example of the hypothetical AGPL'd JSON library. Once you link to it and use it in your website's code, the resulting website code is a modified version of that library under terms of the AGPL, a binding contract that you accepted by creating that modified work. What you are suggesting would then violate that contract by using that modified version in a way contrary to the terms of the contract. >If I run an AGPLed DAW and hand a MIDI keyboard to a friend to play on, they are now a network user of the software, and the only way for them to be offered the source code is over that protocol This is obviously not true. You can offer them the source code as soon as you hand them the keyboard. (Of course, no one is going to sue you for giving your friend a keyboard, just like no one will sue you for giving him a print out of a copyrighted picture. No one caring + fair use deals with a lot of these stupid little scenarios.) I could quibble with you counting this as a "remote network interaction", but my point stands either way.