[computer-go] Collaboration project. Once again
Ron Goldman
rgoldman at cs.stanford.edu
Sat Aug 5 18:41:13 PDT 2006
On Aug 5, 2006, at 5:54 PM, Jeff Nowakowski wrote:
> This is the commonly held belief, that if you don't link and
> communicate
> via a standard interface (like exec or a network protocol), that
> the GPL
> never applies to your work as a whole. Could you read the license and
> show me where it says that? Why is linking so special anyways?
> It's a
> standard interface like anything else.
Jeff,
You are correct that the text of the GPL never makes it explicit.
However if you look on the FSF website you'll find an FAQ that
explains their interpretation:
http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
What is the difference between "mere aggregation" and "combining two
modules into one program"?
Mere aggregation of two programs means putting them side by side
on the same CD-ROM or hard disk. We use this term in the case where
they are separate programs, not parts of a single program. In this
case, if one of the programs is covered by the GPL, it has no effect
on the other program.
Combining two modules means connecting them together so that
they form a single larger program. If either part is covered by the
GPL, the whole combination must also be released under the GPL--if
you can't, or won't, do that, you may not combine them.
What constitutes combining two parts into one program? This is a
legal question, which ultimately judges will decide. We believe that
a proper criterion depends both on the mechanism of communication
(exec, pipes, rpc, function calls within a shared address space,
etc.) and the semantics of the communication (what kinds of
information are interchanged).
If the modules are included in the same executable file, they
are definitely combined in one program. If modules are designed to
run linked together in a shared address space, that almost surely
means combining them into one program.
By contrast, pipes, sockets and command-line arguments are
communication mechanisms normally used between two separate programs.
So when they are used for communication, the modules normally are
separate programs. But if the semantics of the communication are
intimate enough, exchanging complex internal data structures, that
too could be a basis to consider the two parts as combined into a
larger program.
----
Note that projects that use the GPL can clarify matters by explicitly
excluding certain ways of interaction from causing a second program
from being seen as extending the GPL work. For example Linux includes
the following as part of its licensing:
NOTE! This copyright does *not* cover user programs that use kernel
services by normal system calls - this is merely considered normal use
of the kernel, and does *not* fall under the heading of "derived
work".
to make it clear that any applications written to run under Linux do
not need to be GPL'ed.
So if the copyright holders for GoGui added a similar statement to
their copyright that would assure anyone wanting to connect their Go
engine to GoGui that their engine did not need to use GPL. I also
agree with you that LGPL is often a better choice and promotes more
sharing.
-- Ron --
More information about the computer-go
mailing list