2

Scenario

There is a GPL3 code repository containing a client + server (Say it's a proxy server and client library). I want to create a paid service which uses them. It is my understanding that:

Assumptions

  • If I use the server component, I can still charge money for access to my service without disclosing my other server-side code because I am not distributing the GPLed server as a binary.
  • If my proprietary client software depends on the GPL3 licensed client software, I do not have to distribute my source-code as long as:
    • My client app executes the GPL licensed client app binary on the system (The two client app's codes not merged)
    • Communications between the two apps are done via some IPC (Again, no shared code).
    • When user installs my proprietary client, the GPL3 licensed client is downloaded separately by the installer.

Question

Are all these statements correct or did I get something wrong?

2

If I use the server component, I can still charge money for access to my service without disclosing my other server-side code because I am not distributing the GPLed server as a binary.

I agree.

The client app is a bit more complex. It is true that no shared code is a necessary condition for your code not being a derived work of the GPL client code (and thus not subject to GPL itself), but it's not sufficient. The FSF's view is that when one program invokes another through simple fork-and-exec the relationship is sufficiently distant that questions of derivative work generally don't arise, but if they share complex structure, then it's possible:

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But 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.

So when you write "Communications between the two apps are done via some IPC", it tells us nothing about the "derivative work" status of your code. The devil is in the details, and you've not told us any.

When [a] user installs my proprietary client, the GPL3 licensed client is downloaded separately by the installer.

How the end user installs the client code is not material to the question of derivative works. If there are other reasons, such as closeness of communication, to consider your work a derived work of the client code, your shipping arrangements will not change this, and you will have GPL obligations with respect to your code, regardless.

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.