copyleft for network linking
Clark C. Evans
cce at clarkevans.com
Tue Nov 21 06:35:13 UTC 2006
After much thoughtful feedback, I am proposing another strawman, and I
hope it is met with your continued ear and critique. I am hopeful that
something can be forged here. I am encouraged by the writings of Bruce
Perns who, on 13 Mar 2002, said that restrictions based on "use" should
not be forbidden and went on to comment[1]:
"It was an explicit goal when we created the OSD that the GPL be
accommodated. An important goal of the GPL and a few similar licenses
is to prevent the producers of proprietary software from parasitizing
Free Software creations by including them in proprietary works. The
GPL prevents the proprietary programmer from deriving from GPL works
unless he is willing to give everybody all of the GPL rights on his
derived work. This protection has made the GPL very attractive. It's
our most-used license.
The GPL creators contend that a copyright permission is all they
need to enforce the derived-works provision of the GPL, even in the
context of dynamic linking. A future version of the GPL could deal
with even-less-direct forms of linking such as daemonizing for the
purpose of license-circumvention and use of object brokers to make a
program that acts as if it's linked but actually occupies two or
more separate address spaces."
Since this writing, serious progress has been made on one sort of
problem that Bruce mentioned, the "ASP problem". Lawrence Rosen's Open
Source License v 3.0 addresses this issue with the "External Deployment"
concept, which triggers when the work is "made available as an
application intended for use over the network".
The second issue, as identified above, is indirect linking. It is
becoming an increasingly troublesome problem and is hurting the open
source community. Parasitic organizations take GPL'd software, add
"hooks" which call-out to proprietary functionality, and then sell the
components together or offer them over the web as a service. I'm not
sure how to solve this indirect linking problem, which is why I've come
to this list to ask for your help.
The most important question for me at this time is if the Open Source
Initiative is willing to address this problem, and possibly approve a
license that extends the GPL "copyleft" to the new world of network
linking. The followup question is, of course, how.
To clarify the idea, but not ready for an rigorous review, are a few
very flammable straw-man clauses (as appended to OSL v3.0):
X.1 Running System
The term "Running System" refers to the Original Work and any
Derived Works as executed by a computer. The normal operation
of the running system reflects the usual behavior of the system
as expected by a user. Crippled behavior or the unavailability
of features is not considered normal behavior.
X.2 Dependency
A dependency of the Running System on another system occurs
when a communication channel (via packets, sockets, dynamic
link, or whatever) is created between the two systems such that
the normal operation of the Running System would stop if the
communication channel were severed.
By illustration, a web client connecting to a web service
creates a communication channel. However, a dependency is
not created since the web service will continue to operate
and serve other customers even if the communication channel
were suddenly dropped.
By contrast, a connection to a database system from the same
web service would create a dependency, since a termination of
the connection would typically cause the web-service to become
unavailable and to stop functioning normally (at least as much
as it depends upon the database).
X.3 Permitted Dependency
A dependency is permitted if the link is to the operating
system upon which the Running System is executed, considering
that the definition of the operating system is limited to be
of reasonable scope (managing hardware resources and providing
hardware abstractions).
A dependency is also permitted if the channel is made to a
system which is similarly licensed. Exceptions are made for
software which has been published under an open source license
which have no further dependencies or whose dependencies,
recursively are permitted under this definition.
X.4 Termination for Proprietary Dependency
Your right to use the Original Work and any Derived Works under
this license is terminated if You have caused the work to be
used as a Running System with one or more Dependencies which
are not permitted.
Kindest Regards,
Clark C. Evans
[1] http://www.mail-archive.com/license-discuss@opensource.org/msg04702.html
More information about the License-discuss
mailing list