[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

GPL and command-line libraries

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!

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?

If that's really the case, is it possible that a GPLv3 might address this?

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.
2. Patenting the new algorithm my library uses and putting in a clause which
   covers this corner-case and making it otherwise free.
3. Crafting a special (GPL-incompatible) licence which does what I want.
4. Writing to debian-legal and asking for advice.

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?

Thank you very much for your time!

Wesley W. Terpstra

Reply to: