1) I find the source code for a program that is GPL licenced (ie, a video player, which supports playing videos at 16k resolution! [joke]).
2) I wanna play a video on it, but it doesn't offer an interface to receive requests from external programs (like listening on a port, and the executable doesn't accept passing arguments on creation).
So I go on and modify the source code, add an interface so that I can connect my propietary software to that program.
I'm a safe with this approach?
Am I correct in that:
My program remains proprietary (I don't need to share the source code with anyone).
I know I need to make available the source code of the modified "GPL" program, and it must remain in GPL.
If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
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.
The FAQ on GNU.org doesn't make things clear, at least for me.