This question was already asked on Stackoverflow in 2008 (but closed as off-topic there). This is a copy of the answer by Will M:
Here is a short list of some the major differences:
internationalization: they used new terminology, rather than using language tied to US legal concepts
patents: they specifically address patents (including the Microsoft/Novell issue noted in another answer)
“Tivo-ization”: they address the restrictions (like Tivo’s) in consumer products that take away, though hardware, the ability to
modify the software
DRM: they address digital rights management (which they call digital restrictions management)
compatibility: they addressed compatibility with some other open source licenses
termination: they addressed specifically what happens if the license is violated and the cure of violations
I agree with the comment about consulting a lawyer (one who knows
about software license issues, though). In doing these things (and
more), they more than doubled the length of the GPL. GPL 3 is many
things, and one of them is that it is a very complex, technical legal
Regarding why the Linux kernel does not adopt version 3, here is a video of Linus Torvalds where he explains his opinion. Some excerpts from his speech:
Here we give your version 3 and then we try to sneak in these new rules and try to force everybody to upgrade. That was the part I disliked. And the FSF did some really sneaky stuff. Downright immoral in my opinion.
I am thinking tivoization isn't necessarily something that you should strive for. But in my world view it's your decision if you make hardware that blocks down the software. That's your decision as a hardware maker. That has no impact on my a decision as a software maker to give you the software.