[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Is AGPLv3 DFSG-free?



Greets.  It's been awhile since I unsubscribed to this list, so a quick introduction is that I'm the maintainer of the PySoy project, the game engine being discussed here.

There are two issues being discussed, one is what the AGPLv3 means, and another on how it applies to PySoy.  I'll only address the license in this email.

Given the thread thus far to paste AGPL section 13, the only section which differs from the GPLv3 beyond name changes:

  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.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.


I'm going to break this down into pieces, as I understand it from numerous conversations with people at the FSF, SFLC, etc:


your modified version must prominently offer all users interacting with it remotely through a computer network

The terms of client/server/peer do not appear in the license text.  A "user" is thus any person operating software which interacts with the software you're running, regardless of the network role your software is running in.  If you're running a 3d IM client connected to GTalk, and that client has modified code, you're thus required to allow Google sysadmins to receive a copy of your changes.

Also note that the first paragraph of section 13 only applies when you're able to connect to the Internet, thus, the license passes the desert island test just the same as the GPLv3 does.


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.

Note that this does not read that the user of the software must, themselves and through their local Internet connection, send a copy of the modified software.  It also does not specify that the user must host it on their own server.

It is standard and customary that software patches be made available through a VCS.  Many VCS's allow numerous options in how this can be done.  There are numerous free code hosting services available to anybody with a network connection.  In many cases only the modifications to the Corresponding Source on which it's based (ie, VCS patches) need be uploaded, and only once, by the modifier themselves.

Thus, the source sending requirement does not violate DFSG's guidelines 3 or 5, as nobody who is able to run software on the network is burdened (financially or otherwise) with offering their changes to the people operating software that their modified software is interacting with.


but the work with which it is combined will remain governed by version 3 of the GNU General Public License.

While paragraph 1 requires all modified Corresponding Source be included, including dependencies, this does not mean that dependencies are now subject to AGPLv3 outside the context of this specific software.  Including the whole of the Corresponding Source closes a loophole where essential functionality is added to a dependency (ie, new functions added to a library) but only the modifications to the AGPLv3 covered work which utilize those functions are provided on request.

Thus, the AGPLv3 does not "contaminate" other software as in DFSG guideline 9.


The only potentially tricky spot I see is the dissident test.  I believe the AGPLv3 could pass as it does not require that the software, when on a network, interact with anybody.  That is to say, if avoiding an evil government's prying eyes was desired, the software could only interact with trusted agents, and thus keep even it's presence secret.

Reply to: