LWN.net Logo

GPL 3: An Open-Source Earthquake? (CRN)

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 5, 2007 19:27 UTC (Mon) by gerv (subscriber, #3376)
In reply to: GPL 3: An Open-Source Earthquake? (CRN) by bronson
Parent article: GPL 3: An Open-Source Earthquake? (CRN)

How confidently?

http://www.kernel.org/pub/linux/kernel/Historic/v0.99/lin...

gerv@otter:linux$ grep -A2 "Software Foundation" kernel/blk_drv/scsi/fdomain.c
* Free Software Foundation; either version 2, or (at your option) any
* later version.

gerv@otter:linux$

The "or later" language lives (or doesn't) in the header of each individual file, not in the COPYING file. If it's there and you remove it, you are arguably removing a right granted by the previous copyright holders - the right to use their contributions under later versions of the GPL. I'm not sure if you can actually do that.


(Log in to post comments)

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 6, 2007 14:02 UTC (Tue) by notamisfit (guest, #40886) [Link]

Something like two thirds of the kernel header files only have copyright notices, with no mention of license.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 10:17 UTC (Mon) by forthy (guest, #1525) [Link]

The GPL covers this lazyness: "If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation."

So for two third of the files in Linux, you can choose any version ever published, they are essential compatible with GPLv1, v2, or once v3 is released, with v3, as well. "The Program" is legally a file, not the complete kernel. Only the complete kernel, the collection of many "programs", as distributed by Linux has this v2-only tag.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 17:17 UTC (Mon) by zlynx (subscriber, #2285) [Link]

COPYING does specify a version. If you're thinking of the files without a GPL included and if you don't believe COPYING applies to those files, then you have no license at all to those files. Your choice is GPLv2 or nothing.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 18:32 UTC (Mon) by gerv (subscriber, #3376) [Link]

COPYING does not specify a version as far as I can see:
http://www.kernel.org/pub/linux/kernel/COPYING

I believe COPYING applies to all unheadered files, and the latter part of Section 9 specifically: "If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation."

Gerv

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 20:15 UTC (Mon) by zlynx (subscriber, #2285) [Link]

It's right there at the top:
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 20:34 UTC (Mon) by gerv (subscriber, #3376) [Link]

Indeed. The document does contain a copy of the GNU General Public License version 2. But it also says that you should put the boilerplate on to apply the new terms to your license, and what happens if the boilerplate isn't put on (section 9).

The MPL says "Mozilla Public License version 1.1" at the top, but software under the MPL can be used under any later version of the MPL - section 6.2.

For the GPL, exactly the same thing applies unless the boilerplate says different - i.e., unlike the MPL, the author has the option of restricting it if they choose. But they must explicitly choose to do so. If they do not, then "you may choose any version ever published by the Free Software Foundation".

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 20:46 UTC (Mon) by zlynx (subscriber, #2285) [Link]

Section 9 says nothing about boilerplate. Section 9 applies to code that has a bit like this from kernel/cpu.c in it:

/* CPU control.
* (C) 2001, 2002, 2003, 2004 Rusty Russell
*
* This code is licenced under the GPL.
*/

I would say that listing the entire text of GPL version 2, leaving off the "or later" notice, *and* the paragraph by Linus at the top of COPYING, makes it very clear that it is version 2.

If you are applying this argument to the early versions of Linux, which were less clear on licensing, then Linus could apply any version GPL he desired, and he picked GPL 2.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 21:18 UTC (Mon) by gerv (subscriber, #3376) [Link]

Listing the entire text is a requirement of the license. It makes no statement about versions. The paragraph by Linus at the top of COPYING (at least, the version I linked to) also says absolutely nothing about versions.

Yes, the "or later" notice is left off, but so is all the rest of the boilerplate. How much clearer can section 9 be? The Program (the file) does not specify a version number of this License (because it doesn't specify anything) and so consequentially you may choose any version ever published by the Free Software Foundation.

The boilerplate you quote also falls into the same category. But we have already agreed that if code has no boilerplate at all, then it is under the terms of GPL version 2 - as given in COPYING. And GPL version 2 clearly states that if no version number is given in boilerplate, you can use any version of the GPL ever published by the FSF.

To put it another way, the default terms in the case of no boilerplate are "any version ever published" (i.e. 1, 2 or 3). The standard default boilerplate is "this version or any later version" (i.e 2 or 3) and it can be modified to "this version only (i.e. 2). There are three different possibilities depending on the boilerplate status, and files with no boilerplate are in the first of those three buckets.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 12, 2007 22:22 UTC (Mon) by zlynx (subscriber, #2285) [Link]

I finally did look at the link you provided.

I had assumed it was a link to the latest kernel. But your link is COPYING for the kernel repositories. Each release of Linux contains its own COPYING file. Please look at COPYING in the top level of 2.6.20, for example. Then refer to my previous comment that by your argument, Linus was free to relicense to explicit version 2. I myself happen to agree with Linus that it was always version 2.

I *still* disagree with your interpretation of section 9. If I put the complete text of GPL Version 2 as the license on my program, and do not explicitly give you permission to relicense under any later version, then I *did* specify a version: version 2. I do not see how you can read "GNU GENERAL PUBLIC LICENSE Version 2" as anything other than specifying a version, and section 9 that you are so fond of says nothing about *where* the version must be specified. I believe section 9 applies only when the GPL is included by reference.

If you want *me* to agree with you, please explain and convince me why listing the version 2 GPL text does not specify version 2 GPL.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 14, 2007 21:42 UTC (Wed) by gerv (subscriber, #3376) [Link]

I've had a look at the COPYING in the latest kernel (2.6.20). Linus's statement there is interesting because I don't think it's immediately obvious that he has the legal authority to make that statement about any contribution other than his own - certainly not for contributions made before he added the statement.

If I contribute some code to the pre-Linus-announcement Linux kernel, and don't put a header on it, section 9 says that recipients can choose any version of the GPL ever published by the FSF. (You may still dispute that; but see below for further comments.) Linus can not take away that right I have given, because it's imposing further restrictions on the rights I am granting - something section 6 of the GPL forbids.

If I contribute unboilerplated code to the Linux kernel post-Linus-announcement, there is a conflict. The license supposedly applying to the kernel says recipients can use any version; Linus says it's only version 2. Which wins? Well, Linus doesn't own the copyright on my contributions, so I'd say the text of the GPL wins. But I agree it's a different and more complex situation.

Your interpretation of section 9 is wrong because it says "If _the Program_ specifies...". In other words, it *does* say where the version must be specified - it must be specified on the Program. The copy of the included license is not the Program.

If the mere inclusion of the licensing text of one particular GPL version were sufficient to fix the licensing of the accompanying software at that version, then that part of section 9 would not need to exist. Why would you ever have a clause beginning "If the Program does not specify a version number of this License", if it were impossible to not specify a version number, because the inclusion of the license text always meant that you had specified one?

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 6, 2007 20:14 UTC (Tue) by bronson (subscriber, #4806) [Link]

This is becoming a FAQ...

Obviously, the files that make up the Linux kernel of have all sorts of different copyright holders and licenses (many even have multiple licenses). There is one thing that holds them all together: each is somehow compatible with the GPLv2.

So, what license applies to the entire kernel as a whole? COPYING in the root directory, of course. Not coincidentally, this also happens to be the intersection of each license exception found in kernel. The "or later" clause is just one example.

And has /COPYING ever included the "or later" clause? Never. That's why I said "kernel release" instead of "kernel file": I'm referring to the kernel as a whole.

It's perfectly possible to include code with an optional exception into a project that doesn't include the exception. In fact, the GPLv3 makes this explicit.

As you say, if for some oddball reason you make the exception mandatory ("you MUST distribute this file under the most recent version of the GPL"), then that would be most problematic. Thankfully, that's not the case. Since all exceptions in the kernel are optional ("either version 2, or (at your option) any later version") then there is no problem when the entire kernel is distributed without them.

Does that make sense?

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 7, 2007 22:54 UTC (Wed) by gerv (subscriber, #3376) [Link]

If every file which has a GPL header has the "or later" language, then that entire codebase can be used under GPLv3 terms as well as GPLv2. (Any code under other licences which is compatible with GPLv2 will be compatible with GPLv3.)

COPYING defines the distribution terms of the aggregate body, yes. It also serves as the copy of the GPL that the GPL headers say must be present. However, the question is not "what are the terms attached to Linus's release of kernel x.y.z", but "can I change those terms to GPLv3?". And the answer to that question lies solely in the GPL headers on each file.

If a file has no header at all, I'm not sure what the legal position is. I would suggest that it's under the terms of the code surrounding it. But I don't know if a court has ever ruled on this.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 8, 2007 6:33 UTC (Thu) by bronson (subscriber, #4806) [Link]

It seems clear to me but of course IANAL...

If a file was contributed without any license information, I can see only one way to interpret this... We can't assume it was intended to be public domain since basically everything is under copyright unless those rights are expressly waived (in the US since 1970 anyway). The court can only guess that the contributing author(s) intended to use the project's umbrella license. But, you're right, this hasn't been ruled on yet.

"Any code under other licences which is compatible with GPLv2 will be compatible with GPLv3."

That's not true is it? I could write a license that's compatible with the GPLv2 and also requires Tivoization ("you must keep your signing key private"). That hypothetical license would be compatible with the GPLv2 and yet incompatible with the last draft of the GPLv3.

GPL 3: An Open-Source Earthquake? (CRN)

Posted Feb 8, 2007 9:51 UTC (Thu) by gerv (subscriber, #3376) [Link]

Pedant :-) Yes, you can imagine a licence for which that is not true. But all the licences used in the Linux kernel in this universe (BSD variants and such) fit that profile.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds