As I understand, GPL allows use of a GPL program along with a proprietary program as long as they are separate programs and communicate at arms length.

In order to do this, if I spawn a process from my commercial android app which would only contain the gpl code and communicate with the main process via sockets,
would this violate the GPL? If so, is there any other way to use a gpl program (or code) in a commercial android app?

Relevant portions of gpl-faq:

thank you,

  • 1
    What particular GPL program are you considering to use in your software? Please edit the question to improve it by naming the software! May 25, 2015 at 8:09
  • 1
    Did you read the last sentence of the paragraph of your second FAQ link? It says, even with socket communication, "... if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program." That is at least what the FSF thinks about it.
    – Doc Brown
    May 25, 2015 at 8:14
  • It's GPLv3. I did read about communication semantics. In this case, I don't really need internal data structures, but rather, the output of the program which would have been the typical output had the code been in the form of a library. May 25, 2015 at 9:19

1 Answer 1


You probably understand wrongly (you should not wrap a GPL program with some protocol to communicate with a proprietary software without great cautions), and you should contact your lawyer, or the FSF.

I am not a lawyer, but my understanding is that if you design a specific protocol to communicate (from some GPL program) with only a proprietary process it is legally a linking or a derived work (license-wise, linking is not restricted to use ld). Things could be different if you have a public and documented protocol communicating with several programs, one of them being GPL.

In some legal systems, the court will evaluate if your intent was to hijack the spirit of GPL. You really need a lawyer and or the advice of FSF.

Did you consider publishing your application as free software under a GPL compatible license (You can commercialize GPL software, provided you give access to the source code under GPL license)?

And please, read more about free software. The goal of free software is not to assist proprietary developers (but to give freedom to users). Please visit the https://www.fsf.org/ site

You are probably considering making a huge mistake; are you sure to want to violate (or even to risk violating) the GPL license or its spirit? your career, your reputation, your employer & clients could suffer (e.g. financial loss, or even go to jail in some countries); at your place I would not risk doing what you want to do (unless covered by a lawyer, who will defend you in court)!

BTW, the whole point is understanding what "communicate at arms length" means, and you probably need a lawyer for that.

  • If a specific protocol is created for the gpl code (such as a wrapper), and that wrapper is licensed under gpl, then that should be okay, right? See: link thank you, May 25, 2015 at 7:42
  • Not sure, unless that protocol is not unique to your case. Contact your lawyer, or design and implement a public & documented protocol with a GPL implementation (on both sides). AFAIK there have been precedents, but I don't know if they got to court May 25, 2015 at 7:44
  • Notice that you are playing with fire. Are you sure to want to violate (or even to risk violating) the GPL license? Your career, your reputation, your employer & clients could suffer (e.g. financial loss, or even go to jail in some countries). I would not risk doing what you want to do! May 25, 2015 at 7:51

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