tags:

views:

172

answers:

3

I want to sell a commercial software. It has 3 parts:

EXE Program 1: - links to GPL

EXE Program 2: - Has no GPL code.

EXE Program 3: - Has no GPL code.

My question is, can I only open source Program 1, and not Program 2 and Program 3?

+2  A: 

If it's a separate program, then yes, you can. Just remember that programs 2 and 3 will need to be licenced differently from program 1.

mingos
Why do you think that "programs 2 and 3 will need to be licenced differently from program 1"?
Either they are licenced differently, or they are all open sourced under a GPL-compatible licence. GPL licence's clause 3 enforces this. However, if programs 2 and 3 are completely separate and independent from program 1, there's no obstacle in making them use a commercial, closed source licence.
mingos
+2  A: 

I would suggest that you talk to a lawyer who understands software licensing (which is not me). And, I wouldn't be so quick to agree with mingos, either. Did you split up the executables so they could all work together to a final program. (AKA, the application needs EXE 1, 2, and 3 to represent a completed app?) If so, you may have a different problem on your hands.

Again, I would talk to an expert in this area.

JasCav
+1. I stated my answer, to the best of my knowledge below, but if you are serious about releasing this software you should talk to legal experts. Stackoverflow is IMO not the best place to do that. You should be able to talk to the FSF (Free software society. see https://my.fsf.org/).
Roland Bouman
Good remark, Jason. I assumed Program 1 is completely independent from the others.
mingos
A: 

Yes, I believe so.

The GPL requires that 'derivative works' are also released as GPL, if you distribute binaries of such derivative works. The definition of 'derivative work' is not always very clear cut though. But everybody seems to agree that when you link to GPL code, you have created a derivative work, and are thus obliged to license your work as GPL if you distribute binaries of your derivative work.

Now, the output of a GPL-ed work is not covered by the GPL (unless you have the edge case where the output of your program is actually GPL code - I don't assume that is the case now). So, if these exes communicate with each other by taking each others output, I think that should be ok.

I think it becomes different when these exes are daemons or services and rely on specific non-trivial inter-process communication, but I think there is no concensus in this particular case.

Roland Bouman