On Mon, Apr 06, 2009 at 02:02:42AM +0200, Bill Allombert wrote:
> On Sat, Apr 04, 2009 at 02:27:10PM +0200, Lionel Elie Mamane wrote:
>> On Thu, Mar 19, 2009 at 12:50:45AM +0100, Bill Allombert wrote:
>>> RATIONALE (to be amended if necessary):
>>> 2. This clause is incompatible with section 3. of the Debian Free Software
>>> Guideline:
>>> 2.1 This clause restricts how you can modify the software.
>>> Doing a simple modification to a AGPL-covered software can require you
>>> to
>>> write a substantial amount of extra code to comply with this
>>> clause.
>> No, it does not. Merely modifying the software does not trigger the
>> clause. It is triggered only if you offer a service to third parties
>> using your modified version, or distribute it to others that do. The
>> latter part (distribute to others that do) is unfortunate; I expect it
>> is not the intention of the AGPL writers.
> As written, suppose you modify it and distribute it (in source form)
Exactly: modify _and_ distribute. Modify alone is not a trigger (to
fall back to math jargon, it is not a sufficient condition).
> and it reachs the original copyright holder, they can run it and
> complains if it does not "prominently offer all users interacting
> with it remotely through a computer network". So in practice the
> clause is triggered as soon as your version supports such
> interaction.
_If_ you distribute it (or run it so that others can interact with
it). Similarly, clauses 5c, 5d, 6 of the GNU GPL gets triggered on
distribution, not on modification alone.
>> Distribution is the same trigger than what triggers the "copyleft"
>> clauses of the ordinary GPL; so that trigger cannot in itself be a
>> problem for DFSG freedom.
> The trigger seems to be "modification" rather than "distribution".
No, conjunction of the two (or conjunction of modification and letting
others interact with it).
>> Even if the clause is triggered, the most additional "extra amount
>> of code" you have to write is provide a link to a download
>> location.
> This assumes the program is a CGI script or at least can display
> text content to the users interacting with it through a network.
Well, the clause applies only to versions that interact with users; so
we place ourselves in the case where the program is interacting with
the user in some way. So it is giving the user messages in some form,
be it text, hypertext, audio, pictures, ... _And_ the user is giving
messages to the program, in some form such as following links, mouse
clicks, keyboard key presses, ... So if it has to obey this clause, it
has the ability to convey some content to the user. If the only
content it can convey is audio, then read an URL aloud slowly enough
so that a normal person can follow.
Interaction is necessarily bidirectional in my understanding; the
program can communicate to the user and the user can communicate
(usually "give orders") to the program.
>> Adding exactly one string in a relatively prominent place. That's
>> not "a substantial amount", especially as typically an AGPL-covered
>> software will already have the download link or mechanism, you only
>> have to change the URL or something like that. I'd
>> be sympathetic to a statement along the lines of:
>> Software licensed under the AGPL, that does not itself provide an
>> "opportunity to receive the Corresponding Source" in the meaning
>> of clause 13, or is structured such that changing this opportunity
>> to the source of modified version is not easy, is non DFSG-free,
>> if it is not free for other reasons (e.g. dual license BSD /
>> AGPL).
> What if you are reusing only part of the software ?
If that part interacts with the user, the clause applies, but you
interact with the user, so you can. If that part does not interact
with the user, you are off the hook.
There is a big uncertainty there what "interacting with the user"
means; a library of mathematical functions clearly would not. A
complete PHP-style application like mailman, imp, ... clearly
would. But a PHP library that produces chunks of HTML to be displayed
to the user by the caller? I don't know.
> What if your version (but not the original) implement a limited
> protocol that does not allow to convey arbitrary messages to the
> users ?
You are designing the protocol anyway; add one message to your
protocol that says "full sources available at... / do ${ACTION} to get
the sources", ...
But what if you cannot chose the protocol, but want to be a drop-in
replacement for another program (e.g. some non-free program)? Yes,
that can be a real problem.
>>> 2.2 This clause forces the developer modifying the software to incur the
>>> cost
>>> of providing access to the Corresponding Source from a network server
>>> as long as at least one person is using the software and this for
>>> all published modifications, even long after the developer stopped using
>>> the software.
>> Ah, I see. That's probably unfortunate