I want to lead with the disclaimer that I'm genuinely curious about your opinions on the GPLv3. I don't intend any of the following to try to convince you of anything, or to make you defend your opinions; I'd just like to understand the objections of someone who favors GPLv2 over v3, and you're one of the few people I've seen who actually talks about v2 versus v3 in substantive ways. (We could use more such people, on both sides.) Having read your comment about talking about the GPLv3 ("FSF zealots will jump out of the woodwork and pester me incessantly to recant and confess"), I just felt the need to add such a disclaimer. :)
I read both the LWN comments, the comments here, the mailing list page you just linked to, and a fair bit of your blog that you've linked to. So far, I've seen the following objections you've made about the GPLv3 (with any comments or questions of mine in parentheses):
- It's a new license, and thus contributes to license proliferation.
- You didn't want to have to apply the same degree of careful reading and analysis to the new GPLv3 that you'd already applied to the GPLv2.
- It isn't compatible with the GPLv2. (That one seems pretty much impossible to satisfy with any usefully new version of the GPL, but I do agree that it represents the single biggest issue with the GPLv3. That said, other than the Linux kernel I've seen very few projects which use GPLv2-only, and code in the Linux kernel doesn't tend to find itself in userspace very often, unless you try to write a replacement for coreutils. :) Also, the same problem applies to permissively-licensed code in the other direction, since it can't take GPLed code from other projects.)
- You don't like the idea of relicensing existing GPLv2-or-later projects as GPLv3-only or GPLv3-or-later, because you feel that doing so would betray the users of those projects. (That objection I both understand and sympathize with, and I see nothing wrong with continuing to use GPLv2-or-later or GPLv2-only indefinitely on many existing projects whose users might care about that change, just as I see nothing wrong with releasing MIT-licensed code: they all represent a scale from more permissive to more protective. Whether any given project wants to move to GPLv3{,-or-later} seems like a decision entirely up to that project, and whether it makes sense or not depends on the project.)
- You say that the GPLv3 prevents people from burning code into ROM. (As I understand it, that represented a bug that got fixed in later versions of the GPLv3, hence why it had such a long and drawn-out drafting process.) You also suggested that the GPLv3 would require "root access to a server" based on having an account on one powered by GPLv3 software, using a World of Warcraft account as an example. (Again, that doesn't seem to apply to the released version of the license, and even the Affero GPLv3 doesn't require "root access to a server", just the source code as you said you want.)
- In general, you've objected to the provisions which try to ensure that end users can replace the firmware on their devices with modified versions, to the extent those devices allow the manufacturer themselves to do so. (Considering the origins of the FSF, as well as the current activity around locked-down devices, I personally don't consider that particularly unreasonable, but I can certainly understand your objection.)
- You objected to the language prohibiting the use of GPLv3 code to create anti-circumvention mechanisms, both because you considered it laughable that anyone would do so, and because as a result you considered it an issue not worth adding a use restriction for. (I agree that it seems laughable today, but personally I look forward to a world where proprietary software represents the exception, not the rule, and I think it makes sense to try to deal with that issue accordingly. These days, "the right to read" has become shockingly prescient.)
Have I missed any objections or criticisms, or does the above fairly summarize your problems with the GPLv3?
On a slightly different note, one bit of GPLv3 I think you'd probably like: per section 14 of the GPLv3, instead of saying "or any later version", you can now designate a proxy to choose what new versions of the GPL apply to a program. So, you could potentially say "GPL version 2 or version 3, or any later version accepted by $YOU", which allows you to avoid giving the FSF blanket relicensing permission while also removing the problem of having so many authors that you can never usefully relicense at all.
Re: From the Sony engineer mentioned...
I read both the LWN comments, the comments here, the mailing list page you just linked to, and a fair bit of your blog that you've linked to. So far, I've seen the following objections you've made about the GPLv3 (with any comments or questions of mine in parentheses):
- It's a new license, and thus contributes to license proliferation.
- You didn't want to have to apply the same degree of careful reading and analysis to the new GPLv3 that you'd already applied to the GPLv2.
- It isn't compatible with the GPLv2. (That one seems pretty much impossible to satisfy with any usefully new version of the GPL, but I do agree that it represents the single biggest issue with the GPLv3. That said, other than the Linux kernel I've seen very few projects which use GPLv2-only, and code in the Linux kernel doesn't tend to find itself in userspace very often, unless you try to write a replacement for coreutils. :) Also, the same problem applies to permissively-licensed code in the other direction, since it can't take GPLed code from other projects.)
- You don't like the idea of relicensing existing GPLv2-or-later projects as GPLv3-only or GPLv3-or-later, because you feel that doing so would betray the users of those projects. (That objection I both understand and sympathize with, and I see nothing wrong with continuing to use GPLv2-or-later or GPLv2-only indefinitely on many existing projects whose users might care about that change, just as I see nothing wrong with releasing MIT-licensed code: they all represent a scale from more permissive to more protective. Whether any given project wants to move to GPLv3{,-or-later} seems like a decision entirely up to that project, and whether it makes sense or not depends on the project.)
- You say that the GPLv3 prevents people from burning code into ROM. (As I understand it, that represented a bug that got fixed in later versions of the GPLv3, hence why it had such a long and drawn-out drafting process.) You also suggested that the GPLv3 would require "root access to a server" based on having an account on one powered by GPLv3 software, using a World of Warcraft account as an example. (Again, that doesn't seem to apply to the released version of the license, and even the Affero GPLv3 doesn't require "root access to a server", just the source code as you said you want.)
- In general, you've objected to the provisions which try to ensure that end users can replace the firmware on their devices with modified versions, to the extent those devices allow the manufacturer themselves to do so. (Considering the origins of the FSF, as well as the current activity around locked-down devices, I personally don't consider that particularly unreasonable, but I can certainly understand your objection.)
- You objected to the language prohibiting the use of GPLv3 code to create anti-circumvention mechanisms, both because you considered it laughable that anyone would do so, and because as a result you considered it an issue not worth adding a use restriction for. (I agree that it seems laughable today, but personally I look forward to a world where proprietary software represents the exception, not the rule, and I think it makes sense to try to deal with that issue accordingly. These days, "the right to read" has become shockingly prescient.)
Have I missed any objections or criticisms, or does the above fairly summarize your problems with the GPLv3?
On a slightly different note, one bit of GPLv3 I think you'd probably like: per section 14 of the GPLv3, instead of saying "or any later version", you can now designate a proxy to choose what new versions of the GPL apply to a program. So, you could potentially say "GPL version 2 or version 3, or any later version accepted by $YOU", which allows you to avoid giving the FSF blanket relicensing permission while also removing the problem of having so many authors that you can never usefully relicense at all.