A possible catch in the GPL license.

A place for Ogre users to discuss non-Ogre subjects with friends from the community.
Post Reply
User avatar
mkultra333
Gold Sponsor
Gold Sponsor
Posts: 1894
Joined: Sun Mar 08, 2009 5:25 am
x 116

A possible catch in the GPL license.

Post by mkultra333 »

Apologies if this is old news to people.

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
A 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.
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-pr
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.
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.

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.
"In theory there is no difference between practice and theory. In practice, there is." - Psychology Textbook.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58
Contact:

Re: A possible catch in the GPL license.

Post by betajaen »

I really don't like the GPL licence, and I avoid using any source code that licensed under it for some reasons mentioned in this section on the Wiki page about it. I prefer the MIT license myself, it's quite close to Public Domain, but covers you from litigation if something horrible happens in the result of someone using your software.

However, it is good news that they are addressing it. The AGPL sounds interesting, but I really don't mind people modifying my code and not distributing it. We had open source software well before the modern internet, and how did people address this condition? Post a copy of the source on disk or print out to anyone who requested it? Probably not.
User avatar
mkultra333
Gold Sponsor
Gold Sponsor
Posts: 1894
Joined: Sun Mar 08, 2009 5:25 am
x 116

Re: A possible catch in the GPL license.

Post by mkultra333 »

Yeah, I'm in a bind at the moment since the game engine that suits all my requirements is GPL, so I'm stuck in the absence of a solid MIT game engine. I'd much rather use MIT, zlib or the like.
"In theory there is no difference between practice and theory. In practice, there is." - Psychology Textbook.
CABAListic
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 2903
Joined: Thu Jan 18, 2007 2:48 pm
x 58
Contact:

Re: A possible catch in the GPL license.

Post by CABAListic »

mkultra333 wrote: 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.
This would, however, be subject to another gray area of GPL. I have seen it argued that in such a scenario the client would be subject to the GPL because for its operations it depends on a piece of GPL software (the server). The MySQL guys in particular argued like that.
Then again, I have no idea if this would actually hold before a code, and not everyone shares this particular interpretation. To me it just shows that GPL is a far too complicated license if you actually intend to base your software on a piece of GPL code :)
User avatar
mkultra333
Gold Sponsor
Gold Sponsor
Posts: 1894
Joined: Sun Mar 08, 2009 5:25 am
x 116

Re: A possible catch in the GPL license.

Post by mkultra333 »

Yes, in the above scenario the source to the client would definitely need to be released, since the binary was made available for download. However it seems that technically the server code need not be released.

I'm going down a different path. I'll release the client and server (since that is the spirit of the GPL, and also I'm much better off if other people can set up servers for my game since then I don't need to set up servers myself). However I'm also setting up a php+sqlite website that operates sort of like an MMO, storing general player progress, meta-world state and player customizations and stats. The GPL server app communicates with the PHP server about certain global game attributes, but the PHP server doesn't do any of the gritty game calculations.

I don't think that should require I release the PHP server code as GPL... though I'm not entirely sure. I've written to the FSF to ask, though I'm not optimistic I'll get an answer. To complicate matters, I could make the PHP game also playable without the GPL server/client, as a very simple browser based MMO. Such contortions, what fun.

At worst, they might argue I have to release the PHP game as well, in which case the only proprietry bit left (and possible source of revenue) would be the MMO database itself. I doubt they could require I release that, since it's not code but an output file.

(Now that I think about it, I guess the catch about server software not having to be released means that even if they claimed the PHP was GPL, I wouldn't have to release it unless I made it downloadable, which I don't intend to do. I think that scenario is hazy enough that I'd be safe without raising the ire of too many FSF advocates, since the PHP server code will be totally original anyway.)
"In theory there is no difference between practice and theory. In practice, there is." - Psychology Textbook.
CABAListic
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 2903
Joined: Thu Jan 18, 2007 2:48 pm
x 58
Contact:

Re: A possible catch in the GPL license.

Post by CABAListic »

From what you write it doesn't make the impression (to me) that your PHP code depends on the GPL server. It's more like the other way around, so no, from my point of view the PHP code should not inherit the GPL requirements. But as I said, that license is far too complicated :)
User avatar
mkultra333
Gold Sponsor
Gold Sponsor
Posts: 1894
Joined: Sun Mar 08, 2009 5:25 am
x 116

Re: A possible catch in the GPL license.

Post by mkultra333 »

Got an answer back from the Free Software Foundation.
If you are distributing the PHP code to end users, then it's likely that
you would have to release the source under the GPL.

If it's running on your server and only interacting with the GPL client
then it's not subject to the same requirements.

Please note that this is not legal advice.
Personally I think extending the GPL to the PHP MMO is debatable, especially if the MMO could also operate as a stand-alone game without the GPL client. However, it appears a moot point because of the catch about server-only code. Yippee!
"In theory there is no difference between practice and theory. In practice, there is." - Psychology Textbook.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: A possible catch in the GPL license.

Post by jacmoe »

This is old hat to me. :P
But, yeah: Go affero if you're developing server software under the GNU Public License..
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Post Reply