Armin Ronacher

Are you sure you want to use GPL?

written by Armin Ronacher, on Thursday, February 12, 2009 19:13.

When I started using Linux I was totally sold to the concept of Open Source. I still am, but my view changed. The first code I released under an Open Source license was GPL licensed and I continued to do so for some time. The last code under the GPL license I actively developed was Zine until a few days before the release when I relicensed it under the modified BSD license.

The reason why I changed the license is a rather complex one and I want to share my experiences with the GPL and other Open Source licenses here for a moment. I suppose many people acted like me and chose the GPL because everyone else did but didn't know about all the implications it has.

Left versus Right

The GPL and BSD (and friends) licenses couldn't be more different. It starts with the length of the paper. The BSD license is two or three clauses of text plus a copyright information and no-warranty clause. The GPLv3 on the other hand has 600 lines of text. BSD restricts the rights, GPL permits. Restricting rights sounds bad, but it just means that you can do everything with it, except the stuff listed in the license. The GPL starts by explaining what you can do with it. The GPL is following the Copyleft principle, something the BSD license is not doing.

This has some very complex implications many GPL / BSD users don't know about but should.

What BSD means

Let's start with the BSD license, the license of my choice. The three clause version is very similar to the MIT license and the two clause version is basically the MIT license. What does it say?

Copyright (c) <year>, <copyright holder>
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

Pretty simple. It allows the user to do everything with the application but removing the Copyright. The third clause means that derived works may not use the author's names for advertising. This clause is not in the 2 clause BSD and MIT licenses.

Now this of course means that someone can take your software, change the branding and sell it. The world is bad and you can be sure that this will happen if your application is worth it. We'll cover that part of the license a little bit later.

Let's see how the GPL works there.

What GPL means

The GPL license is too long to be quoted here, but I'll try to sum up the most important aspects of it:

  • Copies may be distributed free of charge or for money, but the source code has to be shipped or provided free of charge (or at cost price) on demand. The receiver of the source code has the same rights meaning he can share copies free of charge or resell.
  • The licensed material may be analysed or modified.
  • Modified material may be distributed under the same licensing terms but don't have to be distributed.

There is a lot more in the license, like how long source code has to be available and how to deal with that, but the essence is that. Like for the BSD license someone can take the application, rebrand it and sell it, however the license demands that the modified source is available under the same license.

However modifications only have to be made available to the public if distribution happens. So it's perfectly fine to take GPL code, modify it heavily and use it in a not distributed application / library. This is how companies like Google can run their own patched versions of Linux for example.

But what this also means is that non GPL code can't use GPL code which is also the main problem of it.

License Compatibilities

BSD is GPL compatible, but GPL does not permit the use of GPL licensed code in non-GPL code. This is especially annoying if important libraries users expect are GPL. For example the very popular readline library is GPL licensed. Users of OS X will know that, because interactive shells of Python and other non GPL applications sucks there. People tried to rewrite readline to get rid of the GPL problem but the alternatives are not as well maintained as the original one.

I guess this is also what Steve Ballmer referred to as “cancer”. Unfortunately he's not entirely wrong there. For example I tried to develop an interactive administration shell for Zine but without readline (which I cannot use as Zine is BSD licensed) the user experience is just meh. I would have to relicense the entire application to GPL just so that I can have an interactive shell with readline support.

Freedom

Now this depends on how you define freedom. The people behind the GPL have a very communistic point of view in terms of freedom: free software should be available to everybody under the same terms. Unfortunately like communism it does not work out that well because it turns out humans are not really compatible to that way to look at things. On the other hand there are the permissive licenses like BSD that just give away all rights except the copyright and do not enforce freedom. You can take BSD code and re-license it under the GPL if you want to. That kind of freedom however is a one-way ticket. Once you made a GPL release of your code there will always be a GPL version of it. If not for future releases, at least for that one release as you can't revoke the license.

Making Money

