The GPL. Oh, the GPL….

Update: To contribute to Java — to give changes back to Sun for inclusion in Java — you must sign the Sun Contributor Agreement. It explicitly states: “You hereby assign to Sun joint ownership in all worldwide common law and statutory rights associated with the
copyrights, copyright applications and copyright registrations in Your Contribution, and to the extent allowable under
applicable local laws and copyright conventions,…”

I.e. Sun owns the modifications to the code.

I started writing this in response to Taran’s responses to my previous post. But I think this stands alone.

Taran said:

Actually, it [the GPL] only limits someone’s ability to abuse the rights of previous creators who wrote the software to be distributed as they wished. So… if you didn’t write it originally, write a better mousetrap where you can dose out your source. So it’s limiting to people who want to take advantage of the goodwill of previous developers. OK. I get that.
….

Let me be utterly simplistic and blunt: The GPL is not a free license very much because it limits your freedom to do what you want with whatever it is that is under the GPL. Period.

The dictionary definition of free:

not under the control or in the power of another; able to act or be done as one wishes

This is not a political discussion. This is not an attempt to apply a Fluffy Bunnies Will Lead The World To Peace or a Richard Stallman Is The Bearded Reincarnation of Stalin description to the GPL, the bottom line is that the GPL prevents you from doing many things with your copy of the code (and your modifications) and, thus, is counter to the definition of “free”.

Other licenses — like the BSD and the MIT licenses, for example — do not carry any such limitations. free is defined as not in the control or in the power of another and the GPL quite explicitly expresses control and power over what you do with your modifications to GPL’d code!

Therefore and in light of the definition of the word free, GPL software is not free software. The GPL is free as in beer and not free as in ‘not in the control or in the power of another ‘.

That is all. No political agenda about it (well, beyond the bunnies/stalin sentence). While certainly flippant, none of the above is intended to express an opinion for or against the GPL. It is just fact.

It doesn’t matter if your intentions are good or evil, if you modify GPL’d code, you are quite explicitly limited from taking certain actions and, therefore, your changes are not under your control — are not free!

Now, the argument that Sun is somehow releasing Java under the GPL solely that people won’t “abuse the rights of previous creators / contributors” is laughable. At this moment in time, the only “previous contributors” were either Sun employees or otherwise had a contractual relationship via which said changes were conveyed to Sun. From a Cosmic Karmic Ownership perspective, Sun is making this announcement with a clean slate.

I strongly suspect that if ensuring fair use of previous developer’s work were the only reason for adopting the GPL it would likely be grounds for a shareholder’s lawsuit. Sun is a publicly traded company and, therefore, is ultimately obligated to their shareholders to maximize company value and profitability.

Sun is out to make a profit and “giving away” the JVM under the GPL is a perfect vehicle for doing so. Well, at the least, it is a much better vehicle than the previous one.

It preserves their intellectual mindshare while simplifying the licensing issue and guarantees that any company who still actually wants to own (as in control distribution of) intellectual property that involves modifying Sun’s source will pay Sun money for the rights to do so.

As well, applying the GPL to the JVM has advantages beyond protecting Sun’s intellectual property. As Taran and I both said, it makes it possible to ship a Blessed Sun JVM as a core part of Linux distributions. No longer will the JVM be relegated to some weird “other” category in Debian (and, I would assume, Ubuntu).

All in all, shipping the JVM and related sources under the GPL is a total strategic win for Sun. Congratulations for having the harbls to actually do so!

To put this back into the “free as in beer” terms, it is as if Sun is throwing a massive beer party. You don’t have to pay money to go, you can drink as much beer as you want while you are there, and you can take it home with you as long as you only offer it for consumption at an open party (or you drink it by yourself in a locked room).

However, if you want to take Sun’s beer home and throw a party where you charge a cover fee or have a limited guest list, you are gonna have to pay Sun for the privilege of doing so. I’m betting that Sun is going to be perfectly happy to sell you exactly such a party package.

Sun isn’t in the game of throwing beer busts just for the buzzy benefit of the industry. Sun is out to make money and Sun will be perfectly happy to be your party planner for hire.



