Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Several of the points in this article are either flat-out wrong, or are correct but being read in the wrong context.

> The licence is specifically GPLv2 and not “GPLv2 or later”, which is the default when applying the GPLv2 to software.

Because Linus didn't and doesn't want the FSF relicensing Linux with new restrictions to fit their specific political goals[0], on the basis that adding any further restrictions to GPL violates the spirit of the GPL. He's not opposed to using v3 software, he just doesn't like upgrade clauses on Linux.

> Linus Torvalds seems to speak as though he has the power to interpret the GPL. He does not; nor does the FSF.

Linus is a copyright holder. So is the FSF. While a judge would ultimately be interpreting the GPL in an enforcement case, the words of the copyright holder have significant weight when interpreting a license. So, if you write LKMs that infringe the GPL, the court will listen to Linus to determine where the boundary is. Likewise if you wrote infringing GPL plugins the court would listen to the FSF.

> Supposedly, the requirements of the GPLv2 do not apply to the userspace ABI.

Yes, because Linus said so. This isn't even an implied license thing; Linux has always had an explicit exception for the ABI.

It is actually an open question whether or not bundling an application with some GPL host program trips the GPL copyleft. The word "program" in the GPL is strategically vague here; it does not correspond to an address space. Two or more processes with IPC could be considered to be one program[1].

Related note: emulator developers writing GPLv2 or v3 emulators should seriously consider clarifying that bundling a game with an emulator doesn't make the game itself part of the same program as the emulator.

> Conversely, the Linux kernel project claims that the GPLv2 conditions do apply to the kernel-mode ABI.

No, quite the opposite. The Linux kernel project has claimed that kernel-mode symbols equivalent to the userspace ABI do not trip the GPL copyleft. That's why they have the GPL_ONLY DRM[2]; it's to distinguish between "running two programs in the same address space" and "merging a module into the same GPL program".

> If modules are derived works, then every non-GPL non-cleanroomed module is violating the GPLv2. This creates a ticking time bomb for companies which rely on this ability, because they could get sued by any contributor at any time.

> If modules are not derived works, the “GPL_ONLY” provision is meaningless and unenforceable.

Well, first off... clean room is not a legal requirement, it's a defense against the access prong of substantial similarity in an infringement lawsuit. This would apply if you were writing your own kernel that can run Linux programs[3] - you would need to defend against claims that you just copied Linux instead of writing a workalike.

Loadable kernel modules are not workalikes; they are additional programs that can modify how the Linux kernel works. To the extent that a loadable module modifies the original program or incorporates it into itself, it can be considered to be a derivative work. But since the userspace ABI has been explicitly opted out of the GPL copyleft, those modules can still use it. GPL_ONLY exists purely to technically enforce what Linus believes the license on Linux is.

>It is rather ironic that in some ways, one has more freedom in how one licences a kernel driver for Windows than the freedom one supposedly has in writing a kernel module for Linux. (...) Under such a model of copyright, the IBM PC could never have been reverse engineered and cloned, and the computer on which I am typing this would not exist.

Oh boy.

You're allowed to write kernel drivers for Windows because Microsoft explicitly said that you could. Linus does the same thing with GPL_ONLY. I'm pretty sure the NT kernel has it's own internal symbols you're not allowed to link with, and Microsoft could allege in court that doing so creates an infringing derivative work. The confusion doesn't come from the GPL, it comes from copyright law.

This, again, has nothing to do with cloning; Compaq didn't need to ship code that links with the IBM PC BIOS. They needed to ship code that replaced it entirely. There is a difference between replacing a program and linking with it.

The article also alleges that a single Linux contributor could pull an SCO and sue every company that's ever written non-GPL kernel code. I don't think that would actually work, because the userspace ABI exception that spawns all this is part of the license that the contributor implicitly agreed to when they modified Linux and sent that code upstream. Furthermore, every contributor is downstream of precisely one copyright holder: Linus Torvalds.

If you don't have a license from Linus to modify Linux, then you own nothing and cannot sue. So you're arguing that Linus gave you permission to modify and sublicense under specific rules he selected, but that he's not allowed to interpret those rules at all because you made a small part of Linux? That's probably not going to fly in court.

[0] https://lkml.org/lkml/2006/9/25/161

Also, related note: at one point the FSF was seriously mulling rolling AGPL into GPLv3, which is insane.

[1] Most browsers are structured as IPC process networks nowadays, and contain loads of permissively licensed, LGPL, and proprietary code all mixed together. If GPL "programs" were just address spaces, then they could spawn GPL code in a subprocess to evade the copyleft.

[2] Digital Rights Management, not Direct Rendering Manager.

[3] Examples of such programs would include iSH and Windows Subsystem for Linux (version 1; v2 actually runs the Linux kernel).



> No, quite the opposite. The Linux kernel project has claimed that kernel-mode symbols equivalent to the userspace ABI do not trip the GPL copyleft. That's why they have the GPL_ONLY DRM[2]; it's to distinguish between "running two programs in the same address space" and "merging a module into the same GPL program".

> Compaq didn't need to ship code that links with the IBM PC BIOS. They needed to ship code that replaced it entirely. There is a difference between replacing a program and linking with it.