Ultimately the goal of software development for many is to make money. Many people decide to utilize the GPL license for that by dual-licensing the code under the GPL and a proprietary license where the latter is only available to costumers. As a single developer it's arguable harder to sell code that is licensed under the BSD license. There the business model is probably more selling non-open-source extensions to paying costumers. If you open source all your code under the BSD you have to be really good so that you can make money out of it.

Many developers don't really care about that, have their fun developing it and BSD license it for others to start where they stopped. A good example of successful BSD / MIT code are Django and Ruby on Rails. Both projects developed by strong communities with supporting companies behind it. The company behind Rails creates very successful closed source applications based on Rails; Many of the developers working on Django are paid by individual companies that work with it.

Recap

Before you license your code under an Open Source license: Think about the license! Both types of licenses have their advantages and disadvantages and it would be stupid to use the GPL without thinking just because “everybody does”. Many just do because they haven't read the license either.

Comments

  1. If you hadn't read the license you used, that's just _bad_ (tm). Good for you that you read them!

    If you honestly think that "Ultimately the goal of software development is to make money", then think again! You have _completely_ missed the very point of "free software".

    The GPL was written by the FSF, and the goal was never to make money. The goal is and remains DIGITAL FREEDOM FOR ALL!

    It's about the right to tinker, understand, modify, improve and share!!

    —  martin on Thursday, February 12, 2009 21:49 #

  2. GPL is 'limited' freedom, for me this is not freedom. You're free to do what they want, I don't like it.

    —  Vinícius on Thursday, February 12, 2009 21:57 #

  3. I'm not sure how much sense it makes to say "humans don't work like that" when GPL-licensed code has been very successful!

    If anything, it's in the nature of knowledge to be easily shared. And it's human nature to share knowledge, from letting others borrow your books to making copies of CDs for them.

    What's unnatural is trying to treat bits of information like objects, that can't be copied, shared or examined. And a lot of people have historically treated it that way, but as it gets easier to copy, and as more and more code is GPL-licensed, I suspect that this will become more difficult ... just as you have discovered!

    —  Jared Spurbeck on Thursday, February 12, 2009 22:14 #

  4. I changed it “to goal for many is to make money” :) I personally don't make money with open source software either. I just love to do what I'm doing.

    —  Armin Ronacher on Thursday, February 12, 2009 22:17 #

  5. Your premise is wrong. There is far more code out there that is GPL licensed then BSD/MIT licensed, so something must be working well for the GPL.

    I do write software that is MIT licensed, and I really only do it because that's the demands of the project (Mono). To be honest the idea that a company can take my work and then sell it as some kind of proprietary product is a bit uncomfortable to me. It's not a huge concern but I do prefer the GPL.

    —  Joseph on Thursday, February 12, 2009 22:22 #

  6. I use GPL because Microsoft hate it. I don't use BSD because Microsoft love it . BSD allows patents, DRM, everything incompatible with free software.

    GPL is not proprietary compatible, BSD is. This is the main differance.

    You can take BSD code and re-license it under the GPL if you want to.

    No.

    —  web123 on Thursday, February 12, 2009 22:25 #

  7. "Unfortunately like communism it does not work out that well because it turns out humans are not really compatible to that way to look at things."

    People don't get how awesome stuff can be free ..so we inform them, and that's that. I'm completely 'compatible' with the GPL and CC-BY-SA, and I don't know who these 'people' are that you speak of..

    —  ethana2 on Thursday, February 12, 2009 22:26 #

  8. Gehh, misquote fail. Stupid information-corrupting analog wetware..

    —  ethana2 on Thursday, February 12, 2009 22:27 #

  9. Ah, you said 'humans' and then I quoted myself and attributed it to you; the point is that I believe it to be a false statement. (Sharing is a concept they teach kids in preschool. If it's not compatible with humans, they shouldn't bother.)

    —  ethana2 on Thursday, February 12, 2009 22:30 #

  10. I think really the GPL allows "sharing", while the BSD/MIT allows "theft". Of course that depends on your definition of "sharing" and "theft"!

    As what license is more "free", well freedom is not an absolete. In order to have a freedom you must take another away. In order to have freedom to live you might have to take people freedom to kill other people.

    The concept that I think matters more is liberty, or "personal freedom". Personal freedom is the freedom to do things which do not restrict other people's freedom. So GPL is really almost the prefect license for liberty, it promotes liberty much more then the BSD/MIT can do.

    —  Joseph on Thursday, February 12, 2009 22:34 #

  11. I wouldn't use either!

    Both licenses allow using of your work with zero credits to you.

    —  Vadim P. on Thursday, February 12, 2009 22:37 #

  12. Don't forget the LGPL. The readline issue would go away if it had been licensed with the LGPL.

    Basically, LGPL allows you to use the code with stuff under other licenses. Only if you modify the LGPL code and distribute binaries from it do you have to make those changes available.

    I

    —  John Gill on Thursday, February 12, 2009 22:40 #

  13. Hi, I noticed your post through Ubuntu planet. I think you make a couple of valid points, the most poignant of which is that with the GPL (and for that matter, the BSD licence), the "software as product" business model is doomed to failure (people can have your stuff for free, so why pay for it). That is why the "software as service" model is what everyone goes for; people pay the developers to keep on developing a useful product or to add extra features - not for the software as is (it is free).

    The thing which prompted me to post a reply here is your "people are not communists" remark. I would agree that one of the problems of communism is that it cannot get people motivated to produce more as everyone enjoys the same share off the common product pool no matter the effort. I think you will find that the GPL does something much more than that. It does enable everyone to benefit from the common effort, of course, but it also allows corporations in competition with one another to contribute to the common pool, without anyone being able to "cheat" by not putting effort back in the product. If you do development on the GPL'd product you have to put the code back in the common pool (if you distribute it). The GPL is the only licence that can ensure an equal footing for all participants and that is why it is so popular; in fact, it is quintessentially capitalistic - it allows everyone to compete on an equal basis. It is just that you cannot sell the product; but you can damn sure sell the service. Thanks - and please pardon my language.

    —  Stelios Papanastasiou on Thursday, February 12, 2009 22:42 #

  14. Let me reiterate what has already been said in the comment.

    If you like having your open source code taken and released in a proprietary application, then use a BSD-like license.

    If you like having your open source code taken and kept as open source, then use a GPL-like license.

    —  Bill on Thursday, February 12, 2009 22:47 #

  15. The GPL is a viral license, but that's by design.

    The problem you mention with GPL readline is only a problem for developers who want to use a license that is against the terms of the GPL.

    Since your project is BSD licensed, you already comply with the terms of the GPL. There is a comprehensive list of compatible licenses here: www.gnu.org/philosophy/license-list.html

    People modifying and redistributing your program will have to ensure they either comply with the GPL (continue to release under BSD for example), or they strip out the code linking with the readline library.

    —  Michael Gauthier on Thursday, February 12, 2009 23:01 #

  16. He mentioned the 3 clause BSD license. As per your link www.gnu.org/philosophy/license-list.html , this license is incompatable with the GPL due to the advertising clause. I wonder what prompted him to use the 3 clause BSD verses the GPL compatable 2 clause license.

    —  Matt Henley on Thursday, February 12, 2009 23:17 #

  17. @16: You are mistaken. The 4 clause BSD license is incompatible with the GPL.

    —  Armin Ronacher on Thursday, February 12, 2009 23:18 #

  18. I am all for adopting the public domain license more widely, avoiding all of these problems. Ok, some people may use your code in closed source software and they may not even give credit to you, but so what? See the success of Sqlite.

    —  Wouter on Thursday, February 12, 2009 23:21 #

  19. @18: public domain is not possible in countries like Austria / Germany and probably many others. You can however use the WTFPL which has the same effect without losing the copyright.

    But between that one and BSD/MIT there is not such a high difference any more.

    —  Armin Ronacher on Thursday, February 12, 2009 23:23 #

  20. If you really think that BSD licences are a panacea for everything then take a look at Wine's history and why they changed their license from MIT to LGPL. Hint: Transgaming.

    —  Azrael Nightwalker on Thursday, February 12, 2009 23:30 #

  21. As John Gill mentioned above, The Real WTF here is that readline is GPL, when it should (in my opinion, at least) be LGPL, which would have posed no problem to you. Really, any library ought not be under any license that restricts an application's choice of license.

    —  Alex on Thursday, February 12, 2009 23:33 #

  22. I'm not advocating for either GPL or BSD/MIT here. I'm just saying that one should read the license text first and think before choosing.

    Stuff like readline would better have been LGPL or even BSD. Instead the developers decided to force people into using GPL.

    I'm sure there are counterexamples where BSD was chosen where the developers better had used GPL.

    —  Armin Ronacher on Thursday, February 12, 2009 23:37 #

  23. About forcing libraries I should probably link to the GNU's page about why people should not use LGPL for libraries: www.gnu.org/philosophy/why-not-lgpl.html

    —  Armin Ronacher on Thursday, February 12, 2009 23:47 #

  24. I have a subtle point but I think it is important and I often see it misrepresented.

    You say that the GPL does not permit the use of GPL code in non-GPL code. You therefore conclude that in order to use the GPLed readline code that your code must be GPLed.

    This is not true. The GPL does not "infect" other code in this manner. What happens is that the GPL requires that anytime you combine GPL code with other code that the combination must be released under the GPL. Dynamic linking is considered to be a combination, therefore this combination must be released under the GPL.

    This means that if you want to distribute your readline-using program in binary form, it must be released under a GPL compatible license--not necessarily the GPL itself. For instance, you might release it under the BSD license. The combination of your program and readline is then licensed under the GPL.

    This is not a distinction without a difference. Say for instance you do not like the GPL, but you want to use readline. You release your program under the BSD license. Some enterprising hacker then changes your code so that it uses a newer replacement for readline, that is licensed under the BSD license. He then re-releases your (now modified) code under the BSD license. This would be perfectly fine if your original code was BSD licensed (which the GPL permits.) However, this would not be fine if your code was GPLed, as then the hacker could not remove the GPL from your code to replace it with the BSD license.

    To use readline you must use a GPL compatible license, like GPL, BSD, or MIT. You could not release your code with a closed-source EULA. It is not true to say that non-GPL code cannot use the GPL code, and it is simply incorrect to give any credibility whatsoever to Ballmer's ridiculous "cancer" remarks.

    For support, look at what the FSF says about this:

    www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL

    —  Omari on Friday, February 13, 2009 0:05 #

  25. "Stuff like readline would better have been LGPL or even BSD. Instead the developers decided to force people into using GPL."

    Again, simply not true. What the developers did was "force" people into doing one of a few things: 1) using a free software license (such as BSD, MIT, or GPL) so they could use readline, or 2) not using readline at all.

    This is a decision that serves the ends of the FSF. They want software to be free. They think the GPL is the best free software license, but they also believe that other licenses such as BSD and MIT are also free. They believe that some software is free precisely because it links to GPL code such as readline. I understand that you apparently disagree with the goals of the FSF, but that does not mean they are trying to "force" people to use the GPL. That simply is untrue.

    —  Omari on Friday, February 13, 2009 0:11 #

  26. @22

    How dare them force you to use their libraries -oops wait they don't- go write your own line library. People that cry meanie because they can't appropriate GPL code are huge hypocrites.

    —  rgz on Friday, February 13, 2009 1:04 #

  27. @2 This is essentially the difference between <a href="en.wikipedia.org/wiki/Positive_liberty">positive</a> and <a href="en.wikipedia.org/wiki/Negative_liberty">negative</a> freedom. <a href="en.wikipedia.org/wiki/Isaiah_Berlin">Isiah Berlin</a> talked about these concepts in <a href="en.wikipedia.org/wiki/Two_Concepts_of_Liberty">Two Concepts of Liberty</a>.

    Essentially, the GPL promotes other peoples negative liberty at the price of your own. BSD/MIT/ASL licensed code is more Free for you as a developer, but less Free for your users. As a consumer of software (and everybody is a net consumer of software, even the most prolific of hackers), it is better for you if the software is Free. The GPL enhances your positive liberty by forcing you to release the source code.

    That's the philosophical argument.

    The practical argument notes that there are very few proprietary forks of BSD licensed code, and those that are tend to be problematic (cf. transgaming). That's probably why there are very few of them relative to the amount of projects under weak copyleft licenses.

    The places where weak copyleft licenses tend to get used are where there's either a tradition of sharing and taking something closed would be culturally frowned on (eg. httpd or BSD 4.4 derivatives) or where the software is disrupting an existing, entrenched market dominated by a proprietary player.

    —  Aidan Skinner on Friday, February 13, 2009 1:27 #

  28. If deciding what license to use also read this
    www.dwheeler.com/blog/2006/09/01/#gpl-bsd

    —  Damjan on Friday, February 13, 2009 1:42 #

  29. Typical comments in this discussion.

    His REAL point which many of yall missed was use whatever license you choose, but FIRST READ THE LICENSE AND UNDERSTAND IT.

    —  Joseph James Frantz on Friday, February 13, 2009 6:17 #

  30. I don't know you, so I might be wrong, but your blogpost reads like a rant about the fact that you can't get what you want.

    The whole point about the GPL is to keep free what is free, so that free software remains free for all time.

    That has some minor side-effects, like incompatibility with certain licenses on certain points (like BSD), but that is intended. BSD might be a free license, it is not meant to keep software free. GPL is. BSD was meant to release software free, which is a huge difference.

    And to go into the fact that companies make money on BSD-like licensed Django and RoR: companies make money on GPL-licensed stuff as well. Like the Linux kernel, just to name some obscure piece of software...

    —  Maxim on Friday, February 13, 2009 8:29 #

  31. One aspect that many people overlook is that the GPL does not work well together with other FOSS licenses. That is the whole reason that there is the whole GPL-compatible vs. non-GPL-compatible license mess we're in. This is ridiculous. For example you can't use readline in software that uses the 4-clause BSD license (which admittedly has practical problems). This is ridiculous.

    What has always worried me is the political manifesto aspect of the GPL, which has become even worse with the GPL v3, reaching into areas of software patents and DRM, instead of concentrating on a usable software license.

    —  Sebastian Rittau on Friday, February 13, 2009 8:43 #

  32. What the GPL means is that Microsoft (and Apple) can't steal my software the way M$ stole the BSD TCP/IP stack. They either have to use it in a compatible manner, or engineer their own copy.

    For Apple and readline: if Apple wants to, they are perfectly free to engineer their own; they just can't steal Stallman's version.

    And yes, I _do_ have (>100K lines of) GPL and LGPL software out there myself...

    —  Carlie J. Coats, Jr. on Friday, February 13, 2009 16:48 #

  33. @ alex re: 21...

    The FSF game is to have all software be Free Software.

    This is a key though to keep in mind when looking at the licenses they choose. They explain their thinking for anyone who is interested.

    Basically, they would use the GPL for everything if it would work. But they do take a pragmatic approach. If the functionality of their program is easily available in the market elsewhere, then they may use the LGPL or the GPL with enough exceptions to gain adoption. If they have unique functionality, then it is the GPL. I think that is the rough idea.

    drew

    —  drew Roberts on Friday, February 13, 2009 16:51 #

  34. @ Sebastian re: 31...

    This is the basic nature of a free, copyleft license and is its chief strength as well as one of its painful properties. However, if everyone writing Free Software chose the GPL, lots of the pain would disappear.

    This same problem happens in the world of art and music with cc BY-SA licensed works.

    —  drew Roberts on Friday, February 13, 2009 16:55 #

  35. I'd like to interject two corrections to mistaken statements in this blog. First:

    <i>You can take BSD code and re-license it under the GPL if you want to.</i>

    This is a common misconception, which was discussed at length when some files in the Linux ath5k driver accidentally had their BSD copyright information removed. In no case, even on BSD licensed works, can anyone but the copyright holder change the license on the work. This publication from the Software Freedom Law Library clarifies the legal requirements for including BSD licensed work in GPL work, but it applies equally to including BSD licensed work in any other code base:

    www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html

    The BSD code remains under its original license, even when combined or included with work under a different license.

    <i>Once you made a GPL release of your code there will always be a GPL version of it. If not for future releases, at least for that one release as you can't revoke the license. </i>

    I should point out that I'm less certain of the second point than the first, but to the best of my knowledge, the BSD license is irrevocable, as is the GPL.

    If you believe otherwise, and have been advised so by at least one actual lawyer, I'd be quite interested in that information.

    —  Gordon Messmer on Friday, February 13, 2009 18:01 #

  36. Success of GPL Readline over BSD versions seems to prove that GPL works. :D

    In my opinion the person who develops software gets to choose to license. If that's not good for you, just roll your own instead of being a whiny bitch. ;)

    —  Garmin Navigator on Friday, February 13, 2009 18:04 #

  37. A few months ago I had a long discussion about licenses with a friend developing software outside of work. The biggest obstacle we could find with GPL is that dynamic loaded object code built from GPL source could only be loaded by a program written with GPL source. Alternately, the "infection" mechanism also occurs -- use of the API for the GPL object (that is the include file of function prototypes) makes any program reading the include file also GPL source code. This is the thing that didn't seem reasonable to us.

    The mechanism for dynamic loading, heck, even just calling a function, isn't supplied by the GPL'd source code for the dynamic object, but by the compiler and/or OS neither of which may be GPL. It would make sense that separately loadable code using different licenses should be able to call each other through an OS-defined invocation method without the licenses having to transfer from the caller to the callee.

    That said, I write my own out of office stuff as GPL. I have a day job that pays me, so outside the office I'm coding for the entertainment value, not the money.

    —  Ken Jennings on Friday, February 13, 2009 18:28 #

  38. "You can take bsd code and re-license it under the gpl if you want to".

    I think that's completely wrong, man. Look at clauses 1 & 2 of BSD. You can't remove the copyright nor the conditions (in other words, the license)... unless you are the copyright holder, of course.

    Recently (some months ago) there was a lot of hassle in linux (the kernel) because of someone removing copyright/conditions from BSD code.

    linux.slashdot.org/article.pl?sid=07/08/29/0241234

    —  Edmundo Carmona on Friday, February 13, 2009 18:33 #

  39. @35: This is true. But it's possible (as the not copyright owner) to take code under the BSD license and attach the GPL to it.

    From that point onwards you can make modifications of the source under the GPL alone which makes it for the original BSD code impossible to integrate the modifications in the original project without adhering to the GPL.

    Neither of the two licenses can be revoked. It's also true the other way round. If you have done a BSD release once there will always be a copy of your code under the BSD license around until that one disappears.

    However with the BSD you can happily go to your download server and get rid of all the BSD licensed files and do as if it never was there. As far as I know the GPL license forces you to provide the sourcecode once distributed for a couple of years.

    The latter is especially a problem for linux distributions that have to keep the source tarballs around.

    —  Armin Ronacher on Friday, February 13, 2009 18:33 #

  40. In defense of GPL:

    Well.... a lot has been said about GPL Vs. BSD and I wanted to add my two cents:

    The X license is freer than y license depends on your point of view. If you are a developer, BSD is freer. If you are a user, GPL assures more freedom.

    And always consider the opinions of people that work with them. For example, Theo de Raadt on issues he has to face because of his licensing code under BSD: www.linux.com/feature/53004Look at the last question and his answer.

    So, yes... BSD is "freer" for you as a developer... but with BSD code, downstream changes can be kept "secret".. at least GPL code forbids that... you won't get any money anyways... but at least you can get code.

    That makes it for me.

    —  Edmundo Carmona on Friday, February 13, 2009 18:52 #

  41. The BSD License allows anyone to have proprietary commercial use of the code. This is a problem if you think everyone should have the four essential software freedoms. This is why I believe GPL > BSD

    —  Christopher Lunsford on Friday, February 13, 2009 19:07 #

  42. @41: Using the BSD license does not break the “four essential software freedoms”. Someone can use it in a proprietary application or fork it and close the development for that fork.

    And in my opinion this is exactly what I want. I love what I've achieved with my stuff so far and nothing would make me happier than anyone using it. If that someone turns out to be a jerk I have to live with that, but that's just human :)

    —  Armin Ronacher on Friday, February 13, 2009 20:58 #

  43. "...separately loadable code using different licenses should be able to call each other through an OS-defined invocation method without the licenses having to transfer from the caller to the callee."

    That should end "... transfer from the callee to the caller."

    —  Ken Jennings on Friday, February 13, 2009 21:50 #

  44. The GPL is no more "communistic" than any other license. In the case of the GPL you get code for, in most cases, free of cost and in turn you agree to abide by the wishes of the copyright owner, that you then share code you add in. This is the only restriction and is a lot more permissive than the typical proprietary license, which prohibits you from doing all sorts of things. None the less, the basic idea is the same. In order to get to use the program you agree to the author's terms. That's called "ownership", which is the opposite of communism.

    As far as making money is concerned, if you can't figure out how to use code that you get for free, code that would cost millions of dollars to reproduce, to make money then you're not much of a businessman. There's plenty of room for added value upon such a large code base, and plenty of companies making money off it. There's even more companies getting value out of the code base and paying programmers to contribute. Most programmers write in-house code. The more of that in-house code that can be given to the community to maintain, the less the IT department costs. But companies would be foolish to BSD license their code and allow the competition to privatize their code base. The share-and-share-alike of the GPL license is the business-friendly approach. It keeps the competition on a level playing field when it comes to IT -- everybody uses the same stuff so business can focus on something besides IT infrastructure, like delivering value to customers.

    —  Karl O. Pinc on Friday, February 13, 2009 22:18 #

  45. "he people behind the GPL have a very communistic point of view in terms of freedom: free software should be available to everybody under the same terms." - I believe this is wrong, for two reasons.

    First, the viewpoint is completely different: it is "as much of the software as possible must be as free as possible". This is a completely different thing; the difference is like that between equal positions (what you seem to mean), and equal rights or opportunities. I personally associate the later with the capitalism, not with the communism.

    Second, I am afraid that your perception of the communism is totally wrong. And you can trust me - I have lived my first twenty-odd years under it, and probably have seen more and more in-depth of it than most people you know.

    The communism is not "everything is for everybody". It is much more like "everything is forbidden, except for a few things that are also forbidden, but we prosecute for them only if we don't like you". Under communism nothing is free, and nothing is for everybody. The Party core members have everything, but if you are not one of them, you don't. Everything you need, you buy it with hard-earned money, and even then the Party can take it away from you with no explanation, warrant or anything like - that is, it is not really yours. Etc., etc...

    I don't think GPL is like this. Do you?

    —  Grigor on Friday, February 13, 2009 22:21 #

  46. There is communism and what history made out of communism. Per se there is nothing wrong with it. The way it was carried out in recent history was the problem with it.

    —  Armin Ronacher on Friday, February 13, 2009 22:26 #

  47. Some developers prefer BSD/MIT-style licenses, some prefer GPL/AGPL-style licenses, some go with public domain, and some prefer standard copyright. It's their code. They get to choose.

    You as a developer get to choose what libraries you want to use, but by using those libraries you get certain restrictions. Those restrictions may mean putting in the copyright notice (BSD) or purchasing an expensive license (some closed source). The restriction could even be licensing the new result of your code and the library under the GPL.

    Again, I'm not advocating any one of those, but I think that making the central example of your argument about a GPLed program that you wanted to use but decided not to (because you wanted the result to be BSD) seems a little off the mark.

    You get to license your code the way you want to. I assume they knew what they were doing when they licensed theirs, since it's from GNU.

    Did you try Editline? It's BSD. www.cs.utah.edu/~bigler/code/libedit.html

    —  Daeng Bo on Saturday, February 14, 2009 8:36 #

  48. @39 "As far as I know the GPL license forces you to provide the sourcecode once distributed for a couple of years."

    Only if you fail to provide the source when you provide the binary. If you provide the source with the binary, you are legally done. No 3 year requirement applies. (At least under v2.)

    drew

    —  drew Roberts on Saturday, February 14, 2009 18:42 #

  49. I'd like to know in wich planet you live....
    GLP is freedom, pure and simple.

    —  henry miller on Saturday, February 14, 2009 20:33 #

  50. so... the author is pissed that he could not take someone else's code and lock it up in his.. or make it to where someone could lock it up..... i say boo hoo..!!! that is exactly the point of GPL and why people use it..

    —  frwfwf on Sunday, February 15, 2009 9:16 #

  51. Basically, you don't write here about the problems for _me_ when I license _my_ software as GPL, as the title suggests, but you tell us that _you_ have problems because _others_ license GPL.

    This post should be called "Are you sure you want to use BSD License" - because then you can't get the best readline license...

    I'm not at all against BSD/MIT etc. in general. Everybody can chose as he wants.

    But it's a feature, not a problem, that some large company can't make it's own fork of a linux system, sell it as it's own OS, without giving anything back.

    I like that style software-communism.

    If you don't, live with the fact that you don't get the supercool readline from the communists, who seem to be better coders, at least in this area ;)

    Oh, but I forgot, a really good argument from a man I totally respect... Steve Ballmer! Really, if he says GPL is wrong, there must be some truth in it. HAHA

    —  Hennsen on Monday, February 16, 2009 13:19 #

  52. I think you are trying to make a point, but I didn't get it. When you wrote this: "For example I tried to develop an interactive administration shell for Zine but without readline (which I cannot use as Zine is BSD licensed) the user experience is just meh. I would have to relicense the entire application to GPL just so that I can have an interactive shell with readline support. " But you were using GPL and you changed to BSD. I understand that this change has caused problems, but I don't understand why you changed. It's not clear in your essay. The only hint I get is that you changed for philosophical reasons. I would say that GPL is "communal" but not "communist". I would also say that it is a well proven model now. As for "cancer", I think that Microsoft's business model has its own problems for the economy (abuse of market power, rent-seeking and suppression of innovation).

    —  Tim on Tuesday, February 17, 2009 0:33 #

  53. I personally believe that free software means the freedom to do whatever you want with it. There has been good software published under the GPL but I will look for alternatives before using it. I think the GPL is evil. I see it as charity with strings attached -- it's not really charity at all. GPL licensed software may be open but it is certainly not free, there is a real cost to using it.

    —  Darren on Wednesday, March 18, 2009 17:00 #

  54. You shouln't expect any credit if using GPL it's all at the discretion of the person using your software because there is no way to bound the user by law uder GPL

    —  Wajahat on Sunday, March 7, 2010 3:03 #

Leave a Reply