On Monday, 9. July 2007, Gabor Hojtsy wrote:
Jakob, how you imagine giving me copyright, if I add three lines to four files each? How you imagine possibly revoking copyright, if someone rewrites a subsystem (like the menu system)? How much of the old code was used, how much is new? What if we know that certain four lines of code is written by someone? What if a commit removes three of them, and changes the remaining one to refactor/update it?
Who owns the copyright exactly is a tricky question.
Hm, yes. Nevertheless, nearly all high-profile open source projects do it, and for a good reason. A one- or three-liner might not count as copyrightable addition (although it would likely depend on yourself what you see as "significant contribution"), whereas modifying half of a file while refactoring it will definitely count. Sure, it may be hard to remove copyright notices when the exact location of the code is not known. (Which is even harder in Drupal as in projects like KDE where every contributor has its own VCS account, we cannot rely on commits as everything is done by patching.) So the most straightforward solution is likely to keep copyrights, and only remove them when the whole file is removed. Yes, that might not be the ideal way. Yes, it adds quite a bit of text to each and every source file. But having too much copyright holders is still a whole lot better than not knowing who they are. At least, by knowing them it's possible to try to contact all of them in case of licensing issues, which you cannot do if there's no copyright header at all.
Also, you see that having license comments on top of each file would solve uncertainty about the file being licensed under a certain license or not? Drupal includes a LICENSE.TXT, which pretty clearly states that it is GPL2, and every code distributed with Drupal adheres to that license.
That would not change. But it's indeed possible to have a piece of code put under two different licenses. The most prominent examples for that are of course MySQL and Trolltech with their GPL/proprietary licensing scheme, but strictly seen, "GPLv2 or later" is such a case as well. Just because "GPLv2 or later" is *also* GPLv3 doesn't mean that it isn't GPLv2 anymore, and as certain parts of Drupal will probably never be GPLv3, the whole of it is still distributed under GPLv2 only. Note that the Linux kernel does it this way as well, they've got a mixture of GPLv2 only and "GPLv2 or later" and even BSD licensed code, still the whole of it is strictly GPLv2 only.
The same applies to the contributions, which get the LICENSE.txt bundled in the download too. By having comments in all files, it would be harder to tell, what file is licensed under "GPL2 strictly", or "GPL2 or later".
Ok, so what's the problem with two different possibilities, as long as each of them is (also) licensed under the GPLv2 as the CVS guidelines demand? Please mind that having the copyright holders listed is more important than allowing dual-licensing, so it's kind of a secondary issue to me, but I don't see what could possibly be wrong with this. What I want to say is, take the licensing issue seriously. Joomla recently had a slightly different kind of licensing problem, and they took it even more lightheartedly before it came up, but it was just as well a result of not taking licensing seriously. Regards, Jakob