GPL clarification relative to multiple processes

Mark Hatch mhatch at
Wed Jan 17 23:13:24 UTC 2001

Hi all,

I confused on at least one point (probably more ;-) ) of the GPL and would 
like some clarification. I'm sure that this is not a new issue, but didn't 
see it covered in the FAQ at But I do admit that I was 
too lazy to search the archives...

Suppose that there are three programs, "A", "B", and "C". "B" is covered 
under the GPL and written by some open source developer. "A" and "C" are 
written solely by a vendor that wants to keep the source proprietary (not 
interested in debating the merits of this decision, let's assume that they 
just want to).

"A" starts up and forks/execs "B" and "C" (so 3 processes all running in 
separate processes with no shared address space or any type of dynamic or 
static linking between them).

So now "B" and "C" start communicating. I think that there are three cases 

1) "B" and "C" communicate via stdin/stdout (let's assume that its the 
output of "B" that is important to the functioning of "C").
2) Sames as # 1, except "C" sends information to "B" vis stdin/stdout.
3) The proprietary software vendor adds a communication mechanism, perhaps 
via an ORB. (and of course releases all the code, etc. that was injected 
into "B", and otherwise abide by the rules and obligations of the GPL).

Cases #1 and #2, sound very similar to shell and pipes.  I think the clause 
of the GPL which says the output of a program "B" is not necessarily 
covered by the GPL (the compiler example) would be the relevant one 
here.  (But what of the program that provides "B" with input???) Based on 
the independent processes and the "output" reasoning,  I would think that 
the GPL would not automatically extend to "C" in either case. Am I right here?

Case #3 is puzzling. It looks like more than a "mere aggregation" on 
storage media. But it would be hard to believe that "C" was a derivative 
work of "B". Would one argue that "A" was a derivative work of "B" and so 
must be released under the GPL? (And then "C" would have to be released 
under the GPL when combined with "A", and "B")?

If case#1 and #2 are exempt from the GPL and in case#3, the GPL embraces 
all three programs, then where is the line between the three cases?



More information about the License-discuss mailing list