Calum wrote:well, generally speaking then, would you say that a project is chained to the licence it originally adopted? It sounds to me like there is no way to "up"grade to a newer version of the GPL licence (IE: a different but very similar licence) without the consent of *everybody* who contributed, and this seems like a logistical impossibility, unless the original licence explicitly stated that such upgrades are automatically consented to by all contributors.
No, that's what the "or later" clause is for. All of the GNU stuff uses the GPL and adds the "or later" clause so that they could easily move to a newer version of the license. It's at your option to add that clause in there for flexibility. Of course GNU takes it a step farther and has copyrights signed over to them for GNU software which makes it even less difficult to move to a newer version of the license.
Linus chose to go with v2 and only v2 when he started the kernel project. I can't say that I blame him for doing so because that ensured the kernel would stay under a license he agreed with and not get moved into a future version of the license that he didn't agree with. Of course that also makes it harder to move to a new version if a newer and better version comes along. That's just the situation whether good or bad. I personally would have probably went down the same path if I had been in Linus's shoes. I would have wanted to be in control of the future of that which I had created.
Here is a blurb on the GNU site about why you should use the "or later" line:
http://www.gnu.org/licenses/gpl-faq.htm ... TwoOrLaterWhy should programs say "Version 2 of the GPL or any later version"?
From time to time, at intervals of years, we change the GPL--sometimes to clarify it, sometimes to permit certain kinds of use not previously permitted, and sometimes to tighten up a requirement. (The last change was in 1991.) Using this "indirect pointer" in each program makes it possible for us to change the distribution terms on the entire collection of GNU software, when we update the GPL.
If each program lacked the indirect pointer, we would be forced to discuss the change at length with numerous copyright holders, which would be a virtual impossibility. In practice, the chance of having uniform distribution terms for GNU software would be nil.
Suppose a program says "Version 2 of the GPL or any later version" and a new version of the GPL is released. If the new GPL version gives additional permission, that permission will be available immediately to all the users of the program. But if the new GPL version has a tighter requirement, it will not restrict use of the current version of the program, because it can still be used under GPL version 2. When a program says "Version 2 of the GPL or any later version", users will always be permitted to use it, and even change it, according to the terms of GPL version 2--even after later versions of the GPL are available.
If a tighter requirement in a new version of the GPL need not be obeyed for existing software, how is it useful? Once GPL version 3 is available, the developers of most GPL-covered programs will release subsequent versions of their programs specifying "Version 3 of the GPL or any later version". Then users will have to follow the tighter requirements in GPL version 3, for subsequent versions of the program.
However, developers are not obligated to do this; developers can continue allowing use of the previous version of the GPL, if that is their preference.