30 Responses to “The GPL. Oh, the GPL….”

  1. Taran Rampersad says:

    Umm. So now it’s a blog thing instead of a comment thing?

    I’ll say it again… if it limits the users down the road from the rights granted from the original developer(s), then it’s a loss of freedom for the people down the line. So I disagree with you, and won’t respond with a blog entry of my own because I’ve had this discussion with all sorts of people who do include more well known members of the Open Source and Free Software community. Some I agree with, some I disagree with. It’s apparent that you and I disagree. Now you can beat your drum, stand on your head and recite the gaelic alphabet, but I have thought this through. My thoughts have evolved on this for almost a decade, and this remains steady.

    If you want to say YOU cannot use GPL code for what YOU want to do (which is, not pass along the rights to users that allowed you to do what you did), that’s fine.

    Now I’ll explain where our difference lies. You believe that your changes are your own. That is not something I agree with, because you had to have something to change in the first place. If we took all the other code away and just left your changes, you’d probably have nothing. I believe that changes to GPL code belong to everyone who has touched the code since it’s inception. That’s the difference, at the core.

    If you don’t like your changes being used in that way… use another license. It doesn’t really affect me. When you use the original BSD-type license, I walk away based on the same point. I don’t want the work I do being used by someone else in a code cul-de-sac that myself or the people before me don’t get reimbursed for through credit and/or profit. TANSTAAFL.

    Now you can flip that in your perspective as well. And we can go back and forth on this. But I’ve done that too many times, so I stop here. If you’re interested in finding middle ground, I’m game.

  2. hugo says:

    Oh my, again the standard misconception of the GPL as being not free. This is so silly. Well, one thing all criticism against the GPL doesn’t get: it’s valueing the freedoms of the community over the freedoms of the individual. So of course, if you are an egoistic bastard, the GPL will limit one thing for you: revoking rights of the community. That’s all there is to the so-called “non-freeness” of the GPL. You are prevented to rip off contributors and the community. HTH. HAND.

  3. Nicholas says:

    Ooh, a GPL debate. This is almost as good as vi vs EMACS!

    bbum has the definitions on his side. The GPL prevents you from doing certain things that other licenses allow you to do. Therefore, it is less “free”. I don’t understand the argument that you’d have to be egotistic to call it that, hugo. You can’t revoke the rights of the community by using BSD-licensed code. The code is always there. The BSD license lets you distribute your changes without source, but “the community” will always have access to the original. License changes aren’t retroactive.

  4. Cameron Hayne says:

    I think it’s more a misunderstanding than a dispute.
    The “free” doesn’t apply to the programmer, it applies to the software. The software is free in the sense that it cannot be contained. The license restricts the programmer’s freedom in order to give the software more freedom.
    Whether that is good or bad is not the issue – that’s what the “free” is intended to mean with regard to the GPL.

  5. bbum says:

    Oh, this is rich. Taran and Hugo still don’t get it. I exactly understand the terms of the GPL and I exactly understand the kind of software community it is attempting to create and preserve. Completely. I can also read the definition of free in a dictionary and the fact that the GPL takes away your ability to do whatever you want with the source code, regardless of whether you have modified it or not means that the GPL is counter to that definition.

    I don’t understand what is so hard to follow about the above statement. Oh, yes, I do. There are two definitions of “free”. As the dictionary defines it and “free as in beer”. I’m using the dictionary definition. Taran and Hugo are using “free as in beer” — that is, you are welcome at my party, you can drink all the beer you want, but you can’t take it home with you.

    The point is not about the GPL or the community that has been built around the GPL.

    The point is that there is a lot of need — perceived or real, it doesn’t matter — for licenses beyond the GPL for businesses.

    To put this another way, a microbrewery might throw a party, they might give away a lot of free beer at the party and, if you want to own it, they’ll quite happily sell you a six pack or a keg on your way out the door. The beer is free for consumption on premises and it can be bought so you can consume it your way on your terms.

    Two different licenses for the same beer. Software is much the same way. Let us say that IBM has modified the crap out of the JVM to be totally optimized for their POWER architecture. They want to keep said work proprietary for various reasons. I’m betting that, for the right amount of $$$, Sun is going to sell them a license exception; an exclusive license to do exactly that.

  6. Michael Tsai - Blog - Java Now Open Source says:

    […] He’s also written a follow-up post. […]

  7. Alderete says:

    For commercial organizations thinking about Open Sourcing their code, I’ve often thought about the GPL-vs-BSD license comparisons as boiling down to one thing:

    – If you want your competitors to use your code, use a BSD license (i.e., you’re trying to have a standard adopted)

    – If you do NOT want your competitors to use your code, use the GPL (because presumably they don’t want you using theirs)

    It doesn’t work in all real world cases, but it’s an interesting first approximation…

  8. Zellyn says:

    In a black-and-white way, you’re correct. But many very practical kinds of freedom involve restrictions: the laws of most countries constrain individual action, but are intended (we hope!) to maximize overall freedom. But yes, the fact that the police will come after me if I steal your car does mean that I’m “under the control or in the power of another,” and not “able to act…as [I] wish.”

  9. Benjamin Ragheb says:

    The BSD license isn’t free either, because it requires me to retain a copyright notice, list of conditions, and a DISCLAIMER IN ALL CAPS ABOUT A LACK OF IMPLIED WARRANTIES on all source and binary distributions. That does not meet your dictionary definition of free.

  10. bbum says:

    Yup. You are right. It doesn’t meet my strict definition of FREE. The MIT license does a better job but still isn’t strictly FREE because it limits you from suing my ass when you chop your leg off because my CNC machine garbage collected at a critical moment.

    Yes, none of this is entirely black and white. But on a scale, the GPL is far less “free” than the MIT or BSD licenses. The GPL can be used by a company like Sun to protect their IP in a very capitalistic sense whereas the MIT, BSD, and Apache licenses could not, regardless of having to copy and paste some silly copyright line around.

  11. clee says:

    Uh, so, is it just me, or are there a lot of manual breaks in the text of this entry that shouldnt’ be there?

    It looks horribly formatted here on Firefox/Linux.

  12. bbum says:

    Probably not just you. I’ll have to test with FireFox again. I hate CSS.

  13. tmk says:

    bbum wrote:

    Let me be utterly simplistic and blunt: The GPL is not a free license very much because it limits your freedom to do what you want with whatever it is that is under the GPL. Period.

    It just occured to me that the GPL is not about *your* freedom. It’s about the freedom of the *software*.

    Thanks to Taran for making this so clear.

    = tmk =

  14. bbum says:

    See. That is the funny part. The GPL isn’t about the freedom of the software either and that is exactly why Sun chose to use the GPL. Beyond the obvious bonanza of free PR and the guarantee that anything marketably useful will have to be shared with Sun one way or another, Sun can use the GPL to actively prevent other businesses from executing their business as they decide.

    Note, again, I have zero problem with this. I think the use of the GPL as a means of bother offering access and limiting use in the name of generating revenue is a really good move on the part of Sun. It makes total sense and I applaud them for it.

    I just find it funny that various GPL advocates can’t seem to understand that the GPL is an ideal tool for a for-profit company to ensure a profit stream from licensing of said GPL’d product!

    Seems Sun thought of this, too. At the moment, you can’t contribute changes back to the GPL without assigning copyright and ownership to Sun, thus freeing Sun to cut special licensing deals containing your changes at whim!

  15. david says:

    Clever Sun. I see a new book in our near future: “Stupid GPL tricks.”

    There’s only one kind of free software, it’s called “public domain”. Anything with a license on it has terms, and an implied authority, by the very definition of ‘license’, and is therefore not free. The only free software is the software that has no license.

    I like the GPL, and I think the community based agenda behind it is worthy. But it’s always funny to watch people who are behind this agenda get angry when it is merely pointed out that an agenda exists. Relax, it’s okay that GPL’d software is not truly free as in freedom. It doesn’t need to be, it’s serving the greater good by being more free to the community as a result of the loss of freedom to the profiteer.

  16. bbum says:

    Even public domain isn’t quite free… but yes, it is the closest thing to being free. SQLite is, likely, the most popular example and the public domain nature of the distribution actually throws lawyers for a bit of a loop. I don’t see this as a problem of being public domain.

  17. Daniel Axelrod says:

    It’s a tradeoff, an attempt to at least try to equalize the rights of the author and everyone else.

    One way to understand why this tradeoff is made is to read Mark Pilgrim’s “Aftermath, in which he says

    If a conservative is a liberal who has been mugged, then a GPL advocate is a BSD advocate who has had their code used against them. This is not to say that everything should be GPL-licensed. But don’t come crying to me when you get mugged.

  18. Scott Stevenson says:

    I think in the GPL’s view of the world, the idea is that the code is “free,” not the developer.

    In my opinion, the whole point of releasing code is that you want to most number of people to benefit from it — even those who are making a living by selling software. This is especially important to me on the Mac since there are a lot of independent, self-funded developers. That’s why I don’t release code under the GPL.

    As far as I can see, the GPL model only really benefits the community when GPL-licensed solution is the best available option by a wide margin, and where the recipients of the code can somehow justify opening their codebase.

    If I write a piece of code and release it under the GPL instead of BSD (or public domain), who benefits? It doesn’t really affect open source packages for the most part, but it prevents commercial developers from using it.

    Unless my library is undeniably the most amazing thing ever written, there’s no way I’m going to convince a commercial developer to open all of their code just so they can use what I’ve written.

    The other obvious benefit of the GPL is the one you mention — if a commercial developer wants to use the code, they have to talk to me for re-licensing. I don’t think for a minute this is why the Linux community favors GPL (their hearts are in the right place), but it would make perfect sense for Sun.

  19. Daniel Axelrod says:

    Those looking for complete freedom in licensing might want to consider the WTFPL, although one could argue it is not strictly free because it prohibits licencees from doing things they don’t want to do.

  20. tmk says:

    bbum wrote:

    See. That is the funny part. The GPL isn’t about the freedom of the software either and that is exactly why Sun chose to use the GPL. Beyond the obvious bonanza of free PR and the guarantee that anything marketably useful will have to be shared with Sun one way or another, Sun can use the GPL to actively prevent other businesses from executing their business as they decide.

    I may be missing something obvious but it seems to me that your point above is about business freedom not sofware freedom.

  21. Rob Myers says:

    To contribute to Java — to give changes back to Sun for inclusion in Java — you must sign the Sun Contributor Agreement.

    So don’t contribute changes to Sun. You don’t have to under the GPL.

    I exactly understand the terms of the GPL and I exactly understand the kind of software community it is attempting to create and preserve.

    You clearly do not exactly understand the terms of the GPL, unless your previous question about under what circumstances you have to release your changes was rhetorical.

    You also do not understand freedom. Certainly the naive definition of freedom is lack of constraint, but if I am completely unconstrained then I can constrain you. The classic example is that if I am free to own slaves then my slaves are not freer than if I am not free to own slaves. From this we get from “do as you will” to “do as you will and harm none” and the concept of liberty. Or from BSD to the GPL.

    The GPL certainly isn’t about the freedom of the software, which is a funny idea of freedom. It is about the freedom of users of the software. But this concept of “use” is that of the hacker sat at a teletype, not the project manager talking to a VC, which again is a funny idea of freedom. If you can’t hack you can’t sell, and with BSD you very quickly can’t hack.

  22. daveadams says:

    I don’t really understand your point. Yes, the GPL keeps other companies from making secret changes to Sun’s code and potentially profiting off them. I’d say if Sun should have learned anything from its late 90s Java experience it’s that letting other companies mess with the code and continue to call it Java is a bad idea. But if you agree that this is a good business decision for Sun, then what’s the problem? That GPL advocates use the word “free” in a different sense than you want them to? You admit that even public domain doesn’t meet your standards of “freedom” so what’s there to argue about. GPL lets anyone modify the code. That’s a lot more freedom than there was two days ago.

  23. Antti Salminen says:

    Rob Myers explained what’s going on here very well. You admit that the situation isn’t black-and-white but yet seek to rate different licenses on the basis of on how close to giving absolute power to an individual they are.

    What on earth gave you the idea that the dictionary definition of freedom is some kind of an absolute good. It’s the kind of definition that you can use to argue for every man’s right to murder, enslave and rape. A free society isn’t generally thought of as permitting those kinds of things. Freedom should not include the ability to remove freedom from others in my opinion. And despite that it can still be called and has been called freedom.

  24. frixton says:

    Let us say that IBM has modified the crap out of the JVM to be totally optimized for their POWER architecture.

    firstly, they have their own jvm.

    secondly, at the moment, the people i know working on java at ibm are not allowed to look at the sun source because ibm has a policy against using gpl’d code due to the legal implications (a non cleanroom reimplementation is always at risk with the gpl, was re sco). FREEDOM!!!

  25. James Bailey says:

    One point people may or may not be missing is that GPL v2 only comes into affect when you distribute your modifications. You can modify GPL’d code to your hearts content and never share back until you want to distribute the program. At that point you are obligated under the license share your modifications of the source.

    As to whether or not the GPL is “free”, that is a silly discussion. GPL is enforced under Copyright law and that makes GPL’d code anything but “free” in what you can do with it. The person who wrote the original code retains the copyright on that code and the person who made changes owns the copyright on those changes. The only thing that gives you the right to distribute GPL’d software is the license which is enforceable only because of copyright laws.

    In the US, are you not free since you are required to pay taxes on income? Required to obtain a license to drive a car? How about the requirement of obeying US law to stay free from incarceration? Most people would argue that those limitations on absolute individual freedom does not make you un-free. So there is a cost that is out of your control to be a citizen of the USA yet most people still consider that they have vast individual liberty in the US.

    The same thing occurs with the GPL. The license puts restrictions on your right to distribute the software. You can exchange your code changes for the right to modify and distribute someone else’s intellectual property. For most users of the GPL this seems eminently reasonable. There is nothing else but the GPL that gives you the right to modify someone else’s copyrighted GPL’d code. There are other licenses that provide the right to modify and distribute code that don’t have the GPL’s basic code sharing restriction but that doesn’t make code under the GPL inherently un-free any more that some restrictions on individual liberty makes you un-free as a US Citizen.

  26. James Bailey says:

    secondly, at the moment, the people i know working on java at ibm are not allowed to look at the sun source because ibm has a policy against using gpl’d code due to the legal implications (a non cleanroom reimplementation is always at risk with the gpl, was re sco). FREEDOM!!!

    This is just plain wrong. IBM makes massive contributions to Linux under the GPL. That is what the whole SCO case is all about. SCO claims that IBM has no right to contribute to Linux under the GPL (or at least it was the case, now the case is very muddled as SCO is retreating and trying to find something to hold on to.) Perhaps you meant IBM doesn’t allow GPL Java? I’m not sure that is correct either since IBM is a contributor to Eclipse which is Java based on licensed under the GPL.

  27. frixton says:

    Perhaps you meant IBM doesn’t allow GPL Java?

    i was a little too broad in my hasty generalization – i think i meant something closer to “they’ve been told not to look at specific gpl’d code that might cause legal issues” – for example they have their own j2se implementation which is not gpl’d so if there were questions about whether it was a derivative of the sun j2se it would be A Bad Thing.

  28. FreeMan says:

    Do you really think no restriction is free? Then how can you say you’re in free if you cannot kill other people without restriction? Freedom needs restrictions, especially for keeping itself free. GPL does have only this restriction, period.

  29. Helge says:

    The GPL is NOT free as in beer. It’s free as in freedom. My organization can take Sun’s Java source code, modify it and use the modified copy internally. If someone else wants to use the modified copy, then my organization can demand 1 billion US-$. Hardly free as in beer.

    But because the GPLed program is free as in freedom, the other company who bought the software from us THEN gets the same rights to the software we had, including the right to distribute the software. The next company who needs our modifications can now buy them from us or from our first customer. And if said first customer decides to give the software away for free, then we are out of luck. But of course we can sell our next modifications for US-$ 1 billion again.

    And I also think you haven’t completely understood the GPL – please read my comment on your previous blog entry.

  30. Jay Tuley says:

    Helge is 100% correct on both blog entries.

Leave a Reply

Line and paragraph breaks automatic.
XHTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>