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

Re: Is AGPLv3 DFSG-free?

To cut down on number of emails, I'm replying to both Miriam and Francesco below:

On Tue, Aug 19, 2008 at 8:53 AM, Francesco Poli <frx@firenze.linux.it> wrote:
But there's a significant difference in reliability when the
Corresponding Source is hosted on the *same* server where the
AfferoGPLv3'ed program is running on: if that server is down, no Source
distribution will be performed, but no remote interaction with the
program will happen either...

This is absolutely true, in a best case scenario you would host the code yourself from the same computer and network connection as the remote user is connecting to you by.  However, even GPLv3 section 6d does not require this and that section is far more picky on how the Corresponding Source is provided.

On Tue, Aug 19, 2008 at 8:28 AM, Miriam Ruiz <miriam@debian.org> wrote:
It seems that the logic under AGPL is to consider a network connection
(which doesn't have to be the Internet, it can be, lets say,
bluetooth) almost at the same level as code linkage then.

Not quite, from my understanding.

It's first important to note that the term "linking" does not appear anywhere in either the GPLv2 or GPLv3, this is a common misunderstanding of the licenses that I had too before spending some time talking to various lawyers about it.

Copyright law can only extend the "copyleft" terms so far that works are combined into one work.  That is much broader than "linking".  Consider what the GPLv3 says about this in 5c:

    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.

The "whole of the work, and all its parts" is not even limited to executable code.  A game, for example, includes the software media components which a reasonable person (ie, a Judge) would say is part of the game.  This is confusing to us programmers because the software mechanism for loading said media components is little different from how Firefox loads webpages or Xine loads movies, and yes it does create some fuzzy areas where the copyright holder may need to specify her/his intentions.

It also doesn't matter how they're packaged or how they interact.  The copyright holder can say "if the parts communicate over a Unix pipe, they're separate works", or the copyright holder can say "if you're extending my original work in any manner the GPLv3 applies to all parts".  In the end, if a serious conflict ever arose it'd be up to a judge to decide, and only to determine if the components are two separate works or one whole work.

This term, however, is very different from AGPLv3 section 13, which does not combine works over a network into a single work.  This section merely gives the same GPLv3 rights to users of a software who access that software over a network, rather than having a copy of the software on their own machine in order to run it.

I'm not exactly sure how it would be technically possible to
"prominently offer all users interacting with it remotely through a
computer network [...] an opportunity to receive the Corresponding
Source..." in certain kind of programs that do not have a textual
interaction with people.

Note that it doesn't specify how you offer the source code or through which mechanism.  Using your example of a network time server, no the protocol really doesn't offer this easily.  In this case, you'd just show that you're making a reasonable effort to comply with the terms of this section in posting a link to the source code where you advertise the network time server's address.

Even in that case, the license probably requires you to have the 
source code available some period of time afterwards (three years)

The AGPLv3 section 13 terms do not specify this, and thus, no such requirement exists.  All that's required is that it's made available through a networked server.  I believe the language in this section is intentionally broad in order to legally allow the flexibility needed to reasonably comply.

The only place in the (A)GPLv3 that specifies a duration of time the Corresponding Source must be made available is when the object code is distributed on a physical product, such as a router or mobile phone, when the Corresponding Source is not physically distributed with the same product.

3) The user cannot remain anonymous.

What stops me from getting an anonymous account at Gna! (or any other free VCS services) and posting my modified version there?  The license certainly doesn't require that I identify myself beyond the terms of section 5a does (which is identical to the GPLv3).

I'm also quite bothered regarding to which extent does the AGPL
applies to the libraries they depend on. If I have an AGPL-covered web
application running on a modified version of Apache, or maybe I might
have some some Apache modules, must I release all of them at the same time?

My understanding is that you are only required to convey the components you've modified and, for that matter, only the specific code you've modified (ie, a diff).  Note this verbage:

from a network server at no charge, through some standard or customary
means of facilitating copying of software.

It's standard and customary to provide diffs, especially when your changes are small.  So in the example that you write a new web application which requires a modified Apache module, you could upload your web application and a patch for the module, along with a short readme or script which specifies where to download the full Apache source to apply the patch against and a list of other dependencies.  An included script could do this automatically.

The Corresponding Source includes all these things, yes, but it is not standard or customary to have them packaged or downloaded together.  All that matters is that they're available.

allows playing in network through Bluetooth with other devices, am I not allowed to
use that game in a private way, without having to set up a server,
advertise that I'm using that game and where the server is and so on?

You are absolutely allowed to use that software in a private manner without AGPLv3 section 13 coming into effect.  Note "offer all users interacting with it remotely through a computer network".  Private use has no remote users beyond the owner of the device itself.

If, however, you're using AGPLv3 software on your phone that allows other phone owners to play with you over bluetooth/wifi/etc without them needing to download a copy of the game from you, then you're required to provide them access to the Corresponding Source of that game.

Reply to: