tags:

views:

504

answers:

3

If I develop a GUI wrapper that only executes a GPL cli application (for the sake of argument, say tar) must I release the GUI wrapper as GPL? Is it a derivitive work?

If it is a derivative work what must I release?

Both the GPL application and the wrapper will be distributed together

A: 

This is a hard one, although I don't think it does, but IANAL.

If it's an open source project and you don't intend on selling yours why not just contribute your code the the project.

Unkwntech
+2  A: 

IANAL, but I'm pretty sure that if you don't link the GPL code with your code and just use the CLI, you code is not affected by GPL. You only obligation is to distribute source of the GPL code.

If you decide to distribute a GPL app, I suggest that you just include the compressed source tar on the media, instead of just "make available" through download, as you'll have to maintain the download site indefinitely for all versions of the GPL app you distribute.

obecalp
+5  A: 

IANAL. Quoting the mere aggregation section of the GPL FAQ (emphasis mine):

An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. 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.

Another question from the FAQ that relates to this is "If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in":

It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.

..

IMHO, in spirit, a pure wrapper that merely exposes the functionality of a GPL program should be GPL.

codelogic
I agree. IMHO, a wrapper written specifically for one application is a derivative at least in spirit, unless it were something sufficiently general to act as a wrapper to a large class of programs.
ShreevatsaR
+1 for quoting the discussion of derivative works and "intimate" communications.
emk