views:

306

answers:

2

This is very similar to other questions, but none of the other ones quite answer it, so please read through fully before shouting at me :)

(See e.g. http://stackoverflow.com/questions/1394623/can-i-dynamically-call-a-lgpl-gpl-software-in-my-closed-source-application)

I have written a closed source, commercial application.

The application uses a GPL tool which is available as a binary executable (.exe).

I use this tool only through invoking as a process (e.g. Win32 CreateProcess). The GPL tool therefore runs in a seperate process. No data structures are shared, nor any complex interation. It's just a simple command line like this:

gpltool.exe inputfile outputfile

The tool is therefore neither statically nor dynamically linked,

The complex bit of this story is this: I had to fix a bug in the GPL tool, so I modified it.

I already posted the patch of the GPL tool back to the developer and I make the modified source code (of the GPL tool) available in the normal manner.

I have distributed this tool with my application (i.e. using an installer which will extract the binary into my app's working directory).

I didn't for one minute think I had violated the GPL, but reading something recently made me extremely concerned.

I've read other people saying that it might matter how closely my app and this tool are related: this is a tough one. My app is pretty dependent on this tool, but I could probably swap in another equivalent tool to replace it. I just want to use this GPL one because it's the best available. But would that be considered a derivative work? That seems pretty unlikely to me.

Finally, I did get originally have assurances from the author that I could use the original tool as a binary, though not the modified tool.

I'm reluctant to ask the author because having already released this product, it would put me in a vulnerable position.

For the record, I was acting in good faith, making sure that I posted back a fairly useful patch for this tool back to the community.

So, can I distribute the modified GPL tool with my closed source application as described?

Has anyone experience of doing this?

If you think this is "bad", how bad? What I mean is, is this a downright illegal and terrible thing, or is it more like a grey area?

Thanks.

Bertie

+2  A: 

In my opinion you don't violate GPL. Otherwise one could sue any commercial software vendor which executes shell scripts (as it runs GPL'ed bash)

Dmitry
I agree, since you are just invoking the process this is a fair use of the application and does not violate the GPL.
Jason Whitehorn
Selling commercial software doesn't mean you can't use the GPL. I can even sell you a CD with a bash executable on it (and will, if you want!) for $100. I just have to comply with the terms of the license.
Roger Pate
Duh. We all know that this question was about the requirement of opening the source code, right?
Dmitry
A: 

Your closed-source tool only calls the GPL tool and processes its output once it's finished? You're fine (unless that GPL tool puts itself in the output, such as yacc or bison).

Do not forget that you must make the source available (to downstream users) for your fixed GPL tool.

You are welcome to pass the bug fix upstream but it's not strictly necessary, just good practice.

Broam