Re: GPL and command-line libraries
"Wesley W. Terpstra" <email@example.com> writes:
> Good evening!
> I'm developing an error-correcting code library which works on a lot of data
> at once. Since the API is quite simple and the cost of process creation
> relatively insignificant, I would like to provide a command-line API.
> I feel this has several engineering advantages:
> 1) it's easier to debug and understand if you can interact with it
> 2) bugs in the library don't crash programs using it
> 3) multithreading can be used in the library and not the application
> ... and other more problem-specific benefits.
> To the point: I want this library to be released under the GPL, BUT ...
> Would the GPL still protect it?
> If someone writes a program that does: popen('my-api');
> does the GPL require that program to also be GPL?
> From the short answer I got on IRC it seemed the answer was: No!
That's correct. It's even in the GPL FAQ.
> What I am concerned about is the following scenario:
> Mr. John Wontshare writes a streaming multicast client.
> To deal with packet loss, he uses my error-correcting library.
> Without my library, Mr. Wontshare's client can't work at all.
> Mr. Wontshare's client represents only a small investment of effort and
> without having had access to my library, he could have never written it.
> He then distributes his client along with my library to end-users.
> These users don't get Mr. Wontshare's code, even though he uses my library.
> Even worse, he refuses to port his client to MacOS X for business reasons.
> (intentionally giving an unfair competitive advantage to another platform)
> To me anyways, this sounds like exactly the situation the GPL is supposed to
> protect against. Is this _not_ a derivative work?
Unfortunately for you, no, it's not a derivative work.
> If that's really the case, is it possible that a GPLv3 might address this?
Only if GPL3 is incorporated into the copyright laws worldwide.
Doesn't seem likely to me.
> There are several things I've considered to prevent this scenario:
> 1. Write in all documentation, help, etc: "popen my app = derivative work"
> ... and hope that this is enough to give me a victory in a lawsuit or at
> least scare Mr. Wontshare away from even trying this.
Maybe it scares someone, but it can't be enforced by law.
> 2. Patenting the new algorithm my library uses and putting in a clause which
> covers this corner-case and making it otherwise free.
Software patents don't exist in large parts of the world.
> 3. Crafting a special (GPL-incompatible) licence which does what I want.
> 4. Writing to debian-legal and asking for advice.
You got my 2 cents.
> I've heard all sorts of arguements in IRC that drawing the line in a good
> way is very hard. I believe that. However, what I want to know is, if this
> went to court, would things like the intention and degree of dependency be
> considered in determining if the client was a derivative work or not?
> What can I do to prevent the above scenario from happening?
Don't release your code at all.