Does the Linux license (with the GPL_only thing) allows you to replace open source modules with self-contained proprietary ones? For this I mean, let's say I want to build a proprietary network stack tailored for a given hardware I'm building. In such case, may I do it as long as I write it from scratch and run it in kernelspace as a module? If that's the case, why do kernel infringements occur? Why wouldn't everybody just reimplement in their own proprietary way whatever they have to? Why is closed source DRM/anticheat non-existent on Linux?


> Linus is a copyright holder...So...the court will listen to Linus to determine where the boundary is

This seems completely insane. If I become a programmer on Monday, and download the Linux source on Tuesday, and read the license file on Wednesday, and publish code on Thursday, and Linus sues me on Friday, am I going to be penalized by the judge because I didn't read random LKML posts by Linus? Surely the license is self-contained and provides me with all of then information I am reasonably required to have.


In this particular case, we're talking about a license clarification that gives you more rights than you otherwise could. So, if you hadn't read Linus's interpretation of his own license, you would think that you always had to GPL your LKMs. So there's no point in which Linus could actually sue you for not reading his LKML rants - they strictly increase what you are allowed to do under the license.

If this was the opposite case - say, Linus saying that the GPL required something that the text of the license said it didn't - then a judge would probably be inclined to not listen to Linus.

There's two fallacies engineers commonly get tricked by when talking about the law:

- "Code is law"[0]: the belief that legal protections, contractual clauses, and so on can be replaced with technical protection measures and "smart contracts".

- "Law is code": the belief that judges are merely human interpreters for an English-language-shaped virtual machine that contracts and laws are written in.

These fallacies are dual to one another; the root cause is a fundamental misunderstanding of how laws work. Judges are not merely tasked with executing a computer program in their heads; they are allowed and expected to actively comprehend and rewrite the law based on the facts at hand. "Legislating from the bench" is a deliberate feature, especially in "common law" jurisdictions where prior rulings are allowed to be treated as good as actual passed-by-Congress laws.

A good example of how this works would be Oracle v. Google. Strictly speaking, as much as we hate Oracle, they had the most meritorious argument, and they were trying to enforce the GPL. If you take copyright as a given on software, then that copyright can be applied to the thinnest sliver of creativity present in that software. Yes, even lists of function names and signatures alone should be copyrightable, and the GPL copyleft should trip if you copied them. However, the entire software industry did not actually consider these to be copyrightable, and acted as if they weren't. In fact, even Oracle's own cloud division was busy doing to Amazon what they were suing Google for doing to them. When SCOTUS saw this, they actively decided to change the law in favor of Google because it was the interpretation that most actual copyright holders in the industry had been operating on.

[0] With apologies to Cory Doctorow


Actually, if you only read the license files included with the kernel source, you'll be very confused and unsure of what you can actually do. The GPL is painfully vague, and there have been endless debates about how it applies to kernel modules, programs, etc. (such as this very one we're having now). (And I'm taking into account the clarification files in the source). Linus' LKML clarifications are post-hoc and not linked in the kernel files anywhere. I do agree with you that the GPL_ONLY "code is law" theory has some merit - and certainly a judge could use that as part of a ruling to uphold that interpretation. But I don't think that this aspect of the kernel license is going to be tested in court any time soon, so it's all speculation at this point.


The insane words are ones that you made up. The documentation is literally in the source code. If courts need to understand precisely what it means as it applies to a particular case, yes they can call Linus as an expert witness.


Some more on Linus and his feelings on GPLv3 from 2014 - https://youtu.be/PaKIZ7gJlRU


I remember watching this years ago and getting really pissed at Linus. At the time I didn't actually get what he was getting at, and just assumed he was just standing in the way of Stallman grabbing half the computer industry by the balls/ovaries and demanding they never lock down a CPU ever again.

I rewatched this about a month ago and it has aged like a fine wine. As much as I personally like GPLv3, Linus was in the right to reject it. GPL has a no-further-restrictions clause for a reason, and the license upgrade mechanism should not be used to circumvent the intent of that clause just to make a stronger copyleft. In fact, I'm starting to sour on the concept of supra-GPL-strength copylefts in general, because going any stronger than GPLv3 requires interfering with freedom zero in some way.[0] This is supposed to be a software commons, after all.

[0] AGPL is designed to force users to retain what may be an antifeature to them. SSPL tries to force users to embed said antifeature into anything remotely related to the program. "Ethical Source" licenses try to enforce moral restrictions with economic rights.


What does SCO mean? Couldn't find it in Wikipedia or lists of abbreviations. I think it is/was a company...


> "The SCO–Linux disputes were a series of legal and public disputes between the software company SCO Group (SCO) and various Linux vendors and users. The SCO Group alleged that its license agreements with IBM meant that source code IBM wrote and donated to be incorporated into Linux was added in violation of SCO's contractual rights. Members of the Linux community disagreed with SCO's claims; IBM, Novell and Red Hat filed claims against SCO."

https://en.wikipedia.org/wiki/SCO–Linux_disputes


Someone should write a play or something about the SCO saga. I would watch that...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: