There's being blunt, and there's abuse. Linus attacks code, not people. Maybe it's seems like a distinction without a difference, but Linus would say "stop submitting stupid patches," instead of "stop being stupid." Or maybe, "the quality of your patch is dumb" versus "you're dumb." But, I don't follow the LKML so maybe he does ad hominem attacks.
I do know he's mellowed over the years and the CoC was introduced after his daughter called him out about abusive behavior, and he seems to have listened to her. So you may be right: if the CoC had been introduced 20 years ago, maybe he'd have already been kicked out.
My final thought is that there's a bit of "rules for thee, not me." Linux can probably now survive without Linus, but he's still a guiding force and probably the foremost authority on the core kernel, and I have a hard time imagining his lieutenants kicking him out.
There's being blunt, and there's abuse. Linus attacks code, not people.
Maybe today, but certainly not in the past. I don't doubt that Linus always had the best intentions for the kernel, but he nevertheless told other developers they should be retroactivly aborted. It's hard for me to imagine that this version of Linus and a Linux CoC could've existed at the same time.
But I also get the impression that he did change quite a bit since then, now being blunt instead of abusive as you said. This shouldn't be inherently incompatible with a CoC.
Linus has taken a break from linux development to work on his behavior and got professional help too. Be apologized for his past abusive behavior too. But yeah Linus was very much abusive in the past and I'm glad he worked on it, cause his behavior is much better today.
I think in asking myself why I've never really held Linus conduct against him; he's this weird 1:1 situation.
He's unfortunately tasked with stewarding a project that runs the planets tech and it's his name on the tin. Which whether he likes it or not at this point, makes his identity wrapped up in the quality of the project. I absolutely don't condone the behavior, but I can understand how people handing you shit sandwiches becomes a personal attack of it's own over time.
It's probably a lesson we'll refuse to learn about not doing this single leader thing again. Time and insularity tend to make bigger assholes of us all.
If I say "your code is garbage" would you really say I'm not attacking you? I don't think most people would accept that. The CoC mentions being welcoming, inclusive, respectful, empathetic, not insulting or attacking people or being unprofessional. Linus violates all of those! Of the 10 bullet points there he violates 6 of them!!
IMO this is a big issue with CoCs. They give cowardly justification for arbitrary dictatorial actions. It's much better to admit that it's a dictatorship.
I agree with the rest of your comment - it's clearly worth putting up with his arseholery given how important to the project he is.
I do think there's a difference. It's an established communication rule: criticize the behavior, not the individual. But, I don't disagree that Linus is an abrasive personality, because he is.
Yes that is a good rule but the problem is he doesn't just respectfully criticise behaviour, he rudely attacks it. "This code doesn't meet the standards we require" is ok. "Your code is garbage. Again!" is absolutely not.
Imagine if you said that at work. That's a trip to HR anywhere I've worked.
I agree, but if you look at the specific email linked, it very clearly crosses the line into direct abuse, whereas most of Linus's rants do exist in a slightly greyer area (even if they'd be grounds for a discussion with HR at an actual company).
I've always said CoCs are often just a false flag used to handwave dictatorship behavior away while hiding behind colorful interpretations of subjective terminology.