> I could also build an entire custom kernel from source, but Rabbit Inc. has chosen to violate the GPL2 license and not make the sources available. Of particular note are their drivers for hall-effect scroll wheel sensing, and camera rotation stepper motor control, which are closed-source and yet statically linked into the GPL'd kernel image. Violations like this are hugely destructive to the free software ecosystem, from which companies like Rabbit Inc. benefit.
GPL requires you to disclose the license and source code on request, but Truth Social got away with not disclosing the license until someone realized they were using AGPL code, and only then released the source. I wonder if Rabbit will slip by doing the same.
> GPL requires you to disclose the license and source code on request
Not quite; GPL 2.0 requires you to at least disclose the license upon distribution, but actual source code may be provided upon request[1]:
> You may copy and distribute the Program … in object code or executable form … provided that you also do one of the following:
> a) Accompany it with the complete corresponding machine-readable source code …
> b) Accompany it with a written offer … to give any third party … a complete machine-readable copy of the corresponding source code …
> c) [option that only applies to non-commercial distribution]
In practice though, GPL software rights holders can't pursue violations they don't know about, and usually only care about getting violators they do find out about into compliance, rather than seeking damages.
Rabbit will be long out of business before any blowback about the GPL actually reaches them. As for kernel modules, I was under the impression that Linux has a specific exemption to the GPL for those regardless of how they're linked, as long as they don't require any modifications to the kernel itself.
> I was under the impression that Linux has a specific exemption to the GPL for those regardless of how they're linked, as long as they don't require any modifications to the kernel itself.
It's more complicated than that. Linux is using a standard GPL2 without exemptions. There are some vendors that look at the actual definitions of how code that's "derived" from the kernel is what needs to be open sourced, so most of their driver is a closed source blob that includes no headers from the kernel and who's source tree has existed longer than their Linux port. Then they open source a bridge layer as gpl2. They then bank on the idea that no judge or jury is going to rule that the closed source blob "derives from" the kernel.
Went back and read some of the old lkml posts from Linus, and it seems most of the kernel is GPLv2 with some version of the "GCC Runtime Library Exception". I assume the "syscall exception" he repeatedly refers to is related, but it's never quite clear what the exact mechanism is. Linus himself seems to take it case-by-case what constitutes a "derived work" from the kernel, or at least did so 20 years ago. It might have become clearer since then, or maybe not.
Out-of-kernel-tree modules are still useful even if they are exactly the same license. I don't know what's with this tendency of having to put everything under the same umbrella. My modules will never get merged with Linux and I have no intention of doing so, but it is perfectly legal to distribute them with Linux (both are GPLv2). DKMS still helps to manage the mess that is the lack of a stable ABI for Linux.
And a true, completely libre kernel wouldn't have been used by anyone. DKMS exists for a reason, it's a good, non dogmatic compromise. Linux makes a lot of those compromises that make it easier to use in/with proprietary environments.
If you don't care about freedom then step out and just use MacOS with Macports.
For actual freedom, Linux-Libre it's a must.
May I remind anyone the disaster of Mediatek and most SOCs with propietary drivers which are bound to old kernel releases and they became useless bricks over time, even with PostMarketOS? Or the infamous GMA500/Poulsbo, where even 2D acceleration it's missing. IDK it even supports modesettings thru KMS/DRM.
Inb4 'these are old machines, nearly useless', my n270 atom netbook still runs Luakit like a champ and it supports GL 2.1, enough for tons of tasks.
On top of that, with ZRAM the GB of RAM now holds far more data than it did back in the day.
I don't disagree with any of that. I'm saying that normal Linux doesn't want to optimize for free as in freedom/libre, it wants to be a usable and modern kernel. The license it uses helps it with doing that, but Linus has been clear that the project doesn't care about much more than that.
It's sad but it is a tradeoff. I wish it wasn't and that most hardware and software was "libre", but that's not the case so there's a trade off to be made.
GPL is tricky at the best of times to enforce. Onyx, makers of Boox, was called out on this years ago (sorry I couldn’t find a single concise source to link to) and hasn’t faced any consequences. I doubt Rabbit will get in trouble for this.
GPL requires you to disclose the license and source code on request, but Truth Social got away with not disclosing the license until someone realized they were using AGPL code, and only then released the source. I wonder if Rabbit will slip by doing the same.