[R] The hidden costs of GPL software?
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Nov 19 11:02:59 CET 2004
On Fri, 19 Nov 2004, Bill Northcott wrote:
>> If the GPL were not so tight on this point, someone could
>> commercialize a GUI for R without having to offer their source code
>> under the GPL.
> There is nothing in GPL to stop a commercial GUI for R. Have a look at what
> Apple do. They have a complete commercial GUI and numerous applications
> built on a an almost completely GPL'ed operating system. There are loads of
> shareware GUIs which drive GPL utilities. Most obviously there are plenty of
> commercial apps which run on GNU Linux.
Perhaps you could look at earlier replies, for as Thomas Lumley said in
`A GUI that ran R just by sending commands to stdin and getting results
from stdout could clearly be proprietary without violating the GPL. The
question of exactly what level of closer integration is allowed would
get complicated and I won't speculate.'
I will speculate as far as to say that the Free Software Foundation seems
to regard the degree of integration that involves linking against libR.so
or R.dll as subject to the `based on' provisions of GPL: for example
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.
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help