I found a library that uses the GPL-2.0 license. I know about the conflicts between GPL, closed source and commercial projects. I am considering to use a GPL licensed library in an executable (helper.exe) that is executed by my main application (main.exe).

I would like to keep my source closed of main.exe, but helper.exe I would make open source. Is it legally possible to ship my project with this combination?

Thank you!

New contributor
Daniel Stephens is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • 3
    When main.exe invokes helper.exe, what sort of arguments, pointers, structure, are passed between them? What does helper do for main? – MadHatter Jul 30 at 6:29
  • helper.exe /path/to/file and it prints out a JSON and base64 blob – Daniel Stephens Jul 30 at 13:39
  • 1
    How much structure is inside /file? Specifically, how much structure that is pre-agreed between main and helper? – MadHatter Jul 30 at 16:39

This is likely perfectly fine. The GPLv2 calls this case “mere aggregation”: you can distribute a GPL-covered program alongside a proprietary program without issues, provided you comply with the GPL for the GPL-covered program.

It is not always clear whether two executables form two separate programs, or whether they are so intertwined that they effectively form a single program. The GPL FAQ suggests that two programs are separate when they only communicate “at arms length”. Since your programs communicate via simple command line arguments and JSON documents, there's a very good chance that they are indeed separate.

Personally, I think a good test is to consider the actual goals of the GPL: software freedom. Is an end user actually able to inspect and modify the GPL-covered program, and your proprietary system will be able to use modified versions? If so, very good.

Relevant entries from the GPL FAQ:

| improve this answer | |
  • Thank you for the answer and the links! That is gold worth! Thanks a lot! – Daniel Stephens Jul 30 at 16:54

Your Answer

Daniel Stephens is a new contributor. Be nice, and check out our Code of Conduct.

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.