Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> 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.


https://www.gnu.org/licenses/agpl-3.0.html

I don't see anything about integration in the license, there is no trigger about use AFAICT.

However, in item 13, it specifically says "if you modify the Program":

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.


Section 5, paragraph (c):

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

See also, paragraph (b):

b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".


Neither of those mention use or integration triggers anything?


> 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: