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

Re: Web application licenses



Brian Thomas Sniffen wrote:
> Josh Triplett <josh.trip@verizon.net> writes:
>>Brian Thomas Sniffen wrote:
>>>Josh Triplett <josh.trip@verizon.net> writes:
>>>
>>>>How about something vaguely like:
>>>>
>>>>"""
>>>>If you make the software or a work based on the software available for
>>>>direct use by another party, without actually distributing the software
>>>>to that party, you must either:
>>>>
>>>>a) Distribute the complete corresponding machine-readable source code
>>>>publically under this license, or
>>>>b) Make the source code available to that party, under the all the same
>>>>conditions you would need to meet in GPL section 3 if you were
>>>>distributing a binary to that party.
>>>>"""
>>>
>>>So if I use software under such a license in a network switch, to whom
>>>am I obliged to distribute source?  How about a web proxy?
>>
>>My _intent_ with the phrase "direct use" was to avoid such issues.  I'm
>>aiming only for the case where a user directly _interacts_ with the
>>software, so perhaps I should have said "direct interaction" instead of
>>"direct use".
>>
>>Really, the main cases I'm thinking of here are:
>>* Using the software to power a website or web service.
> 
> But I don't directly use your CGI scripts.  They aren't even
> network-aware.  I'm talking to Apache, which you probably haven't
> modified.
> 
> In fact, I'm not even talking to Apache.  I'm talking to your kernel
> -- or the network switches between you and me.  I'm not even sure I
> *am* talking to you, what with dynamic routing tables and all.
> 
> And in fact, I'm not talking to the network at all.  I'm just using
> this unmodified Mozilla Firefox, and it renders various results of RPC
> calls for me.

Hence the problem: the license can't rely too much on common sense.
This makes it either too specific (only web services, for example) and
therefore miss many cases, or too general (software used to run a
business), and become onerous.

However, I still think it's possible to write a license that would work.

>>* Using the software in a kiosk that others can directly interact
>>  with.
> 
> OK, *that* I'll agree is reasonably direct.  There, you have a work --
> the kiosk -- which has components GUI, OS, application, etc.

Note, of course, that you only need to release the source to the work(s)
derived from a work under this license, which may not be everything
running on the kiosk.  (Of course, you _should_, but you are not
_required_ to.)

> But if I put up a bronze plaque, should I be obliged to provide the
> source, complete with build tools, to anyone who can see it?  I
> continue to have trouble seeing how that promotes freedom: even if you
> have the source, you don't have my kiosk, and you can't just run
> whatever you want there.
> 
> For example, even if Debian Airlines gave out the source to its
> fast-checkin kiosks, that would not give anybody freedom to alter the
> operation of those kiosks.

And obtaining GNU Emacs does not entitle you to run it on a gnu.org
machine.  Why should this be any different?  You have control over your
own boxes and what runs on them.  I have the same control over mine.  If
you make software available, I can run it on my boxes, but not on yours
unless you permit it.  This would still give me Freedom over the
software I'm using; what you suggest would infringe _your_ Freedom to
decide what software you run on your own hardware.

>>* Allowing a user to log into your box and run the software.
> 
> So if I want to have a dialup server, it must include the source for
> all its 

This sentence seems incomplete.

Yes, you would have to provide source for the programs users may run on
your server, if those programs are covered by this license, or are based
on such software.  However, that can probably be handled for 99% of the
software on that server by saying "Get it from *.debian.org".

>>For example, suppose someone wanted to use GCC as a basis for the
>>compiler for a new language, but they didn't want to release the source
>>for it.  All they would need to do is make the changes, put them behind
>>a web-accessible SOAP API, and tell people to use that for compilation
>>(and perhaps distribute a small client for that service to install as
>>/usr/bin/secretarch-gcc).  This would sidestep the GPL, since the code
>>is not being distributed to those users; nevertheless, the users of such
>>a service certainly deserve the code behind it, under a Free license.
>>The license I suggested is an attempt to avoid that.
> 
> I just don't see a way to avoid that in a free way.  I understand your
> motivation for doing this, but I don't think you can do it without
> prohibiting behavior necessary for freedom.  I'd be interested to see
> a way to do so.

I strongly believe there is a way to do it Freely; it just hasn't been
found yet.

>>>I do wonder what "publically" means.  If I'm offering to hand a CD to
>>>anyone who asks me for one in person, is that public enough?  Or must
>>>I run a web server to distribute it, and thus (assuming this license
>>>is broadly used) have to distribute a web server too?
>>
>>"Publically" meaning that rather than making special arrangements with
>>any particular party, it would be acceptable to tell users of your
>>service that the source is already available from such-and-such
>>location.  It's possible that this should be clarified, but I believe
>>that "publically available" has a legal meaning.
>>
>>That clause was mostly included for convenience, so that you were not
>>required to make arrangements with each individual user who wanted
>>source, and could just provide a notice saying "source available here".
> 
> Perhaps the approach seen in some Free licenses -- "provide a way for
> the source to be obtained" is better?  A few extra words to add
> clarity, specifying what we *actually* mean, can only be an improvement.

That's what I was going for: a clause that allows for a certain amount
of common sense and interpretation.

>>>Does the Department of Transportation need to make stoplight software
>>>generally available?
>>
>>While I do think government software should always be Free Software and
>>distributed to the public, I would not really classify that case as
>>"direct interaction", or really "interaction" at all.
> 
> But I manipulate an input device to obtain results from the computer
> -- I move my car over the magnetometer, and the light changes.  If
> that's built on software under your license, is it direct interaction?
> How can I be made aware of my rights to the source in that situation?

Heh.  I wasn't really considering the ones you "interact" with; I was
thinking of the "show up and wait" style. :)

You really _should_ be able to get the source to everything you interact
with that is under this license.  On the other hand, that is a good
example of how the requirement might be difficult to meet.  Then again,
the DoT can always choose not to derive their software from software
under this license.

>>>Does google have to make its source code available?
>>
>>If that code is a derivative of code under such a license, then yes.
>>
>>>If so, why?  It's
>>>not going to do anybody else any *good*, since we don't have
>>>100 kilomachine clusters sitting around idle to use.  So this doesn't
>>>get us Freedom; we can't change the google interface we use in
>>>practice.
>>
>>And getting a copy of Apache doesn't entitle you to hardware equivalent
>>to that which powers apache.org, and getting a copy of Neverball or
>>BZFlag doesn't entitle you to 3D hardware, and getting a copy of CERNlib
>>doesn't entitle you to a particle accelerator.
> 
> No, but if I don't have those things then I can't use the software
> anyway.  

My point is, you are asking for too much control over how the other
party uses their hardware.  You should certainly have the right to use
it on your own hardware; that would be more freedom than you have now,
and certainly enough to consider it Free Software.  I'm sure that there
is plenty of software in Debian main that neither of us could take
advantage of for whatever reason.  That does not make the software any
less Free.

>>You would have no rights to change the version of the software Google
>>runs on its own servers.  You _could_ deploy the software on your own
>>systems however you pleased.  That is certainly Freedom.
> 
> It's not the same kind of freedom I have with respect to Emacs or Linux.

Sure it is.  In both cases, you can deploy the software on your own
hardware.  In both cases, you have the right to use, copy, modify, and
distribute the software.  Whether you have the ability or the resources
to take advantage of that right does not affect whether you have that
right, or whether the software is Free.

>>>I think it's great that some sites publish their code.  But I don't
>>>see any benefit to freedom from compelling them to do so.  On the
>>>other hand, a compulsive *open interface* would be a useful thing.
>>>Say, if Google were using a weirdly licensed web server which
>>>compelled them to provide an RPC function allowing arbitrary queries,
>>>so that others could access their data in surprising new ways.
>>
>>This, on the other hand, seems like a ridiculous restriction.  No server
>>should mandate what services you must provide using that server.
> 
> OK.  Then why is it OK to mandate that those using a modified Apache
> must provide source-download services?  And is it *better* to say that
> it must be done some other way?

They don't necessarily need to provide source download services, and if
they do, they needn't provide those services from the same server that
uses the modified Apache.  I would be satisfied with any mechanism that
provides the machine-readable source for no more than the cost of
distribution.

This is exactly the problem with the Affero license: it mandated that
you must provide the source code for download via HTTP, under the
assumption that you will use the code for an HTTP-based service, and
that you can serve the code over the same medium.

- Josh Triplett

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: