Why the GPL bugs me

Published June 20, 2008
Advertisement
I'm writing this mostly to sort out some of these arguments in my head, but I'm posting it here because I'd like the feedback of other developers who likely have opinions of their own. I've thought about making it a general Lounge post but it's probably best in my journal, as the next statement I'm about to make could lead to some nasty flamewars if not handled carefully.

The GPL just plain bugs me.

This has been slowly creeping through my subconscious now and again for the last year or so, and I sometimes wonder why this is the case. I don't have anything against open source - in fact I'm looking into whether open source is a sensible approach to my software so I can share code and get extra eyeballs to be on the lookout for improvements. And I don't have any problem with copyleft - I think it's useful for certain situations where you want to ensure that improvements to a module or library are incorporated back into the original. But it's the fact that I see certain situations where I think copyleft isn't appropriate that leads me to the problems I have; the whole ideological package of "free software" that's incorporated with the GPL.

For instance, compare the text of the GPL 3.0 license with another fairly lengthy open source license like the Mozilla Public License 1.1. The MPL, like most licenses, is all just about the permissions and rights created to you. The GPL however has a preamble explaining the merits and philosophy behind "free software". Thus in order to use the GPL for your code you not only have to agree with their licensing conditions but you need to agree with their ideology as well - it is in the license, after all.

The problem I have is sprinkled throughout the philosophy of GNU. According to the Free Software Foundation, propriety software is unethical, unconscionable and borderline evil. Free software is in opposition to propriety software in an ideological war, and the GPL is chief amongst their weapons.

Now, I just don't agree with this. I don't see anything wrong with propriety software. I've written chunks of it in the past for companies. In many cases it makes more sense than open source, especially in the world of games (hacking the source is a cheaters paradise for some multiplayer games). I certainly don't see it as "evil". And I feel uncomfortable about essentially be forced to agree with this philosophy by a software license. I'd feel even more uncomfortable about forcing other people to agree with me in order to use my code.

It gets worse when I consider the latest upgrade of GPL to version 3, which seemed to stem entirely about people using GPL code in legal ways that the FSF didn't agree with. It's their prerogative to make upgrades, but the problem is they strongly recommend using wording to the effect of "GPL version X or later". With this kind of wording, you're essentially signing up for whatever direction the FSF wants to go in. I personally don't see any sense in applying a license that can be changed by a third party.

I've got a few other issues with the GPL, although many of these might be from spending a bit too long hanging around forums on the internet.
  • I don't like the way the FSF and GPL have positioned themselves as the champions of "free software", especially with their confrontational attitude to propriety software. The way they've co-opted "free software" to mean their own particular ideology is a big part of what bugs me.
  • The GPL doesn't play nice with other copyleft licenses, although that's mainly a problem that any strong copyleft would have. Weak copyleft however can be managed on its own, but not with the GPL.
  • There seems to be a tendency amongst GPL developers to take code written in less restrictive licenses and then slap the GPL on top of it, or in dual license code to switch to GPL only. It seems perfectly legal to do this, of course, but to me it seems rude to make changes to open source code that the original authors can't use.
  • Most GPL advocates I've seen on the internet seem to care less about who will use their code and focus more about who cannot. There's a general paranoia about being ripped off by big evil companies, which might stem from the whole "propriety code is evil" philosophy.

Now all that being written, I should re-iterate that I don't have anything against open source and copyleft. In fact, it's been my research into how I could use these myself that's caused my opinion of GPL to shift. I used to regard the GPL and LGPL as useful tools towards copyleft; a way you could ensure a particular piece of code would remain open and useful. It's all this ideological baggage that's been weighing my mind down. If the GPL would just be a license rather than a political statement then I'd have much less problem with it. As it is, I have an ethical dilemma with using code that has a licence that implies that I need to agree with a particular ideology within its terms of use.

The gist of all this is that I'm feeling more and more uncomfortable about using licenses such as the LGPL, which I have been currently using in my games. This is re-inforced by GNU's opinion of the LGPL themselves (Why you shouldn't use the Lesser GPL for your next library), which is actually referenced to in the text of the GPL itself. Currently the only LGPL library I'm use often is SDL, which is useful for cross-platform capability. But I'm starting to think it might be better to find an alternative, or even figure out how to code the stuff myself (I work in 2D only and don't do anything too fancy, so it shouldn't be too difficult to find something else or do my own thing).
Next Entry New Books
0 likes 8 comments

Comments

OrangyTang
Yeah, that pretty much mirrors my thoughts on GPL and LGPL. Their philosophy is a little too rabid and frankly unpractical in the real world. And the shifting of the goalposts ("GPL 3 or later" and the changing direction of LGPL) make me uneasy. And I hate hate hate how they present themselves as the only definition of free/open source software.

I only tend to use BSD/MIT/Zlib licensed code now, fortunately pretty much the entire Java community has had the same unease with LGPL and switched to BSD or MIT so it's not been a problem for me.
June 20, 2008 04:08 AM
paulecoyote
I think the thing is to keep the copyright to yourself for your own projects, but license it too. I suppose that is possible? Perhaps that way you can change / revoke the license yourself.
June 20, 2008 05:03 AM
Trapper Zoid
Quote: Original post by paulecoyote
I think the thing is to keep the copyright to yourself for your own projects, but license it too. I suppose that is possible? Perhaps that way you can change / revoke the license yourself.

Unless you release your code to the public domain then you automatically retain the copyright, even if you open source it. What the open source license does is give other people permission to use your code under a set of restrictions.

For example, here's the complete text of the zlib license (which is currently high up my list of licenses I'd use if I were to open source something):
Quote:
Copyright (c) <year> <copyright holders>

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.

3. This notice may not be removed or altered from any source
distribution.


It's still copyright to you as shown by the first line, but without the paragraph stating "permission is granted..." then other people can't use the code.
June 20, 2008 05:27 AM
johnhattan
Myself, unless it's a programming library, I don't friggin' care if I have the source code.

I use MS Word on my desktop machine. I use OpenOffice on my laptop. One is proprietary and costs money and renders me a slave for using it. The other one is free and workers of the world unite and has freely available source code and makes me free free free.

But other than that, they're pretty much the same. Except that Word loads faster. And OpenOffice lets me change the little bitmaps on the toolbar buttons.

The GPL zealots (or should I say zealot, is there really more than one?) overreact for a living. It's roughly equivalent to someone deciding that Pepsi is superior to Coke, then spending the rest of their lives repeatedly extolling the innumerable virtues of Pepsi over Coke to all who are not yet thoroughly annoyed.

If you wanna spend a hundred bucks on MS Word, do it. You'll get phone support and a shiny box. If you want OpenOffice for free, then download it. You'll get source code and a very clunky internet-based update system. If you think I'm a slave for choosing one over the other, then you're mistaken. If I have a choice, then it's not slavery by default.
June 22, 2008 12:16 PM
coldacid
There's more than one. RMS has his little army of dateless wonders who soak up his every word like they were rays of friggin sunlight.

This pretty much sums up most of what I hate about the GPL, too. I'd generally go MPL or zlib for stuff, LGPL if no other choice.
June 27, 2008 04:55 PM
jbadams
Quote: Original post by Trapper Zoid
Currently the only LGPL library I'm use often is SDL, which is useful for cross-platform capability. But I'm starting to think it might be better to find an alternative, or even figure out how to code the stuff myself (I work in 2D only and don't do anything too fancy, so it shouldn't be too difficult to find something else or do my own thing).
SFML might interest you. It's currently still very young and therefore doesn't have the breadth of features or large amount of documentation that SDL has available, but the API is very clean, the documentation that is available is very good, and the small but growing user community is pretty helpful. zlib/png licence, although a couple of the dependencies are LPGL licenced.


I don't really have anything to add to the discussion at hand, you've all covered my thoughts on OSS zealots already.
June 27, 2008 11:59 PM
johnhattan
GPL's problems in a nutshell. Functionality takes a backseat to ideology.

http://gcc.gnu.org/ml/gcc/2001-02/msg00895.html

"And now it would be better now if you take these changes off your web site, and don't mention that they exist."
July 06, 2008 08:13 AM
EnemyBoss
I've been looking at Allegro, and it has a more permissive "Giftware" license. You can easily make a single statically compiled exe and you don't need release the sources per the LGPL.

In fact, I think Allegro exposes more of the features in Direct Draw than SDL, such as creating video-pages, an actual wait for vsync function and requesting of refresh-rates. The demo also hints triple-buffering support, which isn't in SDL yet (Double buffering only). It would be great if it worked like this for Mac and Linux.

I use SDL, but I'm giving Allegro a try for my next project. While I think Allegro isn't a model of best software practices you would want in a game toolkit, it has plenty of documentation and support. It maybe something worth looking into if you're just doing things in 2D.

July 20, 2008 03:37 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement