Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
    
If it's GPLv3 or Affero then yes you do. Those licenses were tailored to fix and close the "software as a service" loop hole. –  Andrew Finnell Aug 23 '12 at 2:50
    
Wait, GPLv3 does too? I need to look at that again... –  Platinum Azure Aug 23 '12 at 2:53
    
Apparently I am mistaken about GLPv3. It was struck out of it. linux-mag.com/id/3017 –  Andrew Finnell Aug 23 '12 at 2:54

2 Answers 2

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.

share|improve this answer
    
Just to make sure I'm understanding correctly (having read the #GPLoutput question on the FAQ): So for example, if it can be said that the copyright of a document being uploaded (per my example) is held by the original writer, then the executable is being used, the output of said executable (having no part of the program's code itself contained within) retains the original writer's copyright, and therefore since I'm only using it and output is not by default covered under GPL, I don't have to disclose? –  Platinum Azure Aug 23 '12 at 2:20
1  
@PlatinumAzure: yes. –  MSalters Aug 23 '12 at 7:59
2  
"No" is correct but it main reason you don't is that you are not distributing the GPL covered work (only making it available online). This is a known quality of the GPL (both 2 and 3); there is a separate license the Affero GPL license that covers the case of application made available online and not "distributed". –  Craig Aug 29 '12 at 15:04

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.

share|improve this answer
    
I can see it being a borderline case if I'm providing a proprietary interface to free software, for sure (with the interface basically doing the exact same thing the free software does under the hood), but if I'm merely using it and it's essential for the program to function, but said free software's purpose is not intrinsically the same as the proprietary interface and is effectively being used like a system library, surely that could fall under the exception? –  Platinum Azure Aug 23 '12 at 3:24
    
@PlatinumAzure: The analysis is too pessimistic. "providing a web service to allow people to use GPLed code" is unambiguously NOT distribution of that GPL code. Not just my opinion, but that of the FSF as well. If the author of the software disagreed with the FSF, he shouldn't have used their license. –  MSalters Aug 23 '12 at 8:04
    
There's no ambiguity. One of the primary reasons for creating GPL v3 was to close this so-called-loophole, as the "Aferro GPL" had already demonstrated. GPLv2 is all about distribution of code, not about its use. –  Ross Patterson Sep 9 '12 at 1:16
    
@RossPatterson: the question was about GPLv2, as I've said in my post GPL gives you a lot of freedom when it comes to "usage", but it does it lots of limitation concerning "distribution of derivative works". While that part of the GPL is fairly straighforward, in GPLv2, it is open to interpretation whether a SaaS is a "usage" or "distribution". The GPLv2 said nothing about SaaS since it was designed before SaaS was commonplace, therefore the ambiguity. –  Lie Ryan Sep 9 '12 at 3:13
    
@LieRyan SaaS use by users who did not receive binary distributions was freely acknowledged as not being "distribution", and as not requiring distribution of source code. The Free Software Foundation worked with Affero to create a modified GPLv2 (the "Affero GPL" v1) that treated such use as distribution. The is no ambiguity in GPLv2. –  Ross Patterson Sep 10 '12 at 15:33

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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