Slashdot Mirror


The GPL And Web Applications

eries wrote a good summary of a major problem with the GPL, with regards to web applications. Essentially, since the GPL is about 'Binary Redistrubtion', it doesn't work with web pages where the output is distributed, but the software itself doesn't have to be. Anyway, hit the link to read his comment about it. Definitely an issue that I've thought a lot about wrt Slashcode, but never found a clear solution.

eries writes "We recently ran into some licensing problems for a web-based open-source project. Since our project is an OO package written in PHP (a scripting language) the GPL does not quite apply. The GPL is designed to handle "binary redistribution" for software packages, but ours cannot be distributed in binary form. That means that someone could make a website out of a derivitive work and never have to open or disclose their code - an apparent violation of the spirit of the GPL. Now, we think it might be possible to modify the GPL to construe instances of a website sending HTML to be "executed" on a browser as redistribution (more on this later), but we don't really know how to go about it. Consequently, we are forced to try and find another license. We have looked at the Artistic and the APSL, but these are both pretty dubious. Has anyone else run into problems like this? We want to write to both the OSI and FSF and bring this to their attention, so we'd like to find out of others have run into the same situation. You can also check out this related discussion on the Sourceforge forums page.

IMHO, we need a way of defining, in cases like these, what constitutes a derived work. Clearly, things like your db password and content like graphics, logos, layout, etc. are not derived works. But how can we draw the line in the case of added functionality? How is this handled in more traditional content-delivery systems?

Is the HTML produced by our scripts just output? The more I think about it, the more I am convinced that the application that a user is running when they use our software is not just a series of HTML files. Those files, by themselves, are worthless. Instead, their usefulness depends on an awful lot of "state" - the state of the browser (cookies, javascript), the web server, other scripts which the browser has to reconnect to, and the data in the database. The HTML files are just one component of the general state that our app produces. If you construe this more nebuloous "state" as the "binary" application that our software produces, then distributing it to a user via a web server is a non-sourced distirbution, and hence forbidden by the GPL. What do you think? I have to believe that someone running a mod_x application within an Apache server that gives access to it to tons of users is redistributing it without the source, unless you believe that clicking on "View Source" for this /. page you have access to the Slash source..."

2 of 197 comments (clear)

  1. GPL does not cover the ASP model by Bruce+Perens · · Score: 5
    There are a lot of different applications where you can publicly perform software without distributing it. We need to have the source distribution requirement connected to public performance or making the software available for use rather than distribution.

    Bruce

  2. Same Issue, Different Slant by ewhac · · Score: 5

    Let me see if I can't clarify the issue that appears to be at hand here, as people seem to be getting mired in minutiae about what constitutes code.

    The GPL outlines only those obligations pertaining to redistribution of code. If you redistribute copies of gcc, you're expected to make the source available, along with all your modifications. If you don't redistribute gcc, you're free to hack it up all you want and you don't have to share your changes with anyone.

    Now, let's suppose someone decides to open a compiler farm on the net. You send it source code, and it sends back the compiled binaries. Let us suppose further still that the compiler sitting at the server is a version of gcc that has had tons of local modifications made to it to improve the code generator to at least three-fold over what you can get out of stock gcc.

    Question: Does this constitute redistribution for the purposes of the GPL? The gcc binary has never left the server farm, yet gcc's output is being distributed everywhere, and the fruits of those highly-desireable gcc modifications are not being shared among the GPL community.

    This appears to be the primary issue at hand. Others will no doubt differ with this interpretation, but it seems to me the GPL was intended to "isolate" software hoarders; that you are free to keep your work to yourself so long as the results/output of that work also remain with yourself. For a large class of problems/jobs, this is perfectly reasonable. But as we see, distributing services based on GPL'd software muddies the water.

    It's a thorny problem.

    Schwab