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!

  • 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 '20 at 6:29
  • helper.exe /path/to/file and it prints out a JSON and base64 blob Jul 30 '20 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 '20 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:

  • Thank you for the answer and the links! That is gold worth! Thanks a lot! Jul 30 '20 at 16:54

Your Answer

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.