Take the 2-minute tour ×

I'm looking at licensing some open source software and am looking at the GPL. What are the pros and cons of using this license?

share|improve this question
possible duplicate of Why is free software good for programmers? –  user8 Sep 28 '10 at 16:02
not a duplicate. This question is focused narrowly on the GPL and not taking a "high view" perspective. –  makerofthings7 Sep 29 '10 at 15:45
I'd tend to go for one extreme or the other: AGPL or WTFPL. –  TRiG Dec 7 '10 at 13:10
Let's put this into perspective. If Microsoft would of come up with this license first and kept all the provisions exactly the same, the license would not have the same following. The FOSS and GLP are not what they appear to be. Read their Manifesto. They are not about Anarchy, they are about control. –  Andrew Finnell Jun 15 '12 at 14:42
add comment

closed as primarily opinion-based by MichaelT, gnat, Bart van Ingen Schenau, GlenH7, Dynamic Dec 8 '13 at 23:35


6 Answers

up vote 39 down vote accepted

Ok, my list of pros and cons of GPL:


  • It makes people think hard about whether they really buy into Open Source; are you prepared to live by it, and let other people use what you've written, rather than just liking it because of what you can get out of it?
  • It makes sure that when something has been developed by the Open Source community, it stays Open Source; no chance of someone taking all the work that others have been doing, repackaging it and selling it on.


  • It's a complete no-no for most corporate organisations; they can't afford the risk of GPL-licenced code getting into their products, so virtually all medium-large companies have clauses explicitly banning GPL-licenced code.
  • It puts people off Open Source.
  • Is it really fair, that because I use your Open-Source image picker control in my app, my whole app must now be Open Source too? Even if I improved the image picker and contributed that code back to the community? The terms are too onerous for many developers.
  • Lots of people aren't aware of the stringent terms of GPL, so use it as it's the licence they've heard of without realising what restrictions they're placing on anyone else that wants to use it.
  • Its extremely viral. If your project contains a component that contains a component that contains a component that is under the GPL (phew!), your whole project is subject to the GPL too.

Ultimately for me the cons outweigh the pros. To me it smacks of Open Source Evangelists trying to trick the world into going Open Source instead of persuading the world of its benefits.

share|improve this answer
+1 for some of the cons, for which yes, I agree, are too "strict". MIT licence is a nice alternative. –  Rook Sep 28 '10 at 0:22
This is such transparent FUD: "It's a complete no-no for most corporate organisations; they can't afford the risk of GPL-licenced code getting into their products, so virtually all medium-large companies have clauses explicitly banning GPL-licenced code." GPL-licensed code and projects have been non-controversial at Fortune 500s since at least 2004, and indeed many large companies (Google, IBM, Oracle to name a few) have based much of their business off of it. –  user8 Sep 28 '10 at 16:01
There's a difference here between software product companies, who often can't touch GPLed code, and companies that use software for internal use, where the GPL has essentially no effect. There are a lot more of the latter than the former. –  David Thornley Oct 8 '10 at 14:56
BTW, the GPL was designed as a driver of a social movement, but the intention was to create a repository of Free Software that would always remain Free, and which would become increasingly tempting to use. It was not, as far as I can tell, an attempt to trick developers into anything. Further, the person behind the GPL, Richard Stallman, disavows all connection with Open Source as opposed to Free Software. –  David Thornley Oct 8 '10 at 15:58
David Thornley's experience basically matches mine. I've never heard of a company that wouldn't use GPL'd code for internal use. Heck, everyone's got Linux in dozens of places. However, many companies that develop software for distribution will not allow GPL code anywhere near their development code base. LGPL is typically okay, but not always. –  David Schwartz Aug 23 '11 at 13:35
show 14 more comments

Although h4xxr definitely gave an answer FTW, here are a few more links which could prove useful, if you're unsure of what different types of licences represent.

Comparison of free software licenses (table comparison)
Open Source Initiative - Licenses by Name (what it says - commonly used licences in today's software world) List of software licences, including those compatible with GPL

F--- GPL <-- intelligent criticism (gotta love these "pearls of wisdom" :-)

share|improve this answer
add comment

FWIW I personally have a big open source project which I am lead developer on and I've adopted a multiple license model precisely because the GPL was holding some people back from using my code. My code is licensed under a choose your own license model and allows any of the following licenses - GPL, LGPL, MIT

The LGPL allows people to incorporate your code/library/executable as-is in their product providing it is not modified. This is most useful for companies building commercial/closed source products that might need your product to function but don't need to change how your product functions.

The MIT License is essentially a permissive license that lets people modify your work however they wish and repurpose it for their own work. Use this if you've suspect users may want to do this and you don't mind not having access to the source of any modifications people might make.

share|improve this answer
add comment

When it comes to liberally-licensed open source projects (e.g. X11, PostgreSQL, Haskell), the GPL and LGPL backfire. GPLed code cannot be used in such projects, not because the GPL forbids it or the X11 license forbids it, but because such projects do not want to "upgrade" their entire product's effective license to the GPL.

share|improve this answer
add comment

Choosing GPL is the ideological step:

You are giving the advantage to free software developers, because they can use your library, and the commercial players can't (at least as long they don't want to release their product as GPL). Corporations must pay their workers to write the library that has the same functionality. You're promoting free software in that way.

Choosing less restricted licence, such as MIT is more practical:

You can use your library yourself, when coding for money (as freelancer, as employee). However, everyone can, so you're helping in that way the corporations to save money, although they are already rich without it.

share|improve this answer
+1 The GPL is an ideological/philosophical decision, not technical. Whether this is a good or a bad thing depends on philosophical matters, and is up to each project or team to decide. –  Andres F. Jun 15 '12 at 14:52
add comment
  • Benefit: you are legally guaranteed that people make their changes/contributions available to you.
  • Cost: many commerical users can not use your code. They will not use your code and thus will never contribute. See this thread explaining why the libcinder people can not use (L)GPL code. Even the LGPL can be problematic when they need to statically link the library.
share|improve this answer
I think that's only true if in non SaaS scenarios... and also I may need to find my forks and ask them to share a copy with me. –  makerofthings7 Sep 30 '10 at 1:42
That's true, for SaaS there is the AGPL. Identifying breaches is non-trivial but when found, there are people to help you: gpl-violations.org –  LennyProgrammers Sep 30 '10 at 8:16
Your benefit is wrong: if I edit the software and use it myself, you have no right to see my edits. Same goes if I distribute it to a group with no interest of sharing it. The user has the right to see the source, not everyone. –  K.Steff Jun 15 '12 at 14:19
add comment
