I was looking into some GPL stuff today and noticed an interesting potentical catch that allows you to write a program with a gpl license, let people use that program, but not release the code.
You only have to supply the source to GPL software if you distribute the binary. However if instead you don't release the binary, but run it on a server and allow people to interact with it, you don't have to give away the source code since you never gave away the binary. It's mentioned here in the GNU GPL faq: http://www.gnu.org/licenses/gpl-faq.html#UnreleasedMods
Although here they say it hardly counts as "private" use, obviously they feel they are on shakey grounds here, which explains why they've created the AGPL license to address this specifically. http://www.fsf.org/news/agplv3-prA company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?
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. Developers who wish to address this might want to use the GNU Affero GPL for programs designed for network server use.
Note that this article specifically states that you CAN use GPL code on a server without distributing the source, contradicting the implication in the FAQ.BOSTON, Massachusetts, USA—Monday, November 19, 2007—The Free Software Foundation (FSF) today published the GNU Affero General Public License version 3 (GNU AGPLv3). This is a new license; it is based on version 3 of the GNU General Public License (GNU GPLv3), but has an additional term to allow users who interact with the licensed software over a network to receive the source for that program. By publishing this license, the FSF aims to foster user and development communities around network-oriented free software.
The GNU GPL allows people to modify the software they receive, and share those modified versions with others, as long as they make source available to the recipients when they do so. However, a user can modify the software and run the modified version on a network server without releasing it. Since use of the server does not imply that people can download a copy of the program, this means the modifications may never be released. Many programmers choose to use the GNU GPL to cultivate community development; if many of the modifications developed by the programs' users are never released, this can be discouraging for them. The GNU AGPL addresses their concerns. The FSF recommends that people consider using the GNU AGPL for any software which will commonly be run over a network.
While I don't intend to test this myself, since I can see that it does violate the spirit of the GPL (and I'd probably get lynched by free software fanatics in an extra-judicial proceeding), it does have potential for a ruthless game designer, since with your client/server architecture you could use a GPL source (such as Q3A, in my case) and then release the client but keep the server to yourself.

