The fundamental problem I have with the GPL, and I think is echoed elsewhere here, is that the GPL is not about my code. It is trying to force my will on other people’s code. It is inherently less free because it is trying to exert dominance over things I do not own and have never been involved in. In theory, a 10 liner GPL Python script could infect an org with 20 millions lines of closed source code and try to dictate the licensing of those 20 million lines.
Unfortunately you've fallen victim to years of anti-GPL propaganda and FUD. A 10-liner GPL Python script is not going to "infect" an org with 20 million lines of closed source code. Suggesting that it's possible, even "in theory", is absurd.
Yes, you need to be careful when you integrate GPL and LGPL code into your proprietary code base, and in some cases you just cannot do it. But so what? You are not entitled to use of that code. If you can't use it because of its license, then that's life: move on and find something else that you can use, or write it yourself.
And you also seem to think that if you screw up, and do depend on a GPL library (for example) in a proprietary code base, then you're required to give away the source for your 20 million proprietary lines of code. But that's not the case. There are many different remedies possible. One (common) remedy might be to cease distribution of the infringing code, remove the GPL component, replace it with something else, and re-release.
I think there are very few copyright owners who release their code under the GPL who would immediately push for the remedy to be your company releasing all of their proprietary code under the GPL. At least certainly not at first contact, if the company is capable of acknowledging their mistake and working in good faith to correct it. And even if a copyright owner did decide to push for this, it is ultimately up to a court to decide, and it seems vanishingly unlikely that a court would order that remedy, especially if the company was offering less-extreme, good-faith options.
> It is trying to force my will on other people’s code
I just wanted to call this out specifically, because, again: absurd. Please look at it from the default state: you do not get to use someone else's code at all. That's what copyright law says, in the absence of another agreement. Even if you have the source code to my library (or whatever), you cannot use it in your product unless I have given you a license to do so.
If you are considering using someone else's code in your project, one of the first things you should do is look at the license. If you see GPL, and don't want to abide by the terms of that license, you move on and find something else. That code is not trying to "force its will" on you. You are free to use it and follow its licensing terms, or move on. You are no poorer because that code is there, as you are not entitled to use it without a license anyway.
Unfortunately you've fallen victim to years of anti-GPL propaganda and FUD. A 10-liner GPL Python script is not going to "infect" an org with 20 million lines of closed source code. Suggesting that it's possible, even "in theory", is absurd.
Unfortunately, intention is not how law works. The GPL is a legal contract, and how much of a company's IP will come under it will be determined by a judge after lots of expensive litigation. If a suit is filed they will pick apart every line in the license, subpoena every change that was made in every version that someone could claim "was distributed" (available at a public URL?), every email that was tangentially sent, every bug that was filed, every document written, etc, just to determine the extent of what is covered. If that sounds excessive and you haven't heard of it happening, that's because no one wants to go through this and would rather settle than spending the money and effort on defending themselves. To understand the potential, look at https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....
The GPL purposely weaponizes source code in a way that other open source licenses do not, and personally I would rather hope that people decide on their own to release their changes than invite the lawyers into my code. Using code licensed this way is okay for projects that are already 100% GPL or aren't worth owning.
"Yes, you need to be careful when you integrate GPL and LGPL code into your proprietary code base, and in some cases you just cannot do it. But so what? You are not entitled to use of that code. If you can't use it because of its license, then that's life: move on and find something else that you can use, or write it yourself."
Yeah, apparently people moved on and the GPL is loosing significance.
Is it, though? I really don't think it has. There's still plenty of GPL-licensed software out there; most of the software I run on my laptop is still GPL, for example (the main notable exception being Firefox).
I think perhaps there's just a lot more open source out there these days than there was 10 years ago. A good amount of it was started by or sponsored by corporations, and sadly those types of entities are less likely to use the GPL.
Ok, I also have no hard data at hand, but in my impression the vast majority of projects even started by individuals today do not use the GPL, but rather MIT or alike. Me too, because I do not like the concept of copyleft. I like the intention behind it, a world with open source as standard - but I just think the way towards this, is by convincing people step by step and proofing that they can also make money with open source and not trying to force them to open source.
IANAL but I don't think your example is accurate. Unless you expanded that 20 line python script into your 20 million line application, the GPL is not going to cross over and infect your other code. It would mean that if you are distributing that python script to users then you have to include the source for it (not usually a problem with python, but it is for other languages).
“You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License”.
That is pretty clear. If you distribute software that contains a GPL component, the whole lot is considered GPL. Whether the GPL is 20 lines or a million is irrelevant.
This is why the GPL and similar licenses are called viral. They infect other people’s code and try to impose license terms on it.
This is also why licenses like LGPL were created, to try to be a little more reasonable. But that seems to have failed almost completely.
Speaking as a GPL/"Free" software partisan, we failed. Although I don't like it, I think it's pretty clear. Most people have no idea what the GPL is, even most people who have heard of it don't seem to understand what it was trying to accomplish.
The farmers fighting for the "right to repair" their own tractors are the front of the battle now.
The freedom to deny other people the freedom you are enjoying is not compatible with the notion of freedom. It's hypocrisy.
That's not to say there is no place for MIT/BSD licenses, but it is not with general application software or libraries used to build such.