(For those confused about where this is coming from, I'm splitting this conversation off from
this thread to prevent a major thread drift.)
Quote:
Originally Posted by tompe
Well, I really think that if somebody use my code and put it in an E-book reader then they should have to provide the tools for installing modified code. When I read GPL3 I thought it was much better then GPL2 since it covered the cases that GPL2 was intended to cover but did not do formally.
Now it seems improbable that somebody would want to put MobiPerl code inside a device so I will think about this. I saw licensing formulated as "GPL2 or later" and that might be an alternative for me...
|
The incompatible licensing shift between GPL2 vs GPL3 is actually a hideous problem, and much as it benefits me if you went to GPL2+ in terms of my being able to use your code, I have to warn you that it's a massive headache to maintain, because you can only dual-license the code that *you* wrote. If you pull code from another project using GPL2 only, then that code remains GPL2-only, and it contaminates your entire code, making the entire thing GPL2-only. Pulling code from another project using GPL3 only contaminates your code the same way, making the entire thing GPL3-only, and you still can't use GPL3 and GPL2 code together without invalidating your ability to redistribute the result.
Worse, dual licensing also doesn't actually provide you with any of the GPL3 protections, because someone creating a derivative work that wants to bypass them can just claim GPL2 usage. A "This Version Or Later" license is almost always a worst-of-both-worlds situation. All that dual-licensing gets you is that other people can use your code in pure GPL2 and GPL3 projects -- but you can't use their code in return without committing one way or another, though you can merge other GPL2-or-later code without trouble.
If you truly believe that you don't want someone to be able to use your software in single-purpose hardware not modifiable by the end-user, then you really need to stay with GPL3, but you also need to think about immediately attaching a Section 7(c) statement to the end of your copyright section, because otherwise you are vulnerable to project name hijacking by the first person to invoke 7(c) on a modified copy of your code. Be warned, however, that invoking 7(c) yourself unfortunately causes headaches for anyone trying to include your software in a wider distrubution. If you ever want MobiPerl packaged with a Linux distrubtion, for instance, GPL3+7(c) will not make your code particularly attractive to packagers, who either have to completely rename your package or commit to never patching it, even in the case of security bugs (see the Iceweasel/Firefox split for a real-world example of this kind of clause being enforced), or ignore the clause and pray you never decide to enforce when they do patch.
So your only sane options are really to license GPL2, and put up with the chance of your code being used in E-book reader hardware and be incompatible with GPL3, or license bare GPL3 and be incompatible with GPL2 and anyone who uses GPL3 with a Section 7 that you aren't willing to comply with to use their code (like forcing you to rename your project, print advertisements in your output, or provide legal indemnification), or license GPL3 with your own Section 7c (which at least protects your project name, though all of the other subsections cannot be avoided this way), and make life difficult for distributors.
The GPL3 is unfortunately nearly Microsoftian in style -- a few brilliant innovations with Cthulu's tentacles creeping throughout making sane usage difficult.