GPL clarification relative to multiple processes
mhatch at ics.com
Wed Jan 17 23:13:24 UTC 2001
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 opensource.org... 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