sábado, 10 de abril de 2010

How does GPL licensing affect projects that don't involve linking/compiling?

This is a question that I've been trying to figure out for a while already.

I'm working on a php project that I will distribute (or whatever word you want to use) under the terms of the Affero GPLv3.

Now I included a piece of code (PHP Simple HTML DOM Parser) that's not under that license (MIT kind of license, apparently) and I started wondering how GPL code gets affected by the code I included... I mean, it's already settled matter that you become a GPL sinner (so to speak) not if you choose to use GPL code mixed with other (proprietary, for example) code.... the sin happens at the moment of redistributing (or propagating or reciprocating or whatever it's called now) the binaries resulting from linking GPL code with code licensed/released under other terms.

But how is it handled when there's no linking? At least no linking to redistribute... think of projects made in PHP or Python, where no binaries are released.

6 comentarios:

  1. The Affero GPL3 is areal bugger in this instance. IT was designed to stop SaaS backend mod's to application from becoming a secret sauce. The standard GPL3 has no effect on SaaS backend mods becuase the source/binary never leaves the home server.

    Basic test I saw years ago for the basic GPL was that if you can pull the non-GPl code out of the loop and nothing breaks then all is fine. It is perfectly legal to have a proprietary frontend GUI that makes use of GPL back end so long as the interaction is through the standard world facing interfaces of the binary.

  2. In the case of PHP or uncompiled code, there is practically no linking in the technical sense. So you have to consider how the code forms a *combined work*.

    If your main application incorporates a library in a way that it becomes an indespensible part, then yes your code must be fully licensed under the GNU GPL.

    If you use a GPL licensed work merely as plugin, don't intermix the code actually, and the application would still run without, then there is no requirement to adapt the GNU GPL for the main code.

    I've asked the FSF once about this. Note however, that this applied to the GNU GPL 2.1. The GPLv2 is in fact a distribution license, and based on the technical term "linking". Henceforths doesn't bite on PHP code.

    You have to assume it is an entirely different matter with the GNU GPLv3. Because the GPLv3 is more of an EULA (swpatent stuff applies even without redistribution); and the definition of "linking" has been refined. I believe it applies to uncompiled code now as well.

    And furthermore the AGPL licenses additional requirement is to make the code available. It applies regardless if you distribute the code or not. You always have to make the used/modified code parts available for download.
    (If that extends to the main app, I can't say.)

    Always contact the FSF with your *specific* case at hand. They can answer it. And they are more helpful and open minded than their press releases (or RMS) would suggest.

  3. I seem to recall hearing that the GPL v3 included some changes specifically to create compatibility with the MIT license, although I'm not sure where the Affero part fits into that because Affero due to its objectives is a pretty picky license.

    . . . given the nature of the MIT license, which is somewhat BSD-like, theoretically you could re-license the code on your server from MIT to Affero GPL v3 as long as you don't change the name of the piece of software. That might be considered rude, but it wouldn't violate the MIT license.

  4. Este comentario ha sido eliminado por un administrador del blog.

  5. Este comentario ha sido eliminado por un administrador del blog.