Linus Explains his Patch Policy
An anonymous reader writes "For everyone who has been wondering the method behind Linus's seeming madness of accepting or dropping patches, he has finally given a thorough explanation. A must read for anyone who wants to get their favorite feature into the next release of the kernel."
As Linus suggests, use it in your tree. Go farther, and roll your own distro. If you have the time to whine about it all the time, you probably have the resources to help the community. Rumor has it LFS needs help.
I also cannot abide whiners and whingers. The old adage about 'the squeaky wheel gets the grease' does not hold in my camp.
It's more like 'the squeaky wheel gets whacked with a hammer and replaced with something better'.
People need to remember that when dealing with intelligent people, if you cannot get your point of view across without resorting to whining, you may need to reconsider what it is you are asking.
No, the idea of open source is the ability for you to say, fuck this tree, ill take all this code i want and deviate here and make my OWN tree, one with my patches and nothing i dont want!
When we have many tree's with one or two people making decisions each, its much more orginized than 20 or 30 people throwing large amounts of crap into one tree, and alot of stuff gets lost in the mess. Pull the tree that has the features you want, if it lacks one feature that you absolutly need from teh other tree, there are patches to use to get it in there.
He's admitting he's as failable as the next guy - the gist of what he's saying is that popping out of the woodwork and saying "hey, check this neat feature" isn't going to get your patch accepted into his kernel tree.
I highly doubt that any of the BSD maintainers would accept a patch either. It goes back to whether the trust is there, and evidently these guys don't hold Linus's trust.
Not much controversial here.
(I was only an egg, but then I cracked)
Shouldn't much of this be common sense to the average individual. Maybe not the specifics but the general concept, whining won't help.
When did this practice become so common. Far too often do you hear someone griping about something before ever going about it in the correct way.
+ 2 cents "We're on a mission from God" Elwood Blues
Hint: if you want stuff in my tree, make me trust you.
That's gonna be one for the quote book ten years from now...
Life is the leading cause of death in America.
That
tree is called "Linus' tree" for a reason. The only thing you are
ENTITLED to is to have your own tree.
Linus
Now if you'll excuse me, I'll go back to waiting for the great pumpkin to arrive.
Live web cams
I've told them where I wanted to go several times but they just charged me $99 for the phone call. Then I told them where to go but since they had my credit card on file it cost another $99.
Linux: Patches accepted based on what Linus thinks is good
BSD: Patches accepted based on what will run on the MrCoffee port
Linux: Patches to support new hardware added quickly
BSD: That better be an ISA network card...
Linux: VM changes cause instability in "stable" kernel branch
BSD: VM is old and slow, but you can use punchcards as swap. Isn't that neat?
Linux: It's for people who like to tinker
BSD: It's for people who think Debian-stable is too bleeding edge
Here is my current tree:
/* ??????? */ /* PROFIT! */
int main () {
printf ("Hello, World\n");
return 0;
}
Please send me patches, thanks.
Get your stinking paws off me you damn dirty ape
Vendors have the motivation to test and add your patch, as long as it adds something that a customer might want. This means that your patch gets well tested. This means that Linus can treat your patch with some confidence without knowing your work.
Of course, getting into Linus's tree is the Holy Grail of OpenScource development. It's hard not to take it personally if your patch gets rejected.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
It isn't "the official tree" - it's "the Linus tree". If you don't like it, use Alan's tree, or any of the dozens of others out there.
They do. Subscribe to the LKML and post it there. Pretty well all of the important developers of the kernel (most trees) frequent it. Ok then - we have two VMs - Riks and Andreas's. Since everyone's supposed to get equal input and nobody is supposed to control the kernel - we're supposed to have both of them in play?Would you like to write the code that keeps them separate depending on which box I fill with an 'X' in menuconfig? What about all the other aspects of the kernel where we have two, five, ten, or a hundred different patches that all do the same thing? I don't know about you, but I don't really fancy downloading a 500MB Bzip2-ball of kernel source. HDDs and bandwidth may be cheap, but come on, there are limits.
So in short, if you don't like the way Linus manages his tree - branch. Take the entire code base of any of the trees you'd like as a starting point and implement your anarchist's paradise. Let me know when it becomes stable and I'll give it a whirl.
BD Phone Home!
Shameless plug. Like you weren't expecting it.
I've always thought of Linus' tree as more of a kernel testing ground - even for the "stable" releases.
The big Linux vendors are usually much more conservative about what goes into their trees. But the vendors also react to customer critisism to add very useful features to their kernels - features that Linus often ignores because he doesn't have much interest some particular area. The Linux vendors have to innovate to stay in business, afterall. Like RedHat bumping up HZ to give a much smoother desktop experience. Redhat is also doing pioneering work on highly efficient kernel threads that will likely show up in their kernel before Linus'.
RedHat's kernel tree resembles the -ac tree moreso than Linus' tree (gee, might that have to do with the fact that Alan Cox works for RedHat?)
Linus' tree is not as relevant as it once was.
Linus isn't the head of some huge corporation that makes a ton of money off Linux developement. When you get down to it, he still basically develop Linux as a hobby even though his hobby is becoming quite a force in the industry. He's doing a service more or less for free(sure the fame could get him a job with a nice paycheck in several places), so he gets to do what he wants. It's the same situation with the guy who made AtheOS. People had grand visions for AtheOS and submited suggestions, and they were confused when they were ignored. The guy was only working on his hobby, not trying to make their dream system. Finally a group of developers got the hint and started Syllable. While Linus is a bit more accepting of features and code, it's the same principle. If you have some Earth shattering changes for the Linux kernel, but are getting snubbed by Linus, make your own tree.
Isn't having one person in charge of the official tree against the whole idea of open-source?
:)
No. Almost all open source projects have one person or a small group in charge. Why would this be "against the whole idea"? You're just as free to make your own changes on your own darned computer, no matter how many people are in charge of however many "official" trees. The so-called "official" trees exist merely for the convenience of those who don't want to bother to roll their own each day, and the people in charge of those "official" trees are only in charge because they've earned the trust of those who use their trees.
Shouldn't everyone have input of equal value?
No. This is a meritocracy, not a democracy. The people in charge end up in charge because they've proven themselves by the quality of their work. Remember, an "official tree" only remains "official" as long as people are willing to call it that and treat it as that. "Official tree" in open-source terms is a de-facto label, not a de-jure one.
Or to put it another way, only input of high value is valued highly.
Any more silly questions?
Come on - he gave us a kernel that so very many of us run, and let's be honest - he's had a huge impact on computing today. He's just making a point; his tree, his way. The same goes for every other tree out there, they just have different ways of showing it. Vendor trees probably have a comittee of people deciding what kind of path it should take, presumably with a project manager making final decisions.
We also know that he accepts patches from people he doesn't neccesarily get along with, from trivial patches to extensive sub-systems. He was just being a little brutally honest, and I can respect that.
Besides; consider the frustration of having tens of thousands of (wannabe) kernel hackers all around the world who all believe that it's somehow their right to have their latest c00l patch included in the Linus kernel tree. I think he handles it quite well. After all, he's still actively working on the kernel and participating in the whole Linux experience, right? Many people would have taken their ball and gone home by now.
BD Phone Home!
Shameless plug. Like you weren't expecting it.
Bear in mind that anyone can take his ball, make an identical copy of it, and do whatever you want with it.
And it looks like he's encouraging you to do that.
"But Linus, I want you to do everything for me the way I like it." Gee... tough shit. It's GPL'd code, do whatever you like. I don't think your argument makes any sense. It doesn't sound whiny or juvenile to me.
if anything to do with OS kernels gives you warm fuzzies, your geekhood far surpasses mine...
If you had nuts on your chin, would they be chin nuts?
The thing is this: Linus does not have the time to get every patch in there. No one seems to understand this, so now he's putting it out there pretty forcefully. People like you don't see the whining he puts up with; you just see it when he boils over in the form of letters like this, and then you criticize him.
All he wants is some assurance that the patch functions well. If you're some stranger and he's never heard of you nor your patch, how the hell is to be assured that your patch won't blow up a computer and embarass him? Do you think Linus can test every patch he gets himself?
If he requires that you can prove a large working installed base, so what? It is HIS. It has HIS name on it. He approves it, personally, every release. And when it screws up, it reflects on HIM. Not you. Well, you too, but the product isn't named after you; it's named after him, and most users won't see who is responsible for the code.
Linus wants a good kernel, and if he isn't discriminating about what he takes, it'll go to shit real quickly. So if you think its childish that he grows to trust people who continually write good code, or that he trusts patches that have been distributed in versien 45+1/2 of RedHat and with no known issues, maybe that is childish.
But there's nothing wrong with require well-tested patches for his code. It's his tree, his name, and his reputation on the line. Good for him, for doing it and saying this.
is it only me, or has anyone noticed over the years that "tree" discussions always come up near christmass time???
Chould we call this the Linus Christmass Tree phenomenom?
Linus' tone might seem a bit aggressive and abrupt, but consider that this is message is a deep, deep down a very long thread that starts here.
From the very beginning, Linus was saying he thought this patch was something that should be driven by vendors - i.e. put it in their trees *first*, and then it may find a way into Linus' tree later.
Hence the constant references to 'this is my tree, this is how I do things'.
The whole thread is actually quite interesting. If you're thinking of suggesting a patch, I suggest you read the whole lot to get an idea about how best to approach it.
Take note that Linus decided to remind us nine times that it is his tree. I am a big fan of Linux, but not so much of Linus. The way he wrote that letter made him seem a bit childish.
I think if you read the entire thread (in the LKML) to which he was responding, you might be a bit less critical.
Basically people were bitching and moaning endlessly because Linus hadn't taken their patches, and he had already responded in less explicit terms trying to tell them why -- but some still didn't seem to get it. This post was Linus getting fed up and explaining his position in a way that no one could fail to understand.
We live, as we dream -- alone....
Kinda like the way the word 'day' can either mean the entire 24-hour period, or just the part when the Sun is above the horizon, but 'night' only means the part when it's below. Except that a 'fortnight' includes both parts.... Bad example.
Besides, one of the people who Linus trusts and maintains a tree that Linus specifically mentioned, is -aa, which is Andrea Arcangeli. Now, how can anything that includes someone named 'Andrea' be considered 'sexist'?
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
Portability fix, standards compliance:
So I send all of my childhood attempting to get into girls bushes and failing. Now I spend my entire adult life failing to get in another mans' tree.
Shouldn't this all balance out at some point?
Figured I'd post a quick summary of the underlying issue.
There is a patch that has strong vendor support (like vendors have already signed contracts involving services from this patch).
This patch is a service offered on many other commercial unixes (Irix, Solaris, AIX, etc..)
Linus considers this patch:
a) to be dangerous
b) to be difficult to test
c) likely to have the most problems on the x86 platform which is Linux's home platform
d) supporting it might add long term maintainability problems to the kernel
The kernel hackers whom Linus trusts seem to agree with his assessment.
What Linus wants is
a) for the vendors to support this patch over a long period of time on a wide range of systems.
b) For there to be some evidence that Linux users (as opposed to Linux vendors) actually want this feature.
So what you have is a fight between big guns: Suse, United Linux, IBM.. and Linus.
Celebrate the finer things in life