Hacker News new | ask | show | jobs
by adrr 1225 days ago
How does that work? How does a copyright license apply if there is no distribution? What legal mechanism allows that? You can include a TOS in the code, but that isn’t enforceable because there is no agreement forcing function like “click to agree” nor am i required to even read it. And TOS doesn’t have any laws protecting it like copyright.

Edit: Instead of voting me down point out the relevant US law that allows copyright law that applies after the distribution like a TOS to person who didn’t distribute the code.

4 comments

You can't use copyrighted material without explicit permission from its authors / right holders, fair use aside. Programs are copyrighted material (since 1974 in the US IIRC). The AGPL license is what will give you the permission to use AGPL'd software, but under conditions you need to respect, to the extent permitted by law (in both ways: some uses are illegal, and some restrictions imposed by the licenses could be unenforceable).
> Suppose you develop and release a free program under the ordinary GNU GPL. If developer D modifies the program and releases it, the GPL requires him to distribute his version under the GPL too. Thus, if you get a copy of his version, you are free to incorporate some or all of his changes into your own version.

> But suppose the program is mainly useful on servers. When D modifies the program, he might very likely run it on his own server and never release copies. Then you would never get a copy of the source code of his version, so you would never have the chance to include his changes in your version. You may not like that outcome.

> Using the GNU Affero GPL avoids that outcome. If D runs his version on a server that everyone can use, you too can use it. Assuming he has followed the license requirement to let the server's users download the source code of his version, you can do so, and then you can incorporate his changes into your version. (If he hasn't followed it, you have your lawyer complain to him.)

Copyright law only covers distributed software. It is not a terms of service and cover usage. GNU site has a bunch of articles on what it covers and what it doesn't.

AGPL doesn't cover internal software if you don't expose it outside of the company.

https://www.gnu.org/licenses/why-affero-gpl.html

> AGPL doesn't cover internal software if you don't expose it outside of the company.

What about "internal" users of the company modified AGPL software (eg. employees)? I would be surprised if they are not entitled to having access to the source code under the very same AGPL terms (which gives them the right to distribute the software as well).

GPL and related licenses do allow personal use of modified software without publishing or distributing it, but company internal is not "personal" use: you are exposing some users to modified AGPL software.

I haven't read AGPL in detail so I could very well be wrong: can you point to the exact clauses which allow this exception? (Or rather, exact language that does not forbid it)

Note that users (in case of AGPL) or recipients (in case of GPL) of the software might decide not to exercise their rights, which could be pretty common for employees.

To quote AGPLv3 from https://www.gnu.org/licenses/agpl-3.0.html:

  > 13. Remote Network Interaction; Use with the GNU General Public License.

  > Notwithstanding any other provision of this License, if you modify the Program, 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. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
I don't see how this "protects" company from offering the software to all the "internal" users under AGPLv3, allowing them to distribute it along freely under the same license.
> AGPL doesn't cover internal software if you don't expose it outside of the company.

Yes indeed, you can use AGPL software internally without redistributing the source code, as you can with GPL software by the way (since AGPL is GPL + restrictions). The FSF actually considers a license that doesn't allow private use without distribution non-free, like the Watcom 1.0 license [1,2] (while the OSI does consider this license open source [3]).

Now, I think this is a property of the license, not the copyright laws which do allow authors to place such restrictions. That's why you can't freely use Windows or Photoshop privately.

Making the user click a "I agree" checkbox is one way of letting them know the terms and conditions, but not the only one.

[1] https://directory.fsf.org/wiki/License:Watcom-1.0

[2] https://www.gnu.org/licenses/license-list.html#Watcom

[3] https://opensource.org/licenses/Watcom-1.0

You are moving the goal post.

Originally you said "Only if you distribute the code."

If you run software on your server, and someone outside accesses the software via a web page, even if the software is still only running on your server and hasn't been distributed outside the company, if it's under the AGPL, the company must make available the source code.

If i run a AGPl database like mongo(before they switched to their own license) and had a web app that used it to persist and read data. I would not be required any modifications to mongodb because i didn't trigger copyright. Now if I let people connect to mongodb through some managed service that i was selling, i would trigger copyright because mongo protocol is proprietary and covered by copyright law. This is a textbook example how it works.
> because mongo protocol is proprietary

No. It's because Mongo is AGPL in your case.

If you used a brand new implementation of whatever protocol Mongo uses that's under a less restrictive license than AGPL, you would not trigger any obligation to share the source code.

"Proprietary" in "Proprietary protocol" pretty much means "specific" / "non-standard". And you can't legally prevent someone to reimplement your proprietary protocol. I don't even think you can copyright the protocol itself. You can copyright the documentation / specification document at best, and actual implementations of it.

In "proprietary software", though, "proprietary" means "non-tree", that is, not open-source as defined by the OSD / not free software as defined by the FSF / the GNU project. The meaning of this word is very different in those two separate concepts.

The AGPL network clauses only trigger on modification, so if you deploy mongo without modification and don't distribute any code, thats fine, even if you expose mongo on the public internet.
Read the AGPL again. It has specific clauses that say that integration, not modification, of AGPL’d software applies it. Just using the AGPL’d software is the trigger.
> AGPL doesn't cover internal software if you don't expose it outside of the company.

Yes it does. AGPL is set up in a very strange way. The source code offering is a condition of modification. It has to be kept up to date at all times, even on software that can only be accessed internally.

Copyright grants the following fives rights: 1) reproduction, 2) adaptation, 3) publication, 4) performance, and 5) display. Distribution falls under 3 while creating a derived work falls under 2.
It's a very good point. The GPL is a license you can choose if you wish to do something that would otherwise breach copyright law. The loading and execution of copyrighted code wouldn't normally require a copyright license, so you can choose to disregard the GPL or any other license that will grant you extra powers.

For example both AGPL and GPL3 say

    You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
GPL2 has a similar clause

To me, I get the feeling the drafters of the license believe that modifiying code, even privately, and not distributing it any further than your own laptop, requires acceptance of the license, thus modifying AGPL code would require acceptance of that license.

I'm not convinced that's correct, but maybe courts see it that way. After all I suspect if I modify a copy of close source software (to say bypass some security lock) that I obtain in accordance with copyright law, not making any copies (for the purpose of copyright law) of it, I would be in breach of copyright.

If that's the case, then if you don't modify an AGPL software and just run it, you don't need to agree to the license, but if you do modify it you are in breach of copyright law unless you agree to the license.

If you are running a server connected to the internet, and it exposes an open source function, it is essentially distributing the functions with every request.

Live application runtime bytes streamed vs bytes written to a disk is not a meaningful distinction.