I have a broad question about various interpretations of the GPL with regard to WebAPIs. Let me start with an example scenario.
1. Suppose that Super Visual is a clever GPL licensed data visualization program (released by Vendor A). 2. Now suppose that there is a closed-source, but free to redistribute, data processing library, called Correlate (by Vendor B), which takes a data set and a parameters and does a clever and very proprietary data transformation. 3. Now suppose that I modify Super Visual to incorporate the functionality of Correlate. It works wonderfully and I wish to share my Visual Correlate with my friend. Is this permitted by the GPL? a. Suppose my modifications involve static libraries, the resulting Visual Correlate is a single compiled executable. b. Suppose Super Visual has a plugin mechanism, and I use this internal API to load Correlate as a dynamic link library. Let's assume I also ensure that the program still works but lacks the correlate functionality if the dynamic library isn't there. I don't ship correlate.dll, but tell my friend about the easter egg. c. Suppose that Super Visual doesn't have a plugin system, but I release a GPL licensed Super Visual /w Plugins that does. Now can I release Visual Correlate using this plugin mechanism? d. Suppose that I make a SuperVisual+ (GPL licensed) with "generic", if complex way, to invoke separate executables for external processing using standard input, output, and command line arguments. Suppose also I get permission from vendor B to create and freely distribute a closed source Correlate command line executable that takes the specially formatted inputs to return outputs that the SuperVisual+ needs. I'm all clear now? e. Suppose that I instead wrap Correlate in a WebAPI (let's say I get permission of Vendor B to do this). Then, my modification to SuperVisual creates a runtime dependency on the web service; it degrades nicely without Correlate functionality if you lack a network connection or haven't paid to access my web service. Can I release this Visual Correlate under the GPL? f. Suppose that SuperVisual is a web application, and I "wrap" it with a web service running on a different server (without modifying one line of code), parsing the output stream to add additional functionality provided by Correlate. The final result is that my users experience a single integrated application that mixes both Correlate and Super Visual functionality. My interpretation of the GPL is that in every case, I'd be producing a modified version. Even in the latter case, my wrapper would be using very specific (and hence intimate) information about how the application works and therefore would qualify as a new program based on the earlier work. Hence, since my Visual Correlate must comply with the GPL; and since I don't have the right to also release Correlate under the GPL, I can't share my work (as cool as it may be) with my friend -- even if he already has a copy of the Correlate program. I say this for a few reasons. First, in section #1 of the GPL, "Corresponding Source" it says that the corresponding source must include all source code needed to run the object code. Hence, I must also include Correlate under the GPL. Secondly, under section #5c, it requires that I license the "whole of the work, and all its parts, regardless how they are packaged". Hence, my attempts to work around the intent of the license are foiled... packaging the Correlate function as a WebAPI doesn't make it any less of the whole work. Is this a correct assessment? If not, where has my logic gone astray? I've talked to a few attorneys lately about this situation, and I've gotten wildly different answers. While the specific example is completely hypothetical, the general situation isn't. I'd remark that it's widely held that wrapping up proprietary functionality in a Web API is a valid way to evade the GPL's copyleft. http://stackoverflow.com/questions/4351119/if-i-use-gnu-gpl-code-with-my-own-server-side-code-do-i-need-to-open-my-server/ Best, Clark _______________________________________________ License-discuss mailing list License-discuss@opensource.org http://projects.opensource.org/cgi-bin/mailman/listinfo/license-discuss