tags:

views:

141

answers:

4

I was reading through some of the older Joel on software articles and came across the Project Aardvark spec, one particular section caught my eye:

Licenses

VNC is GPL. The two components we’re building based on VNC, the helper and victim, will need to be re-released under GPL.

This is not that big a deal. The code will be highly optimized for our own use and will require the reflector to work, which will not be released under GPL.

This surprised me as I'm sure that I read somewhere that the GPL didn't allow exactly this sort of thing?

+1  A: 

Well, there's a lot of GPL software whose dependencies are closed source: Consider, for example, every GPL software running on Windows (i.e. linking the Windows API DLLs).

So, yes, you are allowed to use dependencies that are closed source. Nevertheless, as David points out (thanks for the comment), there is a difference between system libraries and other dependencies. The GPL says (highlighting by me):

The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

So, I guess it boils down to whether this "Reflector" counts as a "general-purpose tool". If it was written just for the purpose of including it into the GPL'ed software, I guess this is a no; if it serves a useful purpose without the VNC-derived software product, it might be yes.

Heinzi
That's different. The GPL has a separate clause permitting software to rely on normal system facilities, like the Windows API or Java runtime.
David Thornley
Good point, I've updated my answer.
Heinzi
+2  A: 

That depends on the relationship the reflector has to everything else, and since I don't know anything about the project I can't comment on that.

The GPL relies on copyright law: if you're doing something permissible under copyright law you don't need to pay attention to the GPL. Therefore, the GPL applies to derivative works of GPLed software, but doesn't to separate software. There is some debate as to what counts as derivative and what separate, but I'm not a lawyer and don't have a position.

One thing that is clear is that, if a program doesn't link to a GPLed program, but sits alongside it and communicates through standard inter-process communication, it's its own separate work, and not subject to the GPL.

Therefore, if the reflector is linked in, it's subject to the GPL. If it runs as its own separate process, it isn't.

David Thornley
+1  A: 

http://www.gnu.org/licenses/gpl-faq.html

Standard IANAL disclaimer. The GPL is enforced under copyright law, and therefore its viral provisions only apply in cases where you are making a derivative work. Modifying the source code to a GPL'd program counts as making a derivative work. Static linking does, too. Dynamic linking is debatable. Simply invoking a GPL'd program or otherwise communicating with one at arm's length definitely does not. The bottom line is that it really depends on what "dependency" means in this case.

dsimcha
Dynamic linking is considered derivating; it's the reason the LGPL exists.
Tobu
No court has ever said so. The vast majority of lawyers have never said so. In fact, the only person on the planet who believes that which flags you pass to your linker is somehow relevant to whether or not a work is considered derivative, is Richard Stallman.
Jörg W Mittag
A: 

First, don't make any business decisions based on legal advice you get from people on the internet - including mine.

I think this is addressed in the Frequently Asked Questions about the GNU Licenses: Can I write free software that uses non-free libraries?

They don't seem to have any restriction against combining GPL code with libraries that use incompatible licenses, but they do their best to describe your incentive for using completely free software.

Bill Karwin

related questions