11

I'm designing a software as a service project which will only be accessed online. I may have a hard dependency on an executable which is covered by GNU GPL (v2 or later).

I understand that my code, if I were ever to distribute it, must be distributed under the GPL terms as well. I am pretty sure that running the service over the network is not conveying/distributing the code. Thus, am I correct in thinking that I may use the GPL dependency without having to disclose all my code?


Just so I can provide a concrete example: Let's say I'm designing on online document processing system, kind of like Google Docs. I want to be able to upload basically any file type into the system and have it get converted to whatever internal format. Instead of trying to scratch out a converter, I'd rather use an existing program I know about that allows for the conversion. This program is an executable with GNU GPL v2 (or later) licensing. Can I legally have a software-as-a-service without providing my source code?

2 Answers2

9

From the description you have provided, the answer is "no, you don't have to disclose." You are either relying upon the output of the GPL'd executable or you are treating it as a system, which are two exceptions to the viral nature of the GPL. Dig into the GPL FAQ and you'll find your answers based upon the specifics of your scenario.

-1

IANAL but IMO the GPL do have a little ambiguity here (or interpretation). GPL gives you a lot of freedom when it comes to "usage", but it does it lots of limitation concerning "distribution of derivative works". First it's regarding use vs derivative works. If your code are only "using" the GPL software, you don't need to distribute your code that uses the GPL code (if you modify the GPLed code itself though, you still have to distribute that part of you are planning to distribute the changes), in the other hand if it's considered derivative work, then you do have to distribute your source code. One of the key points is whether your code runs in the same process address space to the GPLed code, the official GNU position is that if a program is linked to a GPLed code into the same process address space then it's considered a derivative work, but a process calling into GPL code that lives in separate process or separate machine, communicating through IPC (pipes, sockets, etc) may not fall under GPL depending in the nature of the communication (simple communication such as giving options and file names for the program to work on is considered usage, but exchanging complex internal format could makes it linking).

There's also the ambiguity whether providing a web service to allow people to use GPLed code is considered redistributing the software or just a way of using the software. I think most people consider that simply providing a web service does not fall under redistribution.

Best to ask the software author what they think of what you're doing. It's best to respect their interpretation instead of going on your own interpretation. At the very worst if it ever becomes a problem, you could argue that you've got explicit permission from the authors themselves or you would have a chance to find another more permissive library or negotiate an exception.

Lie Ryan
  • 12,496