Question: A lot of free software projects choose to use the following phrase in every of their program files:
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
But this means:
1. The user will choose which particular version of GPL he prefers, not the original software author.
2. The user could choose this moving target (GPL 2.0, 2.1, 2.x, 3.x) appropriately in case of a lawsuit.
How can this undefined condition be a good thing?
Stallman: This achieves two goals. First, that we can release future GPL versions and they will apply to the existing software. Second, that in releasing future GPL versions, we cannot impose any new restrictions on the existing software.
GPL version 3 will need to contain specific requirements that GPL version 2 does not have. Nothing large -- the overall idea will be the same -- but there will be some. I designed the words you've quoted to make it possible to distribute the existing code under GPL version 3, without imposing even the smallest new requirement on existing code, because people will still be able to use it under GPL version 2. . . .
Q: What type of compatibility and interaction will GPL 3 have with previous version of the license?
Stallman: Even small changes from version 2 of the GPL will result in an incompatible license. Two slightly different licenses, each saying that modified versions of a program must be distributed under the same license, are inevitably incompatible. That's why we suggest that programs permit use of future versions of the GPL. It is the only way they can migrate. . . .
Q: Maybe you could talk about the common question that people have: a project under GPL that receives a patch under GPL 3. What happens?
Stallman: If the project's current code permits use under "GPL version 2 or later," they can integrate that patch. However, the files where they have merged in the patch will have to say "GPL version 3 or later."
They also have the option of not using that patch, or asking the contributor to give permission for its use under "GPL version 2 or later."
Q: If I take a patch under GPL 3 and merge it with a project under "GPL 2 or later," should I write that the new license for the whole project is GPL 3?
The merged program as a whole can only be used under GPL 3. However, the files you did not change could still carry the license of "GPL 2 or later." You could change them or not, as you wish.
Q: And then include GPL 3 in the file named COPYING?
Stallman: Yes, you should include a copy of GPL 3. If some files remained under "GPL 2 or later," then you should also include a copy of GPL 2. . . .
Q: What type of clauses do you plan to add to fight "Treacherous Computing"?
Stallman: Nothing we put in free software licenses can block the implementation of Treacherous Computing inside a computer, just as nothing we put in free software licenses can prevent the existence of software patents. The only thing our licenses can affect is whether those threats can pervert the nature of our software. Thus, we are thinking about a clause requiring distribution, with the software, of any signature keys necessary to sign the binary so that it can run and fully utilize the machine's facilities. This would prevent the perversion of a supposedly "free" program, which nominally you are allowed to change, except that modified versions are prevented from functioning.
The strategic decision of whether such a requirement is a good idea is very difficult.
No one can reach any conclusions about GPL version 3 until it is completed, but it's good to begin thinking about it now, so as to meaningfully contribute to the community input about GPL 3, but also so as to utilize the GPL properly.