Here’s the question I was faced with today.
If you install a software that is licenced under the GPL license on a server, and let people interact with the software, do you have to make the source available? And furthermore, if you did modify that software, are you obligated to release that software along with the source.
A good example of that would be Joomla!. It is not uncommon to want to customize it, fix bugs very specific to your use of the software, etc…
Based on my understanding on the GPL, my inital thinking that you had to make your modifications available. But I had enough doubts that I wanted to find out more. After a few hours of research, it turns out I was wrong.
Essentially, the section 0 of the GPL clearly states that it only covers distribution, copying, and modifications (that you allow others to copy or that you distribute).
In fact, the GPL FAQ specifically addresses that issues under
The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.
It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications. However, putting the program on a server machine for the public to talk to is hardly “private” use, so it would be legitimate to require release of the source code in that special case. We are thinking about doing something like this in GPL version 3, but we don’t have precise wording in mind yet.
In the mean time, you might want to use the Affero GPL for programs designed for network server use.
Interestingly enough, this is appears to be a question that comes up often enough to be included in the FAQ and it mentions that they were considering addressing that issue in version 3. Based on my reading of the current draft of GPL 3, this has not happened yet, and unlikely to happen at this juncture.
That FAQ entry also points to an alternative license that would require you to release the code if you host the GPL software on a server: The Affero GPL or AGPL. Section 2.d has additional requirements on top of GPL:
2…d) If the Program as you received it is intended to interact with users through a computer network and if, in the version you received, any user interacting with the Program was given the opportunity to request transmission to that user of the Program’s complete source code, you must not remove that facility from your modified version of the Program or work based on the Program, and must offer an equivalent opportunity for all users interacting with your Program through a computer network to request immediate transmission by HTTP of the complete source code of your modified version or other derivative work.
The fact that someone felt they had to modify the text of the GPL to make it more epxlicit should in itself be proof enough that GPL does not cover it, and that therefore does not require you to release sources.
The AGPL is not a license that has a very wide adoption, but you can find quite a few projects using it beyond affero.org.
I’ve also found a discussion between Richard Stallman himself and Steve- Parker that yields the same answer:
Scenario 2) I modify GPL code – eg a CGI library – to suit my own needs for
use on a publicly-available web server. This code is being run, by the
general public, on my web server. Should I, in this case, make the code
available? Under the GPL, must I?
And Richard Stallman’s answer:
The GPL does not require it. But is not very good for the community
when people do this, so I am looking at a way that GPL 3 could
require publication in this case.
So in conclusion, you can be fairly confident that the answer to my original question is “Yes, you can host a modified GPL software, and not be required to release your modifications”. Of course, by doing so, you lose the benefits of GPL, but that’s a debate for another day.