Corba interfaces and GPL freedom
iain at member.fsf.org
Sun Sep 14 16:00:12 UTC 2003
David Presotto [mailto:presotto at closedmind.org] wrote:
> So does that mean that any program interaction with GPL code is considered
> reducing the freedom of the codebase? Why single out CORBA? Why not any
> RPC mechanism like SOAP? How about CGI-BINs? Where does one draw the
> incredibly fuzzy line?
Yes, Corba is just one example, any similar RPC mechanism can be substituted
for the same purpose. Anything that essentially allows two otherwise
distinct and separate programs to make use of each others functionality via
some type of abstract interface.
As Mr Johnson's earlier reply pointed out, the program interaction at
runtime isn't really the issue here - GPL is really a distribution (copying)
license rather the a user licenses more traditionally used for non-free
software. My concern is with the potential for deliberate subversion of free
GPL code for non-free purposes.
The GPL relies upon Copyright to define the extent a derived work and that
may be a weakness. From the GPL:
>> The "Program", below, refers to any such program or work, and a "work
based on the Program" means either the Program or any derivative work under
copyright law: that is to say, a work containing the Program or a portion of
it, either verbatim or with modifications <<
The 'incredibly fuzzy line' therefore becomes the interpretation of what
constitutes "a work" when the non-free application and the free application
are distributed as a larger whole or collective work. The GPL itself
contains wording for this scenario:
>> These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program ... when you
distribute the same sections as part of a whole which is a work based on the
Program, the distribution of the whole must be on the terms of this License
... the intent is to exercise the right to control the distribution of
derivative or collective works based on the Program... <<
That seems clear enough, the "larger whole" including the non-free
application must be distrubuted under GPL, which is what I have always
assumed to be the case. But here we get to my concern:
The term "work based on the Program" has already been defined in the GPL as
"the Program or any derivative work under copyright law". In the previous
example, the non-free application is a separate program and contains none of
the original GPL code, therefore on its own merits I do not see how it would
be considered a derived work under Copyright law.
(Note: I am not a lawyer, and the above is an interpretation which could
well be the root of my misunderstanding, so please correct me if I am
The "mere aggregation" clause also helps to confuse the issue further:
>> In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of a
storage or distribution medium does not bring the other work under the scope
of this License. <<
The GPL FAQ clarifications from FSF attempt to extend the definition of what
constitutes a derived work:
"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."
These extended definitions may be beyond what might be supported by
Copyright law as a derived work, in which case there is a very real risk
that the GPL would not provide the intended protection for the free code.
My view is that the freedom of the GPL code is reduced because at its most
extreme, such an API could be added to the GPL code to export *all* of the
functions for use by separate programs. The term Mr Perens used was
If the copyright definition of a derived work doesn't cover the RPC
scenario, the GPL definition of "work based on the Program" is invalidated.
The GPL explicitlly doesn't prevent aggregation on the same media, so it
looks to me like there is nothing to prevent proprietary code from
server-izing any GPL code and exploiting it for non-free purposes, without
any obligation to give back the greater work to the community.
In that case the server-ized GPL code becomes less free, more akin to LGPL
status with less freedom than was intended by the author when they placed it
under protection of the GPL.
Anyway, that is the point I wanted to try and convey - it all just seems a
little too unfair and arbitrary to me. I guess that's how lawyers make their
I don't know if this is a real problem or if I am just being alarmist or
misunderstanding the situation. In either case, I don't know how it could be
fixed other than to put a more explicit definition of "collective work" into
the next version of the GPL.
If anyone has any suggestions or clarifications, I welcome them either
online or offline from this list, thanks.
ps. Sorry to take up so much bandwidth on the list, and for the initial
license-discuss archive is at http://crynwr.com/cgi-bin/ezmlm-cgi?3
More information about the License-discuss