Context:
Permissive licenses (commonly referred to as “removed licenses”) like the MIT license allow others to modify your software and release it under an unfree license. Copyleft licenses (like the Gnu General Public License) mandate that all derivative works remain free.
Andrew Tanenbaum developed MINIX, a modular operating system kernel. Intel went ahead and used it to build Management Engine, arguably one of the most widespread and invasive pieces of malware in the world, without even as much as telling him. There’s nothing Tanenbaum could do, since the MIT license allows this.
Erik Andersen is one of the developers of Busybox, a minimal implementation of that’s suited for embedded systems. Many companies tried to steal his code and distribute it with their unfree products, but since it’s protected under the GPL, Busybox developers were able to sue them and gain some money in the process.
Interestingly enough, Tanenbaum doesn’t seem to mind what intel did. But there are some examples out there of people regretting releasing their work under a permissive license.
One of the arguments in favor of GPL and other “forced openness” licenses is that users should have the right to understand what their own device is doing. You paid for your computer. You own it. You should dictate how it operates. You should at least have the option of understanding what is being done with your machine and modifying it to fit your needs. Closed source software may provide utility, but it doesn’t really further collective knowledge since you’re explicitly refusing to publicly release the code, and it provides obscurity for developers to hide undesirable functionality like data collection or more directly malicious activity.
I’m not personally sure how I feel about that argument myself, but I can at least readily acknowledge it as a valid one whether I agree with the decision to force openness or not.
Yes, of course GPL is good for some things. But it being called the pinnacle of freedom is just wrong. It claims that it’s freedom for the users, but that’s not true.
In the case of libraries, the users of the libraries are not the end users of the program. The users of the library are the developers. GPL is NOT freedom for developers.
I completely agree that programs having a GPL license is positive. You can even use them with complete freedom in commercial settings!
The one freedom the GPL removes is the freedom to be a leech. If you’re linking to GPL code, you are agreeing to follow the same rules as everybody else who has contributed to that code. Nobody gets a pass
Except the end user does inevitably become the user of the library when they use the software the developer made with it. They run that library’s code on their machine.
In light of the above, this is incorrect. By using GPL, you preserve the end user’s freedom to understand, control, and modify the operation of their hardware. In no way does the end user suffer or lose any freedoms.
I know that the end user is the focus of GPL. But me, when choosing a library, as a user, I tend to avoid using GPL ones, because they restrict my freedom. In consequence, my end users (of which there are aproximately 0 anyway) don’t get GPL code either way.
Forced openness is good for certain things, but not so good on others. That’s the reason why I licensed my game engine under BSL (whith some components of course under MIT, ZLib, and Apache), within the game development community things like that more accepted. It does have branding material, which anyone can use unless they were either behaved really badly, or being used for non-engine related material. Certain engine assets are under yet another license (public domain).
As you’ve phrased it, this seems to me to be a question of how to balance the rights of the developer versus those of the end user. The developer wants to monopolize commercial usage while the end user wants full control and authority on their machine.
Some would argue that the developer’s goals are unethical, but I think it’s an unfortunate consequence of a societal system that would see them starve on the streets if they didn’t earn with their work. In an ideal world, end users would prevail unquestionably, but so long as developers must operate under capitalism where ownership is critical, concessions will have to be made.