| dérive | https://derivelinux.org |
| website | https://shrub.industries |
| code | https://srcdump.net/shrub |
| dérive | https://derivelinux.org |
| website | https://shrub.industries |
| code | https://srcdump.net/shrub |
No, the thing the author is missing is the same thing that GPL advocates always miss. @whitequark summed it up quite well as ‘calling the cops on cops doesn’t work’.
I contributed for a long time to GNUstep, an FSF project released under LGPL and GPL, and moved to v3 of both licenses shortly after they came out. A Silicon Valley startup was caught incorporating our code into their product and not complying with the license. The FSF took a look and decided that taking them to court was too expensive to be worthwhile. Eventually the company was sold and the people who infringed the license made a load of money.
At the same time, we heard from companies that did want to be a part of an open ecosystem and contribute code back, but whose lawyers considered FSF licenses too high risk. They contributed to Cocotron and pulled in other permissively licensed code. This fragmented the ecosystem of open-source OpenStep / Cocoa implementations and ended up with there being no good choice in that space.
When I released the GNUstep Objective-C runtime under the MIT license, I got a bunch of contributions and most people using non-Apple platforms converged on it. Even Microsoft contributed a bunch of bug fixes. They incorporated it into their porting layer for bringing iOS apps to Windows Phone (which was killed when Windows Phone died, but they still upstreamed their changes).
Laws and licenses very rarely work to change behaviour. They work well when they codify the behaviour that the majority agrees on, to both document that agreement and to provide a mechanism for handling outliers. The reason I don’t murder annoying people is not that it’s illegal, it’s that I agree with the consensus belief that a society where people aren’t killed for arbitrary reasons is bad. A small number of people disagree and we need a process for dealing with them.
We saw that a GPL-family license put off people who had done their legal due diligence (and others who didn’t want to spend money on lawyers to work out exactly what they could do) but, when not backed by an existing power structure, did not give us any power against bad actors.
The same applies to licenses. If people understand the benefits of cooperating to improve a commons, they will do so without coercion. If they do not, they will look for loopholes. And they will always find them because no legal document is without loopholes. NVIDIA noted that the GPL propagates in one of two ways: either as a result of distributing the GPL’d code or as a result of creating a derived work. They created a tiny shim that is a derived work of the Linux kernel that can talk to the drivers that they develop on Windows (and, originally, on FreeBSD) against a common OS abstraction layer. They keep their drivers proprietary but release the shim under a proprietary license.
A similar dodge works with AGPLv3. People write plugins for AGPLv3 code that talks via some RPC protocol to some external service and keep that service proprietary. AGPLv3 is very popular with VCs because they see it as a way to control the ecosystem.
If the problem is ‘there are exploitable loopholes in our complex piece of legal text’ the solution is not ‘make the legal text more complex’. That gives full employment to lawyers, but it won’t remove the loopholes. It just means that everyone needs to be or pay a lawyer to understand what they can and cannot do.
Some people will go further and outright violate the license. If you want to stop that, you need a big war chest. Winning a copyright infringement lawsuit will cost hundreds of thousands of dollars, as a minimum. Does your project have that? If, taking the example from the article, Tanenbaum had released Minix under the GPL, could he have afforded to take Intel to court? Intel, a multi-billion-dollar company with hundreds (at least) of full-time lawyers on staff? With an IP department that defends one of the largest patent portfolios in the industry? I doubt it. How many mobile phones come with Linux kernels where the companies do not release their drivers? And how many enforcement actions have actually worked? And, of those, how many have resulted in code that is incomprehensible and far too much work to update to a newer version of the kernel, so even forcing its release provides no benefit to the end user?
And that last bit is really key. The GPL is all about protecting large monolithic codebases. It propagates via linking. GDB, for example, explicitly suggests that proprietary IDEs can use it by forking a gdb subprocess and talking to it via pipes, so the only thing you can’t do as a proprietary-software vendor is link it into your IDE. But large tightly integrated monoliths are exactly the opposite of the kind of software you want to build if you want to empower users.
One of the big reasons that there is very little successful end-user-facing F/OSS is that end users do not see the benefits of most of the FSF’s four freedoms. Sure, they can distribute it for free, but how many end users can actually exercise the right to modify, say, LibreOffice or Linux? And, if they do modify it, how much effort is it for them to maintain that fork and update it? And now, on top of that software complexity, you also want them to understand a complex legal document to know exactly what they can or cannot do with the result? Meanwhile, MS Office shipped with VBA and COM extension APIs for decades and extending it on complex ways and distributing the resulting extensions did not require developers to be lawyers to understand what they had to do.
If you really want to empower users, you get rid of the hard boundaries between application, plugin, and document that exist because of proprietary-software business models. But if you use the GPL in such a design then every document is covered by the GPL. You can’t, for example, share it under an NDA. End users need to read a legal document to understand how they can distribute documents that they have created.
And that comes from the power asymmetry that makes GPL’d ecosystems so vulnerable to corporate domination (spot quiz: of all of the F/OSS operating systems that began as community-driven projects, which is the one most dominated by corporate interests? And what license is it under?). If I contribute to a BSD-licensed project, I can do pretty much everything that I could do if I had written the code from scratch. If I contribute to a GPL’d project, I have far fewer rights on my code than if I’d written it from scratch. This means that the GPL is creating a power structure where the initial developers retain more control (which is why VCs love AGPLv3). This is especially true if you have a CLA, because the owner of the project can do anything but the other contributors have the restricted rights of non-contributors. This encourages duplication of work, because everyone wants to be the owner of the GPL’d project that everyone contributes to, not a contributor to someone else’s project.
I release F/OSS primarily because it solves a problem for me. It is not a zero-sum game. If it solves a problem for you as well, I don’t lose anything. If it solves a problem for a thousand other people and none of them give anything back, I still lose nothing. And maybe the time they’ve saved by using my code lets them pay it forward and make the world better in some other way. If the occasional user finds a bug and fixes it, that’s even better. I get some work for nothing on a project that I am using.
Me in 1768: I dislike the new Prime Minister and the Steam Machine is still too expensive.
Me in 2026: I dislike the new Prime Minister and the Steam Machine is still too expensive.
guys i made a git forge who wants account (you must be cool)
i think a sizeable minority of my followers already have an account but anyone else
shrub tools
I HATE COMPUTER I NEVER WANT TO WORK WITH COMPUTERS PLEASE WE SHOULD JUST END THIS SUFFERING WHATS THE POINT IN PROGRAMMING, WHY DO YOU FELL SUPERIOR TO COMMAND THE MACHINE, WHY DO YOU NEED TO CARE ABOUT USELESS STUFF INVENTED BY EVIL LAW PEOPLE, WHAT THE FUCK IS A COPYLEFT
dalem out *drops mic*