David Presotto [mailto:[EMAIL PROTECTED] 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 wrong.) 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 "server-ized" 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 money ;-) 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 double posting. -- license-discuss archive is at http://crynwr.com/cgi-bin/ezmlm-cgi?3