Re: Affero General Public License
On Wed, Feb 08, 2006 at 12:31:16AM -0800, Josh Triplett wrote:
> > Although the "interface is such that" bit feels a little awkward, this
> > is a step forward. If I use a source file from eg. Apache in a tiny
> > embedded device, allow me to supply the source (that won't even fit
> > on the device, never mind that the device has no I/O suitable for
> > sending source) on an included CD.
> I'm assuming here that this "tiny embedded device" is not a product
> being provided to users, right? That case is already covered by
> GPLv2 and GPLv3 without the need for any clause of this nature:
> distributing a product containing GPLed code is distributing the GPLed
> code, and thus you must provide the source code, which you may on an
> included CD or via a 3-year offer.
> So you're talking about a "tiny embedded device" which interacts with a
> user but isn't distributed to that user?
I was explaining why your clause is a step forward compared to "if the
work has code to send the source to the user, keep it" incarnations.
With theirs, if I adapt code from a webserve to a toaster, it's either
impossible to satisfy the license or I have to keep broken code around.
With yours, I can delete the code, and satisfy the requirements by
including source on a CD.
> > It excludes from "users" (still
> > ill-defined) people who don't "interact", which is an improvement.
> I'm inclined to say that we can leave "users" undefined here, and rely
> on the common-sense definition ("people who use the software"), because
> we're defining a particular set of uses, namely "interaction". Even
> with the broadest possible reading of "users", you still take the subset
> of those who interact with the software.
It sounds like your definition of "user" is "people who interact with
the software", then? If that's the set of people you mean, maybe try
avoiding the word "user" entirely. Then you can focus on defining
"interact". (But first: my examples were meant to show that even
applying the GPL's source requirements to "interacting users" is
> Well, to start with, it sounds like you agree that there's a subset of
> "interact" which is free, namely "interact over a computer network".
If you mean "where it's free to require sending source", I'm not sure
yet. I'm more inclined to think so based on this clause, which doesn't
do so by placing restrictions on modifying the program itself.
This makes me wonder: the draft GPLv3's clause talks about software
which has the ability to send source *built into* the work itself.
How is that useful? Why would PHP or a search engine or anything else
of that nature have code to send the source? That's the job of the
webserver it's running under!
> That alone would cover many of the cases people care about when they
> want this type of clause, so going with that option is worth
> considering. Going slightly broader, in most cases it doesn't seem
> particularly problematic to provide a 3-year-offer or a CD; in many of
> the cases, the source distribution mechanims must already exist in order
> to provide source to those who originally put those fixtures in place.
But let's look at some of the examples I gave:
> > What about supermarket self-check-out, ATMs, self-service gas stations,
> > toll booths, voicemail, arcade machines? Software interacts with users
> > in every way imaginable ...
In my opinion, a player in an arcade, playing on an arcade machine, is
both a user of the machine, and is interacting with the software. (That's
my "common sense, intuitive" answer.) According to your clause, I'd need
to provide source to the players, as if I'd sent them object code. Is that
what you intended? It doesn't seem practical to me.
All of my examples were of this nature. It easy to argue that a driver
tossing quarters at an automated toll booth is a user interacting with the
software, and so on. If I used code from your webserver in my voicemail
system, what reasonable (eg. free) options would I have to comply with