some programs remain under GPLv2 while others advance to GPLv3. These two licenses are incompatible, but that isn't a serious problem.
When we say that GPLv2 and GPLv3 are ncompatible, it means there is no legal way to combine code under GPLv2 with code under GPLv3 in a single program. This is because both GPLv2 and GPLv3 are copyleft licenses: each of them says, "If you include code under this license in a larger program, the larger program must be under this license too." There is no way to make them compatible. We could add a GPLv2-compatibility clause to GPLv3, but it wouldn't do the job,
because GPLv2 would need a similar clause.
Fortunately, license incompatibility only matters when you want to link, merge or combine code from two different programs into a single program. There is no problem in having GPLv3-covered and
GPLv2-covered programs side by side in an operating system. For instance, the TeX license and the Apache license are incompatible with
GPLv2, but that doesn't stop us from running TeX and Apache in the same system with Linux, Bash and GCC. This is because they are all
separate programs. Likewise, if Bash and GCC move to GPLv3, while Linux remains under GPLv2, there is no conflict.
Keeping a program under GPLv2 won't create problems. The reason to migrate is because of the existing problems which GPLv3 will address.
One major danger that GPLv3 will block is tivoization. Tivoization means computers (called "appliances") contain GPL-covered software
that you can't change, because the appliance shuts down if it detects modified software. The usual motive for tivoization is that the
software has features the manufacturer thinks lots of people won't like. The manufacturers of these computers take advantage of the freedom that free software provides, but they don't let you do likewise.
Some argue that competition between appliances in a free market should
suffice to keep nasty features to a low level. Perhaps competition
alone would avoid arbitrary, pointless misfeatures like "Must shut
down between 1pm and 5pm every Tuesday", but even so, a choice of
masters isn't freedom. Freedom means _you_ control what your software
does, not merely that you can beg or threaten someone else who decides
In the crucial area of Digital Restrictions Management--nasty features
designed to restrict your use of the data in your
computer--competition is no help, because relevant competition is
forbidden. Under the Digital Millenuium Copyright Act and similar
laws, it is illegal, in the US and many other countries, to distribute
DVD players unless they restrict the user according to the official
rules of the DVD conspiracy (its web site is http://www.dvdcca.org/,
but the rules do not seem to be published there). The public can't
reject DRM by buying non-DRM players, because none are available. No
matter how many products you can choose from, they all have equivalent
GPLv3 ensures you are free to remove the handcuffs. It doesn't forbid
DRM, or any kind of feature. It places no limits on the substantive
functionality you can add to a program, or remove from it. Rather, it
makes sure that you are just as free to remove nasty features as the
distributor of your copy was to add them. Tivoization is the way they
deny you that freedom; to protect your freedom, GPLv3 forbids
The ban on tivoization applies to any product whose use by consumers,
even occasionally, is to be expected. GPLv3 tolerates tivoization
only for products that are almost exclusively meant for businesses and
organizations. (The latest draft of GPLv3 states this criterion
Another threat that GPLv3 resists is that of patent deals like the
Novell-Microsoft deal. Microsoft wants to use its thousands of
patents to make GNU/Linux users pay Microsoft for the privilege, and
made this deal to try to get that. The deal offers Novell's customers
rather limited protection from Microsoft patents.
Microsoft made a few mistakes in the Novell-Microsoft deal, and GPLv3
is designed to turn them against Microsoft, extending that limited
patent protection to the whole community. In order to take advantage
of this, programs need to use GPLv3.
Microsoft's lawyers are not stupid, and next time they may manage to
avoid those mistakes. GPLv3 therefore says they don't get a "next
time". Releasing a program under GPL version 3 protects it from
Microsoft's future attempts to make redistributors collect Microsoft
royalties from the program's users.
GPLv3 also provides for explicit patent protection of the users from
the program's contributors and redistributors. With GPLv2, users rely
on an implicit patent license to make sure that the company which
provided them a copy won't sue them, or the people they redistribute
copies to, for patent infringement.
The explicit patent license in GPLv3 does not go as far as we might
have liked. Ideally, we would make everyone who redistributes
GPL-covered code surrender all software patents, along with everyone
who does not redistribute GPL-covered code. Software patents are a
vicious and absurd system that puts all software developers in danger
of being sued by companies they have never heard of, as well as by all
the megacorporations in the field. Large programs typically combine
thousands of ideas, so it is no surprise if they implement ideas
covered by hundreds of patents. Megacorporations collect thousands of
patents, and use those patents to bully smaller developers. Patents
already obstruct free software development.
The only way to make software development safe is to abolish software
patents, and we aim to achieve this some day. But we cannot do this
through a software license. Any program, free or not, can be killed
by a software patent in the hands of an unrelated party, and the
program's license cannot prevent that. Only court decisions or
changes in patent law can make software development safe from patents.
If we tried to do this with GPLv3, it would fail.
Therefore, GPLv3 seeks to limit and channel the danger. In
particular, we have tried to save free software from a fate worse than
death: to be made effectively proprietary, through patents. The
explicit patent license of GPLv3 makes sure companies that use the GPL
to give users the four freedoms cannot turn around and use their
patents to tell some users "That doesn't include you." It also stops
them from colluding with other patent holders to do this.
Further advantages of GPLv3 include better internationalization,
gentler termination, support for BitTorrent, and compatibility with
the Apache license. (For full information, see gplv3.fsf.org.) All
in all, plenty of reason to upgrade.
Change is unlikely to cease once GPLv3 is released. If new threats to
users' freedom develop, we will have to develop GPL version 4. It is
important to make sure that programs will have no trouble upgrading to
GPLv4 when the time comes.
One way to do this is to release a program under "GPL version 3 or any
later version". Another way is for all the contributors to a program
to state a proxy who can decide on upgrading to future GPL versions.
The third way is for all the contributors to assign copyright to one
designated copyright holder, who will be in a position to upgrade the
license version. One way or another, programs should provide this
flexibility for the future.
Copyright 2007 Richard Stallman
Verbatim copying and distribution of this entire article are permitted
worldwide without royalty in any medium provided this notice is preserved.